feat(theme): 皮肤包管理收敛平台级+命名表单-新顶层路由/theme-manage(meta.superOnly守卫+页面watch双兜底),ThemeManage升级全屏页复用新抽WorkbenchHeader(工作台同款深色顶栏backTo=/workbench),工作台超管工具行加皮肤包管理按钮,删SiteManage兜底按钮,旧/theme重定向新页;上传/添加皮肤包改表单弹窗(zip+显示名/描述;添加=源包+标识名+命名一步),内置包可改显示名/描述(无参数区+恢复默认名称);openEdit未注册主题保留原值并告警(themeEdit util,不再静默归一default);mock删modId=7菜单节点;SiteWizard预览内容源v-model对齐path语义(W4遗留);vitest 62/62+build通过
build / build (push) Successful in 2m17s

This commit is contained in:
chenxing
2026-09-08 20:25:57 +08:00
parent 604d77049b
commit 9ba4cb135a
12 changed files with 553 additions and 218 deletions
+8 -8
View File
@@ -42,6 +42,13 @@ export const routes: RouteRecordRaw[] = [
component: () => import("@/views/cms/SchoolWorkbench.vue"),
meta: { title: "学校工作台" },
},
{
// 平台级:皮肤包管理(任务二收敛:仅超管,工作台按钮进入,不挂左侧菜单)
path: "/theme-manage",
name: "ThemePackageManage",
component: () => import("@/views/cms/ThemeManage.vue"),
meta: { title: "皮肤包管理", superOnly: true },
},
{
// 二级:学校专属管理壳,:schCode = 主站编码(URL 即学校上下文)
// (懒加载引入,避免 routes → SchoolLayout → menuRoute → routes 循环依赖)
@@ -99,13 +106,6 @@ export const routes: RouteRecordRaw[] = [
component: () => import("@/views/cms/SiteManage.vue"),
meta: { title: "站点管理", modId: 6 },
},
{
// W1:皮肤包管理(平台模块表注册前由站点管理按钮兜底可达,R3)
path: "theme",
name: "ThemeManage",
component: () => import("@/views/cms/ThemeManage.vue"),
meta: { title: "皮肤包管理", modId: 7 },
},
{
// 门户预览(SPA 内嵌简版门户;真实门户由后端 Thymeleaf 提供)
path: "portal-preview",
@@ -123,7 +123,7 @@ export const routes: RouteRecordRaw[] = [
{ path: "/link", redirect: legacyRedirect("link") },
{ path: "/attachment", redirect: legacyRedirect("attachment") },
{ path: "/site", redirect: legacyRedirect("site") },
{ path: "/theme", redirect: legacyRedirect("theme") },
{ path: "/theme", redirect: "/theme-manage" },
{ path: "/portal-preview", redirect: legacyRedirect("portal-preview") },
{
path: "/:pathMatch(.*)*",