Commit Graph

16 Commits

Author SHA1 Message Date
huangzd1997 d397c88c3c task-16(壳层/路由): 实现退出登录入口的壳层交互(确认式)
logout.ts 定义 runLogout 纯流程(确认通过才 signOut,异常上抛由壳层反馈);
AdminLayout 用 ElMessageBox.confirm 确认后再执行 store.signOut($reset + /login)。
2026-09-05 14:43:54 +08:00
huangzd1997 83b935c11b task-15(壳层/路由): 实现页面标题与面包屑规则
title-breadcrumb 提供 resolveDocumentTitle('页面 - 数富AI')、updateDocumentTitle
(非浏览器静默)、crumbsForActiveRoute(分组->页面);AdminLayout 用 watch 同步
document.title 并在层级>1 时渲染 el-breadcrumb。
2026-09-05 14:43:54 +08:00
huangzd1997 13e7a4c602 task-14(壳层/路由): 实现侧边栏折叠与窄屏行为及偏好持久化
sidebar-collapse 提供阈值/宽高常量、toggle、localStorage 偏好读写(失败容忍)、
initialCollapsed(持久化优先,窄屏自动收起);AdminLayout 接入并持久化折叠状态。
2026-09-05 14:43:54 +08:00
huangzd1997 c3f160afa5 task-13(壳层/路由): 实现全局请求错误提示容器
error-bus 提供框架无关的订阅式错误总线:notify/dismiss/clear、负载归一化、
3 条上限截断、订阅返回取消函数防泄漏;GlobalErrorContainer 订阅并渲染可关闭
错误条,挂在 AdminLayout 内容区顶部。
2026-09-05 14:43:54 +08:00
huangzd1997 f4f7268045 task-12(壳层/路由): 实现路由级错误页面(404 兜底)
新增 src/pages/error/NotFoundPage.vue(el-result + 返回首页),router 在业务路由
之后注册 :pathMatch(.*)* 兜底(无 menuKey,不参与权限门禁),保留壳层 chrome;
main.css 增加 .not-found 布局。
2026-09-05 14:43:53 +08:00
huangzd1997 50e70c43ab task-11(壳层/路由): 实现无菜单权限空状态
empty-state 定义标题/引导文案与 shouldShowEmptyMenu 纯判定(Boolean 化防 undefined);
AdminLayout 侧边栏与内容区(根路由)共用空态,加载中不闪现,未初始化不误报。
2026-09-05 14:43:53 +08:00
huangzd1997 f1fa5f7adf task-10(壳层/路由): 实现页面级异步组件加载边界
lazy-config 暴露 loading 延迟/超时/文案与懒加载判定;lazy-page 用
defineAsyncComponent 提供 loading/error 组件,router 对所有注册路由统一包裹;
main.css 增加 .page-loading/.page-error 兜底样式。
2026-09-05 14:43:53 +08:00
huangzd1997 ab7255a55b task-9(壳层/路由): 实现路由 meta 菜单 key 约定与 RouteMeta 类型增强
新增 src/types/vue-router.d.ts 模块增强(RouteMeta.title/menuKey),meta.ts 提供
metaMenuKey/命名校验,router 守卫改类型化访问去掉 as cast,AdminLayout 标题同步
去 cast;校验首批注册表 menuKey 合规。
2026-09-05 14:43:53 +08:00
huangzd1997 02e0dc20b8 task-8(壳层/路由): 实现业务域路由注册表
新增 src/router/routes.ts:adminPages 登记业务域页面(account 首批),routeOf 生成
路由记录,validateAdminPages 校验路径唯一/相对/含 title/load;router/index.ts 改
消费 adminRouteRecords,移除内联懒加载与路径字面量。
2026-09-05 14:43:53 +08:00
huangzd1997 8e828c1204 task-7(壳层/路由): 根路由跳转到首个可见页面,移除硬编码默认页
helpers.firstVisiblePath 深度优先返回首个可路由页面,无页面返回空串;
store 增加 firstVisible;守卫在根路由/无权限时跳首个可见页,全部无页面则
停留根路由展示无菜单空态,删除 redirect:'/account/users' 硬编码。
2026-09-05 14:43:53 +08:00
huangzd1997 26edb9e6ed task-6(壳层/路由): 定义后端菜单树到侧边栏节点映射规则并落地
新增 src/layout/menu-mapper.ts:toSidebarEntries 处理分组/顶级路由叶/畸形节点,
groupKeysForActive 按当前路由展开激活分组;AdminLayout 菜单区改用映射结果,
删除旧 visibleChildren/canSee 死逻辑;8 用例覆盖空树/单叶/缺 route 过滤等。
2026-09-05 14:43:52 +08:00
huangzd1997 4a0e464308 task-5(壳层/路由): 定义顶部栏用户信息与页面标题模型
新增 src/layout/topbar-model.ts(pageTitleOf 缺省回落 + topbarUserOf 空态视图模型),
AdminLayout 改用模型渲染标题/用户名/角色,删除模板内联缺省逻辑;8 用例覆盖标题
空值、用户缺字段、非法输入等。
2026-09-05 14:43:52 +08:00
huangzd1997 af68b20f87 task-4(壳层/路由): 定义深色侧边栏与浅色内容区设计 token 并锁定不变量
新增 src/styles/theme.ts 语义 token 单源 + 相对亮度/对比度/isDarkSurface,
tests 校验侧边栏暗、内容区亮、正文 WCAG AA、与 main.css 变量交叉一致防漂移。
2026-09-05 14:43:52 +08:00
huangzd1997 7065dbb53e task-3(壳层/路由): 定义并锁定 AdminLayout 页面容器职责契约
壳层只做页面容器:唯一 RouterView 挂载业务视图、不静态 import 业务页面、
不直接调后台 API、Element Plus 按需命名导入;页面接线归 router 懒加载。
配套 tests/helpers.ts 提供只读源码分析与 @/ import 可解析校验。
2026-09-05 14:43:52 +08:00
huangzd1997 6f0357e41c task-2(壳层/路由): 冻结 /admin-vue/ base 与 History 路由契约为单一事实源
新增 src/config/app.ts(APP_BASE_PATH/ensureAppBasePath/joinAdminPath),
vite.config base、router createWebHistory、AdminLayout logo 路径统一消费常量,
禁止散落字面量;8 用例覆盖归一化/幂等/空段/单段/非法输入与字面量单源。
2026-09-05 14:43:52 +08:00
huangzd1997 ec7d56d566 task-1(壳层/路由): 冻结独立后台工程工作区边界契约与基线测试
admin-frontend-vue/src/config/workspace.ts 提供可编程边界校验(独立包名、
必需清单/源码目录、客户端耦合 token 扫描、可操作缺失消息),供后续壳层
任务与验收脚本复用;tests/task-1.test.ts 以 8 用例锁定依赖/构建/测试/边界。
2026-09-05 14:43:51 +08:00