Skip to content

Commit 361f656

Browse files
committed
fix: 优化扩展组件代码
1 parent b0e24a9 commit 361f656

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/packages/barpie/chart.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@ import echarts from 'echarts/lib/echarts'
88
class BarpieChart extends BaseChart {
99
// build tooltip
1010
static getBarTooltip (data, settings) {
11-
const { tooltipOptions, childSetting } = settings
11+
const { tooltipOptions, childSetting = { series: {}, legend: {}, legendShow: {}, contentSize: {} } } = settings
1212
const { series, legend, ...others } = childSetting
13-
console.log(others)
14-
function returnPieData (data, dimensionName, sum) {
13+
function returnPieData (data, dimensionName) {
1514
return {
1615
series: {
1716
type: 'pie',
@@ -24,7 +23,9 @@ class BarpieChart extends BaseChart {
2423
},
2524
tooltip: {
2625
trigger: 'item',
27-
valueFormatter: (value) => value.toLocaleString('en-US', { maximumFractionDigits: 2 })
26+
formatter: (params) => {
27+
return params.name + ' : ' + params.value + ' (' + params.percent + '%)'
28+
}
2829
},
2930
color: ['#426fff', '#40adff', '#3fdace', '#18bdb0', '#ffda3e', '#ffa900', '#83dd89', '#bedf65', '#956bfd', '#f67bb2'],
3031
animation: false,
@@ -76,6 +77,9 @@ class BarpieChart extends BaseChart {
7677
percent: true,
7778
...childSetting['legendShow']
7879
}
80+
const sum = data.reduce((accumulator, currentValue) => {
81+
return accumulator + currentValue.value
82+
}, 0)
7983
let p = (data[index].value / sum * 100).toFixed(childSetting['toFix'] || 2)
8084
let value = data[index].value.toLocaleString('en-US', { maximumFractionDigits: 2 })
8185
let thisName = name.length > 10 ? name.substr(0, 10) + '...' : name
@@ -95,11 +99,11 @@ class BarpieChart extends BaseChart {
9599
}
96100
}
97101

98-
function initPieTooltip (data, dimensionName, sum) {
102+
function initPieTooltip (data, dimensionName) {
99103
setTimeout(() => { // 使用延迟机制,先执行formatter的div创建
100104
if (document.getElementById('pieTooltip') !== null) {
101105
let tooltipChart = echarts.init(document.getElementById('pieTooltip'))
102-
tooltipChart.setOption(returnPieData(data, dimensionName, sum))
106+
tooltipChart.setOption(returnPieData(data, dimensionName))
103107
}
104108
}, 0)
105109
}
@@ -126,7 +130,6 @@ class BarpieChart extends BaseChart {
126130
formatter: (params) => {
127131
let dax = params[0].dataIndex
128132
let childData = data.childData[dax]
129-
let sum = params[0].value[1]
130133
let dimensionName = childData.map(item => {
131134
item.icon = item.icon ? item.icon : 'circle'
132135
return item.name
@@ -136,7 +139,7 @@ class BarpieChart extends BaseChart {
136139
height: '200px',
137140
...childSetting['contentSize']
138141
}
139-
initPieTooltip(childData, dimensionName, sum)
142+
initPieTooltip(childData, dimensionName)
140143
return `<div id="tooltip" style="width: ${contentSize['width']};height: ${contentSize['height']}+30px;border-radius: 2px;box-shadow: 0 0 20px 0 rgba(110, 117, 145, 0.1);padding: 10px;">${params[0].name}<br/>
141144
<div id="pieTooltip" style="width: ${contentSize['width']};height: ${contentSize['height']};"></div></div>`
142145
}

0 commit comments

Comments
 (0)