Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
Y
yishuju-ui
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何远江
yishuju-ui
Commits
3b4c7c75
Commit
3b4c7c75
authored
Mar 27, 2025
by
沈翠玲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
数据大屏
parent
86929560
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1503 additions
and
172 deletions
+1503
-172
AnnualUseChart.vue
src/views/data-screen/components/AnnualUseChart.vue
+63
-32
ChinaMapChart.vue
src/views/data-screen/components/ChinaMapChart.vue
+15
-14
HotPlateChart.vue
src/views/data-screen/components/HotPlateChart.vue
+63
-31
MaleFemaleRatioChart.vue
src/views/data-screen/components/MaleFemaleRatioChart.vue
+1
-1
OverNext30Chart.vue
src/views/data-screen/components/OverNext30Chart.vue
+11
-18
computerRateChart.vue
src/views/data-screen/components/computerRateChart.vue
+61
-51
animation.svg
src/views/data-screen/images/animation.svg
+1248
-0
index.scss
src/views/data-screen/index.scss
+33
-19
index.vue
src/views/data-screen/index.vue
+8
-6
No files found.
src/views/data-screen/components/AnnualUseChart.vue
View file @
3b4c7c75
...
@@ -19,7 +19,7 @@ const timer =ref(null);
...
@@ -19,7 +19,7 @@ const timer =ref(null);
const
salvProValue
=
ref
([]);
const
salvProValue
=
ref
([]);
const
dataZoom
=
ref
({
const
dataZoom
=
ref
({
startValue
:
0
,
startValue
:
0
,
endValue
:
4
endValue
:
3
});
});
const
timer1
=
ref
();
const
timer1
=
ref
();
onBeforeUnmount
(()
=>
{
onBeforeUnmount
(()
=>
{
...
@@ -125,10 +125,15 @@ const option = computed(() => {
...
@@ -125,10 +125,15 @@ const option = computed(() => {
textStyle
:
{
textStyle
:
{
color
:
'#fff'
,
//百分比颜色
color
:
'#fff'
,
//百分比颜色
},
},
position
:
[
'0'
,
5
],
position
:
[
'50%'
,
5
],
align
:
'center'
,
//百分比格式
//百分比格式
formatter
:
function
(
data
)
{
formatter
:
function
(
data
)
{
if
((
salvProValue
.
value
[
data
.
dataIndex
].
rate
).
toFixed
(
2
)
===
'100.00'
)
{
return
(
salvProValue
.
value
[
data
.
dataIndex
].
rate
).
toFixed
(
2
)
+
'%'
;
return
(
salvProValue
.
value
[
data
.
dataIndex
].
rate
).
toFixed
(
2
)
+
'%'
;
}
else
{
return
''
}
},
},
}
}
},
},
...
@@ -162,19 +167,37 @@ const option = computed(() => {
...
@@ -162,19 +167,37 @@ const option = computed(() => {
color
:
'#ffffff'
,
color
:
'#ffffff'
,
fontSize
:
16
,
fontSize
:
16
,
}
},
},
green
:
{
formatter
:
function
(
data
)
{
color
:
'#70DDA7'
,
//富文本固定格式{colorName|这里填你想要写的内容}
fontSize
:
16
,
return
'{start2|}{white|'
+
(
data
.
dataIndex
+
1
)
+
' '
+
salvProValue
.
value
[
data
.
dataIndex
].
name
+
'}'
;
},
}
},
data
:
salvProValue
.
value
},
{
show
:
true
,
type
:
'bar'
,
barGap
:
'-100%'
,
barWidth
:
'42%'
,
//统计条宽度
itemStyle
:
{
normal
:
{
barBorderRadius
:
30
,
color
:
'rgba(102, 102, 102,0.5)'
},
},
yellow
:
{
color
:
'#CCB877'
,
fontSize
:
16
,
},
},
red
:
{
label
:
{
color
:
'#BC3C47'
,
normal
:
{
show
:
true
,
//label 的position位置可以是top bottom left,right,也可以是固定值
//在这里需要上下统一对齐,所以用固定值
position
:
[
'100%'
,
'-108%'
],
align
:
'right'
,
rich
:
{
//富文本
white
:
{
//自定义颜色
color
:
'#ffffff'
,
fontSize
:
16
,
fontSize
:
16
,
},
},
...
@@ -186,33 +209,41 @@ const option = computed(() => {
...
@@ -186,33 +209,41 @@ const option = computed(() => {
},
},
formatter
:
function
(
data
)
{
formatter
:
function
(
data
)
{
//富文本固定格式{colorName|这里填你想要写的内容}
//富文本固定格式{colorName|这里填你想要写的内容}
if
(
data
.
dataIndex
==
0
)
{
return
'{white| 回款金额:}{gray|'
+
salvProValue
.
value
[
data
.
dataIndex
].
value
+
'}{white|元}'
return
'{start1|}{red|'
+
(
data
.
dataIndex
+
1
)
+
' '
+
salvProValue
.
value
[
data
.
dataIndex
].
name
+
'}'
+
' '
+
'{white| 回款金额:}{gray|'
+
salvProValue
.
value
[
data
.
dataIndex
].
value
+
'}{white|元}'
;
}
else
if
(
data
.
dataIndex
==
1
)
{
return
'{start1|}{yellow|'
+
(
data
.
dataIndex
+
1
)
+
' '
+
salvProValue
.
value
[
data
.
dataIndex
].
name
+
'}'
+
' '
+
'{white| 回款金额:}{gray|'
+
salvProValue
.
value
[
data
.
dataIndex
].
value
+
'}{white|元}'
;
}
else
if
(
data
.
dataIndex
==
2
)
{
return
'{start1|}{green|'
+
(
data
.
dataIndex
+
1
)
+
' '
+
salvProValue
.
value
[
data
.
dataIndex
].
name
+
'}'
+
' '
+
'{white| 回款金额:}{gray|'
+
salvProValue
.
value
[
data
.
dataIndex
].
value
+
'}{white|元}'
;
}
else
{
return
'{start2|}{white|'
+
(
data
.
dataIndex
+
1
)
+
' '
+
salvProValue
.
value
[
data
.
dataIndex
].
name
+
'}'
+
' '
+
'{white| 回款金额:}{gray|'
+
salvProValue
.
value
[
data
.
dataIndex
].
value
+
'}{white|元}'
;
}
},
},
}
}
},
},
data
:
salvProValue
.
value
z
:
1
,
data
:
salvProValue
.
value
.
map
(
v
=>
100
)
},
},
{
{
show
:
true
,
show
:
true
,
type
:
'bar'
,
type
:
'bar'
,
barGap
:
'-100%'
,
barGap
:
'-100%'
,
barWidth
:
'
42%
'
,
//统计条宽度
barWidth
:
'
0
'
,
//统计条宽度
itemStyle
:
{
itemStyle
:
{
normal
:
{
normal
:
{
barBorderRadius
:
30
,
barBorderRadius
:
30
,
color
:
'rgba(102, 102, 102,0.5)'
color
:
'rgba(102, 102, 102,0.5)'
},
},
},
},
z
:
1
,
label
:
{
normal
:
{
fontSize
:
14
,
show
:
true
,
textStyle
:
{
color
:
'#fff'
,
//百分比颜色
},
position
:
[
'50%'
,
5
],
align
:
'center'
,
//百分比格式
formatter
:
function
(
data
)
{
return
(
salvProValue
.
value
[
data
.
dataIndex
].
rate
).
toFixed
(
2
)
+
'%'
;
},
}
},
z
:
3
,
data
:
salvProValue
.
value
.
map
(
v
=>
100
)
data
:
salvProValue
.
value
.
map
(
v
=>
100
)
},
},
]
]
...
@@ -232,7 +263,7 @@ const query = () => {
...
@@ -232,7 +263,7 @@ const query = () => {
salvProName
.
value
=
arr
.
map
(
v
=>
v
.
name
)
salvProName
.
value
=
arr
.
map
(
v
=>
v
.
name
)
salvProValue
.
value
=
arr
.
map
(
v
=>
({
name
:
v
.
name
,
value
:
v
.
totalReturn
,
tenantId
:
v
.
tenantId
,
rate
:
v
.
rate
}))
salvProValue
.
value
=
arr
.
map
(
v
=>
({
name
:
v
.
name
,
value
:
v
.
totalReturn
,
tenantId
:
v
.
tenantId
,
rate
:
v
.
rate
}))
load
.
value
=
false
load
.
value
=
false
if
(
salvProName
.
value
.
length
>
5
)
{
if
(
salvProName
.
value
.
length
>
4
)
{
if
(
timer
.
value
)
{
if
(
timer
.
value
)
{
clearInterval
(
timer
.
value
)
clearInterval
(
timer
.
value
)
timer
.
value
=
null
timer
.
value
=
null
...
@@ -241,10 +272,10 @@ const query = () => {
...
@@ -241,10 +272,10 @@ const query = () => {
dataZoom
.
value
.
startValue
++
;
dataZoom
.
value
.
startValue
++
;
if
(
dataZoom
.
value
.
endValue
++
>=
salvProName
.
value
.
length
-
1
)
{
if
(
dataZoom
.
value
.
endValue
++
>=
salvProName
.
value
.
length
-
1
)
{
dataZoom
.
value
.
startValue
=
0
;
dataZoom
.
value
.
startValue
=
0
;
dataZoom
.
value
.
endValue
=
4
;
dataZoom
.
value
.
endValue
=
3
;
}
}
// chart?.setOption(option);
// chart?.setOption(option);
},
3
000
);
},
1
000
);
}
}
}
}
...
@@ -255,7 +286,7 @@ timer1.value = setInterval(() => {
...
@@ -255,7 +286,7 @@ timer1.value = setInterval(() => {
if
(
!
load
.
value
)
{
if
(
!
load
.
value
)
{
query
()
query
()
}
}
},
3
000
)
},
6
000
)
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
src/views/data-screen/components/ChinaMapChart.vue
View file @
3b4c7c75
...
@@ -121,6 +121,7 @@ const query = () => {
...
@@ -121,6 +121,7 @@ const query = () => {
}
}
});
});
mapData
.
value
.
sort
((
a
,
b
)
=>
b
.
value
-
a
.
value
)
mapData
.
value
.
sort
((
a
,
b
)
=>
b
.
value
-
a
.
value
)
}
}
EChartsRef
.
value
.
draw
()
EChartsRef
.
value
.
draw
()
}).
catch
(()
=>
{
}).
catch
(()
=>
{
...
@@ -132,7 +133,7 @@ timer.value = setInterval(() => {
...
@@ -132,7 +133,7 @@ timer.value = setInterval(() => {
if
(
!
load
.
value
)
{
if
(
!
load
.
value
)
{
query
()
query
()
}
}
},
3
000
)
},
6
000
)
let
legend
=
[
'案件量'
,
'案件总金额'
];
let
legend
=
[
'案件量'
,
'案件总金额'
];
let
textColor
=
"#fff"
;
let
textColor
=
"#fff"
;
let
lineColor
=
"rgba(255,255,255,0.2)"
;
let
lineColor
=
"rgba(255,255,255,0.2)"
;
...
@@ -178,7 +179,7 @@ const option = computed(() => {
...
@@ -178,7 +179,7 @@ const option = computed(() => {
width
:
'10%'
width
:
'10%'
},
{
},
{
show
:
false
,
show
:
false
,
left
:
'8
1
%'
,
left
:
'8
0
%'
,
top
:
'5%'
,
top
:
'5%'
,
bottom
:
'48%'
,
bottom
:
'48%'
,
width
:
'0%'
width
:
'0%'
...
@@ -239,7 +240,7 @@ const option = computed(() => {
...
@@ -239,7 +240,7 @@ const option = computed(() => {
yAxis
:
[{
yAxis
:
[{
type
:
'category'
,
type
:
'category'
,
inverse
:
true
,
inverse
:
true
,
position
:
'
right
'
,
position
:
'
center
'
,
interval
:
1000
,
interval
:
1000
,
axisLine
:
{
axisLine
:
{
show
:
false
,
show
:
false
,
...
@@ -259,7 +260,7 @@ const option = computed(() => {
...
@@ -259,7 +260,7 @@ const option = computed(() => {
gridIndex
:
1
,
gridIndex
:
1
,
type
:
'category'
,
type
:
'category'
,
inverse
:
true
,
inverse
:
true
,
position
:
'
left
'
,
position
:
'
center
'
,
axisLine
:
{
axisLine
:
{
show
:
false
show
:
false
},
},
...
@@ -288,7 +289,7 @@ const option = computed(() => {
...
@@ -288,7 +289,7 @@ const option = computed(() => {
gridIndex
:
2
,
gridIndex
:
2
,
type
:
'category'
,
type
:
'category'
,
inverse
:
true
,
inverse
:
true
,
position
:
'
left
'
,
position
:
'
center
'
,
axisLine
:
{
axisLine
:
{
show
:
false
,
show
:
false
,
lineStyle
:{
lineStyle
:{
...
@@ -353,9 +354,9 @@ const option = computed(() => {
...
@@ -353,9 +354,9 @@ const option = computed(() => {
show: false
show: false
}
}
},
},
top:
136
,
top:
98
,
zoom:1.
3
,
zoom:1.
4
,
left: '
9
%
',
left: '
10
%
',
regions: [
regions: [
{
{
name: "南海诸岛",
name: "南海诸岛",
...
@@ -399,14 +400,14 @@ const option = computed(() => {
...
@@ -399,14 +400,14 @@ const option = computed(() => {
},
},
series: [
series: [
{
{
name: "
确诊病例
",
name: "
案件总金额
",
type: "map",
type: "map",
map: '
china
',
map: '
china
',
aspectScale: 0.75,
aspectScale: 0.75,
selectedMode: false,
selectedMode: false,
top:
135
,
top:
99
,
zoom:1.
3
,
zoom:1.
4
,
left: '
8
%
',
left: '
9
%
',
label: {
label: {
normal: {
normal: {
show: false,
show: false,
...
@@ -467,7 +468,7 @@ const option = computed(() => {
...
@@ -467,7 +468,7 @@ const option = computed(() => {
label: {
label: {
normal: {
normal: {
align: '
right
',
align: '
right
',
show:
tru
e,
show:
fals
e,
fontSize: 14,
fontSize: 14,
color: '
#
ffffff
'
color: '
#
ffffff
'
}
}
...
@@ -511,7 +512,7 @@ const option = computed(() => {
...
@@ -511,7 +512,7 @@ const option = computed(() => {
label: {
label: {
normal: {
normal: {
position: ['
0
', 1],
position: ['
0
', 1],
show:
tru
e,
show:
fals
e,
fontSize: 14,
fontSize: 14,
color: '
#
ffffff
'
color: '
#
ffffff
'
}
}
...
...
src/views/data-screen/components/HotPlateChart.vue
View file @
3b4c7c75
...
@@ -17,7 +17,7 @@ const salvProName =ref([]);
...
@@ -17,7 +17,7 @@ const salvProName =ref([]);
const
salvProValue
=
ref
([]);
const
salvProValue
=
ref
([]);
const
dataZoom
=
ref
({
const
dataZoom
=
ref
({
startValue
:
0
,
startValue
:
0
,
endValue
:
4
endValue
:
3
});
});
const
props
=
defineProps
({
const
props
=
defineProps
({
isAdmin
:
Boolean
,
isAdmin
:
Boolean
,
...
@@ -112,10 +112,15 @@ const option = computed(() => {
...
@@ -112,10 +112,15 @@ const option = computed(() => {
textStyle
:
{
textStyle
:
{
color
:
'#fff'
,
//百分比颜色
color
:
'#fff'
,
//百分比颜色
},
},
position
:
[
'0'
,
5
],
position
:
[
'50%'
,
5
],
align
:
'center'
,
//百分比格式
//百分比格式
formatter
:
function
(
data
)
{
formatter
:
function
(
data
)
{
if
((
salvProValue
.
value
[
data
.
dataIndex
].
rate
).
toFixed
(
2
)
===
'100.00'
)
{
return
(
salvProValue
.
value
[
data
.
dataIndex
].
rate
).
toFixed
(
2
)
+
'%'
;
return
(
salvProValue
.
value
[
data
.
dataIndex
].
rate
).
toFixed
(
2
)
+
'%'
;
}
else
{
return
''
}
},
},
}
}
},
},
...
@@ -149,19 +154,38 @@ const option = computed(() => {
...
@@ -149,19 +154,38 @@ const option = computed(() => {
color
:
'#ffffff'
,
color
:
'#ffffff'
,
fontSize
:
16
,
fontSize
:
16
,
}
},
},
green
:
{
formatter
:
function
(
data
)
{
color
:
'#70DDA7'
,
//富文本固定格式{colorName|这里填你想要写的内容}
fontSize
:
16
,
return
'{start2|}{white|'
+
(
data
.
dataIndex
+
1
)
+
' '
+
salvProValue
.
value
[
data
.
dataIndex
].
name
+
'}'
;
},
},
yellow
:
{
}
color
:
'#CCB877'
,
},
fontSize
:
16
,
data
:
salvProValue
.
value
},
},
red
:
{
{
color
:
'#BC3C47'
,
show
:
true
,
type
:
'bar'
,
barGap
:
'-100%'
,
barWidth
:
'42%'
,
//统计条宽度
itemStyle
:
{
normal
:
{
barBorderRadius
:
30
,
color
:
'rgba(102, 102, 102,0.5)'
},
},
label
:
{
normal
:
{
show
:
true
,
//label 的position位置可以是top bottom left,right,也可以是固定值
//在这里需要上下统一对齐,所以用固定值
position
:
[
'100%'
,
'-108%'
],
align
:
'right'
,
rich
:
{
//富文本
white
:
{
//自定义颜色
color
:
'#ffffff'
,
fontSize
:
16
,
fontSize
:
16
,
},
},
...
@@ -173,33 +197,41 @@ const option = computed(() => {
...
@@ -173,33 +197,41 @@ const option = computed(() => {
},
},
formatter
:
function
(
data
)
{
formatter
:
function
(
data
)
{
//富文本固定格式{colorName|这里填你想要写的内容}
//富文本固定格式{colorName|这里填你想要写的内容}
if
(
data
.
dataIndex
==
0
)
{
return
'{white| 回款金额:}{gray|'
+
salvProValue
.
value
[
data
.
dataIndex
].
value
+
'}{white|元}'
return
'{start1|}{red|'
+
(
data
.
dataIndex
+
1
)
+
' '
+
salvProValue
.
value
[
data
.
dataIndex
].
name
+
'}'
+
' '
+
'{white| 回款金额:}{gray|'
+
salvProValue
.
value
[
data
.
dataIndex
].
value
+
'}{white|元}'
;
}
else
if
(
data
.
dataIndex
==
1
)
{
return
'{start1|}{yellow|'
+
(
data
.
dataIndex
+
1
)
+
' '
+
salvProValue
.
value
[
data
.
dataIndex
].
name
+
'}'
+
' '
+
'{white| 回款金额:}{gray|'
+
salvProValue
.
value
[
data
.
dataIndex
].
value
+
'}{white|元}'
;
}
else
if
(
data
.
dataIndex
==
2
)
{
return
'{start1|}{green|'
+
(
data
.
dataIndex
+
1
)
+
' '
+
salvProValue
.
value
[
data
.
dataIndex
].
name
+
'}'
+
' '
+
'{white| 回款金额:}{gray|'
+
salvProValue
.
value
[
data
.
dataIndex
].
value
+
'}{white|元}'
;
}
else
{
return
'{start2|}{white|'
+
(
data
.
dataIndex
+
1
)
+
' '
+
salvProValue
.
value
[
data
.
dataIndex
].
name
+
'}'
+
' '
+
'{white| 回款金额:}{gray|'
+
salvProValue
.
value
[
data
.
dataIndex
].
value
+
'}{white|元}'
;
}
},
},
}
}
},
},
data
:
salvProValue
.
value
z
:
1
,
data
:
salvProValue
.
value
.
map
(
v
=>
100
)
},
},
{
{
show
:
true
,
show
:
true
,
type
:
'bar'
,
type
:
'bar'
,
barGap
:
'-100%'
,
barGap
:
'-100%'
,
barWidth
:
'
42%
'
,
//统计条宽度
barWidth
:
'
0
'
,
//统计条宽度
itemStyle
:
{
itemStyle
:
{
normal
:
{
normal
:
{
barBorderRadius
:
30
,
barBorderRadius
:
30
,
color
:
'rgba(102, 102, 102,0.5)'
color
:
'rgba(102, 102, 102,0.5)'
},
},
},
},
z
:
1
,
label
:
{
normal
:
{
fontSize
:
14
,
show
:
true
,
textStyle
:
{
color
:
'#fff'
,
//百分比颜色
},
position
:
[
'50%'
,
5
],
align
:
'center'
,
//百分比格式
formatter
:
function
(
data
)
{
return
(
salvProValue
.
value
[
data
.
dataIndex
].
rate
).
toFixed
(
2
)
+
'%'
;
},
}
},
z
:
3
,
data
:
salvProValue
.
value
.
map
(
v
=>
100
)
data
:
salvProValue
.
value
.
map
(
v
=>
100
)
},
},
]
]
...
@@ -219,7 +251,7 @@ getReturnRateByPlatform(param).then(res => {
...
@@ -219,7 +251,7 @@ getReturnRateByPlatform(param).then(res => {
load
.
value
=
false
load
.
value
=
false
salvProName
.
value
=
arr
.
map
(
v
=>
v
.
loanPlatform
)
salvProName
.
value
=
arr
.
map
(
v
=>
v
.
loanPlatform
)
salvProValue
.
value
=
arr
.
map
(
v
=>
({
name
:
v
.
loanPlatform
,
value
:
v
.
sumRepayAmount
,
rate
:
v
.
rate
}))
salvProValue
.
value
=
arr
.
map
(
v
=>
({
name
:
v
.
loanPlatform
,
value
:
v
.
sumRepayAmount
,
rate
:
v
.
rate
}))
if
(
salvProName
.
value
.
length
>
5
)
{
if
(
salvProName
.
value
.
length
>
4
)
{
if
(
timer
.
value
)
{
if
(
timer
.
value
)
{
clearInterval
(
timer
.
value
)
clearInterval
(
timer
.
value
)
timer
.
value
=
null
timer
.
value
=
null
...
@@ -228,10 +260,10 @@ getReturnRateByPlatform(param).then(res => {
...
@@ -228,10 +260,10 @@ getReturnRateByPlatform(param).then(res => {
dataZoom
.
value
.
startValue
++
;
dataZoom
.
value
.
startValue
++
;
if
(
dataZoom
.
value
.
endValue
++
>=
salvProName
.
value
.
length
-
1
)
{
if
(
dataZoom
.
value
.
endValue
++
>=
salvProName
.
value
.
length
-
1
)
{
dataZoom
.
value
.
startValue
=
0
;
dataZoom
.
value
.
startValue
=
0
;
dataZoom
.
value
.
endValue
=
4
;
dataZoom
.
value
.
endValue
=
3
;
}
}
// chart?.setOption(option);
// chart?.setOption(option);
},
3
000
);
},
1
000
);
}
}
}
}
})
})
...
@@ -241,7 +273,7 @@ getReturnRateByPlatform(param).then(res => {
...
@@ -241,7 +273,7 @@ getReturnRateByPlatform(param).then(res => {
if
(
!
load
.
value
)
{
if
(
!
load
.
value
)
{
query
()
query
()
}
}
},
3
000
)
},
6
000
)
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.echarts
{
.echarts
{
...
...
src/views/data-screen/components/MaleFemaleRatioChart.vue
View file @
3b4c7c75
...
@@ -90,7 +90,7 @@ timer1.value = setInterval(() => {
...
@@ -90,7 +90,7 @@ timer1.value = setInterval(() => {
if
(
!
load
.
value
)
{
if
(
!
load
.
value
)
{
query
()
query
()
}
}
},
3
000
)
},
6
000
)
const
option
=
computed
(()
=>
{
const
option
=
computed
(()
=>
{
...
...
src/views/data-screen/components/OverNext30Chart.vue
View file @
3b4c7c75
...
@@ -71,7 +71,7 @@ timer1.value = setInterval(() => {
...
@@ -71,7 +71,7 @@ timer1.value = setInterval(() => {
if
(
!
load
.
value
)
{
if
(
!
load
.
value
)
{
query
()
query
()
}
}
},
3
000
)
},
6
000
)
watch
(
watch
(
()
=>
props
.
dayActiveName
,
()
=>
props
.
dayActiveName
,
(
newValue
,
oldValue
)
=>
{
(
newValue
,
oldValue
)
=>
{
...
@@ -113,9 +113,10 @@ const option = computed(() => {
...
@@ -113,9 +113,10 @@ const option = computed(() => {
},
},
grid
:
{
grid
:
{
top
:
"15%"
,
top
:
"15%"
,
left
:
"5%"
,
left
:
"1%"
,
right
:
"5%"
,
right
:
"1%"
,
bottom
:
"15%"
containLabel
:
true
,
bottom
:
"1%"
},
},
xAxis
:
[
xAxis
:
[
{
{
...
@@ -123,23 +124,18 @@ const option = computed(() => {
...
@@ -123,23 +124,18 @@ const option = computed(() => {
boundaryGap
:
false
,
boundaryGap
:
false
,
axisLine
:
{
axisLine
:
{
show
:
true
,
show
:
true
,
symbol
:
[
"none"
,
"arrow"
],
symbolOffset
:
[
0
,
30
],
lineStyle
:
{
lineStyle
:
{
color
:
"#233653"
,
color
:
"#f9f9f9"
shadowOffsetX
:
20
,
shadowColor
:
"#233653"
}
}
},
},
axisLabel
:
{
axisLabel
:
{
color
:
"#
fff
"
,
color
:
"#
d1e6eb
"
,
padding
:
0
,
padding
:
0
,
fontSize
:
14
,
fontSize
:
14
,
formatter
:
function
(
data
)
{
formatter
:
function
(
data
)
{
return
data
;
return
data
;
}
}
},
},
splitLine
:
{
show
:
false
,
lineStyle
:
{
color
:
"#192a44"
}
},
axisTick
:
{
show
:
false
},
axisTick
:
{
show
:
false
},
data
:
dates
.
value
data
:
dates
.
value
}
}
...
@@ -153,20 +149,17 @@ const option = computed(() => {
...
@@ -153,20 +149,17 @@ const option = computed(() => {
},
},
minInterval
:
1
,
minInterval
:
1
,
splitLine
:
{
splitLine
:
{
show
:
fals
e
,
show
:
tru
e
,
lineStyle
:
{
lineStyle
:
{
color
:
"#
fff
"
color
:
"#
0a3256
"
}
}
},
},
axisLine
:
{
axisLine
:
{
show
:
true
,
show
:
false
lineStyle
:
{
color
:
"#fff"
}
},
},
axisLabel
:
{
axisLabel
:
{
show
:
true
,
show
:
true
,
color
:
"#
fff
"
,
color
:
"#
d1e6eb
"
,
fontSize
:
14
,
fontSize
:
14
,
padding
:
0
,
padding
:
0
,
formatter
:
function
(
value
)
{
formatter
:
function
(
value
)
{
...
...
src/views/data-screen/components/computerRateChart.vue
View file @
3b4c7c75
This diff is collapsed.
Click to expand it.
src/views/data-screen/images/animation.svg
0 → 100644
View file @
3b4c7c75
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/views/data-screen/index.scss
View file @
3b4c7c75
...
@@ -11,15 +11,33 @@
...
@@ -11,15 +11,33 @@
height
:
100%
;
height
:
100%
;
background
:
#0e1356
;
background
:
#0e1356
;
.qiu
{
.qiu
{
width
:
1
00%
;
width
:
3
00%
;
height
:
100
%
;
height
:
313
%
;
position
:
absolute
;
position
:
absolute
;
top
:
50%
;
top
:
50%
;
z-index
:
-1
;
padding-top
:
250px
;
padding-top
:
250px
;
transform
:
scale
(
1
,
0
.
4
)
translate
(
-8%
,
-3
6%
);
transform
:
scale
(
1
,
0
.
5
)
translate
(
-36%
,
-8
6%
);
background
:
url("./images/qiu.png")
no-repeat
;
background
:
url("./images/qiu.png")
no-repeat
;
background-size
:
100%
100%
;
background-size
:
100%
100%
;
}
}
.bg2
{
position
:
absolute
;
width
:
100%
;
pointer-events
:
none
;
left
:
0
;
right
:
0
;
bottom
:
0
;
top
:
0
;
opacity
:
.05
;
z-index
:
10
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
img
{
width
:
800px
;
}
}
.linebox
{
.linebox
{
position
:
absolute
;
position
:
absolute
;
width
:
100%
;
width
:
100%
;
...
@@ -27,8 +45,8 @@
...
@@ -27,8 +45,8 @@
top
:
50%
;
top
:
50%
;
z-index
:
-1
;
z-index
:
-1
;
padding-top
:
250px
;
padding-top
:
250px
;
transform
:
scale
(
1
,
0
.
4
)
translate
(
-8%
,
-40
%
);
transform
:
scale
(
1
,
0
.
3
)
translate
(
-9%
,
-64
%
);
opacity
:
0
.5
;
opacity
:
1
;
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
...
@@ -38,13 +56,13 @@
...
@@ -38,13 +56,13 @@
}
}
.lines1
{
.lines1
{
animation
:
scales2
60s
linear
infinite
;
animation
:
scales2
60s
linear
infinite
;
width
:
6
50px
;
width
:
9
50px
;
margin-left
:
-3px
;
margin-left
:
-3px
;
margin-top
:
-7px
;
margin-top
:
-7px
;
}
}
.lines3
{
.lines3
{
animation
:
scales2
20s
linear
infinite
;
animation
:
scales2
20s
linear
infinite
;
width
:
4
50px
;
width
:
7
50px
;
opacity
:
1
;
opacity
:
1
;
}
}
}
}
...
@@ -80,7 +98,7 @@
...
@@ -80,7 +98,7 @@
left
:
0
;
left
:
0
;
width
:
100%
;
width
:
100%
;
height
:
82px
;
height
:
82px
;
font-
family
:
YouSheBiaoTiHei
;
font-
weight
:
600
;
font-size
:
32px
;
font-size
:
32px
;
line-height
:
78px
;
line-height
:
78px
;
color
:
#fff
;
color
:
#fff
;
...
@@ -94,7 +112,6 @@
...
@@ -94,7 +112,6 @@
left
:
50%
;
left
:
50%
;
width
:
622px
;
width
:
622px
;
height
:
40px
;
height
:
40px
;
font-family
:
YouSheBiaoTiHei
;
font-size
:
14px
;
font-size
:
14px
;
line-height
:
40px
;
line-height
:
40px
;
color
:
#ffffff
;
color
:
#ffffff
;
...
@@ -113,7 +130,6 @@
...
@@ -113,7 +130,6 @@
box-sizing
:
border-box
;
box-sizing
:
border-box
;
width
:
136px
;
width
:
136px
;
height
:
42px
;
height
:
42px
;
font-family
:
YouSheBiaoTiHei
;
font-size
:
18px
;
font-size
:
18px
;
font-weight
:
400
;
font-weight
:
400
;
line-height
:
42px
;
line-height
:
42px
;
...
@@ -137,7 +153,6 @@
...
@@ -137,7 +153,6 @@
top
:
0
;
top
:
0
;
right
:
14px
;
right
:
14px
;
width
:
310px
;
width
:
310px
;
font-family
:
YouSheBiaoTiHei
;
font-size
:
17px
;
font-size
:
17px
;
font-weight
:
400
;
font-weight
:
400
;
line-height
:
38px
;
line-height
:
38px
;
...
@@ -168,12 +183,12 @@
...
@@ -168,12 +183,12 @@
display
:
block
;
display
:
block
;
}
}
&
:first-child
,
&
:last-child
{
&
:first-child
,
&
:last-child
{
flex
:
0
.5
;
//
flex: 0.5;
padding-top
:
8px
;
padding-top
:
8px
;
height
:
100px
;
height
:
100px
;
}
}
&
:first-child::after
,
&
:nth-child
(
4
)
::after
{
&
:first-child::after
,
&
:nth-child
(
4
)
::after
{
height
:
9
0px
;
height
:
11
0px
;
}
}
&
:last-child::after
{
&
:last-child::after
{
display
:
none
;
display
:
none
;
...
@@ -273,7 +288,6 @@
...
@@ -273,7 +288,6 @@
}
}
span
{
span
{
margin-bottom
:
12px
;
margin-bottom
:
12px
;
font-family
:
YouSheBiaoTiHei
;
font-size
:
18px
;
font-size
:
18px
;
line-height
:
16px
;
line-height
:
16px
;
color
:
#ffffff
;
color
:
#ffffff
;
...
@@ -285,14 +299,14 @@
...
@@ -285,14 +299,14 @@
display
:
flex
;
display
:
flex
;
flex
:
1
;
flex
:
1
;
width
:
100%
;
width
:
100%
;
padding
:
12px
0
2
0px
;
padding
:
30px
50px
20px
5
0px
;
.dataScreen-lf
{
.dataScreen-lf
{
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
justify-content
:
space-between
;
justify-content
:
space-between
;
width
:
5
00px
;
width
:
4
00px
;
height
:
100%
;
height
:
100%
;
margin-right
:
4
0px
;
margin-right
:
3
0px
;
.dataScreen-top
,
.dataScreen-top
,
.dataScreen-center
,
.dataScreen-center
,
.dataScreen-bottom
{
.dataScreen-bottom
{
...
@@ -318,7 +332,7 @@
...
@@ -318,7 +332,7 @@
flex-direction
:
column
;
flex-direction
:
column
;
justify-content
:
space-between
;
justify-content
:
space-between
;
height
:
100%
;
height
:
100%
;
margin-right
:
4
0px
;
margin-right
:
3
0px
;
.dataScreen-map
{
.dataScreen-map
{
position
:
relative
;
position
:
relative
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
...
@@ -331,7 +345,7 @@
...
@@ -331,7 +345,7 @@
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
justify-content
:
space-between
;
justify-content
:
space-between
;
width
:
5
00px
;
width
:
4
00px
;
height
:
100%
;
height
:
100%
;
.dataScreen-top
,
.dataScreen-top
,
.dataScreen-center
,
.dataScreen-center
,
...
...
src/views/data-screen/index.vue
View file @
3b4c7c75
...
@@ -70,18 +70,20 @@
...
@@ -70,18 +70,20 @@
<ChinaMapChart
/>
<ChinaMapChart
/>
<div
class=
"linebox"
>
<div
class=
"linebox"
>
<img
src=
"./images/lines1.png"
alt=
""
class=
"lines1"
>
<img
src=
"./images/lines1.png"
alt=
""
class=
"lines1"
>
<img
src=
"./images/lines3.png"
alt=
""
class=
"lines3"
>
<img
src=
"./images/xuan.png"
alt=
""
class=
"lines3"
>
</div>
<div
class=
"qiu"
>
</div>
<div
class=
"bg2"
>
<img
src=
"./images/animation.svg"
alt=
""
srcset=
""
>
</div>
</div>
<div
class=
"qiu"
></div>
</div>
</div>
<div
class=
"dataScreen-map"
v-else
>
<div
class=
"dataScreen-map"
v-else
>
<div
class=
"dataScreen-map-title"
>
当日跟进分析
</div>
<div
class=
"dataScreen-map-title"
>
当日跟进分析
</div>
<MaleFemaleRatioChart
:tenantId=
"tenantId"
/>
<MaleFemaleRatioChart
:tenantId=
"tenantId"
/>
</div>
</div>
<div
class=
"dataScreen-cb"
>
<div
class=
"dataScreen-cb"
>
<div
class=
"dataScreen-main-title"
style=
"width: auto;"
>
作业量趋势分析
</div>
<div
class=
" absolute top-1 right-40 flex my-select items-center"
v-if=
"isAdmin"
>
<div
class=
" absolute top-1 right-40 flex my-select items-center"
v-if=
"isAdmin"
>
<div
style=
"width: 95px;margin-right: 5px;"
>
<div
style=
"width: 95px;margin-right: 5px;"
>
调解中心
调解中心
...
@@ -259,7 +261,7 @@ timer1.value = setInterval(() => {
...
@@ -259,7 +261,7 @@ timer1.value = setInterval(() => {
if
(
!
load
.
value
)
{
if
(
!
load
.
value
)
{
query
()
query
()
}
}
},
3
000
)
},
6
000
)
// 获取当前时间
// 获取当前时间
let
timer
=
null
;
let
timer
=
null
;
let
time
=
ref
(
dayjs
().
format
(
"YYYY年MM月DD HH:mm:ss"
));
let
time
=
ref
(
dayjs
().
format
(
"YYYY年MM月DD HH:mm:ss"
));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment