>#### 旭日图菜单
~~~
const sourceData = [{
id: "1470876252852527106",
parentId: "0",
children: [{
id: "1470876252852527107",
parentId: "1470876252852527106",
children: [{
id: "1470876252852527108",
parentId: "1470876252852527107",
children: [],
nodeName: "低频",
},
{
id: "1470876252852527109",
parentId: "1470876252852527107",
children: [],
nodeName: "高频",
},
],
nodeName: "基本面",
},
{
id: "1470876252852527110",
parentId: "1470876252852527106",
children: [{
id: "1470876252852527111",
parentId: "1470876252852527110",
children: [],
nodeName: "风险溢价",
},
{
id: "1470876252852527112",
parentId: "1470876252852527110",
children: [],
nodeName: "RAI",
},
{
id: "1470876252852527113",
parentId: "1470876252852527110",
children: [],
nodeName: "均线动量",
},
{
id: "1470876252852527114",
parentId: "1470876252852527110",
children: [],
nodeName: "资金",
},
],
nodeName: "市场趋势",
},
],
nodeName: "债券",
},
{
id: "1470876252852527115",
parentId: "0",
children: [{
id: "1470876252852527116",
parentId: "1470876252852527115",
children: [{
id: "1470876252852527117",
parentId: "1470876252852527116",
children: [],
nodeName: "估值",
},
{
id: "1470876252852527118",
parentId: "1470876252852527116",
children: [],
nodeName: "盈利",
},
],
nodeName: "基本面",
},
{
id: "1470876252852527119",
parentId: "1470876252852527115",
children: [{
id: "1470876252852527120",
parentId: "1470876252852527119",
children: [],
nodeName: "风险溢价",
},
{
id: "1470876252852527121",
parentId: "1470876252852527119",
children: [],
nodeName: "成交量",
},
{
id: "1470876252852527122",
parentId: "1470876252852527119",
children: [],
nodeName: "机构行为",
},
],
nodeName: "市场趋势",
},
{
id: "1470876252852527123",
parentId: "1470876252852527115",
children: [],
nodeName: "尾部信号",
},
],
nodeName: "股票",
},
{
id: "1470876252852527124",
parentId: "0",
children: [],
nodeName: "股票风格",
},
];
const gapDeg = 3;
function getDepthAndSum(arr, depth, endNodeSum) {
var flag = false;
var temp = [];
for (let i = 0; i < arr.length; i++) {
arr[i].name = arr[i].nodeName;
if (arr[i].children instanceof Array) {
// 判断是否是数组
for (let j = 0; j < arr[i].children.length; j++) {
temp.push(arr[i].children[j]); // 解析出arr下第一层
}
flag = true;
if (arr[i].children.length === 0) {
endNodeSum++;
arr[i].value = 1;
}
}
}
if (flag) {
// 如果还有数组,则继续解析,直到最后一层有不为数组为止
depth++;
return getDepthAndSum(temp, depth, endNodeSum);
} else {
return {
depth,
endNodeSum
};
}
}
const {
depth,
endNodeSum
} = getDepthAndSum(sourceData, 0, 0);
const realData = [];
const list = ["债券", "股票风格", "股票"];
list.forEach((name) => {
const el = sourceData.find(({
nodeName
}) => nodeName === name);
realData.push(el);
realData.push({
value: (gapDeg / 360) * endNodeSum,
itemStyle: {
opacity: 0,
color: "transparent"
},
cursor: "auto",
type: "gap",
});
});
function handleSunburstData(arr, level, func) {
arr.forEach((item) => {
func(item, level);
if (item.children && item.children.length > 0 && item.type !== "hideItem") {
handleSunburstData(item.children, level + 1, func);
}
});
}
function getSunburstData(index) {
const res = [];
const cloneData = JSON.parse(JSON.stringify(realData));
let dataIndex = 0;
handleSunburstData(cloneData, 1, (item, level) => {
dataIndex++;
if (item.type === "gap") {
return;
}
if (index === 0) {
if (!item.children || (level < depth && item.children.length === 0)) {
item.dataIndex = dataIndex;
item.label = {
show: false
};
item.itemStyle = {
opacity: 0
};
item.emphasis = {
label: {
show: false
}
};
item.type = "hideItem";
if (level === 1) {
item.seriesIndex = 1;
item.children = [{
id: item.id,
value: 1,
dataIndex: dataIndex,
seriesIndex: 1,
itemStyle: {
opacity: 0
},
children: [{
id: item.id,
value: 1,
dataIndex: dataIndex,
seriesIndex: 1,
itemStyle: {
opacity: 0
},
}, ],
}, ];
}
if (level === 2) {
item.seriesIndex = 2;
item.children = [{
id: item.id,
value: 1,
dataIndex: dataIndex,
seriesIndex: 2,
itemStyle: {
opacity: 0
},
}, ];
}
}
} else {
if (level !== index || item.children.length !== 0) {
item.label = {
show: false
};
item.itemStyle = {
opacity: 0
};
item.cursor = "auto";
item.emphasis = {
label: {
show: false
}
};
}
}
});
return cloneData;
}
option = {
title: {
text: '旭日图菜单',
left: 'center',
top: '10px',
textStyle: {
color: '#ffffff'
}
},
toolbox: {
feature: {
saveAsImage: {}
}
},
backgroundColor: "#0f375f",
series: [{
type: "sunburst",
radius: ["20%", "80%"],
center: ["50%", "50%"],
data: getSunburstData(0),
emphasis: {
focus: "none",
},
sort: null,
label: {
rotate: 0,
},
nodeClick: false,
z: 3,
startAngle: 90 - gapDeg / 2,
},
{
type: "sunburst",
radius: ["20%", "200%"],
center: ["50%", "50%"],
data: getSunburstData(1),
emphasis: {
focus: "none",
},
sort: null,
label: {
rotate: 0,
},
nodeClick: false,
silent: true,
startAngle: 90 - gapDeg / 2,
},
{
type: "sunburst",
radius: ["0%", "120%"],
center: ["50%", "50%"],
data: getSunburstData(2),
emphasis: {
focus: "none",
},
sort: null,
label: {
rotate: 0,
},
nodeClick: false,
silent: true,
startAngle: 90 - gapDeg / 2,
},
],
};
myChart.on("mouseover", function (params) {
// 控制台打印数据的名称
if (params.data.dataIndex) {
const {
seriesIndex,
dataIndex
} = params.data;
myChart.dispatchAction({
type: "highlight",
seriesIndex: seriesIndex,
dataIndex: dataIndex,
});
}
});
myChart.on("mouseout", function (params) {
// 控制台打印数据的名称
if (params.data.dataIndex) {
const {
seriesIndex,
dataIndex
} = params.data;
myChart.dispatchAction({
type: "downplay",
seriesIndex: seriesIndex,
dataIndex: dataIndex,
});
}
});
myChart.on("click", function (params) {
// 控制台打印数据的名称
console.log(params.data.id);
});
~~~
>#### 效果图
![](https://img.kancloud.cn/1f/d8/1fd8f14bf3ff555e4b8b3632a0f88ef9_800x450.png)
<hr>
>#### 中心标题
~~~
var giftImageUrl =
"data:image/png;base64,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";
option = {
backgroundColor: "#0f375f",
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b}: {c} ({d}%)",
},
toolbox: {
feature: {
saveAsImage: {}
}
},
graphic: {
elements: [{
type: "image",
style: {
image: giftImageUrl,
width: 100,
height: 100,
},
left: "center",
top: "center",
}, ],
},
title: {
text: "类型分析",
left: "center",
top: "55%",
padding: [24, 0],
textStyle: {
color: "#fff",
fontSize: 20,
align: "center",
},
},
legend: {
orient: "horizontal",
icon: "circle",
bottom: 20,
x: "center",
data: [
"社工",
"养老护理员",
"康复师",
"心理咨询师",
"医生",
"护士",
"管理人员",
"后勤人员",
"其他人员",
],
textStyle: {
color: "#fff",
},
},
series: [{
name: "人员类型",
type: "pie",
hoverAnimation: false,
legendHoverLink: false,
radius: ["38%", "45%"],
color: [
"#006495",
"#1D5F84",
"#255C6D",
"#3C5C67",
"#40486C",
"#3F3C73",
"#403D84",
"#1F3A8D",
"#0B3B77",
],
label: {
normal: {
position: "inner",
},
},
labelLine: {
normal: {
show: false,
},
},
tooltip: {
show: false,
},
data: [{
value: 100,
name: "",
},
{
value: 100,
name: "",
},
{
value: 100,
name: "",
},
{
value: 100,
name: "",
},
{
value: 100,
name: "",
},
{
value: 100,
name: "",
},
{
value: 100,
name: "",
},
{
value: 100,
name: "",
},
{
value: 100,
name: "",
},
],
},
{
name: "人员类型",
type: "pie",
radius: ["43%", "55%"],
color: [
"#00FFFF",
"#44EAB1",
"#7BDD43",
"#FEBE12",
"#EBEC2F",
"#FF7C44",
"#FA3E5F",
"#6635EF",
"#FFAFDA",
],
labelLine: {
normal: {
show: true,
length: 20,
length2: 20,
lineStyle: {
width: 2,
},
},
},
label: {
normal: {
formatter: "{c|{c}}\n{hr|}\n{d|{d}%}",
rich: {
b: {
fontSize: 20,
color: "#12EABE",
align: "left",
padding: 4,
},
hr: {
borderColor: "#12EABE",
width: "100%",
borderWidth: 2,
height: 0,
},
d: {
fontSize: 20,
color: "#fff",
align: "left",
padding: 4,
},
c: {
fontSize: 20,
color: "#fff",
align: "left",
padding: 4,
},
},
},
},
data: [{
value: 100,
name: "社工",
},
{
value: 100,
name: "养老护理员",
},
{
value: 100,
name: "康复师",
},
{
value: 100,
name: "心理咨询师",
},
{
value: 100,
name: "医生",
},
{
value: 100,
name: "护士",
},
{
value: 100,
name: "管理人员",
},
{
value: 100,
name: "后勤人员",
},
{
value: 100,
name: "其他人员",
},
],
},
],
};
~~~
>#### 效果图
![](https://img.kancloud.cn/6b/6c/6b6cc5d648effef927170e9a9414c6a3_800x450.png)
<hr>
>#### 分类嵌套
~~~
option = {
title: {
text: "分类嵌套",
subtext: "",
top: '10px',
left: "center",
textStyle: {
color: "#fff",
fontSize: 18,
},
},
toolbox: {
feature: {
saveAsImage: {}
}
},
backgroundColor: "#0f375f",
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b}:({d}%)",
},
series: [{
name: "事业线",
type: "pie",
radius: ["10%", "50%"],
color: ["#ec5d51", "#59abe1", "#f4cf42", "#3dc6a8"],
label: {
normal: {
position: "inner",
},
},
data: [{
value: 11,
name: "APP事业部",
},
{
value: 15,
name: "家长事业部",
},
{
value: 9,
name: "TV事业部",
},
{
value: 9,
name: "公共",
},
],
},
{
name: "分组",
type: "pie",
radius: ["54%", "72%"],
color: [
"#a0dca0",
"#60bbb6",
"#f78db3",
"#feadac",
"#fae395",
"#91d4e5",
"#8eb3e8",
],
label: {
normal: {
formatter: "{b}\n{d}%",
},
},
data: [{
value: 6,
name: "2D线",
},
{
value: 5,
name: "3D线",
},
{
value: 8,
name: "宝宝产品大全",
},
{
value: 7,
name: "大全产品线",
},
{
value: 9,
name: "TV事业部",
},
{
value: 9,
name: "公共",
},
],
},
],
};
~~~
>#### 效果图
![](https://img.kancloud.cn/9a/2f/9a2fcf6c5de0f99259a92466333ba4fc_800x450.png)
<hr>
>#### 高校学生类别分类
~~~
option = {
tooltip: {
formatter: (params) => {
let str = '';
params.treePathInfo.forEach((item, index) => {
if (index > 0 && index < params.treePathInfo.length - 1) {
str += item.name + '-';
} else if (index !== 0) {
str += item.name + ':' + item.value;
}
});
return str;
},
},
title: {
text: "高校学生类别分类",
subtext: "",
top: '10px',
left: "center",
textStyle: {
color: "#fff",
fontSize: 18,
},
},
toolbox: {
feature: {
saveAsImage: {}
}
},
backgroundColor: "#0f375f",
color: [
'#1B95E6',
'#6674C4',
'#FF95D2',
'#6BBEAC',
'#FACF5B',
'#3DC0E4',
'#0DCB74',
'#8368D9',
'#AF65BE',
'#4C6471',
'#1C436F',
'#E57B88',
'#F4B246',
'#A77C56',
],
series: {
type: 'sunburst',
data: [{
name: '硕士',
children: [{
name: '全日制',
children: [{
name: '学术型',
value: 11,
},
{
name: '专业型',
value: 44,
},
],
},
{
name: '非全日制',
children: [{
name: '专业型',
value: 66,
}, ],
},
],
},
{
name: '博士',
children: [{
name: '全日制',
children: [{
name: '学术型',
value: 22,
}, ],
},
{
name: '非全日制',
children: [{
name: '学术型',
value: 33,
},
{
name: '专业型',
value: 55,
},
],
},
],
},
],
radius: ['10%', '70%'],
label: {
rotate: 0,
},
itemStyle: {
borderColor: '#fff',
borderWidth: 1,
borderRadius: 6,
},
emphasis: {
focus: 'ancestor',
},
levels: [{
// 留给数据下钻点的空白配置
itemStyle: {
color: '#fff',
},
radius: ['10%', '10%'],
},
{
radius: ['10%', '35%'],
},
{
radius: ['37%', '62%'],
itemStyle: {
opacity: 0.95
}
},
{
radius: ['64%', '70%'],
label: {
position: 'outside',
distance: 12,
},
itemStyle: {
opacity: 0.9
},
downplay: {
label: {
opacity: 0.5,
},
},
},
],
},
};
~~~
>#### 效果图
![](https://img.kancloud.cn/7b/dd/7bddcb1fbaa99fba9d53911e03b6755f_800x450.png)
<hr>
- html
- 头部标签
- canvas
- md
- DOM
- git常用命令
- css
- 网站
- 默认
- 前缀
- 文本
- 图片
- 选择器
- 滚动条
- 强制横屏
- 响应式
- 动画
- animation(动画)
- transition(过渡)
- transform(变形)
- translate(移动)
- 渐变
- 鼠标
- 自定义 Web 字体
- 可视化
- echarts
- 折线图
- 区域颜色标识
- 分段显示不同颜色
- 柱状图
- 子弹图
- 分组、柱体宽度、指示器宽度
- 圓角
- 顶部显示文字
- 双轴柱状折线图
- 双轴双列柱状图
- 单个柱状图
- 多纵向坐标
- 走势图
- 横向百分比
- 最大值和最小值
- 饼图
- 嵌套
- 分组显示
- 饼图结合柱状图
- 折线结合饼图
- 关系图
- 树图
- 地图
- 标点
- 选中
- 常用
- 图片超出可拖拽
- 百度导航
- 短信验证码倒计时
- video
- TS
- 未整理
- 消失的边界线问题
- 跟随
- js
- 兼容
- 数组去重
- 解析 URL 参数为对象
- 图片懒加载
- 正则
- Photoshop
- 快捷键
- 混合模式
- vscode
- vue
- 指令