From 715d1230c718bcf6ad55ea5c65bacdf6ffc81fca Mon Sep 17 00:00:00 2001 From: junjun Date: Fri, 15 Apr 2022 23:14:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20s2=E8=A1=A8=E6=A0=BC=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=8C=87=E6=A0=87=E6=95=B0=E5=80=BC=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/chart/chart/table/table-info.js | 105 +++++++++++++++++- .../components/drag-item/DimensionItem.vue | 2 +- frontend/src/views/chart/view/ChartEdit.vue | 2 + 3 files changed, 102 insertions(+), 7 deletions(-) diff --git a/frontend/src/views/chart/chart/table/table-info.js b/frontend/src/views/chart/chart/table/table-info.js index d3e4f9ec90..a5c183c2ae 100644 --- a/frontend/src/views/chart/chart/table/table-info.js +++ b/frontend/src/views/chart/chart/table/table-info.js @@ -1,6 +1,7 @@ import { TableSheet, S2Event, PivotSheet } from '@antv/s2' import { getCustomTheme, getSize } from '@/views/chart/chart/common/common_table' import { DEFAULT_TOTAL } from '@/views/chart/chart/chart' +import { formatterItem, valueFormatter } from '@/views/chart/chart/formatter' export function baseTableInfo(s2, container, chart, action, tableData) { const containerDom = document.getElementById(container) @@ -49,20 +50,50 @@ export function baseTableInfo(s2, container, chart, action, tableData) { name: drillField.name }) } else { + const f = getCurrentField(chart.xaxis, ele) columns.push(ele.dataeaseName) meta.push({ field: ele.dataeaseName, - name: ele.name + name: ele.name, + formatter: function(value) { + if (!f) { + return value + } + if (f.groupType === 'd') { + return value + } else { + if (f.formatterCfg) { + return valueFormatter(value, f.formatterCfg) + } else { + return valueFormatter(value, formatterItem) + } + } + } }) } } }) } else { fields.forEach(ele => { + const f = getCurrentField(chart.xaxis, ele) columns.push(ele.dataeaseName) meta.push({ field: ele.dataeaseName, - name: ele.name + name: ele.name, + formatter: function(value) { + if (!f) { + return value + } + if (f.groupType === 'd') { + return value + } else { + if (f.formatterCfg) { + return valueFormatter(value, f.formatterCfg) + } else { + return valueFormatter(value, formatterItem) + } + } + } }) }) } @@ -146,20 +177,42 @@ export function baseTableNormal(s2, container, chart, action, tableData) { name: drillField.name }) } else { + const f = getCurrentField(chart.yaxis, ele) columns.push(ele.dataeaseName) meta.push({ field: ele.dataeaseName, - name: ele.name + name: ele.name, + formatter: function(value) { + if (!f) { + return value + } + if (f.formatterCfg) { + return valueFormatter(value, f.formatterCfg) + } else { + return valueFormatter(value, formatterItem) + } + } }) } } }) } else { fields.forEach(ele => { + const f = getCurrentField(chart.yaxis, ele) columns.push(ele.dataeaseName) meta.push({ field: ele.dataeaseName, - name: ele.name + name: ele.name, + formatter: function(value) { + if (!f) { + return value + } + if (f.formatterCfg) { + return valueFormatter(value, f.formatterCfg) + } else { + return valueFormatter(value, formatterItem) + } + } }) }) } @@ -253,20 +306,42 @@ export function baseTablePivot(s2, container, chart, action, tableData) { name: drillField.name }) } else { + const f = getCurrentField(chart.yaxis, ele) columns.push(ele.dataeaseName) meta.push({ field: ele.dataeaseName, - name: ele.name + name: ele.name, + formatter: function(value) { + if (!f) { + return value + } + if (f.formatterCfg) { + return valueFormatter(value, f.formatterCfg) + } else { + return valueFormatter(value, formatterItem) + } + } }) } } }) } else { fields.forEach(ele => { + const f = getCurrentField(chart.yaxis, ele) columns.push(ele.dataeaseName) meta.push({ field: ele.dataeaseName, - name: ele.name + name: ele.name, + formatter: function(value) { + if (!f) { + return value + } + if (f.formatterCfg) { + return valueFormatter(value, f.formatterCfg) + } else { + return valueFormatter(value, formatterItem) + } + } }) }) } @@ -324,3 +399,21 @@ export function baseTablePivot(s2, container, chart, action, tableData) { return s2 } + +function getCurrentField(valueFieldList, field) { + let list = [] + let res = null + try { + list = JSON.parse(valueFieldList) + } catch (err) { + list = JSON.parse(JSON.stringify(valueFieldList)) + } + for (let i = 0; i < list.length; i++) { + const f = list[i] + if (field.dataeaseName === f.dataeaseName) { + res = f + break + } + } + return res +} diff --git a/frontend/src/views/chart/components/drag-item/DimensionItem.vue b/frontend/src/views/chart/components/drag-item/DimensionItem.vue index 9c73371145..fb115c4a35 100644 --- a/frontend/src/views/chart/components/drag-item/DimensionItem.vue +++ b/frontend/src/views/chart/components/drag-item/DimensionItem.vue @@ -227,7 +227,7 @@ export default { valueFormatter() { this.item.index = this.index - this.item.formatterType = 'quota' + this.item.formatterType = 'dimension' this.$emit('valueFormatter', this.item) } } diff --git a/frontend/src/views/chart/view/ChartEdit.vue b/frontend/src/views/chart/view/ChartEdit.vue index bd920ed8d6..7305c32c70 100644 --- a/frontend/src/views/chart/view/ChartEdit.vue +++ b/frontend/src/views/chart/view/ChartEdit.vue @@ -2628,6 +2628,8 @@ export default { this.view.yaxis[this.valueFormatterItem.index].formatterCfg = this.valueFormatterItem.formatterCfg } else if (this.valueFormatterItem.formatterType === 'quotaExt') { this.view.yaxisExt[this.valueFormatterItem.index].formatterCfg = this.valueFormatterItem.formatterCfg + } else if (this.valueFormatterItem.formatterType === 'dimension') { + this.view.xaxis[this.valueFormatterItem.index].formatterCfg = this.valueFormatterItem.formatterCfg } this.calcData(true) this.closeValueFormatter()