|
@@ -202,6 +202,9 @@
|
|
|
|
|
|
|
|
## 9. 变更与功能确认记录
|
|
## 9. 变更与功能确认记录
|
|
|
|
|
|
|
|
|
|
+> **变更索引(按编号顺序)**:C-01 协作规范 · C-02 蓝色品牌色 · C-03 扁平按钮 · C-04 课程时间排序 · C-05 数字讲师资产库 · C-06 统一创建入口 · C-07 禁止删除已用讲师 · C-08 创建流程优化 · C-09 手机拍照录音 · C-10 独立创建编辑页 · C-11 搜索备注收起 · C-12 照片参考样例 · C-13 待制作队列 · C-14 取消制作详情页 · C-15 平台/用户隔离 · C-16 讲师默认所有者 · C-17 顶部栏管理员匹配与千分位。
|
|
|
|
|
+> **验证状态**:C-01 已确认;C-02/C-03 为样式“部分确认”;C-04~C-16 均为功能/修复“部分确认”(仅过 check/build 及接口隔离测试,未做公网与生产库验收)。
|
|
|
|
|
+
|
|
|
### C-20260923-01|建立项目级协作、决策与功能确认机制
|
|
### C-20260923-01|建立项目级协作、决策与功能确认机制
|
|
|
|
|
|
|
|
- 日期:2026-09-23
|
|
- 日期:2026-09-23
|
|
@@ -366,7 +369,7 @@
|
|
|
- 后续修改提示:接入正式声音质量或时长校验时,需在服务端校验音频真实时长和内容,不能依赖前端绿色提示;若替换参考图,检查手机端两张示例的裁切位置。
|
|
- 后续修改提示:接入正式声音质量或时长校验时,需在服务端校验音频真实时长和内容,不能依赖前端绿色提示;若替换参考图,检查手机端两张示例的裁切位置。
|
|
|
- 关联:C-20260923-09、C-20260923-11。
|
|
- 关联:C-20260923-09、C-20260923-11。
|
|
|
|
|
|
|
|
-### C-20260923-12|平台管理员独立待制作课程队列
|
|
|
|
|
|
|
+### C-20260923-13|平台管理员独立待制作课程队列
|
|
|
|
|
|
|
|
- 日期:2026-09-23
|
|
- 日期:2026-09-23
|
|
|
- 类型:功能 / 样式
|
|
- 类型:功能 / 样式
|
|
@@ -379,7 +382,20 @@
|
|
|
- 后续修改提示:若增加制作状态或团队分工,明确队列纳入条件和权限;讲师照片与录音需继续使用提交快照及受保护文件接口。
|
|
- 后续修改提示:若增加制作状态或团队分工,明确队列纳入条件和权限;讲师照片与录音需继续使用提交快照及受保护文件接口。
|
|
|
- 关联:C-20260923-05、C-20260923-10。
|
|
- 关联:C-20260923-05、C-20260923-10。
|
|
|
|
|
|
|
|
-### C-20260923-14|平台管理员与普通用户身份彻底隔离
|
|
|
|
|
|
|
+### C-20260923-14|取消平台制作详情页并合并制作操作
|
|
|
|
|
+
|
|
|
|
|
+- 日期:2026-09-23
|
|
|
|
|
+- 类型:功能 / 重构
|
|
|
|
|
+- 需求与原因:用户明确要求删除平台管理员现有制作详情页,避免与新待制作页面重复。
|
|
|
|
|
+- 修改范围:移除 `/admin/courses/:id` 平台路由及各管理页面对此路径的链接;待制作队列卡片加入完整讲稿、提交人资料,以及接单操作;同页增加“制作中”切换、交付文件上传与下载、实际积分调整和完成交付。全部课程页保留为只读总览。`AdminCourseDetail` 组件仍供组织管理员课程路径使用,不作为平台管理员页面。
|
|
|
|
|
+- 保留/新增判断:保留 D-001、D-004、D-005、D-009;平台制作操作集中于 `/admin/production-queue`,受原管理员接口鉴权约束。替代 C-20260923-13 中“完整制作操作仍进入现有课程详情页”的判断。
|
|
|
|
|
+- 功能确认状态:部分确认
|
|
|
|
|
+- 验证证据:`npm run check`、`npm run build`、`git diff --check` 通过;检索确认平台管理端没有残留指向 `/admin/courses/:id` 的链接,组织管理路径仍引用原组件。
|
|
|
|
|
+- 未确认与风险:未用真实平台管理员账号验证接单、上传、积分调整与交付;未部署公网。旧平台详情页中的更多辅助操作未全部迁入新队列,例如删除交付文件、退回待制作和修改已完成课程的交付说明。
|
|
|
|
|
+- 后续修改提示:若团队需要恢复辅助操作,应直接在制作队列卡片中补充并验证相应状态及权限,不要重新引入重复的详情页。
|
|
|
|
|
+- 关联:C-20260923-13。
|
|
|
|
|
+
|
|
|
|
|
+### C-20260923-15|平台管理员与普通用户身份彻底隔离
|
|
|
|
|
|
|
|
- 日期:2026-09-23
|
|
- 日期:2026-09-23
|
|
|
- 类型:功能 / 数据库 / 修复
|
|
- 类型:功能 / 数据库 / 修复
|
|
@@ -390,22 +406,9 @@
|
|
|
- 验证证据:`npm run check`、`npm run build`、`git diff --check` 通过;隔离 PostgreSQL 库验证普通注册、管理员注册手机号拦截、普通登录、管理员登录、交叉登录拒绝、普通会话访问 `/api/me`、管理员会话访问 `/api/me`、普通会话访问后台返回 401、管理员访问后台统计/课程/用户/组织/数字讲师接口成功、管理员退出后会话失效、角色转换接口返回 403;实际操作验证用户创建/重置密码、组织创建/更新、成员授权/移除、组织积分、申请审批、课程制作状态/积分/交付/结单、数字讲师查看/编辑/复制/删除;浏览器实际验证管理员登录后台、管理员退出、普通用户登录课程首页;迁移库验证旧管理员从 `users` 迁入 `platform_admins` 且普通用户表不再保留管理员记录;数据库触发器验证三种手机号/角色越界写入均被拒绝;生产模式服务启动成功。
|
|
- 验证证据:`npm run check`、`npm run build`、`git diff --check` 通过;隔离 PostgreSQL 库验证普通注册、管理员注册手机号拦截、普通登录、管理员登录、交叉登录拒绝、普通会话访问 `/api/me`、管理员会话访问 `/api/me`、普通会话访问后台返回 401、管理员访问后台统计/课程/用户/组织/数字讲师接口成功、管理员退出后会话失效、角色转换接口返回 403;实际操作验证用户创建/重置密码、组织创建/更新、成员授权/移除、组织积分、申请审批、课程制作状态/积分/交付/结单、数字讲师查看/编辑/复制/删除;浏览器实际验证管理员登录后台、管理员退出、普通用户登录课程首页;迁移库验证旧管理员从 `users` 迁入 `platform_admins` 且普通用户表不再保留管理员记录;数据库触发器验证三种手机号/角色越界写入均被拒绝;生产模式服务启动成功。
|
|
|
- 未确认与风险:未在生产数据库或公网部署;本地隔离测试使用临时数据库和测试账号,临时服务已停止,测试数据库待清理;历史管理员若拥有业务数据会按设计阻止自动迁移,需要备份后人工制定归属方案;构建仍有 Vite 大包体积提示,但不影响构建。
|
|
- 未确认与风险:未在生产数据库或公网部署;本地隔离测试使用临时数据库和测试账号,临时服务已停止,测试数据库待清理;历史管理员若拥有业务数据会按设计阻止自动迁移,需要备份后人工制定归属方案;构建仍有 Vite 大包体积提示,但不影响构建。
|
|
|
- 后续修改提示:新增平台后台接口必须使用 `adminAuth`,普通用户接口不得接受管理员会话;审计、积分流水、审批和资产事件涉及操作人时应分别写入 `admin_actor_id` 或普通用户字段;不得恢复 `users.role='ADMIN'` 或升降级接口。生产升级前备份数据库和上传目录,并先核对旧管理员是否拥有业务数据。
|
|
- 后续修改提示:新增平台后台接口必须使用 `adminAuth`,普通用户接口不得接受管理员会话;审计、积分流水、审批和资产事件涉及操作人时应分别写入 `admin_actor_id` 或普通用户字段;不得恢复 `users.role='ADMIN'` 或升降级接口。生产升级前备份数据库和上传目录,并先核对旧管理员是否拥有业务数据。
|
|
|
-- 关联:C-20260923-05、C-20260923-10、C-20260923-13。
|
|
|
|
|
|
|
+- 关联:C-20260923-05、C-20260923-10、C-20260923-14。
|
|
|
|
|
|
|
|
-### C-20260923-13|取消平台制作详情页并合并制作操作
|
|
|
|
|
-
|
|
|
|
|
-- 日期:2026-09-23
|
|
|
|
|
-- 类型:功能 / 重构
|
|
|
|
|
-- 需求与原因:用户明确要求删除平台管理员现有制作详情页,避免与新待制作页面重复。
|
|
|
|
|
-- 修改范围:移除 `/admin/courses/:id` 平台路由及各管理页面对此路径的链接;待制作队列卡片加入完整讲稿、提交人资料,以及接单操作;同页增加“制作中”切换、交付文件上传与下载、实际积分调整和完成交付。全部课程页保留为只读总览。`AdminCourseDetail` 组件仍供组织管理员课程路径使用,不作为平台管理员页面。
|
|
|
|
|
-- 保留/新增判断:保留 D-001、D-004、D-005、D-009;平台制作操作集中于 `/admin/production-queue`,受原管理员接口鉴权约束。替代 C-20260923-12 中“完整制作操作仍进入现有课程详情页”的判断。
|
|
|
|
|
-- 功能确认状态:部分确认
|
|
|
|
|
-- 验证证据:`npm run check`、`npm run build`、`git diff --check` 通过;检索确认平台管理端没有残留指向 `/admin/courses/:id` 的链接,组织管理路径仍引用原组件。
|
|
|
|
|
-- 未确认与风险:未用真实平台管理员账号验证接单、上传、积分调整与交付;未部署公网。旧平台详情页中的更多辅助操作未全部迁入新队列,例如删除交付文件、退回待制作和修改已完成课程的交付说明。
|
|
|
|
|
-- 后续修改提示:若团队需要恢复辅助操作,应直接在制作队列卡片中补充并验证相应状态及权限,不要重新引入重复的详情页。
|
|
|
|
|
-- 关联:C-20260923-12。
|
|
|
|
|
-
|
|
|
|
|
-### C-20260923-14|数字讲师创建默认所有者且编辑所有者权限收紧
|
|
|
|
|
|
|
+### C-20260923-16|数字讲师创建默认所有者且编辑所有者权限收紧
|
|
|
|
|
|
|
|
- 日期:2026-09-23
|
|
- 日期:2026-09-23
|
|
|
- 类型:功能 / 样式 / 权限
|
|
- 类型:功能 / 样式 / 权限
|
|
@@ -417,3 +420,18 @@
|
|
|
- 未确认与风险:未在生产环境或真实公网验证;既有未提交改动继续保留。
|
|
- 未确认与风险:未在生产环境或真实公网验证;既有未提交改动继续保留。
|
|
|
- 后续修改提示:未来若扩展协作者或多人所有权,需在此表单和接口保持只读与管理员授权逻辑一致。
|
|
- 后续修改提示:未来若扩展协作者或多人所有权,需在此表单和接口保持只读与管理员授权逻辑一致。
|
|
|
- 关联:C-20260923-05、C-20260923-10。
|
|
- 关联:C-20260923-05、C-20260923-10。
|
|
|
|
|
+
|
|
|
|
|
+### C-20260923-17|顶部栏工作区管理员匹配与积分余额千分位展示
|
|
|
|
|
+
|
|
|
|
|
+- 日期:2026-09-23
|
|
|
|
|
+- 类型:UI / 体验 / 逻辑修复
|
|
|
|
|
+- 需求与原因:用户明确要求:右侧“管理员”字样要跟当前工作区严格匹配,只有当前选中的工作区角色为管理员才显示,避免切换到个人工作区或普通组织成员时误显;积分部分文案需写清楚“积分余额:xxx”,且数字格式保持统一每三位用逗号隔开。
|
|
|
|
|
+- 修改范围:
|
|
|
|
|
+ 1. `src/components/Layout.tsx`:将 `isOrgManager` 从全局匹配任一组织角色(`organizations.some`)改为仅匹配当前工作区(`currentOrganization?.role === 'MANAGER'`);若处于个人工作区或非管理员组织,则不渲染管理员徽标;
|
|
|
|
|
+ 2. `src/components/Layout.tsx`:积分徽章文案更新为“积分余额:xxx”,并使用 `.toLocaleString('zh-CN')` 统一千分位逗号展示;
|
|
|
|
|
+ 3. `src/pages/OrganizationManage.tsx`:组织积分余额数字同样增加 `.toLocaleString('zh-CN')` 格式化,保持全站一致。
|
|
|
|
|
+- 保留/新增判断:遵守 D-001。前台“管理员”徽章必须与当前选中的工作区上下文保持一致,不能泄露或混淆其他工作区的管理权限。
|
|
|
|
|
+- 功能确认状态:部分确认
|
|
|
|
|
+- 验证证据:`npm run check`、`npm run build`、`git diff --check` 全部通过。
|
|
|
|
|
+- 未确认与风险:未在生产环境构建部署。
|
|
|
|
|
+- 关联:C-20260923-05。
|