fix(查询组件): 下拉树不同数据集的图表,未响应对应层级的过滤

This commit is contained in:
dataeaseShu
2025-03-28 15:04:32 +08:00
committed by xuwei-fit2cloud
parent 34d96ac170
commit 34f2ad9411
2 changed files with 37 additions and 3 deletions

View File

@@ -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 {

View File

@@ -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
}