From 8de15b1f35001f0da3eb01c197d87bd7e71cde36 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Thu, 8 Aug 2024 14:07:47 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E4=BB=AA=E8=A1=A8=E6=9D=BF=E3=80=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F):=20=E5=AF=8C=E6=96=87?= =?UTF-8?q?=E6=9C=AC=E6=95=B0=E6=8D=AE=E9=9B=86=E6=B8=85=E7=90=86=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E8=BF=87=E6=BB=A4=E7=BB=84=E4=BB=B6=E7=A6=81?= =?UTF-8?q?=E7=94=A8=E6=9C=AA=E9=80=89=E6=95=B0=E6=8D=AE=E9=9B=86=E7=9A=84?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=AD=89=E4=BC=98=E5=8C=96=20#11324?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/manage/ChartViewManege.java | 9 +++++++- .../rich-text/DeRichTextView.vue | 15 ++++++++++++- .../editor/dataset-select/DatasetSelect.vue | 1 + .../views/chart/components/editor/index.vue | 22 ++++++++++++++++++- 4 files changed, 44 insertions(+), 3 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 8938200d42..b5e0d0b2c6 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 @@ -1,6 +1,7 @@ package io.dataease.chart.manage; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO; @@ -71,7 +72,13 @@ public class ChartViewManege { if (ObjectUtils.isEmpty(coreChartView)) { coreChartViewMapper.insert(record); } else { - coreChartViewMapper.updateById(record); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", record.getId()); + //富文本允许设置空的tableId 这里额外更新一下 + if(record.getTableId() == null){ + updateWrapper.set("table_id", null); + } + coreChartViewMapper.update(record,updateWrapper); } return chartViewDTO; } diff --git a/core/core-frontend/src/custom-component/rich-text/DeRichTextView.vue b/core/core-frontend/src/custom-component/rich-text/DeRichTextView.vue index 2f01da6a83..56d3458717 100644 --- a/core/core-frontend/src/custom-component/rich-text/DeRichTextView.vue +++ b/core/core-frontend/src/custom-component/rich-text/DeRichTextView.vue @@ -392,6 +392,19 @@ const calcData = (view: Chart, callback) => { }) callback?.() }) + } else if (!view.tableId) { + state.data = [] + state.viewDataInfo = {} + state.totalItems = 0 + const curViewInfo = canvasViewInfo.value[element.value.id] + curViewInfo['curFields'] = [] + dvMainStore.setViewDataDetails(element.value.id, state.data) + initReady.value = true + initCurFields(curViewInfo) + callback?.() + nextTick(() => { + initReady.value = true + }) } else { nextTick(() => { initReady.value = true @@ -472,7 +485,7 @@ const renderChart = viewInfo => { } const conditionAdaptor = (chart: Chart) => { - if (!chart) { + if (!chart || !chart.senior) { return } const { threshold } = parseJson(chart.senior) diff --git a/core/core-frontend/src/views/chart/components/editor/dataset-select/DatasetSelect.vue b/core/core-frontend/src/views/chart/components/editor/dataset-select/DatasetSelect.vue index 10c1a3383d..c305601fc6 100644 --- a/core/core-frontend/src/views/chart/components/editor/dataset-select/DatasetSelect.vue +++ b/core/core-frontend/src/views/chart/components/editor/dataset-select/DatasetSelect.vue @@ -214,6 +214,7 @@ const handleClear = e => { e.preventDefault() e.stopPropagation() dsClick({ leaf: true, id: null } as Tree) + useEmitt().emitter.emit('clear-remove', ['xAxis', 'yAxis', 'drillFields']) } const handleFocus = () => { 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 fa03d426c7..21180059c3 100644 --- a/core/core-frontend/src/views/chart/components/editor/index.vue +++ b/core/core-frontend/src/views/chart/components/editor/index.vue @@ -145,10 +145,23 @@ const { view } = toRefs(props) let cacheId = '' +const clearRemove = items => { + if (items) { + items.forEach(item => removeItems(item)) + } +} + onBeforeMount(() => { cacheId = route.query.id as unknown as string }) +onMounted(() => { + useEmitt({ + name: 'clear-remove', + callback: clearRemove + }) +}) + const appStore = useAppStoreWithOut() const isDataEaseBi = computed(() => appStore.getIsDataEaseBi) const itemFormRules = reactive({ @@ -1474,7 +1487,14 @@ const calcEle = () => { const setCacheId = () => { nextTick(() => { - if (!cacheId || !!view.value.tableId || templateStatusShow.value) return + // 富文本不使用cacheId + if ( + !cacheId || + !!view.value.tableId || + templateStatusShow.value || + view.value.type === 'rich-text' + ) + return view.value.tableId = cacheId as unknown as number }) }