From ed3117af5b05385bca79f86d81d833feab745bb6 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 29 Nov 2023 14:12:36 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=B8=8B=E6=8B=89=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=99=A8=E9=A6=96=E9=80=89=E9=A1=B9=E4=BD=9C=E7=94=A8=E4=BA=8E?= =?UTF-8?q?tab=E4=B8=AD=E8=A7=86=E5=9B=BE(=E7=BC=96=E8=BE=91=E7=8A=B6?= =?UTF-8?q?=E6=80=81)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/frontend/src/utils/conditionUtil.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/core/frontend/src/utils/conditionUtil.js b/core/frontend/src/utils/conditionUtil.js index 791a9e9d4a..0c960538b9 100644 --- a/core/frontend/src/utils/conditionUtil.js +++ b/core/frontend/src/utils/conditionUtil.js @@ -90,7 +90,13 @@ export const buildCanvasIdMap = panelItems => { const cacheCondition = (cb, obj) => { obj.cb = cb } -export const buildViewKeyFilters = (panelItems, result) => { + +const crossCanvasFilter = (filterEle, viewId) => { + const filterCanvas = filterEle.canvasId + const canvasIdMap = buildCanvasIdMap(store.state.componentData) + return canvasIdMap[viewId] !== filterCanvas +} +export const buildViewKeyFilters = (panelItems, result, isEdit = false) => { if (!(panelItems && panelItems.length > 0)) { return result } @@ -112,7 +118,7 @@ export const buildViewKeyFilters = (panelItems, result) => { // 进行过滤时 如果过滤组件在主画布 则条件适用于所有画布视图 否则需要过滤组件和视图在相同画布 if (element.canvasId === 'canvas-main' || element.canvasId === canvasIdMap[viewId]) { const vidMatch = viewIdMatch(condition.viewIds, viewId) - if (vidMatch && selectFirst) { + if (vidMatch && selectFirst && !(crossCanvasFilter(element, viewId) && isEdit)) { const obj = {} const promise = new Promise(resolve => { cacheCondition(cbParam => { @@ -139,10 +145,9 @@ export const buildViewKeyFilters = (panelItems, result) => { }) return result } -export const buildFilterMap = panelItems => { +export const buildFilterMap = (panelItems, isEdit = false) => { let result = buildViewKeyMap(panelItems) - - result = buildViewKeyFilters(panelItems, result) + result = buildViewKeyFilters(panelItems, result, isEdit) return result }