diff --git a/core/core-frontend/src/components/dashboard/DbToolbar.vue b/core/core-frontend/src/components/dashboard/DbToolbar.vue index e4628809c3..28802b75ae 100644 --- a/core/core-frontend/src/components/dashboard/DbToolbar.vue +++ b/core/core-frontend/src/components/dashboard/DbToolbar.vue @@ -286,7 +286,8 @@ const backHandler = (url: string) => { return } wsCache.delete('DE-DV-CATCH-' + dvInfo.value.id) - window.open(url, '_self') + wsCache.set('db-info-id', dvInfo.value.id) + history.back() } const multiplexingCanvasOpen = () => { diff --git a/core/core-frontend/src/components/data-visualization/DvToolbar.vue b/core/core-frontend/src/components/data-visualization/DvToolbar.vue index 500f12511f..36be9d297c 100644 --- a/core/core-frontend/src/components/data-visualization/DvToolbar.vue +++ b/core/core-frontend/src/components/data-visualization/DvToolbar.vue @@ -235,7 +235,8 @@ const backHandler = (url: string) => { } dvMainStore.canvasStateChange({ key: 'curPointArea', value: 'base' }) wsCache.delete('DE-DV-CATCH-' + dvInfo.value.id) - window.open(url, '_self') + wsCache.set('dv-info-id', dvInfo.value.id) + history.back() } const openHandler = ref(null) diff --git a/core/core-frontend/src/views/common/DeResourceTree.vue b/core/core-frontend/src/views/common/DeResourceTree.vue index 048841b7e0..4f499c44aa 100644 --- a/core/core-frontend/src/views/common/DeResourceTree.vue +++ b/core/core-frontend/src/views/common/DeResourceTree.vue @@ -186,7 +186,9 @@ const menuList = computed(() => { return list }) -const dvId = embeddedStore.dvId || router.currentRoute.value.query.dvId +const infoId = wsCache.get(curCanvasType.value === 'dashboard' ? 'db-info-id' : 'dv-info-id') +const dvId = embeddedStore.dvId || infoId +wsCache.delete(curCanvasType.value === 'dashboard' ? 'db-info-id' : 'dv-info-id') if (dvId && showPosition.value === 'preview') { selectedNodeKey.value = dvId returnMounted.value = true diff --git a/core/core-frontend/src/views/visualized/data/dataset/form/index.vue b/core/core-frontend/src/views/visualized/data/dataset/form/index.vue index 3a6e81f1a5..4e3aed5f72 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/form/index.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/form/index.vue @@ -27,6 +27,7 @@ import { onMounted, onBeforeUnmount } from 'vue' +import { useCache } from '@/hooks/web/useCache' import { useI18n } from '@/hooks/web/useI18n' import { useEmitt } from '@/hooks/web/useEmitt' import { ElIcon, ElMessageBox, ElMessage } from 'element-plus-secondary' @@ -37,7 +38,7 @@ import EmptyBackground from '@/components/empty-background/src/EmptyBackground.v import { Icon } from '@/components/icon-custom' import { useWindowSize } from '@vueuse/core' import CalcFieldEdit from './CalcFieldEdit.vue' -import { useRoute, useRouter } from 'vue-router' +import { useRoute } from 'vue-router' import UnionEdit from './UnionEdit.vue' import type { FormInstance } from 'element-plus-secondary' import type { BusiTreeNode } from '@/models/tree/TreeNode' @@ -72,11 +73,11 @@ interface Field { originName: string deType: number } +const { wsCache } = useCache() const appStore = useAppStoreWithOut() const embeddedStore = useEmbedded() const { t } = useI18n() const route = useRoute() -const { push } = useRouter() const quotaTableHeight = ref(238) const creatDsFolder = ref() const editCalcField = ref(false) @@ -249,12 +250,8 @@ const pushDataset = () => { return } const routeName = embeddedStore.getToken && appStore.getIsIframe ? 'dataset-embedded' : 'dataset' - push({ - name: routeName, - params: { - id: nodeInfo.id - } - }) + wsCache.set(`${routeName}-info-id`, nodeInfo.id) + history.back() } const backToMain = () => { diff --git a/core/core-frontend/src/views/visualized/data/dataset/index.vue b/core/core-frontend/src/views/visualized/data/dataset/index.vue index e7f40c8182..811704349f 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/index.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/index.vue @@ -340,7 +340,9 @@ const dfsDatasetTree = (ds, id) => { } onBeforeMount(() => { - nodeInfo.id = (route.params.id as string) || (route.query.id as string) || '' + const paramId = wsCache.get('dataset-info-id') + nodeInfo.id = (paramId as string) || (route.query.id as string) || '' + wsCache.delete('dataset-info-id') loadInit() getData() getLimit()