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} } } }