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 }