From 399414f399d35bc2a9cd5e4f4b18bbdd520787af Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 7 Apr 2025 21:47:04 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E5=B7=A5=E4=BD=9C=E5=8F=B0):=20?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8F=B0=E5=88=86=E4=BA=AB=E6=94=B6=E8=97=8F?= =?UTF-8?q?=E7=AD=89=E7=8A=B6=E6=80=81=E5=8F=98=E6=9B=B4=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/ext/mapper/XpackShareExtMapper.java | 1 + .../share/dao/ext/po/XpackSharePO.java | 2 + .../share/manage/XpackShareManage.java | 3 +- .../dao/ext/mapper/CoreStoreExtMapper.java | 3 +- .../visualization/dao/ext/po/StorePO.java | 2 + .../manage/VisualizationStoreManage.java | 3 +- .../data-visualization/DvToolbar.vue | 72 +++++++++---------- .../src/views/share/share/ShareGrid.vue | 40 +++++++++-- .../src/views/workbranch/ShortcutTable.vue | 37 ++++++++-- .../vo/VisualizationStoreVO.java | 3 + .../api/xpack/share/vo/XpackShareGridVO.java | 2 + 11 files changed, 114 insertions(+), 54 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/share/dao/ext/mapper/XpackShareExtMapper.java b/core/core-backend/src/main/java/io/dataease/share/dao/ext/mapper/XpackShareExtMapper.java index 363ae39516..defe83caca 100644 --- a/core/core-backend/src/main/java/io/dataease/share/dao/ext/mapper/XpackShareExtMapper.java +++ b/core/core-backend/src/main/java/io/dataease/share/dao/ext/mapper/XpackShareExtMapper.java @@ -18,6 +18,7 @@ public interface XpackShareExtMapper { s.id as share_id, v.id as resource_id, v.mobile_layout as ext_flag, + v.status as ext_flag1, v.type, s.creator, s.time, diff --git a/core/core-backend/src/main/java/io/dataease/share/dao/ext/po/XpackSharePO.java b/core/core-backend/src/main/java/io/dataease/share/dao/ext/po/XpackSharePO.java index 26a3a3afe4..2a30ff8ec5 100644 --- a/core/core-backend/src/main/java/io/dataease/share/dao/ext/po/XpackSharePO.java +++ b/core/core-backend/src/main/java/io/dataease/share/dao/ext/po/XpackSharePO.java @@ -30,4 +30,6 @@ public class XpackSharePO implements Serializable { private Integer extFlag; + private Integer extFlag1; + } diff --git a/core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java b/core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java index 896be8ad13..b38e04cb59 100644 --- a/core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java +++ b/core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java @@ -154,7 +154,6 @@ public class XpackShareManage { Long uid = AuthUtils.getUser().getUserId(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("s.creator", uid); - queryWrapper.ne("v.status", 0); if (StringUtils.isNotBlank(request.getType())) { BusiResourceEnum busiResourceEnum = BusiResourceEnum.valueOf(request.getType().toUpperCase()); if (ObjectUtils.isEmpty(busiResourceEnum)) { @@ -208,7 +207,7 @@ public class XpackShareManage { return pos.stream().map(po -> new XpackShareGridVO( po.getShareId(), po.getResourceId(), po.getName(), po.getCreator().toString(), - po.getTime(), po.getExp(), 9, po.getExtFlag(), po.getType())).toList(); + po.getTime(), po.getExp(), 9, po.getExtFlag(),po.getExtFlag1(), po.getType())).toList(); } private XpackShareManage proxy() { diff --git a/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/CoreStoreExtMapper.java b/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/CoreStoreExtMapper.java index 0f4c231f49..b730e7f6d7 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/CoreStoreExtMapper.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/CoreStoreExtMapper.java @@ -19,7 +19,8 @@ public interface CoreStoreExtMapper { v.update_by as editor, v.update_time as edit_time, v.name, - v.mobile_layout as ext_flag + v.mobile_layout as ext_flag, + v.status as ext_flag1 from core_store s inner join data_visualization_info v on s.resource_id = v.id ${ew.customSqlSegment} diff --git a/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/po/StorePO.java b/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/po/StorePO.java index 2127dd42c3..75c33c3ee9 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/po/StorePO.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/po/StorePO.java @@ -26,4 +26,6 @@ public class StorePO implements Serializable { private Integer extFlag; + private Integer extFlag1; + } diff --git a/core/core-backend/src/main/java/io/dataease/visualization/manage/VisualizationStoreManage.java b/core/core-backend/src/main/java/io/dataease/visualization/manage/VisualizationStoreManage.java index c4c9fce645..bc4a484f35 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/manage/VisualizationStoreManage.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/manage/VisualizationStoreManage.java @@ -90,7 +90,7 @@ public class VisualizationStoreManage { new VisualizationStoreVO( po.getStoreId(), po.getResourceId(), po.getName(), po.getType(), String.valueOf(po.getCreator()), ObjectUtils.isEmpty(po.getEditor()) ? null : String.valueOf(po.getEditor()), - po.getEditTime(), 9, po.getExtFlag())).toList(); + po.getEditTime(), 9, po.getExtFlag(), po.getExtFlag1())).toList(); } public IPage queryStorePage(int goPage, int pageSize, VisualizationWorkbranchQueryRequest request) { @@ -112,7 +112,6 @@ public class VisualizationStoreManage { if (StringUtils.isNotBlank(info)) { queryWrapper.notExists(String.format(info, "s.resource_id")); } - queryWrapper.ne("v.status", 0); queryWrapper.orderBy(true, request.isAsc(), "v.update_time"); Page page = new Page<>(goPage, pageSize); return coreStoreExtMapper.query(page, queryWrapper); diff --git a/core/core-frontend/src/components/data-visualization/DvToolbar.vue b/core/core-frontend/src/components/data-visualization/DvToolbar.vue index 79cbf91e4c..6cd06935e2 100644 --- a/core/core-frontend/src/components/data-visualization/DvToolbar.vue +++ b/core/core-frontend/src/components/data-visualization/DvToolbar.vue @@ -13,14 +13,14 @@ import icon_undo_outlined from '@/assets/svg/icon_undo_outlined.svg' import icon_redo_outlined from '@/assets/svg/icon_redo_outlined.svg' import dvRecoverOutlined from '@/assets/svg/dv-recover_outlined.svg' import dvCancelPublish from '@/assets/svg/icon_undo_outlined.svg' -import {ElIcon, ElMessage, ElMessageBox} from 'element-plus-secondary' +import { ElIcon, ElMessage, ElMessageBox } from 'element-plus-secondary' import eventBus from '@/utils/eventBus' -import {ref, nextTick, computed, toRefs, onBeforeUnmount, onMounted} from 'vue' -import {useEmbedded} from '@/store/modules/embedded' -import {dvMainStoreWithOut} from '@/store/modules/data-visualization/dvMain' -import {snapshotStoreWithOut} from '@/store/modules/data-visualization/snapshot' -import {useAppStoreWithOut} from '@/store/modules/app' -import {storeToRefs} from 'pinia' +import { ref, nextTick, computed, toRefs, onBeforeUnmount, onMounted } from 'vue' +import { useEmbedded } from '@/store/modules/embedded' +import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain' +import { snapshotStoreWithOut } from '@/store/modules/data-visualization/snapshot' +import { useAppStoreWithOut } from '@/store/modules/app' +import { storeToRefs } from 'pinia' import Icon from '../icon-custom/src/Icon.vue' import ComponentGroup from '@/components/visualization/ComponentGroup.vue' import UserViewGroup from '@/custom-component/component-group/UserViewGroup.vue' @@ -35,10 +35,10 @@ import { findAllViewsId, initCanvasData } from '@/utils/canvasUtils' -import {changeSizeWithScale} from '@/utils/changeComponentsSizeWithScale' +import { changeSizeWithScale } from '@/utils/changeComponentsSizeWithScale' import MoreComGroup from '@/custom-component/component-group/MoreComGroup.vue' -import {XpackComponent} from '@/components/plugin' -import {useCache} from '@/hooks/web/useCache' +import { XpackComponent } from '@/components/plugin' +import { useCache } from '@/hooks/web/useCache' import QueryGroup from '@/custom-component/component-group/QueryGroup.vue' import ComponentButton from '@/components/visualization/ComponentButton.vue' import OuterParamsSet from '@/components/visualization/OuterParamsSet.vue' @@ -46,30 +46,30 @@ import MultiplexingCanvas from '@/views/common/MultiplexingCanvas.vue' import ComponentButtonLabel from '@/components/visualization/ComponentButtonLabel.vue' import DeFullscreen from '@/components/visualization/common/DeFullscreen.vue' import DeAppApply from '@/views/common/DeAppApply.vue' -import {useEmitt} from '@/hooks/web/useEmitt' -import {useUserStoreWithOut} from '@/store/modules/user' +import { useEmitt } from '@/hooks/web/useEmitt' +import { useUserStoreWithOut } from '@/store/modules/user' import TabsGroup from '@/custom-component/component-group/TabsGroup.vue' -import {useI18n} from '@/hooks/web/useI18n' -import {updatePublishStatus} from '@/api/visualization/dataVisualization' +import { useI18n } from '@/hooks/web/useI18n' +import { updatePublishStatus } from '@/api/visualization/dataVisualization' let nameEdit = ref(false) let inputName = ref('') let nameInput = ref(null) const dvMainStore = dvMainStoreWithOut() const snapshotStore = snapshotStoreWithOut() -const {styleChangeTimes, snapshotIndex} = storeToRefs(snapshotStore) +const { styleChangeTimes, snapshotIndex } = storeToRefs(snapshotStore) const resourceGroupOpt = ref(null) const resourceAppOpt = ref(null) const dvToolbarMain = ref(null) -const {componentData, canvasStyleData, canvasViewInfo, dvInfo, editMode, appData} = +const { componentData, canvasStyleData, canvasViewInfo, dvInfo, editMode, appData } = storeToRefs(dvMainStore) let scaleEdit = 100 -const {wsCache} = useCache('localStorage') +const { wsCache } = useCache('localStorage') const dvModel = 'dataV' const outerParamsSetRef = ref(null) const fullScreeRef = ref(null) const userStore = useUserStoreWithOut() -const {t} = useI18n() +const { t } = useI18n() const emits = defineEmits(['recoverToPublished']) const props = defineProps({ @@ -166,12 +166,12 @@ const saveCanvasWithCheck = (withPublish = false, status?) => { leaf: true, id: dvInfo.value.pid || '0' } - resourceGroupOpt.value.optInit('leaf', params, 'newLeaf', true, {withPublish, status}) + resourceGroupOpt.value.optInit('leaf', params, 'newLeaf', true, { withPublish, status }) } return } checkCanvasChangePre(() => { - saveResource({withPublish, status}) + saveResource({ withPublish, status }) }) } @@ -194,7 +194,7 @@ const saveResource = (checkParams?) => { ) } if (appData.value) { - initCanvasData(dvInfo.value.id, {busiFlag: 'dataV', resourceTable: 'snapshot'}, () => { + initCanvasData(dvInfo.value.id, { busiFlag: 'dataV', resourceTable: 'snapshot' }, () => { useEmitt().emitter.emit('refresh-dataset-selector') resourceAppOpt.value.close() dvMainStore.setAppDataInfo(null) @@ -213,7 +213,7 @@ const saveResource = (checkParams?) => { } const clearCanvas = () => { - dvMainStore.setCurComponent({component: null, index: null}) + dvMainStore.setCurComponent({ component: null, index: null }) dvMainStore.setComponentData([]) snapshotStore.recordSnapshotCache('renderChart') } @@ -264,7 +264,7 @@ const backHandler = (url: string) => { openHandler.value.invokeMethod(pm) return } - dvMainStore.canvasStateChange({key: 'curPointArea', value: 'base'}) + dvMainStore.canvasStateChange({ key: 'curPointArea', value: 'base' }) wsCache.delete('DE-DV-CATCH-' + dvInfo.value.id) wsCache.set('dv-info-id', dvInfo.value.id) if (!!history.state.back) { @@ -340,7 +340,7 @@ const publishStatusChange = status => { const isIframe = computed(() => appStore.getIsIframe) const fullScreenPreview = () => { - dvMainStore.canvasStateChange({key: 'curPointArea', value: 'base'}) + dvMainStore.canvasStateChange({ key: 'curPointArea', value: 'base' }) fullScreeRef.value.toggleFullscreen() } @@ -358,10 +358,8 @@ const fullScreenPreview = () => { diff --git a/core/core-frontend/src/views/workbranch/ShortcutTable.vue b/core/core-frontend/src/views/workbranch/ShortcutTable.vue index de30e13e49..098cd381c2 100644 --- a/core/core-frontend/src/views/workbranch/ShortcutTable.vue +++ b/core/core-frontend/src/views/workbranch/ShortcutTable.vue @@ -8,7 +8,7 @@ import icon_database_outlined from '@/assets/svg/icon_database_outlined.svg' import icon_operationAnalysis_outlined from '@/assets/svg/icon_operation-analysis_outlined.svg' import dvDashboardSpineMobile from '@/assets/svg/dv-dashboard-spine-mobile.svg' import icon_pc_outlined from '@/assets/svg/icon_pc_outlined.svg' -import icon_cancel_store from '@/assets/svg/icon_cancel_store.svg' +import dvDashboardSpineMobileDisabled from '@/assets/svg/dv-dashboard-spine-mobile-disabled.svg' import { useI18n } from '@/hooks/web/useI18n' import { ref, reactive, onMounted, computed, watch } from 'vue' import type { TabsPaneContext } from 'element-plus-secondary' @@ -61,6 +61,7 @@ const iconMap = { panelMobile: dvDashboardSpineMobile, dashboard: icon_dashboard_outlined, dashboardMobile: dvDashboardSpineMobile, + dashboardMobileDisabled: dvDashboardSpineMobileDisabled, screen: icon_operationAnalysis_outlined, dataV: icon_operationAnalysis_outlined, dataset: icon_app_outlined, @@ -198,7 +199,7 @@ const sortChange = param => { } const handleCellClick = row => { - if (row) { + if (row && !checkDisabled(row)) { const sourceId = activeName.value === 'recent' ? row.id : row.resourceId if (['dashboard', 'panel'].includes(row.type)) { window.open('#/panel/index?dvId=' + sourceId, '_self') @@ -238,6 +239,10 @@ const executeStore = rowInfo => { }) } +const checkDisabled = row => { + return activeName.value === 'store' && !row.extFlag1 +} + const executeCancelStore = rowInfo => { const param = { id: rowInfo.resourceId, @@ -352,18 +357,32 @@ const getEmptyDesc = (): string => { - + - {{ scope.row.name }} + {{ scope.row.name }} { .jump-active { cursor: pointer; } + +.color-disabled { + color: #bbbfc4; +} + +.custom-color-disabled { + background: #bbbfc4 !important; +}