Browse Source

feat: support to refresh the tab page by route name (#6153)

Co-authored-by: anyup <anyupxing@163.com>
electron-v5
anyup 9 months ago
committed by Netfan
parent
commit
de655af23b
  1. 4
      packages/effects/hooks/src/use-tabs.ts
  2. 17
      packages/stores/src/modules/tabbar.ts

4
packages/effects/hooks/src/use-tabs.ts

@ -41,8 +41,8 @@ export function useTabs() {
await tabbarStore.toggleTabPin(tab || route);
}
async function refreshTab() {
await tabbarStore.refresh(router);
async function refreshTab(name?: string) {
await tabbarStore.refresh(name || router);
}
async function openTabInNewWindow(tab?: RouteLocationNormalized) {

17
packages/stores/src/modules/tabbar.ts

@ -334,7 +334,13 @@ export const useTabbarStore = defineStore('core-tabbar', {
/**
*
*/
async refresh(router: Router) {
async refresh(router: Router | string) {
// 如果是Router路由,那么就根据当前路由刷新
// 如果是string字符串,为路由名称,则定向刷新指定标签页,不能是当前路由名称,否则不会刷新
if (typeof router === 'string') {
return await this.refreshByName(router);
}
const { currentRoute } = router;
const { name } = currentRoute.value;
@ -349,6 +355,15 @@ export const useTabbarStore = defineStore('core-tabbar', {
stopProgress();
},
/**
*
*/
async refreshByName(name: string) {
this.excludeCachedTabs.add(name);
await new Promise((resolve) => setTimeout(resolve, 200));
this.excludeCachedTabs.delete(name);
},
/**
* @zh_CN
*/

Loading…
Cancel
Save