diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 9d628ed9ad..1592459766 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -788,9 +788,7 @@ public class ChartViewService { ChartExtFilterRequest drillFilter = new ChartExtFilterRequest(); drillFilter.setFieldId(dto.getId()); - drillFilter.setValue(new ArrayList() {{ - add(dto.getValue()); - }}); + drillFilter.setValue(Collections.singletonList(dto.getValue())); drillFilter.setOperator("in"); drillFilter.setDatasetTableField(datasetTableField); extFilterList.add(drillFilter); diff --git a/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java b/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java index 4e28040812..7d570a1a8b 100644 --- a/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java +++ b/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java @@ -202,6 +202,10 @@ public class ChartDataBuild { chartDimensionDTO.setValue(row[k]); dimensionList.add(chartDimensionDTO); } + ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); + chartDimensionDTO.setId(extStack.get(0).getId()); + chartDimensionDTO.setValue(row[xAxis.size()]); + dimensionList.add(chartDimensionDTO); axisChartDataDTO.setDimensionList(dimensionList); if (CollectionUtils.isNotEmpty(yAxis)) { @@ -1054,6 +1058,10 @@ public class ChartDataBuild { chartDimensionDTO.setValue(row[j]); dimensionList.add(chartDimensionDTO); } + ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); + chartDimensionDTO.setId(extStack.get(0).getId()); + chartDimensionDTO.setValue(row[xAxis.size()]); + dimensionList.add(chartDimensionDTO); axisChartDataDTO.setDimensionList(dimensionList); if (CollectionUtils.isNotEmpty(yAxis)) { diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 93d33ac9c0..512aa6cfcc 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -1434,7 +1434,8 @@ export default { reserve_two: '2', proportion: 'Proportion', label_content: 'Label Content', - percent: 'Percent' + percent: 'Percent', + table_index_desc: 'Index Header Name' }, dataset: { parse_filed: 'Parse Field', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 8ce8d0a586..8305e74537 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -1434,7 +1434,8 @@ export default { reserve_two: '两位', proportion: '佔比', label_content: '標籤展示', - percent: '占比' + percent: '占比', + table_index_desc: '表頭名稱' }, dataset: { parse_filed: '解析字段', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 40b73f8d17..e883c2df5b 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -1433,7 +1433,8 @@ export default { reserve_two: '两位', proportion: '占比', label_content: '标签展示', - percent: '占比' + percent: '占比', + table_index_desc: '表头名称' }, dataset: { parse_filed: '解析字段', diff --git a/frontend/src/views/chart/chart/common/common_antv.js b/frontend/src/views/chart/chart/common/common_antv.js index 7244f2467f..236d7da1b0 100644 --- a/frontend/src/views/chart/chart/common/common_antv.js +++ b/frontend/src/views/chart/chart/common/common_antv.js @@ -230,6 +230,9 @@ export function getLabel(chart) { } } res = contentItems.join(' ') + } else if (equalsAny(chart.type, 'pie-rose', 'pie-donut-rose')) { + const quotaValue = valueFormatter(param.value, formatterCfg) + res = [param.field, quotaValue].join(' ') } else { res = valueFormatter(param.value, formatterCfg) } diff --git a/frontend/src/views/chart/chart/common/common_table.js b/frontend/src/views/chart/chart/common/common_table.js index 93cb2f0063..cd53127e88 100644 --- a/frontend/src/views/chart/chart/common/common_table.js +++ b/frontend/src/views/chart/chart/common/common_table.js @@ -168,6 +168,7 @@ export function getCustomTheme(chart) { theme.rowCell.text.textAlign = i_a theme.rowCell.measureText.fontSize = parseInt(s.tableItemFontSize) theme.rowCell.measureText.textAlign = i_a + theme.rowCell.seriesNumberWidth = parseInt(s.tableColumnWidth) theme.colCell.bolderText.fontSize = parseInt(s.tableTitleFontSize) theme.colCell.bolderText.textAlign = h_a diff --git a/frontend/src/views/chart/chart/table/table-info.js b/frontend/src/views/chart/chart/table/table-info.js index 2324b6b0fd..488a85c932 100644 --- a/frontend/src/views/chart/chart/table/table-info.js +++ b/frontend/src/views/chart/chart/table/table-info.js @@ -1,10 +1,10 @@ -import { TableSheet, S2Event, PivotSheet } from '@antv/s2' +import { TableSheet, S2Event, PivotSheet, DataCell } from '@antv/s2' import { getCustomTheme, getSize } from '@/views/chart/chart/common/common_table' import { DEFAULT_COLOR_CASE, DEFAULT_TOTAL } from '@/views/chart/chart/chart' import { formatterItem, valueFormatter } from '@/views/chart/chart/formatter' import { hexColorToRGBA } from '@/views/chart/chart/util' import Vue from 'vue' -export function baseTableInfo(s2, container, chart, action, tableData) { +export function baseTableInfo(s2, container, chart, action, tableData, pageInfo) { const containerDom = document.getElementById(container) // fields @@ -132,9 +132,19 @@ export function baseTableInfo(s2, container, chart, action, tableData) { if (s2Options.showSeriesNumber) { s2Options.colCell = (node) => { if (node.colIndex === 0) { - node.label = customAttr.size.indexLabel + if (!customAttr.size.indexLabel) { + node.label = ' ' + } else { + node.label = customAttr.size.indexLabel + } } } + s2Options.dataCell = (viewMeta) => { + if (viewMeta.colIndex === 0) { + viewMeta.fieldValue = (pageInfo.pageSize * (pageInfo.page - 1)) + viewMeta.rowIndex + 1 + } + return new DataCell(viewMeta, viewMeta?.spreadsheet) + } } // 开始渲染 @@ -270,7 +280,11 @@ export function baseTableNormal(s2, container, chart, action, tableData) { if (s2Options.showSeriesNumber) { s2Options.colCell = (node) => { if (node.colIndex === 0) { - node.label = customAttr.size.indexLabel + if (!customAttr.size.indexLabel) { + node.label = ' ' + } else { + node.label = customAttr.size.indexLabel + } } } } diff --git a/frontend/src/views/chart/components/ChartComponentS2.vue b/frontend/src/views/chart/components/ChartComponentS2.vue index 8c55c3a9ce..f64e4a338e 100644 --- a/frontend/src/views/chart/components/ChartComponentS2.vue +++ b/frontend/src/views/chart/components/ChartComponentS2.vue @@ -291,7 +291,7 @@ export default { } } if (chart.type === 'table-info') { - this.myChart = baseTableInfo(this.myChart, this.chartId, chart, this.antVAction, this.tableData) + this.myChart = baseTableInfo(this.myChart, this.chartId, chart, this.antVAction, this.tableData, this.currentPage) } else if (chart.type === 'table-normal') { this.myChart = baseTableNormal(this.myChart, this.chartId, chart, this.antVAction, this.tableData) } else if (chart.type === 'table-pivot') { @@ -522,7 +522,7 @@ export default { ele.filter = [] } }) - if (view.type === 'table-pivot' || view.type === 'bar-group') { + if (view.type === 'table-pivot' || view.type.includes('bar-group')) { view.xaxisExt.forEach(function(ele) { if (!ele.dateStyle || ele.dateStyle === '') { ele.dateStyle = 'y_M_d' diff --git a/frontend/src/views/chart/components/shape-attr/SizeSelector.vue b/frontend/src/views/chart/components/shape-attr/SizeSelector.vue index 4612570507..826db2e9fa 100644 --- a/frontend/src/views/chart/components/shape-attr/SizeSelector.vue +++ b/frontend/src/views/chart/components/shape-attr/SizeSelector.vue @@ -387,6 +387,7 @@