# 变更审计记录:Task 6 Change B/C — 定时任务管理页面 + 小程序清理 | 字段 | 值 | |------|-----| | 日期 | 2026-03-23 22:47:54 | | Prompt-ID | P20260323-224401 | | Session-ID | 5b6bbdcb | | Session 路径 | docs/audit/session_logs/2026-03/23/38_0ad4d674_221119 | ## 操作摘要 Task 6(ETL 状态页修复 + 定时任务管理页面 + 启动检查)的 Change B 和 Change C 收尾: - Change B:新建后端 trigger_jobs router + schemas,前端 TriggerJobs 页面和 API,admin-web 菜单/路由注册 - Change C:小程序 task-list 页面数据映射修复(banner 空数据、perfData 字段类型、头像加载、权限守卫)、api.ts 响应适配 - 清理:移除小程序中的 debug console.log ## 风险标签 `root-file` · `dir:admin-web` · `dir:backend` · `dir:etl` · `dir:miniprogram` · `dir:db` · `db-schema-change` ## 本次对话文件变更 ### 新增文件 - `docs/audit/prompt_logs/prompt_log_20260323_224401.md` - `docs/audit/session_logs/2026-03/23/38_0ad4d674_221119/main_01_5b6bbdcb.md` - `docs/audit/session_logs/2026-03/23/38_0ad4d674_221119/sub_01_5b6bbdcb.md` ### 删除文件 - `docs/audit/session_logs/2026-03/23/38_0ad4d674_221119/main_01_0744d658.md`(被新版替换) ## 改动注解 ### `apps/admin-web/src/App.tsx` - 变更类型:修改 - 原始原因:Task 6 Change B 需要在管理后台添加「定时任务」页面入口,同时本轮还集成了租户管理员、AI 监控、开发调试日志等多个新页面的路由 - 思路分析:在 NAV_ITEMS 菜单数组中插入 `ClockCircleOutlined` 图标的「定时任务」菜单项(位于 ETL 状态之后),同时添加 AI 监控子菜单组(含运行总览/调度状态/调用明细/手动操作);Routes 区域对应添加 7 条新路由;菜单组件增加 `defaultOpenKeys` 逻辑以自动展开 AI 子菜单 - 修改结果:admin-web 侧边栏新增「定时任务」「租户管理员」「AI 监控」「开发调试日志」菜单项及对应路由,用户可直接导航到 `/trigger-jobs` 查看和手动执行定时任务 ### `apps/miniprogram/miniprogram/pages/task-list/task-list.ts` - 变更类型:修改 - 原始原因:P13 前端打磨审查 + 角色路由权限守卫 + 修复 banner 数据为空问题(后端返回 performance 字段未映射到 perfData) - 思路分析:多项改动合并:(1) G1:从 fetchMe 获取头像/昵称/角色/门店名,替代硬编码 mock 数据;(2) G2:根据 incomeMonth 判断 isCurrentMonth;(3) perfData 字段类型从 string 改为 number(basicHours/bonusHours/totalHours/bonusMoney);(4) loadData 中新增完整的 performance→perfData 映射逻辑,兼容 snake_case 和 camelCase;(5) T1.3:abandonReason 从 task 对象获取不硬编码;(6) T1.4:盖戳动画始终播放不依赖 tierCompleted;(7) onShow 添加 checkPageAccess 权限守卫;(8) 移除硬编码的 AI 建议文案数组 - 修改结果:task-list 页面从后端实际数据驱动渲染,不再显示空白 banner;权限守卫阻止未授权用户访问;数据类型对齐后 WXML 模板中的格式化函数(fmt.money/fmt.hours 等)可正确工作 ### `apps/miniprogram/miniprogram/services/api.ts` - 变更类型:修改 - 原始原因:后端 /api/xcx/tasks 返回格式为 `{ items, total, page, pageSize, performance }`,前端 fetchTasks 期望 `{ tasks, hasMore, performance }`,需要适配层 - 思路分析:在 fetchTasks 函数中增加响应适配逻辑:将 `res.items` 映射为 `tasks`,根据 `page * pageSize < total` 计算 `hasMore`,透传 `performance` 字段 - 修改结果:前端 task-list 页面可正确接收后端分页数据和业绩进度数据,消除了空数据问题 ### `NeoZQYY.code-workspace` - 变更类型:修改(非高风险) - 简要:workspace 配置更新 ### 其他 session_logs 索引文件 - 变更类型:修改(非高风险) - 简要:session 日志系统自动维护的 day_index 文件批量更新(2026-02 至 2026-03 各日期) ## DDL/迁移检查 - `compliance.new_migration_sql`:空(无新增迁移 SQL) - DDL 基线状态:⚠️ `has_ddl_baseline` 为 false,DDL 基线待合并 ## OpenAPI Spec 同步 - `api_changed`:false — 本轮未直接修改接口定义文件,无需重新导出 spec ## 合规检查 | 检查项 | 状态 | |--------|------| | 审计记录 | ✅ 本文件 | | AI_CHANGELOG | ✅ 已更新 | | CHANGE 注释 | ✅ 已添加 | | 文档同步 | ⚠️ `apps/admin-web/README.md` 和 `apps/miniprogram/README.md` 待确认同步 | | DDL 基线 | ⚠️ 待合并 |