mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-08-26 16:46:19 +08:00
feat(tabbar): 添加右键菜单过滤功能 (#5820)
This commit is contained in:
@@ -26,6 +26,10 @@ interface TabbarState {
|
||||
* @zh_CN 需要排除缓存的标签页
|
||||
*/
|
||||
excludeCachedTabs: Set<string>;
|
||||
/**
|
||||
* @zh_CN 标签右键菜单列表
|
||||
*/
|
||||
menuList: string[];
|
||||
/**
|
||||
* @zh_CN 是否刷新
|
||||
*/
|
||||
@@ -372,6 +376,14 @@ export const useTabbarStore = defineStore('core-tabbar', {
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* @zh_CN 更新菜单列表
|
||||
* @param list
|
||||
*/
|
||||
setMenuList(list: string[]) {
|
||||
this.menuList = list;
|
||||
},
|
||||
|
||||
/**
|
||||
* @zh_CN 设置标签页标题
|
||||
* @param tab
|
||||
@@ -388,7 +400,6 @@ export const useTabbarStore = defineStore('core-tabbar', {
|
||||
await this.updateCacheTabs();
|
||||
}
|
||||
},
|
||||
|
||||
setUpdateTime() {
|
||||
this.updateTime = Date.now();
|
||||
},
|
||||
@@ -406,6 +417,7 @@ export const useTabbarStore = defineStore('core-tabbar', {
|
||||
this.tabs.splice(newIndex, 0, currentTab);
|
||||
this.dragEndIndex = this.dragEndIndex + 1;
|
||||
},
|
||||
|
||||
/**
|
||||
* @zh_CN 切换固定标签页
|
||||
* @param tab
|
||||
@@ -439,7 +451,6 @@ export const useTabbarStore = defineStore('core-tabbar', {
|
||||
// 交换位置重新排序
|
||||
await this.sortTabs(index, newIndex);
|
||||
},
|
||||
|
||||
/**
|
||||
* 根据当前打开的选项卡更新缓存
|
||||
*/
|
||||
@@ -480,6 +491,9 @@ export const useTabbarStore = defineStore('core-tabbar', {
|
||||
getExcludeCachedTabs(): string[] {
|
||||
return [...this.excludeCachedTabs];
|
||||
},
|
||||
getMenuList(): string[] {
|
||||
return this.menuList;
|
||||
},
|
||||
getTabs(): TabDefinition[] {
|
||||
const normalTabs = this.tabs.filter((tab) => !isAffixTab(tab));
|
||||
return [...this.affixTabs, ...normalTabs].filter(Boolean);
|
||||
@@ -496,6 +510,17 @@ export const useTabbarStore = defineStore('core-tabbar', {
|
||||
cachedTabs: new Set(),
|
||||
dragEndIndex: 0,
|
||||
excludeCachedTabs: new Set(),
|
||||
menuList: [
|
||||
'close',
|
||||
'affix',
|
||||
'maximize',
|
||||
'reload',
|
||||
'open-in-new-window',
|
||||
'close-left',
|
||||
'close-right',
|
||||
'close-other',
|
||||
'close-all',
|
||||
],
|
||||
renderRouteView: true,
|
||||
tabs: [],
|
||||
updateTime: Date.now(),
|
||||
|
Reference in New Issue
Block a user