From cf8e361d12d7cf97a36a3012cbe61853483028d4 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Wed, 31 Jul 2024 10:31:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=9F=A5=E8=AF=A2=E7=BB=84=E4=BB=B6):=20?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E7=BB=84=E4=BB=B6=E6=9B=B4=E6=96=B0=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E6=9D=A1=E4=BB=B6=E7=BA=A7=E8=81=94=E4=B8=AD=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E6=9D=A1=E4=BB=B6=E6=B2=A1=E6=9C=89=E7=BD=AE=E7=A9=BA?= =?UTF-8?q?=E6=88=96=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v-query/QueryConditionConfiguration.vue | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue index 2a52e277b2..6fa399748f 100644 --- a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue +++ b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue @@ -19,7 +19,7 @@ import { getThisStart, getLastStart, getAround } from './time-format-dayjs' import { snapshotStoreWithOut } from '@/store/modules/data-visualization/snapshot' import { useI18n } from '@/hooks/web/useI18n' import { fieldType } from '@/utils/attr' -import { ElMessage, ElSelect } from 'element-plus-secondary' +import { ElMessage, ElSelect, ElMessageBox } from 'element-plus-secondary' import type { DatasetDetail } from '@/api/dataset' import { getDsDetailsWithPerm, getSqlParams, listFieldsWithPermissions } from '@/api/dataset' import EmptyBackground from '@/components/empty-background/src/EmptyBackground.vue' @@ -156,7 +156,6 @@ const datasetTree = shallowRef([]) const fields = ref() const { queryElement } = toRefs(props) - const getDetype = (id, arr) => { return arr.flat().find(ele => ele.id === id)?.deType } @@ -419,8 +418,39 @@ const computedTree = computed(() => { } return dfs(datasetTree.value) }) +let newDatasetId = '' +let oldDatasetId = '' +const handleCurrentChange = node => { + oldDatasetId = curComponent.value.dataset?.id + newDatasetId = node.id +} + +const confirmIdChange = () => { + curComponent.value.dataset.id = newDatasetId + clearCascadeArrDataset(`${oldDatasetId}--${curComponent.value.id}`) + newDatasetId = '' + oldDatasetId = '' + handleDatasetChange() +} const handleDatasetChange = () => { + if (!!newDatasetId && !!oldDatasetId) { + curComponent.value.dataset.id = oldDatasetId + ElMessageBox.confirm( + '数据集的修改,会导致级联配置失效,因此对应的级联关系将被清除,确定修改吗?', + { + confirmButtonType: 'primary', + type: 'warning', + confirmButtonText: '确定', + cancelButtonText: '取消', + autofocus: false, + showClose: false + } + ).then(() => { + confirmIdChange() + }) + return + } curComponent.value.field.id = '' curComponent.value.displayId = '' curComponent.value.sortId = '' @@ -580,6 +610,18 @@ const openCascadeDialog = () => { cascadeDialog.value.init(cascadeMap, cascadeArr) } +const clearCascadeArrDataset = id => { + for (let i in cascadeArr) { + const [fir, sec] = cascadeArr[i] + if (fir?.datasetId.includes(id)) { + cascadeArr[i] = [] + } else if (sec?.datasetId.includes(id)) { + cascadeArr[i] = [fir] + } + } + cascadeArr = cascadeArr.filter(ele => !!ele.length) +} + const indexCascade = ' 一二三四五' const validateConditionType = ({ @@ -1639,6 +1681,7 @@ defineExpose({ :data="computedTree" placeholder="请选择数据集" @change="handleDatasetChange" + @current-change="handleCurrentChange" :props="dsSelectProps" placement="bottom" :render-after-expand="false"