refactor: extract image form to standalone page and implement tags view store

- Created ImageForm.vue as standalone page for add/edit image functionality
- Removed dialog-based image form from VmImages.vue
- Implemented tagsViewStore for global tab state management
- Added automatic tab closing on form cancel/back
- Fixed data persistence issue when switching between image edits
- Removed quick actions section from ImageForm
- Updated router configuration for new image form route
This commit is contained in:
2025-11-28 14:15:29 +08:00
parent 067e0539ba
commit f7c3be1d30
45 changed files with 8776 additions and 6881 deletions
+31 -19
View File
@@ -41,7 +41,7 @@ const routes = [
},
component: () => import('../views/ticket/TicketChat.vue'),
},
// ACS管理路由
{
path: 'acs',
@@ -130,7 +130,19 @@ const routes = [
meta: {
title: '节点管理'
}
},{
},
{
path: 'nodes/form',
name: 'ServerForm',
component: () => import('@/views/acs/nodes/ServerForm.vue'),
meta: { title: '服务器表单', activeMenu: '/acs/nodes', hidden: true }
},
{
path: 'images/form',
name: 'ImageForm',
component: () => import('@/views/acs/images/ImageForm.vue'),
meta: { title: '镜像表单', activeMenu: '/acs/images/vm', hidden: true }
}, {
path: 'guacamole',
name: 'Guacamole',
component: () => import('../views/acs/guacamole/Guacamole.vue'),
@@ -365,7 +377,7 @@ const routes = [
title: '管理员权限'
}
},
{
path: 'file',
name: 'SystemFile',
@@ -374,7 +386,7 @@ const routes = [
title: '文件管理'
}
},
{
path: 'domain-whitelist',
name: 'DomainWhitelist',
@@ -492,21 +504,21 @@ const routes = [
title: '容器详情',
hidden: true
}
},{
path:'servers/container/console',
name:'ContainerConsole',
component:()=>import('../views/acs/nodes/containerConsole.vue'),
meta:{
title:'终端容器',
hidden:true
}, {
path: 'servers/container/console',
name: 'ContainerConsole',
component: () => import('../views/acs/nodes/containerConsole.vue'),
meta: {
title: '终端容器',
hidden: true
}
},{
path:'servers/container/files',
name:'ContainerFiles',
component:()=>import('../views/acs/nodes/containFile.vue'),
meta:{
title:'容器文件管理',
hidden:true
}, {
path: 'servers/container/files',
name: 'ContainerFiles',
component: () => import('../views/acs/nodes/containFile.vue'),
meta: {
title: '容器文件管理',
hidden: true
}
}
]
@@ -540,7 +552,7 @@ const router = createRouter({
router.beforeEach((to, from, next) => {
// 设置页面标题
document.title = to.meta.title ? `${to.meta.title} - 007UI管理系统` : '007UI管理系统'
// 这里可以添加登录验证逻辑
const isAuthenticated = localStorage.getItem('token')
if (to.path !== '/login' && !isAuthenticated) {