|
|
@@ -136,11 +136,27 @@ const binLegendArr = [
|
|
|
// 饼图
|
|
|
export const echartsFu2 = (dom: HTMLDivElement, type: string, index: number, data: any) => {
|
|
|
const myChart = echarts.getInstanceByDom(dom) || echarts.init(dom)
|
|
|
+ const safeSeriesData = (Array.isArray(data) ? data : [])
|
|
|
+ .map((item: any) => {
|
|
|
+ const name = typeof item?.name === 'string' ? item.name.trim() : ''
|
|
|
+ return { ...item, name }
|
|
|
+ })
|
|
|
+ .filter((item: any) => item?.name)
|
|
|
+
|
|
|
const option = {
|
|
|
tooltip: {
|
|
|
trigger: 'item'
|
|
|
},
|
|
|
- legend: binLegendArr[index],
|
|
|
+ legend: {
|
|
|
+ type: 'scroll',
|
|
|
+ ...binLegendArr[index],
|
|
|
+ data: Array.from(new Set(safeSeriesData.map((i: any) => i.name))),
|
|
|
+ formatter: (name: string) => {
|
|
|
+ const maxLen = 8
|
|
|
+ if (!name) return ''
|
|
|
+ return name.length > maxLen ? `${name.slice(0, maxLen)}…` : name
|
|
|
+ }
|
|
|
+ },
|
|
|
series: [
|
|
|
{
|
|
|
...bingTypeArr(type)[index],
|
|
|
@@ -156,7 +172,7 @@ export const echartsFu2 = (dom: HTMLDivElement, type: string, index: number, dat
|
|
|
labelLine: {
|
|
|
show: false
|
|
|
},
|
|
|
- data
|
|
|
+ data: safeSeriesData
|
|
|
}
|
|
|
]
|
|
|
}
|