Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
baifang-java
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
单欣鑫
baifang-java
Commits
084e290c
Commit
084e290c
authored
Jun 09, 2025
by
赵乐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
首页优化
parent
e49cf676
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
84 additions
and
33 deletions
+84
-33
Index.vue
yudao-ui/yudao-ui-admin-vue3/src/views/Home/Index.vue
+82
-31
PieChart.vue
...udao-ui-admin-vue3/src/views/Home/components/PieChart.vue
+2
-2
No files found.
yudao-ui/yudao-ui-admin-vue3/src/views/Home/Index.vue
View file @
084e290c
...
...
@@ -74,12 +74,7 @@
<div
class=
"top top_2"
>
<div>
<PieChart
:data=
"homeInfoKhxzdjzbqk"
:total=
"200"
tooltipTip=
"客户性质等级占比情况"
/>
<PieChart
:data=
"homeInfoKhxzdjzbqk"
:total=
"200"
tooltipTip=
"客户性质等级占比情况"
/>
</div>
<div>
<BarChart
_1
...
...
@@ -92,27 +87,13 @@
</div>
<div
class=
"top top_3"
>
<div>
<PieChart
:data=
"homeInfoKhbffszbqk"
:total=
"200"
tooltipTip=
"客户拜访方式占比情况"
/>
<PieChart
:data=
"homeInfoKhbffszbqk"
:total=
"200"
tooltipTip=
"客户拜访方式占比情况"
/>
</div>
<div>
<PieChart
:data=
"homeInfoKhbmzbqk"
:total=
"200"
tooltipTip=
"客户部门占比情况"
/>
<PieChart
:data=
"homeInfoKhbmzbqk"
:total=
"200"
tooltipTip=
"客户部门占比情况"
/>
</div>
<div>
<PieChart
:data=
"homeInfoKhbflxzbqk"
:total=
"200"
tooltipTip=
"客户拜访类型占比情况"
/>
<PieChart
:data=
"homeInfoKhbflxzbqk"
:total=
"200"
tooltipTip=
"客户拜访类型占比情况"
/>
</div>
</div>
<BarChart
_1
...
...
@@ -212,7 +193,7 @@ const homeInfoBfrtjVal = ref('拜访日统计')
// 获取图表数据
const
getEcharts
=
async
()
=>
{
error
.
value
=
''
if
(
loading
.
value
)
return
;
// ✅ 防止重复调用
if
(
loading
.
value
)
return
// ✅ 防止重复调用
loading
.
value
=
true
const
params
:
any
=
{
...
...
@@ -238,6 +219,20 @@ const getEcharts = async () => {
}),
homesApi
.
getHomeInfoKhxzdjzbqk
(
params
).
then
((
res
)
=>
{
if
(
res
.
list
.
length
)
{
const
allNum
=
res
.
list
.
map
((
item
)
=>
item
.
value
)
// [20, 30]
const
sum
=
allNum
.
reduce
((
acc
,
cur
)
=>
acc
+
cur
,
0
)
// 50
res
.
list
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
// 防御性获取 allNum 值
const
allNumVal
=
allNum
?.[
index
]
??
'
未知
'
// 避免除以 0
const
ratio
=
sum
!==
0
?
((
item
.
value
/
sum
)
*
100
).
toFixed
(
1
)
+
'
%
'
:
'
0%
'
// 拼接名称(清晰分隔符)
item
.
name
=
`
${
item
.
name
}
${
allNumVal
}
${
ratio
}
`
})
}
homeInfoKhxzdjzbqk
.
value
=
res
.
list
console
.
log
(
'
客户性质等级占比:
'
,
res
.
list
)
}),
...
...
@@ -248,21 +243,77 @@ const getEcharts = async () => {
}),
homesApi
.
getHomeInfoKhbffszbqk
(
params
).
then
((
res
)
=>
{
if
(
res
.
list
.
length
)
{
const
allNum
=
res
.
list
.
map
((
item
)
=>
item
.
value
)
// [20, 30]
const
sum
=
allNum
.
reduce
((
acc
,
cur
)
=>
acc
+
cur
,
0
)
// 50
res
.
list
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
// 防御性获取 allNum 值
const
allNumVal
=
allNum
?.[
index
]
??
'
未知
'
// 避免除以 0
const
ratio
=
sum
!==
0
?
((
item
.
value
/
sum
)
*
100
).
toFixed
(
1
)
+
'
%
'
:
'
0%
'
// 拼接名称(清晰分隔符)
item
.
name
=
`
${
item
.
name
}
${
allNumVal
}
${
ratio
}
`
})
}
homeInfoKhbffszbqk
.
value
=
res
.
list
console
.
log
(
'
客户拜访方式占比:
'
,
res
)
}),
homesApi
.
getHomeInfoKhbmzbqk
(
params
).
then
((
res
)
=>
{
if
(
res
.
list
.
length
)
{
const
allNum
=
res
.
list
.
map
((
item
)
=>
item
.
value
)
// [20, 30]
const
sum
=
allNum
.
reduce
((
acc
,
cur
)
=>
acc
+
cur
,
0
)
// 50
res
.
list
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
// 防御性获取 allNum 值
const
allNumVal
=
allNum
?.[
index
]
??
'
未知
'
// 避免除以 0
const
ratio
=
sum
!==
0
?
((
item
.
value
/
sum
)
*
100
).
toFixed
(
1
)
+
'
%
'
:
'
0%
'
// 拼接名称(清晰分隔符)
item
.
name
=
`
${
item
.
name
}
${
allNumVal
}
${
ratio
}
`
})
}
homeInfoKhbmzbqk
.
value
=
res
.
list
console
.
log
(
'
客户部门占比:
'
,
res
)
}),
homesApi
.
getHomeInfoKhbflxzbqk
(
params
).
then
((
res
)
=>
{
if
(
res
.
list
.
length
)
{
const
allNum
=
res
.
list
.
map
((
item
)
=>
item
.
value
)
// [20, 30]
const
sum
=
allNum
.
reduce
((
acc
,
cur
)
=>
acc
+
cur
,
0
)
// 50
res
.
list
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
// 防御性获取 allNum 值
const
allNumVal
=
allNum
?.[
index
]
??
'
未知
'
// 避免除以 0
const
ratio
=
sum
!==
0
?
((
item
.
value
/
sum
)
*
100
).
toFixed
(
1
)
+
'
%
'
:
'
0%
'
// 拼接名称(清晰分隔符)
item
.
name
=
`
${
item
.
name
}
${
allNumVal
}
${
ratio
}
`
})
}
homeInfoKhbflxzbqk
.
value
=
res
.
list
console
.
log
(
'
客户拜访类型占比:
'
,
res
)
}),
homesApi
.
getHomeInfoBfcplxzbqk
(
params
).
then
((
res
)
=>
{
if
(
res
.
list
.
length
)
{
const
allNum
=
res
.
list
.
map
((
item
)
=>
item
.
value
)
// [20, 30]
const
sum
=
allNum
.
reduce
((
acc
,
cur
)
=>
acc
+
cur
,
0
)
// 50
res
.
list
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
// 防御性获取 allNum 值
const
allNumVal
=
allNum
?.[
index
]
??
'
未知
'
// 避免除以 0
const
ratio
=
sum
!==
0
?
((
item
.
value
/
sum
)
*
100
).
toFixed
(
1
)
+
'
%
'
:
'
0%
'
// 拼接名称(清晰分隔符)
item
.
name
=
`
${
item
.
name
}
${
allNumVal
}
${
ratio
}
`
})
}
homeInfoBfcplxzbqk
.
value
=
res
.
list
console
.
log
(
'
拜访产品类型占比:
'
,
res
)
})
...
...
yudao-ui/yudao-ui-admin-vue3/src/views/Home/components/PieChart.vue
View file @
084e290c
...
...
@@ -87,14 +87,14 @@ const chartOption = computed(() => {
name
:
props
.
tooltipTip
,
type
:
'
pie
'
,
radius
:
[
'
40%
'
,
'
70%
'
],
// 环形图内外半径
center
:
[
'
3
5
%
'
,
'
50%
'
],
// 图表中心位置,留出右侧图例空间
center
:
[
'
3
0
%
'
,
'
50%
'
],
// 图表中心位置,留出右侧图例空间
label
:
{
show
:
false
// 隐藏饼图扇区默认标签
},
labelLine
:
{
show
:
false
// 隐藏标签连线
},
data
:
props
.
data
.
map
((
item
)
=>
({
data
:
props
.
data
.
map
((
item
:
any
)
=>
({
name
:
item
.
name
,
value
:
item
.
value
,
itemStyle
:
{
...
...
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