123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- import i18n from '@/i18n'
- import { sqlFunc } from './configs'
- function dataTransfer(data, schema) {
- const chartData = data.map(item => {
- const dataItem = {}
- schema.forEach(column => {
- // hasxAxis = hasxAxis || column.asxAxis
- if (column.calculFunc) {
- column.lable = `${column.Column}(${sqlFunc[column.calculFunc]})`
- } else {
- column.lable = `${column.Column}`
- }
- column.name = column.Column
- column.asxAxis = column.isDimension
- dataItem[column.Column] = item[column.Column]
- })
- return dataItem
- })
- return chartData
- }
- const chartTypeList = [
- {
- name: i18n.t('chartType.table'),
- icon: 'chart_table',
- type: 'table',
- matchRule: {
- desc: i18n.t('chartType.tableDesc'),
- isUsable(dimensions, calculs) {
- return true
- }
- },
- componentName: 'DataTable',
- dataTransfer(data, schema) {
- const chartData = data.map(item => {
- const dataItem = {}
- schema.forEach(column => {
- if (column.calculFunc) {
- column.name = `${column.Column}(${sqlFunc[column.calculFunc]})`
- } else {
- column.name = `${column.Column}`
- }
- dataItem[column.Column] = item[column.Column]
- })
- return dataItem
- })
- return chartData
- }
- },
- {
- name: i18n.t('chartType.line'),
- icon: 'chart_line',
- type: 'line',
- matchRule: {
- desc: i18n.t('chartType.lineDesc'),
- isUsable(dimensions, calculs) {
- return (dimensions.length === 1 || dimensions.length === 2) && (calculs.length >= 1)
- }
- },
- componentName: 'lineChart', dataTransfer
- },
- {
- name: i18n.t('chartType.bar'),
- icon: 'chart_bar',
- type: 'bar',
- matchRule: {
- desc: i18n.t('chartType.barDesc'),
- isUsable(dimensions, calculs) {
- return (dimensions.length === 1 || dimensions.length === 2) && (calculs.length >= 1)
- }
- },
- componentName: 'BarChart',
- dataTransfer
- },
- {
- name: i18n.t('chartType.stackBar'),
- icon: 'stack_bar',
- type: 'stackBar',
- matchRule: {
- desc: i18n.t('chartType.stackBarDesc'),
- isUsable(dimensions, calculs) {
- return (dimensions.length === 1 || dimensions.length === 2) && (calculs.length >= 2)
- }
- },
- componentName: 'StackBarChart',
- dataTransfer
- },
- {
- name: i18n.t('chartType.pie'),
- icon: 'chart_pie',
- type: 'pie',
- matchRule: {
- desc: i18n.t('chartType.pieDesc'),
- isUsable(dimensions, calculs) {
- return (dimensions.length === 1 && calculs.length === 1) || (dimensions.length === 0 && calculs.length >= 1)
- }
- },
- componentName: 'PieChart',
- dataTransfer
- },
- {
- name: i18n.t('chartType.horizontalBar'),
- icon: 'horizontal_bar',
- type: 'horizontalBar',
- matchRule: {
- desc: i18n.t('chartType.horizontalBarDesc'),
- isUsable(dimensions, calculs) {
- return (dimensions.length === 1 || dimensions.length === 2) && (calculs.length >= 1)
- }
- },
- componentName: 'HorizontalBar',
- dataTransfer
- },
- {
- name: '柱线图:',
- icon: 'barline_chart',
- type: 'BarLineChart',
- matchRule: {
- desc: '1个纬度多个数值',
- isUsable(dimensions, calculs) {
- return (dimensions.length === 1) && (calculs.length >= 1)
- }
- },
- componentName: 'BarLineChart',
- dataTransfer
- },
- {
- name: '线柱图:',
- icon: 'linebar_chart',
- type: 'LineBarChart',
- matchRule: {
- desc: '1个纬度多个数值',
- isUsable(dimensions, calculs) {
- return (dimensions.length === 1) && (calculs.length >= 1)
- }
- },
- componentName: 'LineBarChart',
- dataTransfer
- },
- ]
- export default chartTypeList
|