diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 5bc83c1d43..22210b6bab 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -616,6 +616,9 @@ public class DataSetTableService { // check doris table if (!checkEngineTableIsExists(dataSetTableRequest.getId())) { if (dataSetTableRequest.isPreviewForTask()) { + map.put("fields", fields); + map.put("data", new ArrayList<>()); + map.put("page", new DataSetPreviewPage()); return map; } else { throw new RuntimeException(Translator.get("i18n_data_not_sync")); diff --git a/frontend/src/components/canvas/components/Editor/Preview.vue b/frontend/src/components/canvas/components/Editor/Preview.vue index cf2618a374..2e40f650d6 100644 --- a/frontend/src/components/canvas/components/Editor/Preview.vue +++ b/frontend/src/components/canvas/components/Editor/Preview.vue @@ -75,7 +75,7 @@ import { mapState } from 'vuex' import ComponentWrapper from './ComponentWrapper' import { changeStyleWithScale } from '@/components/canvas/utils/translate' import { uuid } from 'vue-uuid' -import {deepCopy, imgUrlTrans} from '@/components/canvas/utils/utils' +import { deepCopy, imgUrlTrans } from '@/components/canvas/utils/utils' import eventBus from '@/components/canvas/utils/eventBus' import elementResizeDetectorMaker from 'element-resize-detector' import UserViewDialog from '@/components/canvas/custom-component/UserViewDialog' @@ -330,6 +330,13 @@ export default { if (component.type === 'view' && this.buttonFilterMap[component.propValue.viewId]) { component.filters = this.buttonFilterMap[component.propValue.viewId] } + if (component.type === 'de-tabs') { + for (let idx = 0; idx < component.options.tabList.length; idx++) { + const ele = component.options.tabList[idx].content + if (!ele.type || ele.type !== 'view') continue + ele.filters = this.buttonFilterMap[ele.propValue.viewId] + } + } }) }, buildButtonFilterMap(panelItems, isClear = false) { diff --git a/frontend/src/components/canvas/components/Editor/SettingMenu.vue b/frontend/src/components/canvas/components/Editor/SettingMenu.vue index 03f610bc6f..8bf5c7dfec 100644 --- a/frontend/src/components/canvas/components/Editor/SettingMenu.vue +++ b/frontend/src/components/canvas/components/Editor/SettingMenu.vue @@ -135,6 +135,16 @@ export default { }, deleteComponent() { + if (this.curComponent.type === 'custom-button' && this.curComponent.serviceName === 'buttonSureWidget') { + let len = this.componentData.length + while (len--) { + const item = this.componentData[len] + + if (item.type === 'custom-button' && item.serviceName === 'buttonResetWidget') { + this.componentData.splice(len, 1) + } + } + } this.$emit('amRemoveItem') this.deleteCurCondition() this.$store.commit('deleteComponent') diff --git a/frontend/src/components/canvas/components/Editor/index.vue b/frontend/src/components/canvas/components/Editor/index.vue index 189782501b..df535a5241 100644 --- a/frontend/src/components/canvas/components/Editor/index.vue +++ b/frontend/src/components/canvas/components/Editor/index.vue @@ -189,7 +189,7 @@ import DeDrag from '@/components/DeDrag' // eslint-disable-next-line no-unused-vars import { getStyle, getComponentRotatedStyle } from '@/components/canvas/utils/style' -import {_$, imgUrlTrans} from '@/components/canvas/utils/utils' +import { _$, imgUrlTrans } from '@/components/canvas/utils/utils' import ContextMenu from './ContextMenu' import MarkLine from './MarkLine' import Area from './Area' @@ -1133,6 +1133,13 @@ export default { if (component.type === 'view' && this.buttonFilterMap[component.propValue.viewId]) { component.filters = this.buttonFilterMap[component.propValue.viewId] } + if (component.type === 'de-tabs') { + for (let idx = 0; idx < component.options.tabList.length; idx++) { + const ele = component.options.tabList[idx].content + if (!ele.type || ele.type !== 'view') continue + ele.filters = this.buttonFilterMap[ele.propValue.viewId] + } + } }) }, buildButtonFilterMap(panelItems, isClear = false) { diff --git a/frontend/src/components/canvas/custom-component/UserView.vue b/frontend/src/components/canvas/custom-component/UserView.vue index 10a4e25df5..6805b544de 100644 --- a/frontend/src/components/canvas/custom-component/UserView.vue +++ b/frontend/src/components/canvas/custom-component/UserView.vue @@ -368,7 +368,7 @@ export default { }, 'cfilters': { handler: function(val1, val2) { - if (isChange(val1, val2) && !this.isFirstLoad) { + if ((isChange(val1, val2) || isChange(val1, this.filters)) && !this.isFirstLoad) { this.getData(this.element.propValue.viewId) } }, diff --git a/frontend/src/utils/conditionUtil.js b/frontend/src/utils/conditionUtil.js index a9b8dc42ac..5cbd3ecbea 100644 --- a/frontend/src/utils/conditionUtil.js +++ b/frontend/src/utils/conditionUtil.js @@ -100,7 +100,6 @@ export const buildFilterMap = panelItems => { let result = buildViewKeyMap(panelItems) result = buildViewKeyFilters(panelItems, result) - fillElementsFilter(panelItems, result) return result } diff --git a/frontend/src/views/panel/filter/index.vue b/frontend/src/views/panel/filter/index.vue index a99b39cf2a..49e3f0bc5a 100644 --- a/frontend/src/views/panel/filter/index.vue +++ b/frontend/src/views/panel/filter/index.vue @@ -9,9 +9,9 @@ v-for="(widget, index) in item" :key="widget.widgetName+index" :data-id="widget.widgetName" - :draggable="(widget.widgetName !== 'buttonSureWidget' && widget.widgetName !== 'buttonResetWidget') || (widget.widgetName === 'buttonSureWidget' && !searchButtonExist) || (widget.widgetName === 'buttonResetWidget' && searchButtonExist)" + :draggable="(widget.widgetName !== 'buttonSureWidget' && widget.widgetName !== 'buttonResetWidget') || (widget.widgetName === 'buttonSureWidget' && !searchButtonExist) || (widget.widgetName === 'buttonResetWidget' && searchButtonExist && !resetButtonExist)" :data-index="index" - :class="'filter-widget '+ (widget.defaultClass || '')" + :class="('filter-widget '+ (widget.widgetName === 'buttonSureWidget' ? sureButtonClass : widget.widgetName === 'buttonResetWidget' ? resetButtonClass : widget.defaultClass))" >