From 4db65a39ab2ddcf9a0acfefa9c42e1019a0525a0 Mon Sep 17 00:00:00 2001 From: wisonic-s Date: Wed, 27 Mar 2024 10:45:43 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=A7=86=E5=9B=BE):=20=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E8=A1=A8=E5=8A=A8=E6=80=81=E9=98=88=E5=80=BC=E5=8F=AF=E9=80=89?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E5=AD=97=E6=AE=B5=20close=20#7296?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/chart/ChartViewService.java | 17 ++++++++++++++++- .../src/views/chart/chart/table/table-info.js | 2 +- .../senior/dialog/TableThresholdEdit.vue | 7 +++++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 27d0fe943e..165a674a7a 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -1039,6 +1039,18 @@ public class ChartViewService { || StringUtils.containsIgnoreCase(view.getType(), "table-pivot")) { // 动态阈值 dynamicAssistFields = getDynamicThresholdFields(view); + // 明细表非数据列字段要加进来 + if (StringUtils.containsIgnoreCase(view.getType(), "table-info")) { + Set fieldIds = xAxis.stream().map(ChartViewFieldDTO::getId).collect(Collectors.toSet()); + List finalXAxis = xAxis; + dynamicAssistFields.forEach(i -> { + if (!fieldIds.contains(i.getFieldId())) { + ChartViewFieldDTO fieldDTO = new ChartViewFieldDTO(); + BeanUtils.copyBean(fieldDTO, i.getCurField()); + finalXAxis.add(fieldDTO); + } + }); + } assistFields = getAssistFields(dynamicAssistFields, yAxis, xAxis); } @@ -1289,6 +1301,9 @@ public class ChartViewService { } if (CollectionUtils.isNotEmpty(assistFields)) { + if (StringUtils.equalsIgnoreCase("table-info", view.getType())) { + datasourceRequest.setQuery(querySql); + } datasourceAssistRequest.setQuery(assistSQL(datasourceRequest.getQuery(), assistFields, ds)); logger.info(datasourceAssistRequest.getQuery()); assistData = datasourceProvider.getData(datasourceAssistRequest); @@ -2407,7 +2422,7 @@ public class ChartViewService { List conditions = gson.fromJson(itemConditions.toJSONString(), new TypeToken>() { }.getType()); for (ChartSeniorThresholdDTO condition : conditions) { - if (StringUtils.equalsIgnoreCase(condition.getField(), "0")) { + if (StringUtils.equalsAnyIgnoreCase(condition.getField(), "0", "2")) { continue; } diff --git a/core/frontend/src/views/chart/chart/table/table-info.js b/core/frontend/src/views/chart/chart/table/table-info.js index 87fc5ac4b7..7e14370021 100644 --- a/core/frontend/src/views/chart/chart/table/table-info.js +++ b/core/frontend/src/views/chart/chart/table/table-info.js @@ -119,7 +119,7 @@ export function baseTableInfo(container, chart, action, tableData, pageInfo, vue } fields.forEach(ele => { const f = nameMap[ele.dataeaseName] - if (f.hidden === true) { + if (!f || f.hidden === true) { return } columns.push(ele.dataeaseName) diff --git a/core/frontend/src/views/chart/components/senior/dialog/TableThresholdEdit.vue b/core/frontend/src/views/chart/components/senior/dialog/TableThresholdEdit.vue index 70ee0922d0..806ea8fbc8 100644 --- a/core/frontend/src/views/chart/components/senior/dialog/TableThresholdEdit.vue +++ b/core/frontend/src/views/chart/components/senior/dialog/TableThresholdEdit.vue @@ -407,6 +407,7 @@ export default { required: true } }, + inject: ['filedList'], data() { return { thresholdArr: [], @@ -637,7 +638,8 @@ export default { } // 区分文本、数值、日期字段 - this.fields.forEach(ele => { + const compareFields = this.chart.type === 'table-info' ? this.filedList() : this.fields + compareFields.forEach(ele => { // 视图字段和计数字段不可用 if (ele.chartId || ele.id === 'count') { return @@ -725,7 +727,8 @@ export default { if (!id) { return {} } - const fields = this.fields.filter(ele => { + const compareFields = this.chart.type === 'table-info' ? this.filedList() : this.fields + const fields = compareFields.filter(ele => { return ele.id === id }) if (fields.length === 0) {