提交 e34f913d authored 作者: lidongxu's avatar lidongxu

feat(sycm_store/tablelist): 生意参谋-竞店-尝试增加表格功能

同上
上级 7541c0d3
...@@ -4,8 +4,8 @@ VITE_APP_TITLE = 王小卤-链路中心 ...@@ -4,8 +4,8 @@ VITE_APP_TITLE = 王小卤-链路中心
# 基地址 # 基地址
# VITE_APP_BASE_API = '/dev-api' # VITE_APP_BASE_API = '/dev-api'
# VITE_APP_BASE_API = '/qllan' # VITE_APP_BASE_API = '/qllan'
# VITE_APP_BASE_API = '/bclan' VITE_APP_BASE_API = '/bclan'
VITE_APP_BASE_API = '/home' # VITE_APP_BASE_API = '/home'
# 开发环境配置 # 开发环境配置
VITE_APP_ENV = 'development' VITE_APP_ENV = 'development'
......
{ {
"name": "wangxiaolu", "name": "wangxiaolu",
"version": "1.0.0", "version": "0.0.0",
"description": "王小卤", "description": "王小卤",
"author": "王小卤", "author": "王小卤",
"license": "MIT", "license": "MIT",
......
...@@ -8,7 +8,15 @@ export function getCmmListAPI(params) { ...@@ -8,7 +8,15 @@ export function getCmmListAPI(params) {
}) })
} }
// 生意参谋-各大竞品直播间数据集合 // 生意参谋-各大竞店
export function getSycmStoreListAPI(params) {
return request({
url: '/bi/oppo/sycm/store/list',
params
})
}
// 生意参谋-各大竞品
export function getSycmListAPI(params) { export function getSycmListAPI(params) {
return request({ return request({
url: '/bi/oppo/sycm/list', url: '/bi/oppo/sycm/list',
......
<template>
<el-table :data="data"
style="width: 100%">
<el-table-column prop="platformStore"
label="店铺" />
<el-table-column prop="date"
label="日期" />
<el-table-column prop="zfmjPeakTotal"
label="支付买家数" />
<el-table-column prop="jyzsPeakTotal"
label="交易增速" />
<el-table-column prop="uvPeakTotal"
label="独立访客范围" />
<el-table-column prop="llzsPeakTotal"
label="流量增速" />
</el-table>
</template>
<script lang="ts"
setup>
const props = defineProps({
column: {
type: Object,
default: () => {
return {}
},
},
data: {
type: Array,
default: () => {
return []
},
}
})
console.log(props)
</script>
\ No newline at end of file
...@@ -41,14 +41,18 @@ ...@@ -41,14 +41,18 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="chart_wrap" <div class="chart_wrap"
v-if="!loading"
v-loading="loading"> v-loading="loading">
<template v-if="queryParams.brandList.length > 0 && queryParams.typeList.length > 0"> <template v-if="queryParams.brandList.length > 0 && queryParams.typeList.length > 0">
<template v-if="showType === 'charts'">
<group-legend :legendData="chartData.legend" <group-legend :legendData="chartData.legend"
@click-item="legendChangeFn"></group-legend> @click-item="legendChangeFn"></group-legend>
<gradient-area :chartData="chartData"></gradient-area> <gradient-area :chartData="chartData"></gradient-area>
</template> </template>
<no-data v-else-if="!loading"></no-data> <template v-else-if="showType === 'table'">
<table-list :column="queryParams" :data="useTableList"></table-list>
</template>
</template>
<no-data v-else></no-data>
</div> </div>
<levitated-sphere> <levitated-sphere>
<el-button type="danger" <el-button type="danger"
...@@ -59,7 +63,8 @@ ...@@ -59,7 +63,8 @@
<script setup> <script setup>
import GradientArea from './GradientArea.vue'; import GradientArea from './GradientArea.vue';
import { getSycmListAPI } from '@/api' import TableList from './TableList.vue';
import { getSycmStoreListAPI } from '@/api'
import { generatorDayList, parseTime, getBrandColor, resetObjValue } from '@/utils' import { generatorDayList, parseTime, getBrandColor, resetObjValue } from '@/utils'
import { useDatePickerOptions } from '@/hooks/date' import { useDatePickerOptions } from '@/hooks/date'
...@@ -72,11 +77,13 @@ const typeList = ref(dataTypeList) ...@@ -72,11 +77,13 @@ const typeList = ref(dataTypeList)
const { pickerOptions } = useDatePickerOptions() const { pickerOptions } = useDatePickerOptions()
const brandList = ref([]) // 店铺列表 const brandList = ref([]) // 店铺列表
const loading = ref(true) const loading = ref(true)
// const showType = ref('charts') // 展示类型('charts' / 'table')
const showType = ref('table') // 展示类型('charts' / 'table')
const queryParams = reactive({ // 查询表单 const queryParams = reactive({ // 查询表单
brandList: [], brandList: [],
typeList: [typeList.value[0]], typeList: [typeList.value[0]],
date: dateList, date: dateList
}) })
const allChartData = reactive({ // 图表所有数据 const allChartData = reactive({ // 图表所有数据
...@@ -90,17 +97,23 @@ const chartData = reactive({ // 图表内要用的数据 ...@@ -90,17 +97,23 @@ const chartData = reactive({ // 图表内要用的数据
series: [], series: [],
}) })
const allTableList = ref([])
const useTableList = ref([])
// 获取数据 // 获取数据
const getList = async () => { const getList = async () => {
loading.value = true loading.value = true
resetObjValue(allChartData) resetObjValue(allChartData)
// 获取 x 轴时间 // 获取 x 轴时间
allChartData.xAxis = generatorDayList(queryParams.date[0], queryParams.date[1]) allChartData.xAxis = generatorDayList(queryParams.date[0], queryParams.date[1])
const { data } = await getSycmListAPI({ const { data } = await getSycmStoreListAPI({
startDate: parseTime(queryParams.date[0], '{y}-{m}-{d}'), startDate: parseTime(queryParams.date[0], '{y}-{m}-{d}'),
endDate: parseTime(queryParams.date[1], '{y}-{m}-{d}'), endDate: parseTime(queryParams.date[1], '{y}-{m}-{d}'),
platformStore: '沃隆旗舰店,三只松鼠旗舰店'
}) })
// 保存到数据源 // 表格数据
allTableList.value = data.flat()
// 图表数据
data.forEach(list => { data.forEach(list => {
// list: 每个店铺数据集合 // list: 每个店铺数据集合
// 公共的配置 // 公共的配置
...@@ -231,6 +244,17 @@ const filterData = () => { ...@@ -231,6 +244,17 @@ const filterData = () => {
legend = legend.filter(obj => { legend = legend.filter(obj => {
return queryParams.brandList.find(nameStr => obj.data.find(o => o.name.split('-')[0] === nameStr)) return queryParams.brandList.find(nameStr => obj.data.find(o => o.name.split('-')[0] === nameStr))
}) })
// 表格数据筛选
useTableList.value = allTableList.value.filter(item => {
return queryParams.brandList.find(o => o === item.platformStore)
})
} else {
// 店铺都没选
legend.forEach(obj => {
obj.data.forEach(o => {
o.show = true
})
})
} }
// 选择了数据类型,筛选 // 选择了数据类型,筛选
...@@ -285,7 +309,8 @@ async function init() { ...@@ -285,7 +309,8 @@ async function init() {
// 筛选图表数据 // 筛选图表数据
filterData() filterData()
}; };
nextTick(() => {
onMounted(() => {
init() init()
}) })
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论