houzhongjian
2024-07-11 759b1c71011abd6b58c37d2566f3f3c208c2f1b2
提交 | 用户 | 时间
759b1c 1 import store from '@/store'
H 2 import router from '@/router';
3
4 export default {
5   // 刷新当前tab页签
6   refreshPage(obj) {
7     const { path, query, matched } = router.currentRoute;
8     if (obj === undefined) {
9       matched.forEach((m) => {
10         if (m.components && m.components.default && m.components.default.name) {
11           if (!['Layout', 'ParentView'].includes(m.components.default.name)) {
12             obj = { name: m.components.default.name, path: path, query: query };
13           }
14         }
15       });
16     }
17     return store.dispatch('tagsView/delCachedView', obj).then(() => {
18       const { path, query } = obj
19       router.replace({
20         path: '/redirect' + path,
21         query: query
22       })
23     })
24   },
25   // 关闭当前tab页签,打开新页签
26   closeOpenPage(obj) {
27     store.dispatch("tagsView/delView", router.currentRoute);
28     if (obj !== undefined) {
29       return router.push(obj);
30     }
31   },
32   // 关闭指定tab页签
33   closePage(obj) {
34     if (obj === undefined) {
35       return store.dispatch('tagsView/delView', router.currentRoute).then(({ lastPath }) => {
36         return router.push(lastPath || '/');
37       });
38     }
39     if (typeof obj === "function") {
40       return store.dispatch('tagsView/delView', router.currentRoute).then(obj);
41     }
42     return store.dispatch('tagsView/delView', obj);
43   },
44   // 关闭所有tab页签
45   closeAllPage() {
46     return store.dispatch('tagsView/delAllViews');
47   },
48   // 关闭左侧tab页签
49   closeLeftPage(obj) {
50     return store.dispatch('tagsView/delLeftTags', obj || router.currentRoute);
51   },
52   // 关闭右侧tab页签
53   closeRightPage(obj) {
54     return store.dispatch('tagsView/delRightTags', obj || router.currentRoute);
55   },
56   // 关闭其他tab页签
57   closeOtherPage(obj) {
58     return store.dispatch('tagsView/delOthersViews', obj || router.currentRoute);
59   },
60   // 添加tab页签
61   openPage(title, url, params) {
62     const obj = { path: url, meta: { title: title } }
63     store.dispatch('tagsView/addView', obj);
64     return router.push({ path: url, query: params });
65   },
66   // 修改tab页签
67   updatePage(obj) {
68     return store.dispatch('tagsView/updateVisitedView', obj);
69   }
70 }