diff --git a/core/frontend/src/components/canvas/components/editor/ComponentWrapper.vue b/core/frontend/src/components/canvas/components/editor/ComponentWrapper.vue index e498d062e6..8ae431370f 100644 --- a/core/frontend/src/components/canvas/components/editor/ComponentWrapper.vue +++ b/core/frontend/src/components/canvas/components/editor/ComponentWrapper.vue @@ -236,6 +236,11 @@ export default { runAnimation(this.$el, this.config.animations) }, methods: { + triggerFilterLoaded(p) { + if (this.config.type === 'de-tabs') { + this.$refs.wrapperChild?.triggerTabsFilterLoaded(p) + } + }, filterLoaded(p) { this.$emit('filter-loaded', p) }, diff --git a/core/frontend/src/components/canvas/components/editor/Preview.vue b/core/frontend/src/components/canvas/components/editor/Preview.vue index 160735c00b..d6ec95d4fe 100644 --- a/core/frontend/src/components/canvas/components/editor/Preview.vue +++ b/core/frontend/src/components/canvas/components/editor/Preview.vue @@ -445,7 +445,6 @@ export default { this.canvasId === 'canvas-main' && bus.$on('pcChartDetailsDialog', this.openChartDetailsDialog) bus.$on('trigger-search-button', this.triggerSearchButton) bus.$on('trigger-reset-button', this.triggerResetButton) - bus.$on('trigger-filter-loaded', this.triggerFilterLoaded) this.initPdfTemplate() }, beforeDestroy() { @@ -461,17 +460,11 @@ export default { this.canvasId === 'canvas-main' && bus.$off('pcChartDetailsDialog', this.openChartDetailsDialog) bus.$off('trigger-search-button', this.triggerSearchButton) bus.$off('trigger-reset-button', this.triggerResetButton) - bus.$off('trigger-filter-loaded', this.triggerFilterLoaded) }, methods: { - triggerFilterLoaded({ canvasIdStr, panelId, p }) { - if (this.panelInfo.id === panelId && !canvasIdStr.includes(this.canvasId)) { - this.filterLoaded(p, canvasIdStr) - } - }, - filterLoaded(p, canvasIdStr = '') { + filterLoaded(p) { buildAfterFilterLoaded(this.filterMap, p) - bus.$emit('trigger-filter-loaded', { canvasIdStr: (canvasIdStr + this.canvasId), panelId: this.panelInfo.id, p }) + this.getWrapperChildRefs().forEach(item => item.triggerFilterLoaded(p)) }, getWrapperChildRefs() { return this.$refs['viewWrapperChild'] diff --git a/core/frontend/src/components/widget/deWidget/DeTabs.vue b/core/frontend/src/components/widget/deWidget/DeTabs.vue index 66e8581be7..d1689e9421 100644 --- a/core/frontend/src/components/widget/deWidget/DeTabs.vue +++ b/core/frontend/src/components/widget/deWidget/DeTabs.vue @@ -495,8 +495,18 @@ export default { bus.$off('add-new-tab', this.addNewTab) }, methods: { - setTabLayout: _.debounce(function () { - this.headClassScroll = !!this.$refs?.deTabsConstom?.$refs?.tabsConstom?.$refs?.nav?.scrollable ? 'head-class-scroll' : '' + triggerTabsFilterLoaded(p) { + if (!this.element.options.tabList.length) { + return + } + const item = this.element.options.tabList[0] + if (item.content && item.content.type === 'canvas' && (!this.isEdit || this.mobileLayoutStatus)) { + const targetRef = this.$refs['canvasTabRef-' + this.activeTabName] + targetRef?.length && targetRef[0].filterLoaded(p) + } + }, + setTabLayout: _.debounce(function() { + this.headClassScroll = this.$refs?.deTabsConstom?.$refs?.tabsConstom?.$refs?.nav?.scrollable ? 'head-class-scroll' : '' }, 100), calcTabLength() { this.$nextTick(() => {