From 937ab3a230f4a296740e48a8b7f71d19d406b1c2 Mon Sep 17 00:00:00 2001 From: duanliang <540489889@qq.com> Date: Thu, 11 Dec 2025 14:00:06 +0800 Subject: [PATCH] fix pieRow --- src/components/PieRow/index.vue | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/src/components/PieRow/index.vue b/src/components/PieRow/index.vue index 287bcb9..2961525 100644 --- a/src/components/PieRow/index.vue +++ b/src/components/PieRow/index.vue @@ -74,15 +74,17 @@ }, { immediate: true } ) - var echartsArr = []; + const init = ()=>{ - echartsArr = [] if(condShow.value===2){ return; } clearOption() colorList = []; condShow.value = 2 + const validDataList = props.dataList.filter(item => { + return item && item.name && (item.value || item.value === 0); + }); props.dataList.forEach((item,index)=>{ if(item.name=='负面'){ @@ -114,7 +116,7 @@ }, formatter: (name) => { // let percent = props.dataList.find((item) => item.name == name).value - const item = props.dataList.find((item) => item.name === name); + const item = validDataList.find((item) => item.name === name); const percent = item ? item.value : 0; @@ -155,11 +157,11 @@ labelLine: { show: false }, - data: [] + data: validDataList } ] } - defaultCofig.series[0].data = props.dataList + // defaultCofig.series[0].data = props.dataList // defaultCofig.legend.formatter = (name) => { // let percent = props.dataList.find((item) => item.name == name).value // if(name){ @@ -175,12 +177,12 @@ const changeChart = setOption({ ...defaultCofig, ...props.config - },true) + }) changeChart.off('legendselectchanged'); changeChart.on('legendselectchanged', function (e) { console.log(e,'e') - + var echartsArr = []; for (let key in e.selected) { if (e.selected[key]) { echartsArr.push(key) @@ -192,14 +194,7 @@ echartsNum += parseFloat(item.value) } }) - defaultCofig.legend.formatter = (name) => { - const item = props.dataList.find((item) => item.name === name); - - const percent = item ? item.value : 0; - - const displayName = name || ''; - return `${displayName}\u3000${percent}%`; - } + defaultCofig.series[0].label.formatter = `{value|${parseInt(echartsNum/100*props.total)}}` + '\n' + `{name|${props.label}}`; setOption({ ...defaultCofig,