From 2d0fc59fc78276112a74ecefed87b5f8f14763c2 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期日, 27 四月 2025 13:43:28 +0800 Subject: [PATCH] 添加页签openPage支持传递参数 --- src/plugins/tab.js | 40 +++++++++++++++++++++++----------------- 1 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/plugins/tab.js b/src/plugins/tab.js index cc332b5..16755f0 100644 --- a/src/plugins/tab.js +++ b/src/plugins/tab.js @@ -1,18 +1,18 @@ -import useTagsViewStore from '@/store/modules/tagsview' +import useTagsViewStore from '@/store/modules/tagsView' import router from '@/router' export default { // 鍒锋柊褰撳墠tab椤电 refreshPage(obj) { - const { path, query, 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, query: query }; + obj = { name: m.components.default.name, path: path, query: query } } } - }); + }) } return useTagsViewStore().delCachedView(obj).then(() => { const { path, query } = obj @@ -24,42 +24,48 @@ }, // 鍏抽棴褰撳墠tab椤电锛屾墦寮�鏂伴〉绛� closeOpenPage(obj) { - useTagsViewStore().delView(router.currentRoute.value); + useTagsViewStore().delView(router.currentRoute.value) if (obj !== undefined) { - return router.push(obj); + return router.push(obj) } }, // 鍏抽棴鎸囧畾tab椤电 closePage(obj) { if (obj === undefined) { - return useTagsViewStore().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 useTagsViewStore().delView(obj); + return useTagsViewStore().delView(obj) }, // 鍏抽棴鎵�鏈塼ab椤电 closeAllPage() { - return useTagsViewStore().delAllViews(); + return useTagsViewStore().delAllViews() }, // 鍏抽棴宸︿晶tab椤电 closeLeftPage(obj) { - return useTagsViewStore().delLeftTags(obj || router.currentRoute.value); + return useTagsViewStore().delLeftTags(obj || router.currentRoute.value) }, // 鍏抽棴鍙充晶tab椤电 closeRightPage(obj) { - return useTagsViewStore().delRightTags(obj || router.currentRoute.value); + return useTagsViewStore().delRightTags(obj || router.currentRoute.value) }, // 鍏抽棴鍏朵粬tab椤电 closeOtherPage(obj) { - return useTagsViewStore().delOthersViews(obj || router.currentRoute.value); + return useTagsViewStore().delOthersViews(obj || router.currentRoute.value) }, // 鎵撳紑tab椤电 - openPage(url) { - return router.push(url); + openPage(title, url, params) { + const obj = { path: url, meta: { title: title } } + useTagsViewStore().addView(obj) + return router.push({ path: url, query: params }) }, // 淇敼tab椤电 updatePage(obj) { - return useTagsViewStore().updateVisitedView(obj); + return useTagsViewStore().updateVisitedView(obj) } } -- Gitblit v1.9.3