# 2026-10-19 K22 后台管理视觉与交互统一 ## 基线 - ReelShortWeb `develop`: `5c087f4` - FruitServer `develop`: `b025bfd` - 只改 Web 视觉/交互与 FruitServer 菜单图标 SQL,不改接口、客户端、main。 ## 图标体系 1. 新增 `src/constants/icons.ts`: - `AppIcons` 保存语义名到 `material-symbols:*-rounded` 的映射; - `normalizeAppIcon()` 兼容后端旧短名和历史 Iconify 名; - `MenuIconOptions` 供菜单管理页选择。 2. 新增 `src/components/AppIcon`: - 复用现有 `Icon` 组件; - 默认尺寸 18,支持颜色/悬停色; - 全局注册 `AppIcon`。 3. 替换 `src/components/**`、`src/views/**` 的旧图标前缀与 Element Plus 图标组件。 4. 对 `node_modules/@iconify/json/json/material-symbols.json` 做存在性校验。 任务书要求的 `language/view-column/lock/chevron-down` 在当前 JSON 中没有对应的 `*-rounded` 名,实施时使用同语义且存在的 `translate-rounded/combine-columns-rounded/lock-person-rounded/keyboard-arrow-down-rounded`。 ## 菜单落库 更新 `sql/data.sql` 与 `sql/data-phase1.sql` 中 id 1/2/3/6/15/17/20/22/24/26/32: | 菜单 | 图标 | | --- | --- | | 工作台 | `material-symbols:dashboard-rounded` | | 内容管理 | `material-symbols:video-library-rounded` | | 后台管理 | `material-symbols:settings-rounded` | | 用户管理 | `material-symbols:group-rounded` | | 创作者管理 | `material-symbols:movie-edit-rounded` | | 内容治理 | `material-symbols:policy-rounded` | | 订单与权益 | `material-symbols:payments-rounded` | | 数据看板 | `material-symbols:monitoring-rounded` | | 创作者中心 | `material-symbols:video-camera-front-rounded` | | 运营管理 | `material-symbols:campaign-rounded` | 执行两份 SQL,管理员登录后请求 `/admin/auth/menus`,断言所有 icon 以 `material-symbols:` 开头。 ## 品牌与登录 - 复制客户端 `splash_mark.png` 为 `src/assets/imgs/brand-mark.png`。 - Logo 组件展开/收起统一使用品牌 mark。 - 删除 admin/admin123 占位、记住密码持久化、固定 `FruitShorts Studio`。 - 记住我只保存用户名;store reset 时删除 loginInfo。 - 表单回车提交、loading 覆盖请求与动态路由、防止重复。 - 960 以下压缩 hero,登录卡首屏完整。 ## 全局壳与主题 - 修复深色模式菜单、头部、标签关闭、主题开关、面包屑对比度。 - body 去掉 `min-width: 980px`,补 1200/768 断点。 - 顶栏、标签页、表格工具栏、弹窗统一 AppIcon。 - CSS token:一组字体变量、4/6/12 圆角、`#409eff !important` 改 `var(--el-color-primary)`,删除或合并未使用壳层选择器。 - 用户信息读取 `userStore`,不再使用固定 avatar/Archer。 - 清除缓存增加二次确认。 ## 门禁与自查 - 静态扫描:无旧图标前缀、无 ``、无页面 `@element-plus/icons-vue` 引用。 - `node_modules/@iconify/json/json/material-symbols.json` 逐个校验新图标。 - `pnpm lint:eslint` 零错误。 - `pnpm build:pro` 成功。 - 浏览器自查:登录页、侧边栏展开/折叠、顶栏、标签页、浅/深色、1024/800/375。 ## 风险 - 图标批量替换可能影响动态图标与右键菜单,保留 normalize 兜底。 - 窄屏下侧栏与固定内容宽度可能冲突,优先保证内容区不裁切。 - 登录 loading 必须覆盖动态路由生成,避免二次提交。 - 本轮不碰表格、筛选、分页、拦截器、删除确认、rules、权限与上传校验。