From fbd900735f6407974712fdb22bcd64221a6636ba Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Wed, 19 Mar 2025 14:15:38 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=9F=A5=E8=AF=A2=E7=BB=84=E4=BB=B6):=20?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=BB=84=E4=BB=B6=E4=B8=8B=E6=8B=89=E6=A0=91?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v-query/QueryConditionConfiguration.vue | 38 +++++++++++++++++-- 1 file changed, 35 insertions(+), 3 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 85cbc9ecf7..d853974b0b 100644 --- a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue +++ b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue @@ -336,6 +336,7 @@ const handleCheckedFieldsChangeTree = (value: string[]) => { setSameId() if (curComponent.value.displayType === '8') return setTreeDefault() + setRelationBack() setType() } @@ -484,7 +485,7 @@ const timeTypeChange = () => { } const setTreeDefault = () => { - if (curComponent.value.displayType !== '9') return + if (curComponent.value.displayType !== '9' || relationshipChartIndex.value !== 0) return if (!!curComponent.value.checkedFields.length) { let tableId = '' fields.value.forEach(ele => { @@ -709,6 +710,7 @@ const setParameters = field => { if (notChangeType) return setType() setTreeDefault() + setRelationBack() } const setType = () => { @@ -770,6 +772,7 @@ const setTypeChange = () => { curComponent.value.timeGranularityMultiple = curComponent.value.timeGranularity } setTreeDefault() + setRelationBack() }) } @@ -1856,12 +1859,33 @@ const saveTree = arr => { } const showError = computed(() => { if (!curComponent.value) return false - const { optionValueSource, checkedFieldsMap, checkedFields, field, valueSource, displayType } = - curComponent.value + const { + optionValueSource, + checkedFieldsMap, + checkedFields, + field, + valueSource, + displayType, + treeCheckedList, + treeFieldList + } = curComponent.value const arr = checkedFields.filter(ele => !!checkedFieldsMap[ele]) if (!checkedFields.length || !arr.length) { return true } + + if (9 === +displayType) { + for (const key in treeCheckedList) { + if (key > treeFieldList.length) continue + const treeArr = treeCheckedList[key].checkedFields.filter( + ele => !!treeCheckedList[key].checkedFieldsMap[ele] + ) + if (!treeCheckedList[key].checkedFields.length || !treeArr.length) { + return true + } + } + } + if ([1, 7, 8, 22, 9].includes(+displayType)) { return false } @@ -2099,6 +2123,13 @@ const notCurrentEle = (ele, index) => { handleRelationshipChart(index) } } + +const setRelationBack = () => { + curComponent.value.treeCheckedList[relationshipChartIndex.value] = { + checkedFields: [...curComponent.value.checkedFields], + checkedFieldsMap: cloneDeep(curComponent.value.checkedFieldsMap) + } +} const handleRelationshipChart = index => { if (curComponent.value.treeCheckedList?.length) { curComponent.value.treeCheckedList[relationshipChartIndex.value] = { @@ -2188,6 +2219,7 @@ const renameInputBlur = () => { } const addQueryCriteria = () => { + relationshipChartIndex.value = 0 conditions.value.push(parameterCompletion(addQueryCriteriaConfig())) }