From 249376d3bd3f26a6af92bdd2965004bf9a6aeb39 Mon Sep 17 00:00:00 2001 From: junjun Date: Wed, 12 Jun 2024 10:37:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=9B=BE=E8=A1=A8):=20=E5=9B=BE=E8=A1=A8?= =?UTF-8?q?=E4=B8=AD=E6=94=AF=E6=8C=81=E7=9B=B4=E6=8E=A5=E5=A4=8D=E5=88=B6?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/manage/ChartViewManege.java | 9 +++++ .../chart/server/ChartViewServer.java | 5 +++ core/core-frontend/src/api/chart.ts | 6 ++++ .../views/chart/components/editor/index.vue | 33 +++++++++++++------ .../io/dataease/api/chart/ChartViewApi.java | 4 +++ 5 files changed, 47 insertions(+), 10 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewManege.java b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewManege.java index 8d6980fee9..ced37eebcf 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewManege.java +++ b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewManege.java @@ -13,6 +13,7 @@ import io.dataease.chart.dao.ext.mapper.ExtChartViewMapper; import io.dataease.dataset.dao.auto.entity.CoreDatasetTableField; import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper; import io.dataease.dataset.manage.PermissionManage; +import io.dataease.dataset.utils.TableUtils; import io.dataease.dto.dataset.DatasetTableFieldDTO; import io.dataease.engine.constant.ExtFieldConstant; import io.dataease.engine.func.FunctionConstant; @@ -189,6 +190,8 @@ public class ChartViewManege { coreDatasetTableField.setExtField(2); coreDatasetTableField.setOriginName("[" + id + "]"); coreDatasetTableField.setId(IDUtils.snowID()); + coreDatasetTableField.setDataeaseName(TableUtils.fieldNameShort(coreDatasetTableField.getId() + "_" + coreDatasetTableField.getOriginName())); + coreDatasetTableField.setFieldShortName(coreDatasetTableField.getDataeaseName()); coreDatasetTableFieldMapper.insert(coreDatasetTableField); } @@ -205,6 +208,12 @@ public class ChartViewManege { coreDatasetTableFieldMapper.deleteById(id); } + public void deleteFieldByChartId(Long chartId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("chart_id", chartId); + coreDatasetTableFieldMapper.delete(queryWrapper); + } + public DatasetTableFieldDTO createCountField(Long id) { DatasetTableFieldDTO dto = new DatasetTableFieldDTO(); dto.setId(-1L); diff --git a/core/core-backend/src/main/java/io/dataease/chart/server/ChartViewServer.java b/core/core-backend/src/main/java/io/dataease/chart/server/ChartViewServer.java index 5da0abd39d..383ba7dbb3 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/server/ChartViewServer.java +++ b/core/core-backend/src/main/java/io/dataease/chart/server/ChartViewServer.java @@ -67,4 +67,9 @@ public class ChartViewServer implements ChartViewApi { public void deleteField(Long id) { chartViewManege.deleteField(id); } + + @Override + public void deleteFieldByChart(Long chartId) { + chartViewManege.deleteFieldByChartId(chartId); + } } diff --git a/core/core-frontend/src/api/chart.ts b/core/core-frontend/src/api/chart.ts index 46cc45843a..f03cf4d11a 100644 --- a/core/core-frontend/src/api/chart.ts +++ b/core/core-frontend/src/api/chart.ts @@ -44,6 +44,12 @@ export const deleteChartField = async (id): Promise => { }) } +export const deleteChartFieldByChartId = async (chartId): Promise => { + return request.post({ url: `/chart/deleteFieldByChart/${chartId}`, data: {} }).then(res => { + return res?.data + }) +} + // 通过图表对象获取数据 export const getData = async (data): Promise => { delete data.data diff --git a/core/core-frontend/src/views/chart/components/editor/index.vue b/core/core-frontend/src/views/chart/components/editor/index.vue index 562247d497..7fd175654a 100644 --- a/core/core-frontend/src/views/chart/components/editor/index.vue +++ b/core/core-frontend/src/views/chart/components/editor/index.vue @@ -50,7 +50,13 @@ import chartViewManager from '@/views/chart/components/js/panel' import DatasetSelect from '@/views/chart/components/editor/dataset-select/DatasetSelect.vue' import { useDraggable } from '@vueuse/core' import { set, concat, keys } from 'lodash-es' -import { Field, getFieldByDQ, copyChartField, deleteChartField } from '@/api/chart' +import { + Field, + getFieldByDQ, + copyChartField, + deleteChartField, + deleteChartFieldByChartId +} from '@/api/chart' import ChartTemplateInfo from '@/views/chart/components/editor/common/ChartTemplateInfo.vue' import { XpackComponent } from '@/components/plugin' import { useEmbedded } from '@/store/modules/embedded' @@ -191,15 +197,22 @@ provide('filedList', () => filedList.value) watch( [() => view.value['tableId']], () => { - getFields(props.view.tableId, props.view.id) - const nodeId = view.value['tableId'] - if (!!nodeId) { - cacheId = nodeId as unknown as string - } - const node = datasetSelector?.value?.getNode(nodeId) - if (node?.data) { - curDatasetWeight.value = node.data.weight - } + fieldLoading.value = true + deleteChartFieldByChartId(props.view.id) + .then(() => { + getFields(props.view.tableId, props.view.id) + const nodeId = view.value['tableId'] + if (!!nodeId) { + cacheId = nodeId as unknown as string + } + const node = datasetSelector?.value?.getNode(nodeId) + if (node?.data) { + curDatasetWeight.value = node.data.weight + } + }) + .catch(() => { + fieldLoading.value = false + }) }, { deep: true } ) diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/chart/ChartViewApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/chart/ChartViewApi.java index 51a7d8a087..02b729b2ac 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/chart/ChartViewApi.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/chart/ChartViewApi.java @@ -51,4 +51,8 @@ public interface ChartViewApi { @Operation(summary = "视图删除字段") @PostMapping("deleteField/{id}") void deleteField(@PathVariable Long id); + + @Operation(summary = "清空当前视图计算字段") + @PostMapping("deleteFieldByChart/{chartId}") + void deleteFieldByChart(@PathVariable Long chartId); }