From b2ff13ad845bfe89fa483a90a793cca0aad994cb Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Mon, 14 Oct 2024 09:53:20 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=9F=A5=E8=AF=A2=E7=BB=84=E4=BB=B6):=20?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4=E7=BB=84=E4=BB=B6=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E6=94=AF=E6=8C=81=E7=BB=91=E5=AE=9A=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=92=8C=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E4=B8=A4=E4=B8=AA=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/hooks/web/useFilter.ts | 39 +++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/core/core-frontend/src/hooks/web/useFilter.ts b/core/core-frontend/src/hooks/web/useFilter.ts index 16358eb335..09f0ab5c1d 100644 --- a/core/core-frontend/src/hooks/web/useFilter.ts +++ b/core/core-frontend/src/hooks/web/useFilter.ts @@ -213,6 +213,19 @@ const getOperator = ( return [1, 7].includes(+displayType) ? 'between' : multiple ? 'in' : 'eq' } +const duplicateRemoval = arr => { + const objList = [] + let idList = arr.map(ele => ele.id) + for (let index = 0; index < arr.length; index++) { + const element = arr[index] + if (idList.includes(element.id)) { + objList.push(element) + idList = idList.filter(ele => ele !== element.id) + } + } + return objList +} + export const searchQuery = (queryComponentList, filter, curComponentId, firstLoad) => { queryComponentList.forEach(ele => { if (!!ele.propValue?.length) { @@ -357,12 +370,14 @@ export const searchQuery = (queryComponentList, filter, curComponentId, firstLoa const fieldId = isTree ? getFieldId(treeFieldList, result) : item.checkedFieldsMap[curComponentId] - let parametersFilter = parameters.reduce((pre, next) => { - if (next.id === fieldId && !pre.length) { - pre.push(next) - } - return pre - }, []) + let parametersFilter = duplicateRemoval( + parameters.reduce((pre, next) => { + if (next.id === fieldId && !pre.length) { + pre.push(next) + } + return pre + }, []) + ) if (item.checkedFieldsMapArr?.[curComponentId]?.length) { const endTimeFieldId = item.checkedFieldsMapArr?.[curComponentId].find( @@ -378,17 +393,19 @@ export const searchQuery = (queryComponentList, filter, curComponentId, firstLoa ? result[0] : result[1] ) - parametersFilter = item.parametersArr[curComponentId].filter( - e => e.id === fieldId + parametersFilter = duplicateRemoval( + item.parametersArr[curComponentId].filter(e => e.id === fieldId) + ) + + const parametersFilterEnd = duplicateRemoval( + item.parametersArr[curComponentId].filter(e => e.id === endTimeFieldId) ) filter.push({ componentId: ele.id, fieldId: endTimeFieldId, operator, value: resultEnd, - parameters: item.parametersArr[curComponentId].filter( - e => e.id === endTimeFieldId - ), + parameters: parametersFilterEnd, isTree }) }