docs(design): 删除磁盘监控设计文档并更新前端页面结构规范
- 删除 frontend/src/views/systemMonitor/2026-04-22-disk-monitor-design.md 设计文档 - 删除 frontend/src/views/tools/addLedger/API_DEBUG.md 调试文档 - 在 AGENTS.md 中新增前端页面结构归档章节,规范复杂工具页结构 - 明确 index.vue、components/、utils/ 职责边界和拆分原则 - 规定页面级类型和 contract 脚本管理方式 - 统一复杂页面拆分优先顺序和注意事项
This commit is contained in:
@@ -7,6 +7,11 @@ import { TABS_STORE_KEY } from '@/stores/constant'
|
||||
|
||||
const keepAliveStore = useKeepAliveStore()
|
||||
|
||||
const getCacheName = (tabItem: TabsMenuProps) => tabItem.cacheName || tabItem.name
|
||||
const shouldKeepAlive = (tabItem: TabsMenuProps) => tabItem.isKeepAlive !== false
|
||||
const getCacheNameList = (tabsMenuList: TabsMenuProps[]) =>
|
||||
tabsMenuList.filter(shouldKeepAlive).map(getCacheName).filter(Boolean)
|
||||
|
||||
export const useTabsStore = defineStore(TABS_STORE_KEY, {
|
||||
state: (): TabsState => ({
|
||||
tabsMenuList: []
|
||||
@@ -21,12 +26,15 @@ export const useTabsStore = defineStore(TABS_STORE_KEY, {
|
||||
this.tabsMenuList.push(tabItem)
|
||||
}
|
||||
}
|
||||
if (!keepAliveStore.keepAliveName.includes(tabItem.name) && tabItem.isKeepAlive) {
|
||||
await keepAliveStore.addKeepAliveName(tabItem.name)
|
||||
const cacheName = getCacheName(tabItem)
|
||||
if (shouldKeepAlive(tabItem) && cacheName && !keepAliveStore.keepAliveName.includes(cacheName)) {
|
||||
await keepAliveStore.addKeepAliveName(cacheName)
|
||||
}
|
||||
},
|
||||
// Remove Tabs
|
||||
async removeTabs(tabPath: string, isCurrent: boolean = true) {
|
||||
const tabItem = this.tabsMenuList.find(item => item.path === tabPath)
|
||||
|
||||
if (isCurrent) {
|
||||
this.tabsMenuList.forEach((item, index) => {
|
||||
if (item.path !== tabPath) return
|
||||
@@ -37,8 +45,8 @@ export const useTabsStore = defineStore(TABS_STORE_KEY, {
|
||||
}
|
||||
this.tabsMenuList = this.tabsMenuList.filter(item => item.path !== tabPath)
|
||||
// remove keepalive
|
||||
const tabItem = this.tabsMenuList.find(item => item.path === tabPath)
|
||||
tabItem?.isKeepAlive && (await keepAliveStore.removeKeepAliveName(tabItem.name))
|
||||
const cacheName = tabItem ? getCacheName(tabItem) : ''
|
||||
cacheName && (await keepAliveStore.removeKeepAliveName(cacheName))
|
||||
},
|
||||
// Close Tabs On Side
|
||||
async closeTabsOnSide(path: string, type: 'left' | 'right') {
|
||||
@@ -50,8 +58,7 @@ export const useTabsStore = defineStore(TABS_STORE_KEY, {
|
||||
})
|
||||
}
|
||||
// set keepalive
|
||||
const KeepAliveList = this.tabsMenuList.filter(item => item.isKeepAlive)
|
||||
await keepAliveStore.setKeepAliveName(KeepAliveList.map(item => item.name))
|
||||
await keepAliveStore.setKeepAliveName(getCacheNameList(this.tabsMenuList))
|
||||
},
|
||||
// Close MultipleTab
|
||||
async closeMultipleTab(tabsMenuValue?: string) {
|
||||
@@ -59,12 +66,12 @@ export const useTabsStore = defineStore(TABS_STORE_KEY, {
|
||||
return item.path === tabsMenuValue || !item.close
|
||||
})
|
||||
// set keepalive
|
||||
const KeepAliveList = this.tabsMenuList.filter(item => item.isKeepAlive)
|
||||
await keepAliveStore.setKeepAliveName(KeepAliveList.map(item => item.name))
|
||||
await keepAliveStore.setKeepAliveName(getCacheNameList(this.tabsMenuList))
|
||||
},
|
||||
// Set Tabs
|
||||
async setTabs(tabsMenuList: TabsMenuProps[]) {
|
||||
this.tabsMenuList = tabsMenuList
|
||||
await keepAliveStore.setKeepAliveName(getCacheNameList(this.tabsMenuList))
|
||||
},
|
||||
// Set Tabs Title
|
||||
async setTabsTitle(title: string) {
|
||||
|
||||
Reference in New Issue
Block a user