From 34f2ad94117b3c2a5ac6484f88bc966fd22445dd Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Fri, 28 Mar 2025 15:04:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=9F=A5=E8=AF=A2=E7=BB=84=E4=BB=B6):=20?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E6=A0=91=E4=B8=8D=E5=90=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=E7=9A=84=E5=9B=BE=E8=A1=A8=EF=BC=8C=E6=9C=AA=E5=93=8D?= =?UTF-8?q?=E5=BA=94=E5=AF=B9=E5=BA=94=E5=B1=82=E7=BA=A7=E7=9A=84=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v-query/QueryConditionConfiguration.vue | 29 +++++++++++++++++++ core/core-frontend/src/hooks/web/useFilter.ts | 11 +++++-- 2 files changed, 37 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 7c766d9369..853341084c 100644 --- a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue +++ b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue @@ -1483,6 +1483,7 @@ const handleBeforeClose = () => { defaultConfigurationRef.value?.single() handleDialogClick() curComponent.value.id = '' + relationshipChartIndex.value = 0 dialogVisible.value = false } const emits = defineEmits(['queryData']) @@ -1596,6 +1597,7 @@ const setActiveSelectTab = (arr, id) => { const init = (queryId: string) => { initDataset() + relationshipChartIndex.value = 0 renameInput.value = [] handleCondition({ id: queryId }) cascadeArr = cloneDeep(queryElement.value.cascade || []) @@ -1887,7 +1889,34 @@ const startTreeDesign = () => { } const saveTree = arr => { curComponent.value.treeFieldList = arr + setSameField() } + +const setSameField = () => { + curComponent.value.treeFieldList.forEach((ele, index) => { + if (!curComponent.value.treeCheckedList[index]) { + curComponent.value.treeCheckedList = [ + ...curComponent.value.treeCheckedList, + { + checkedFields: [...curComponent.value.checkedFields], + checkedFieldsMap: cloneDeep(curComponent.value.checkedFieldsMap) + } + ] + } + fields.value.forEach(item => { + const ids = item.fields.dimensionList.map(itx => itx.id) + if (ids.includes(ele.id)) { + curComponent.value.treeCheckedList[index].checkedFieldsMap[item.componentId] = ele.id + } + }) + }) + + curComponent.value.checkedFields = + curComponent.value.treeCheckedList[relationshipChartIndex.value].checkedFields + curComponent.value.checkedFieldsMap = + curComponent.value.treeCheckedList[relationshipChartIndex.value].checkedFieldsMap +} + const showError = computed(() => { if (!curComponent.value) return false const { diff --git a/core/core-frontend/src/hooks/web/useFilter.ts b/core/core-frontend/src/hooks/web/useFilter.ts index dd1114a574..fbf05e60a7 100644 --- a/core/core-frontend/src/hooks/web/useFilter.ts +++ b/core/core-frontend/src/hooks/web/useFilter.ts @@ -79,7 +79,7 @@ const getDayEnd = timestamp => { ] } -const getFieldId = (arr, result, relationshipChartIndex) => { +const getFieldId = (arr, result, relationshipChartIndex, ids) => { const [obj] = [...result].reverse() const valArr = obj.split(',') const idArr = arr.map(ele => ele.id) @@ -90,7 +90,10 @@ const getFieldId = (arr, result, relationshipChartIndex) => { for (const key in result) { result[key] = indexArr.map(ele => result[key].split(',')[ele]).join(',') } - return [indexArr.map(ele => idArr[ele]).join(','), result.filter(ele => !ele.endsWith(','))] + return [ + indexArr.map(ele => ids[ele]).join(','), + result.filter(ele => !ele.endsWith(',') && !!ele) + ] } } @@ -286,6 +289,7 @@ export const searchQuery = (queryComponentList, filter, curComponentId, firstLoa ele.propValue.forEach(item => { let shouldSearch = false const relationshipChartIndex = [] + const ids = Array(5).fill(1) if (item.displayType === '9' && item.treeCheckedList?.length) { item.treeCheckedList.forEach((itx, idx) => { if ( @@ -294,6 +298,7 @@ export const searchQuery = (queryComponentList, filter, curComponentId, firstLoa idx < item.treeFieldList.length ) { relationshipChartIndex.push(idx) + ids[idx] = itx.checkedFieldsMap[curComponentId] } }) } else { @@ -448,7 +453,7 @@ export const searchQuery = (queryComponentList, filter, curComponentId, firstLoa if (result?.length) { let fieldId = item.checkedFieldsMap[curComponentId] if (isTree) { - const [i, r] = getFieldId(treeFieldList, result, relationshipChartIndex) + const [i, r] = getFieldId(treeFieldList, result, relationshipChartIndex, ids) fieldId = i result = r }