# INBOX — 给 Codex 的指令队列(FruitServer 仓库内) > **Codex 每次开始任务前必须先读本文件**(2026-10-16 起指令通道从 specs 仓库迁到本仓库)。 > 按条目顺序执行,处理完的条目标记 `[已处理]`。指令来源:项目经理(Trae)。有异议在条目下留言,不要静默跳过。 > > **规范以 specs 仓库为准**(`AGENTS.md`、`CODING_STANDARDS.md`、`GIT_WORKFLOW.md`、`docs/01~20`、`docs/plans/codex-研发任务清单.md`)—— > specs 现在**只拉取、由项目负责人更新**,我们不再往它提交。工作留痕写在本仓库 `docs/plans/PROGRESS.md`。 > ⚠️ **双 Agent 协作红线(Trae + Codex 共守)** > 1. **单一写者**:同一时刻只有一个 agent 在改代码/写 PROGRESS/跑门禁。 > 2. **留痕**:谁干活谁写 `docs/plans/PROGRESS.md`(命令 + 原始输出 + 解读,逐动作追加)。Trae 接手时用「【Trae 接手】」标记。 > 3. **git 不冲突**:提交前先 `git status`/`git log`;只 `git add` 自己的文件,禁止 `git add -A`/`.`;不夹带对方改动。 > 4. **文件不覆盖**:写 INBOX/PROGRESS 前先读最新,追加不覆盖。 > 5. **求助通道**:遇到阻塞/不确定,在本文件顶部写「【待 Trae 协助】+ 问题描述」。 > 6. **禅道同步**:任务「开始/完成」时同步更新禅道任务状态。 > 7. **验收归用户**:每批做完**停在干净交接点**,由用户亲自验证;回执必须含「用户可照做的验证步骤 + 每步预期结果」。 > 8. **门禁(不达标不提交)**:后端 = `mvn test` 全过(核心接口须有契约测试);Web = `pnpm build:pro` 通过 + eslint 零错误;Flutter = `dart analyze lib test` 零告警 + `flutter test` 全过。 > 9. **分支(按 `GIT_WORKFLOW.md`)**:从 `develop` 拉 `feature/<模块>-<简述>`,小步提交;完成后 `git checkout develop && git merge --no-ff feature/...` 再 `git push origin develop`;**绝不动 `main`**(dev→main 走 PR,由用户操作)。 > 10. **设备验证必须「设备侧取证」(2026-10-16 新增,血的教训)**:真机 / 模拟器 / 小程序等目标设备的验证,**证据必须产自设备侧**(设备侧集成测试、设备日志、设备截图、设备侧抓到的连接)。**禁止**用"在开发机上 `curl` 某地址返回 200"证明设备可达 —— 本机 curl 本机网卡地址必然 200,这是**假阳性**(已实际误导过一次:`10.157.242.1` 是开发机 VPN 网卡地址,手机根本不可达,导致真机「剧目列表加载失败」)。**拿不到设备侧证据的,一律标「未验证」**,不得写成"已验证"。 --- ## [已处理·待用户验收] 2026-10-19 | K23.1 后台修正:品牌文字、删除按钮红色、布局回归 **用户反馈(2026-10-19,附截图)**: 1. 「图片的文字没有改过来」——浅色侧边栏里 `FruitShorts` 仍是蓝色,应改为正常深色品牌字; 2. 「删除按钮统一用红色背景」——当前多处删除仍是文字/次要样式; 3. 「有的布局乱了」——K23 后菜单、弹窗或顶栏存在对齐/溢出问题。 > 只改 `ReelShortWeb` 视觉/交互;不改接口、后端业务、客户端、main。 ### 一、品牌文字颜色 - `src/store/modules/app.ts`: - `setMenuTheme` 浅色分支 `logoTitleTextColor: 'inherit'` → `'#303133'`(或 `var(--el-text-color-primary)`); - `setHeaderTheme` 浅色分支 `topHeaderTextColor: 'inherit'` → `'#303133'`; - 深色分支保持 `#fff`。 - 检查 `Logo.vue`、`ToolHeader.vue`、`Breadcrumb.vue`,确保浅色菜单/顶栏不再出现蓝色品牌字或蓝色继承文字。 - 登录页品牌色保持现状。 ### 二、删除按钮统一红色背景 1. 全仓扫描所有「删除 / 移除 / 删除菜单」按钮,统一为 `type="danger"` 实心红底、白字, 表格内 `size="small"`;禁止 `link`、`plain`、`text`、`class="danger-action"` 的浅色文字样式。 2. 至少覆盖: - `views/contentManagement/DramaManagementView.vue` - `views/contentManagement/EpisodeManagementView.vue` - `views/contentManagement/BannerManagementView.vue` - `views/contentManagement/CategoryManagementView.vue` - `views/operation/NoticeManagementView.vue` - `views/commerce/ProductManagementView.vue` - `views/governance/ContentGovernanceView.vue`(评论删除、敏感词删除) - `views/userManagement/AdminUsersView.vue` - `views/permission/RoleManagementView.vue`(当前 `link`) - `views/permission/RoleCategoriesView.vue`(补 `size="small"`) - `views/permission/MenuManagementView.vue`(当前 `plain`) - `views/creator-center/DramaEditView.vue` 与 `views/creator-center/WorkspaceView.vue` 的删除/下线 - `views/commerce/OrderManagementView.vue`、`views/creator/CreatorAuditView.vue` 的 `danger-action` 危险操作(退款/回收/冻结等)统一实心红底白字。 3. 删除确认弹窗的确认按钮也改为红色背景(`confirmButtonClass: 'el-button--danger'` 并确认样式生效)。 4. 调整操作列宽度,确保红底按钮不换行、不挤出单元格;同一列按钮高度一致。 ### 三、布局回归修正 逐项用浏览器检查并修复: 1. 浅色/深色侧边栏:品牌图与文字垂直居中,品牌字不换行、不溢出;折叠/展开正常。 2. 菜单展开:一级与二级文字左边缘对齐(42px 基线),行高 44/40,无重叠/多余空白;popper 同样。 3. 短剧编辑弹窗:680px 与 375px 宽度下无横向滚动;封面预览/文件名/操作按钮不挤压; 数字输入两列对齐;底部“取消/保存修改”固定可见。 4. 锁定屏幕弹窗:440px 下标题/说明/表单/底部按钮不裁切,取消与锁定按钮高度一致。 5. 表格页:红色删除按钮加入后,操作列不换行、不出现横向溢出;1024 与 375 宽度验证。 6. 顶栏/标签页/面包屑:图标与文字基线一致,无错位。 ### 四、验收与门禁 - `pnpm lint:eslint` 零错误;`pnpm build:pro` 通过。 - 浏览器自查:1440×900、1024×768、375×812;浅色/深色;登录页、工作台、短剧管理编辑弹窗、 锁定屏幕、菜单展开;控制台 0 error、0 404;`scrollWidth <= clientWidth`。 - 回执附:品牌色改动、删除按钮清单、布局修复项、门禁原始输出、浏览器自查结论。 ### 五、Git - 从干净 `develop`(基线 `fe1ae95`)拉 `feature/web-k23-fixes`,小步提交, `--no-ff` 合并回 develop 并 push;作者 `Zhou Weidong <502333560@qq.com>`。 - 计划文档 `FruitServer/docs/plans/2026-10-19-K23.1.md`;留痕写 `PROGRESS.md`。 - 用户负责最终验证;本批不再扩大范围。 --- ## [已处理·待用户验收] 2026-10-19 | K23 后台视觉深化:主色、菜单、编辑弹窗与锁屏 **用户指令(2026-10-19,附三张截图)**:「现在着重优化 UI 及交互」。 截图问题: 1. 左侧菜单子项无图标、缩进/行高/选中态不统一; 2. 短剧编辑弹窗里封面直接暴露超长 URL,数字输入框布局松散; 3. 锁定屏幕弹窗标题被分隔线穿过、右上角图标错位、缺少取消入口。 > 只改 `ReelShortWeb` 视觉/交互 + `FruitServer` 菜单图标种子 SQL;不改接口契约、后端业务、客户端、main。 ### 一、主色统一为品牌辣椒红 - `src/styles/business/theme.css` 的 `--el-color-primary` 由 `#409eff` 改为 `#c4322a`, 同步 `light-3/5/7/8/9`、`dark-2`(参考值:`#d3615b / #e19995 / #f0c2c0 / #f5d9d8 / #faeeed / #9d2822`)。 - 按钮、开关、链接、选中菜单、标签页激活态、焦点环统一走 `var(--el-color-primary)`; 检查白字/红底、红字/白底对比度 ≥ 4.5:1;成功/警告/危险语义色保持不变。 - 登录页品牌色已用 `--app-brand`,保持不变;全站不再出现默认 Element 蓝。 ### 二、左侧菜单(口径更正:子菜单统一不用图标) > 用户 2026-10-19 更正:**不是子菜单图标为空,而是子菜单统一不要图标;当前问题是没对齐、视觉不好看。** > 不要给子菜单加图标,也不要在子菜单预留图标位置。 1. **子菜单图标一律清空**: - `sys_menu` 中所有 `type='MENU'` 的子菜单 `icon` 置为空串(含 id 4/5/7/8/9/10/11/12/13/14/16/18/19/21/23/25/27/29/30/31/33); - 同步 `sql/data.sql` 与 `sql/data-phase1.sql`,并实际执行到开发库; - 菜单管理页保存子菜单时也不落图标(或保存后清空),避免以后又出现图标; - 渲染层对嵌套菜单项强制不渲染图标(即使库里有历史值也只显示文字)。 2. **对齐与视觉**(新增 `src/styles/business/menu.css`,作用域 `#v-menu`): - 一级菜单:行高 44px,左侧 padding 16px,图标 18px,图标与文字间距 8px; - 二级菜单:行高 40px,**文字左边缘与一级菜单文字左边缘对齐**(即一级 padding + 图标 18 + 间距 8 = 42px), 不出现“子项文字比父项文字更靠左/更靠右”的错位; - 二级菜单不渲染图标,也不保留空白图标位;选中/悬浮背景从文字左边缘开始,圆角 8px; - 一级/二级的选中态、悬浮态、展开箭头、折叠态、popper 子菜单保持一致; - 深色模式选中态用深主色底 + 白字,浅色模式浅主色底 + 主色文字;行距紧凑,不出现大块空白。 ### 三、短剧编辑弹窗(`DramaManagementView.vue`) 1. 弹窗宽 680px,`close-on-click-modal=false`,内容区可滚动、底部按钮固定; 表单分三块:`基础信息`(名称/类型/简介)、`付费设置`(免费集数/单集解锁金币/是否热门)、`封面`。 2. 数字输入:`el-input-number` 固定宽 180、`controls-position="right"`,两列等宽对齐。 3. **封面编辑器重做**: - 左侧 2:3 预览(约 96×128),无封面时显示虚线占位; - 右侧显示状态 chip(已上传/未上传)、文件名(只显示 basename,不显示完整路径)、 `更换封面` / `移除` 操作;上传中显示进度遮罩; - **不再展示原始 URL 输入框**;如需查看,提供“查看原图”链接在新窗口打开; - 上传前校验类型(jpg/png/webp)与大小(≤5MB),失败在弹窗内提示并可重试; - `移除` 只清空本地表单,保存后生效。 4. 表单加 `:model` + `:rules`(名称必填、类型必选),保存时 `validate()`,错误显示在字段下方; 保留现有保存接口与字段,不改 payload。 5. 保存按钮 loading/disabled 防重复(已有 `saving`,补齐禁用与关闭保护)。 ### 四、锁定屏幕弹窗(`LockDialog.vue`) - 宽度 440,`max-height` 调整到 320–360,去掉全屏按钮(该弹窗不需要全屏)。 - 重做头部:标题左对齐、无穿过的分隔线、关闭按钮右对齐;标题下加一行说明“输入密码解锁当前会话”。 - 内容居中:头像 64、姓名 14、密码框 100% 宽;密码框支持回车提交。 - 底部:`取消`(关闭)+ `锁定`(primary,宽度不小于 96)。 - 删除 `console.log('set: ', val)`,不改变锁定逻辑。 ### 五、交互与一致性 - 弹窗统一:标题/内容/底部间距、圆角、按钮高度(36/40)、暗色模式可读。 - 破坏性操作不新增逻辑;本批只做视觉与上述表单交互。 - 不修改接口、不新增权限点、不改业务流程。 ### 六、验收与门禁 - `pnpm lint:eslint` 零错误;`pnpm build:pro` 通过。 - 开发库子菜单 `icon` 已全部置空;`GET /admin/auth/menus` 自检:一级菜单有图标,二级菜单 icon 为空。 - 浏览器自查(不作为用户验收):登录页/工作台/短剧管理/锁定屏幕;1024 与 375 宽度; 暗色/浅色;控制台 0 error、0 404。 - 用户浏览器验收:菜单图标与行距、红色主色、短剧编辑弹窗封面、锁屏弹窗。 ### 七、Git 与回执 - `ReelShortWeb` 从干净 `develop`(基线 `3e8312e`)拉 `feature/web-k23-admin-polish`; `FruitServer` 只改菜单图标 SQL 种子,单独提交并 push。 - 完成后各自 `--no-ff` 合并回 `develop` 并 push;作者 `Zhou Weidong <502333560@qq.com>`。 - 计划文档 `FruitServer/docs/plans/2026-10-19-K23.md`;留痕写 `PROGRESS.md`。 - 回执:主色变量、子菜单图标落库结果、弹窗改动、门禁原始输出、浏览器自查结论。 --- ## [已处理·待用户验收] 2026-10-19 | K22.1 后台收尾:登录文案、图标残留与文件清理 **用户反馈(2026-10-19,附登录页截图)**: 1. 「这个下面的文字可以不要」——登录页标题下方的说明段落与三个标签(短剧与剧集 / 发布状态 / 角色权限)删掉。 2. 「还有图标没有改过来」——仍有旧品牌图/旧图标来源:浏览器 favicon、首屏 loading 的 `/logo.png`、mock 路由里的旧图标、在线图标开关。 3. 「有些文件该删除的删除掉」——删除已确认无引用的文件与 mock 体系。 > 只改 `ReelShortWeb`;不改接口契约、后端业务、客户端、main。用户直接在浏览器验收。 ### 一、登录页文案 - `src/views/Login/Login.vue` 删除 `
` 中的说明段落 `

{{ t('login.message') }}

` 与 `