Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-ui
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-ui
Commits
332d2122
提交
332d2122
authored
12月 31, 2024
作者:
lidongxu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor(competitor): 无筛选条件则显示无数据效果
同上
上级
b82e1c76
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
56 行增加
和
13 行删除
+56
-13
nodata.svg
src/assets/icons/svg/nodata.svg
+2
-0
index.vue
src/components/NoData/index.vue
+18
-0
main.js
src/main.js
+3
-0
index.vue
src/views/bi/competitor/cmm/index.vue
+15
-6
index.vue
src/views/bi/competitor/index.vue
+1
-1
index.vue
src/views/bi/competitor/sycm_store/index.vue
+17
-6
没有找到文件。
src/assets/icons/svg/nodata.svg
0 → 100644
浏览文件 @
332d2122
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1733134004532"
class=
"icon"
viewBox=
"0 0 1638 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"2512"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"319.921875"
height=
"200"
><path
d=
"M819.2 1024c453.12 0 819.2-79.36 819.2-179.2s-366.08-179.2-819.2-179.2c-284.16 0-535.04 30.72-680.96 79.36C51.2 773.12 0 808.96 0 844.8c0 99.84 366.08 179.2 819.2 179.2z"
fill=
"#8a8a8a"
p-id=
"2513"
></path><path
d=
"M1420.8 601.6h-1203.2v-253.44L481.28 48.64C494.08 25.6 517.12 12.8 540.16 12.8h558.08c23.04 0 46.08 12.8 61.44 38.4l261.12 296.96v253.44z m-1177.6-25.6h1152v-220.16l-256-291.84c-12.8-17.92-25.6-28.16-40.96-28.16H540.16c-15.36 0-28.16 10.24-38.4 25.6L243.2 355.84v220.16z"
fill=
"#8a8a8a"
p-id=
"2514"
></path><path
d=
"M517.12 358.4c30.72 0 56.32 33.28 56.32 74.24 0 40.96 25.6 74.24 56.32 74.24h378.88c30.72 0 56.32-33.28 56.32-74.24 0-40.96 25.6-74.24 56.32-74.24H1408v463.36c0 53.76-33.28 99.84-74.24 99.84H304.64C263.68 921.6 230.4 878.08 230.4 821.76V358.4h286.72z"
fill=
"#8a8a8a"
p-id=
"2515"
></path><path
d=
"M1333.76 934.4H304.64c-48.64 0-87.04-51.2-87.04-112.64V345.6h299.52c38.4 0 69.12 38.4 69.12 87.04 0 33.28 20.48 61.44 43.52 61.44h378.88c23.04 0 43.52-28.16 43.52-61.44 0-48.64 30.72-87.04 69.12-87.04h299.52v476.16c0 61.44-38.4 112.64-87.04 112.64z m-1090.56-563.2v450.56c0 48.64 28.16 87.04 61.44 87.04H1331.2c35.84 0 61.44-38.4 61.44-87.04V371.2H1121.28c-23.04 0-43.52 28.16-43.52 61.44 0 48.64-30.72 87.04-69.12 87.04H629.76c-38.4 0-69.12-38.4-69.12-87.04 0-33.28-20.48-61.44-43.52-61.44H243.2z"
fill=
"#8a8a8a"
p-id=
"2516"
></path></svg>
\ No newline at end of file
src/components/NoData/index.vue
0 → 100644
浏览文件 @
332d2122
<
template
>
<div
class=
"wrap"
>
<svg-icon
icon-class=
"nodata"
class=
"icon"
/>
<p><slot>
无数据,切换筛选条件再试
</slot></p>
</div>
</
template
>
<
script
setup
></
script
>
<
style
scoped
lang=
"scss"
>
.wrap
{
text-align
:
center
;
.icon
{
font-size
:
60px
;
color
:
#ccc
;
}
}
</
style
>
src/main.js
浏览文件 @
332d2122
...
...
@@ -42,6 +42,8 @@ import CommonMenu from '@/components/CommonMenu'
import
LevitatedSphere
from
'@/components/LevitatedSphere'
// 自定义图例组件
import
GroupLegend
from
'@/components/ECharts/GroupLegend'
// 无数据
import
NoData
from
'@/components/NoData'
const
app
=
createApp
(
App
)
...
...
@@ -66,6 +68,7 @@ app.component('Editor', Editor)
app
.
component
(
'CommonMenu'
,
CommonMenu
)
app
.
component
(
'LevitatedSphere'
,
LevitatedSphere
)
app
.
component
(
'GroupLegend'
,
GroupLegend
)
app
.
component
(
'NoData'
,
NoData
)
app
.
use
(
router
)
app
.
use
(
store
)
...
...
src/views/bi/competitor/cmm/index.vue
浏览文件 @
332d2122
...
...
@@ -34,6 +34,7 @@
type=
"daterange"
align=
"right"
unlink-panels
:clearable=
"false"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
...
...
@@ -42,10 +43,13 @@
</el-date-picker>
</el-form-item>
</el-form>
<div
class=
"chart_wrap"
>
<group-legend
:legendData=
"chartData.legend"
@
click-item=
"legendChangeFn"
></group-legend>
<line-charts
:chartData=
"chartData"
></line-charts>
<div
class=
"chart_wrap"
v-loading=
"loading"
>
<template
v-if=
"queryParams.brandList.length > 0 && queryParams.typeList.length > 0"
>
<group-legend
:legendData=
"chartData.legend"
@
click-item=
"legendChangeFn"
></group-legend>
<line-charts
:chartData=
"chartData"
></line-charts>
</
template
>
<no-data
v-else-if=
"!loading"
></no-data>
</div>
<levitated-sphere>
<el-button
type=
"danger"
...
...
@@ -68,11 +72,12 @@ const dataTypeList = ['销售额', '观看人次'] // 数据类型
const
brandList
=
ref
([])
// 直播间列表
const
typeList
=
ref
(
dataTypeList
)
// 数据类型列表
const
{
pickerOptions
}
=
useDatePickerOptions
()
const
loading
=
ref
(
true
)
const
queryParams
=
reactive
({
// 查询表单
brandList
:
[],
date
:
dateList
,
typeList
:
dataTypeList
typeList
:
[
dataTypeList
[
0
]]
})
const
allChartData
=
reactive
({
// 图表所有数据
...
...
@@ -89,6 +94,7 @@ const chartData = reactive({ // 图表内要用的数据
// 获取数据
const
getList
=
async
()
=>
{
loading
.
value
=
true
// 重置数据源
resetObjValue
(
allChartData
)
// 获取 x 轴时间
...
...
@@ -161,6 +167,7 @@ const getList = async () => {
allChartData
.
series
.
push
(
saleObj
)
allChartData
.
series
.
push
(
gkrcObj
)
})
loading
.
value
=
false
return
data
}
...
...
@@ -224,6 +231,8 @@ const init = async function () {
const
data
=
await
getList
()
// 初始化直播间列表
brandList
.
value
=
data
.
map
(
list
=>
list
[
0
].
name
)
// 默认显示第一个
queryParams
.
brandList
=
[
brandList
.
value
[
0
]]
// 筛选图表数据
filterData
()
}
...
...
@@ -246,7 +255,7 @@ const reset = async () => {
// 重置查询参数
queryParams
.
brandList
=
[]
queryParams
.
date
=
dateList
queryParams
.
typeList
=
dataTypeList
queryParams
.
typeList
=
[
dataTypeList
[
0
]]
init
()
}
</
script
>
...
...
src/views/bi/competitor/index.vue
浏览文件 @
332d2122
...
...
@@ -24,7 +24,7 @@ const list = ref([
{
name
:
'生意参谋-竞店'
,
component
:
shallowRef
(
sycmStore
)
},
{
name
:
'生意参谋-竞品'
,
component
:
shallowRef
(
sycmPrd
)
}
])
const
activeName
=
ref
(
list
.
value
[
1
].
name
)
const
activeName
=
ref
(
list
.
value
[
0
].
name
)
</
script
>
<
style
scoped
...
...
src/views/bi/competitor/sycm_store/index.vue
浏览文件 @
332d2122
<
template
>
<div>
<div
v-if=
"!loading"
>
<el-form
:model=
"queryParams"
inline
>
<el-form-item
label=
"店铺"
>
...
...
@@ -31,6 +31,7 @@
<el-date-picker
v-model=
"queryParams.date"
type=
"daterange"
unlink-panels
:clearable=
"false"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
...
...
@@ -39,10 +40,14 @@
</el-date-picker>
</el-form-item>
</el-form>
<div
class=
"chart_wrap"
>
<group-legend
:legendData=
"chartData.legend"
@
click-item=
"legendChangeFn"
></group-legend>
<gradient-area
:chartData=
"chartData"
></gradient-area>
<div
class=
"chart_wrap"
v-loading=
"loading"
>
<template
v-if=
"queryParams.brandList.length > 0 && queryParams.typeList.length > 0"
>
<group-legend
:legendData=
"chartData.legend"
@
click-item=
"legendChangeFn"
></group-legend>
<gradient-area
:chartData=
"chartData"
></gradient-area>
</
template
>
<no-data
v-else-if=
"!loading"
></no-data>
</div>
</div>
</template>
...
...
@@ -61,6 +66,7 @@ const dataTypeList = ['支付买家数', '交易增速', '独立访客范围', '
const
typeList
=
ref
(
dataTypeList
)
const
{
pickerOptions
}
=
useDatePickerOptions
()
const
brandList
=
ref
([])
// 店铺列表
const
loading
=
ref
(
true
)
const
queryParams
=
reactive
({
// 查询表单
brandList
:
[],
...
...
@@ -81,6 +87,7 @@ const chartData = reactive({ // 图表内要用的数据
// 获取数据
const
getList
=
async
()
=>
{
loading
.
value
=
true
resetObjValue
(
allChartData
)
// 获取 x 轴时间
allChartData
.
xAxis
=
generatorDayList
(
queryParams
.
date
[
0
],
queryParams
.
date
[
1
])
...
...
@@ -202,6 +209,7 @@ const getList = async () => {
// allChartData.legend.push(zfmjObj.name, uvObj.name, llzsObj.name, jyzsObj.name)
allChartData
.
series
.
push
(
jyzsObj
,
llzsObj
,
uvObj
,
zfmjObj
)
})
loading
.
value
=
false
return
data
}
...
...
@@ -272,7 +280,10 @@ async function init() {
// 筛选图表数据
filterData
()
};
init
()
nextTick
(()
=>
{
init
()
})
const
legendChangeFn
=
()
=>
{
filterData
()
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论