lg_frontend/mixins/echarts.mixin.js

47 lines
989 B
JavaScript

import {groupBy} from 'lodash'
export default {
props: {
title: {
type: String,
default: ''
},
data: {
type: Array,
default: () => []
},
colors: {
type: Array,
default: () => []
}
},
methods: {
hexToRgba(bgColor, alpha = 0.3) {
if (!bgColor) {
return '#fff'
}
let color = bgColor.slice(1) // 去掉'#'号
let rgba = [
parseInt('0x' + color.slice(0, 2)),
parseInt('0x' + color.slice(2, 4)),
parseInt('0x' + color.slice(4, 6)),
alpha,
]
return 'rgba(' + rgba.toString() + ')'
},
translateData() {
const dataObj = groupBy(this.data, 'attr')
let xAxis = []
let maxLen = 0
Object.keys(dataObj).forEach(key => {
if (dataObj[key].length > maxLen) {
maxLen = dataObj[key].length || 0
xAxis = dataObj[key].map(item => item.name)
}
})
return {xAxis, dataObj}
}
}
}