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