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:
2026-05-14 09:17:25 +08:00
parent 5b3ca264c4
commit f7d297decf
72 changed files with 5125 additions and 3028 deletions

View File

@@ -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) {