From cc9b67d4676dd51a6b2d88e92607aca2629ee54d Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期五, 22 十二月 2023 13:26:26 +0800 Subject: [PATCH] !72 发布 vue 版本 5.1.2 与 cloud 版本 2.1.2 Merge pull request !72 from 疯狂的狮子Li/temp --- src/plugins/tab.ts | 53 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 37 insertions(+), 16 deletions(-) diff --git a/src/plugins/tab.ts b/src/plugins/tab.ts index bc4128c..97442ff 100644 --- a/src/plugins/tab.ts +++ b/src/plugins/tab.ts @@ -3,8 +3,11 @@ import { TagView, RouteLocationRaw } from 'vue-router'; export default { - // 鍒锋柊褰撳墠tab椤电 - async refreshPage(obj: TagView): Promise<void> { + /** + * 鍒锋柊褰撳墠tab椤电 + * @param obj 鏍囩瀵硅薄 + */ + async refreshPage(obj?: TagView): Promise<void> { const { path, query, matched } = router.currentRoute.value; if (obj === undefined) { matched.forEach((m) => { @@ -15,11 +18,16 @@ } }); } - // prettier-ignore - await useTagsViewStore().delCachedView(obj) - router.replace({ - path: '/redirect' + obj.path, - query: obj.query + let query1: undefined | {} = {}; + let path1: undefined | string = ''; + if (obj) { + query1 = obj.query; + path1 = obj.path; + } + await useTagsViewStore().delCachedView(obj); + await router.replace({ + path: '/redirect' + path1, + query: query1 }); }, // 鍏抽棴褰撳墠tab椤电锛屾墦寮�鏂伴〉绛� @@ -33,8 +41,12 @@ async closePage(obj?: TagView): Promise<{ visitedViews: TagView[]; cachedViews: string[] } | any> { if (obj === undefined) { // prettier-ignore - const { lastPath } = await useTagsViewStore().delView(router.currentRoute.value) as any - return router.push(lastPath || '/index'); + const { visitedViews } = await useTagsViewStore().delView(router.currentRoute.value) as any + const latestView = visitedViews.slice(-1)[0]; + if (latestView) { + return router.push(latestView.fullPath); + } + return router.push('/'); } return useTagsViewStore().delView(obj); }, @@ -43,22 +55,31 @@ return useTagsViewStore().delAllViews(); }, // 鍏抽棴宸︿晶tab椤电 - closeLeftPage(obj: TagView) { + closeLeftPage(obj?: TagView) { return useTagsViewStore().delLeftTags(obj || router.currentRoute.value); }, // 鍏抽棴鍙充晶tab椤电 - closeRightPage(obj: TagView) { + closeRightPage(obj?: TagView) { return useTagsViewStore().delRightTags(obj || router.currentRoute.value); }, // 鍏抽棴鍏朵粬tab椤电 - closeOtherPage(obj: TagView) { + closeOtherPage(obj?: TagView) { return useTagsViewStore().delOthersViews(obj || router.currentRoute.value); }, - // 鎵撳紑tab椤电 - openPage(url: RouteLocationRaw) { - return router.push(url); + /** + * 鎵撳紑tab椤电 + * @param url 璺敱鍦板潃 + * @param title 鏍囬 + * @param query 鍙傛暟 + */ + openPage(url: string, title?: string, query?: any) { + const obj = { path: url, query: { ...query, title } }; + return router.push(obj); }, - // 淇敼tab椤电 + /** + * 淇敼tab椤电 + * @param obj 鏍囩瀵硅薄 + */ updatePage(obj: TagView) { return useTagsViewStore().updateVisitedView(obj); } -- Gitblit v1.9.3