66 lines
2.2 KiB
JavaScript
66 lines
2.2 KiB
JavaScript
|
|
export default {
|
||
|
|
methods: {
|
||
|
|
pieFormatterLabel (params) {
|
||
|
|
const self = this
|
||
|
|
let str = '{color|'
|
||
|
|
if (this.chartInfo.param.text === 'all') {
|
||
|
|
str += params.data.name
|
||
|
|
str += ' : '
|
||
|
|
str += params.data.mapping && params.data.mapping.display ? self.handleDisplay(params.data.mapping.display, { ...params.data.labels, value: params.data.value }) : params.data.value
|
||
|
|
}
|
||
|
|
if (this.chartInfo.param.text === 'value') {
|
||
|
|
str += params.data.mapping && params.data.mapping.display ? self.handleDisplay(params.data.mapping.display, { ...params.data.labels, value: params.data.value }) : params.data.value
|
||
|
|
}
|
||
|
|
if (this.chartInfo.param.text === 'legend') {
|
||
|
|
str += params.data.name
|
||
|
|
}
|
||
|
|
if (this.chartInfo.param.text === 'none') {
|
||
|
|
str += ''
|
||
|
|
}
|
||
|
|
str += '}'
|
||
|
|
return str
|
||
|
|
},
|
||
|
|
handleDisplay (display, params) {
|
||
|
|
console.log(params)
|
||
|
|
if (/\{\{.+\}\}/.test(display)) {
|
||
|
|
const labelValue = display.replace(/(\{\{.+?\}\})/g, function (i) {
|
||
|
|
const label = i.substr(i.indexOf('{{') + 2, i.indexOf('}}') - i.indexOf('{{') - 2)
|
||
|
|
console.log(label)
|
||
|
|
let value = null
|
||
|
|
if (params[label]) {
|
||
|
|
value = params[label]
|
||
|
|
}
|
||
|
|
return value || label
|
||
|
|
})
|
||
|
|
return labelValue
|
||
|
|
} else {
|
||
|
|
return display
|
||
|
|
}
|
||
|
|
},
|
||
|
|
getMinMaxFromData (originalDatas) {
|
||
|
|
let minTime = null
|
||
|
|
let maxTime = null
|
||
|
|
let minValue = null
|
||
|
|
let maxValue = null
|
||
|
|
// 将数据提为二维数组
|
||
|
|
let datas = []
|
||
|
|
originalDatas.forEach((originalData, expressionIndex) => {
|
||
|
|
originalData.forEach((data, dataIndex) => {
|
||
|
|
datas = [...datas, ...data.values]
|
||
|
|
})
|
||
|
|
})
|
||
|
|
const timeSorted = datas.sort((a, b) => {
|
||
|
|
return a[0] - b[0]
|
||
|
|
})
|
||
|
|
const valueSorted = datas.sort((a, b) => {
|
||
|
|
return a[1] - b[1]
|
||
|
|
})
|
||
|
|
minTime = timeSorted.length ? timeSorted[0][0] : ''
|
||
|
|
maxTime = timeSorted.length ? timeSorted[timeSorted.length - 1][0] : ''
|
||
|
|
minValue = valueSorted.length ? valueSorted[0][1] : ''
|
||
|
|
maxValue = valueSorted.length ? valueSorted[valueSorted.length - 1][1] : ''
|
||
|
|
return { minTime, maxTime, minValue, maxValue }
|
||
|
|
},
|
||
|
|
}
|
||
|
|
}
|