From ff14fa5e4efaf4e3e6a307473e9bd2881da265c1 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期五, 18 四月 2025 12:55:34 +0800 Subject: [PATCH] 支持文件&图片组件自定义地址&参数 --- src/plugins/tab.js | 35 ++++++++++++++++++++--------------- 1 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/plugins/tab.js b/src/plugins/tab.js index e1ebcec..004aa86 100644 --- a/src/plugins/tab.js +++ b/src/plugins/tab.js @@ -1,29 +1,30 @@ -import store from '@/store' +import useTagsViewStore from '@/store/modules/tagsView' import router from '@/router' export default { // 鍒锋柊褰撳墠tab椤电 refreshPage(obj) { - const { path, matched } = router.currentRoute.value; + const { path, query, matched } = router.currentRoute.value; if (obj === undefined) { matched.forEach((m) => { if (m.components && m.components.default && m.components.default.name) { if (!['Layout', 'ParentView'].includes(m.components.default.name)) { - obj = { name: m.components.default.name, path: path }; + obj = { name: m.components.default.name, path: path, query: query }; } } }); } - return store.dispatch('tagsView/delCachedView', obj).then(() => { - const { path } = obj + return useTagsViewStore().delCachedView(obj).then(() => { + const { path, query } = obj router.replace({ - path: '/redirect' + path + path: '/redirect' + path, + query: query }) }) }, // 鍏抽棴褰撳墠tab椤电锛屾墦寮�鏂伴〉绛� closeOpenPage(obj) { - store.dispatch("tagsView/delView", router.currentRoute.value); + useTagsViewStore().delView(router.currentRoute.value); if (obj !== undefined) { return router.push(obj); } @@ -31,27 +32,31 @@ // 鍏抽棴鎸囧畾tab椤电 closePage(obj) { if (obj === undefined) { - return store.dispatch('tagsView/delView', router.currentRoute.value).then(({ lastPath }) => { - return router.push(lastPath || '/index'); + return useTagsViewStore().delView(router.currentRoute.value).then(({ visitedViews }) => { + const latestView = visitedViews.slice(-1)[0] + if (latestView) { + return router.push(latestView.fullPath) + } + return router.push('/'); }); } - return store.dispatch('tagsView/delView', obj); + return useTagsViewStore().delView(obj); }, // 鍏抽棴鎵�鏈塼ab椤电 closeAllPage() { - return store.dispatch('tagsView/delAllViews'); + return useTagsViewStore().delAllViews(); }, // 鍏抽棴宸︿晶tab椤电 closeLeftPage(obj) { - return store.dispatch('tagsView/delLeftTags', obj || router.currentRoute.value); + return useTagsViewStore().delLeftTags(obj || router.currentRoute.value); }, // 鍏抽棴鍙充晶tab椤电 closeRightPage(obj) { - return store.dispatch('tagsView/delRightTags', obj || router.currentRoute.value); + return useTagsViewStore().delRightTags(obj || router.currentRoute.value); }, // 鍏抽棴鍏朵粬tab椤电 closeOtherPage(obj) { - return store.dispatch('tagsView/delOthersViews', obj || router.currentRoute.value); + return useTagsViewStore().delOthersViews(obj || router.currentRoute.value); }, // 鎵撳紑tab椤电 openPage(url) { @@ -59,6 +64,6 @@ }, // 淇敼tab椤电 updatePage(obj) { - return store.dispatch('tagsView/updateVisitedView', obj); + return useTagsViewStore().updateVisitedView(obj); } } -- Gitblit v1.9.3