Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张小浪
vue项目使用D3js实现3D饼图
提交
dc68fad7
V
vue项目使用D3js实现3D饼图
项目概览
张小浪
/
vue项目使用D3js实现3D饼图
与 Fork 源项目一致
Fork自
inscode / VueJS
通知
2
Star
8
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vue项目使用D3js实现3D饼图
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
dc68fad7
编写于
5月 08, 2023
作者:
6
64584ef1ecd7b40dc29f18f5
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Auto commit
上级
e01e6945
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
57 addition
and
2 deletion
+57
-2
src/components/Pie3D.vue
src/components/Pie3D.vue
+2
-1
src/utils/pie.js
src/utils/pie.js
+55
-1
未找到文件。
src/components/Pie3D.vue
浏览文件 @
dc68fad7
...
@@ -10,7 +10,8 @@ import pie from '../utils/pie'
...
@@ -10,7 +10,8 @@ import pie from '../utils/pie'
import
{
onMounted
,
reactive
}
from
'
vue
'
;
import
{
onMounted
,
reactive
}
from
'
vue
'
;
let
config
=
reactive
({
let
config
=
reactive
({
color
:[
"
#0f7eee
"
,
"
#24Daff
"
,
"
#FFFF80
"
,
"
#caf982
"
,
"
#80DCff
"
]
color
:[
"
#5470c6
"
,
"
#91cc75
"
,
"
#fac858
"
,
"
#ee6666
"
,
"
#73c0de
"
],
//颜色
sfShowLabel
:
true
//是否显示文本标线
})
})
//基础数据
//基础数据
const
salesData
=
[
const
salesData
=
[
...
...
src/utils/pie.js
浏览文件 @
dc68fad7
...
@@ -97,5 +97,59 @@ export default function pie(id, width, height, data, x, y, rx, ry, h, config,ir=
...
@@ -97,5 +97,59 @@ export default function pie(id, width, height, data, x, y, rx, ry, h, config,ir=
let
colorIndex
=
index
%
config
.
color
.
length
let
colorIndex
=
index
%
config
.
color
.
length
return
d3
.
hsl
(
config
.
color
[
colorIndex
]).
darker
(
0.7
)
return
d3
.
hsl
(
config
.
color
[
colorIndex
]).
darker
(
0.7
)
});
});
//是否显示标签
if
(
config
.
sfShowLabel
){
//创建文本标签引导线
const
line
=
d3
.
select
(
'
#pie_chart
'
)
.
append
(
'
g
'
)
.
attr
(
'
transform
'
,
`translate(350,200)`
)
.
attr
(
'
class
'
,
'
line
'
);
//引导线
line
.
selectAll
(
'
.line
'
)
.
data
(
dataset
)
.
enter
()
.
append
(
'
line
'
)
.
attr
(
'
stroke
'
,(
d
,
index
)
=>
{
let
colorIndex
=
index
%
config
.
color
.
length
return
config
.
color
[
colorIndex
]
})
.
attr
(
'
x1
'
,
0
)
.
attr
(
'
y1
'
,
0
)
.
attr
(
'
x2
'
,
d
=>
{
return
1.5
*
rx
*
Math
.
cos
(
0.5
*
(
d
.
startAngle
+
d
.
endAngle
))
})
.
attr
(
'
y2
'
,
d
=>
{
return
1.5
*
ry
*
Math
.
sin
(
0.5
*
(
d
.
startAngle
+
d
.
endAngle
))
})
.
style
(
'
visibility
'
,
d
=>
{
return
'
visible
'
});
//文本
const
textbox
=
d3
.
select
(
'
#pie_chart
'
)
.
append
(
'
g
'
)
.
attr
(
'
transform
'
,
'
translate(350,200)
'
)
.
attr
(
'
class
'
,
'
textbox
'
);
const
text
=
textbox
.
selectAll
(
'
desc
'
)
.
data
(
dataset
)
.
enter
()
.
append
(
'
text
'
)
.
attr
(
'
font-size
'
,
'
14px
'
)
.
attr
(
'
text-anchor
'
,
'
middle
'
)
.
style
(
'
visibility
'
,
d
=>
{
return
'
visible
'
})
.
attr
(
'
fill
'
,(
d
,
index
)
=>
{
let
colorIndex
=
index
%
config
.
color
.
length
return
config
.
color
[
colorIndex
]
})
.
text
(
d
=>
{
return
`
${
d
.
data
.
label
}
:
${
d
.
data
.
value
}${
d
.
data
.
DWMC
}
`
})
.
attr
(
'
transform
'
,
d
=>
{
let
x
=
1.5
*
(
rx
+
10
)
*
Math
.
cos
(
0.5
*
(
d
.
startAngle
+
d
.
endAngle
))
let
y
=
1.5
*
(
ry
+
10
)
*
Math
.
sin
(
0.5
*
(
d
.
startAngle
+
d
.
endAngle
))
return
`translate(
${
x
}
,
${
y
}
)`
})
}
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录