feature/rdm-increment-duties-page
main
P7-B/C(提案 r1 §4/§5)——项目设置四页的后两页重构:
文档职责页:文档清单(duty.catalog:名称/类型/阶段/职责概况/在途轮次,勾选支持批量)+选中文档职责详情(duty.get 回填当前职责——三个项目成员 Picker,与整文冻结名单分列展示;在途轮次显示「变更将失效需重提交」确认);批量分配走 rdm.review.assign.doc.batch(整批拒绝列原因);保留整文提交/审核/驳回/终批操作。
项目权限页:双视图——按成员(默认自省;中文标签,来源与第一拒绝原因;系统范围动作折叠进 Collapsible 技术详情)+权限矩阵(rdm.perm.matrix:成员×项目动作 ✓/✗,单元格悬停解释,行展开单成员详情与三态覆盖:沿用角色默认/项目内允许/项目内禁止——恢复默认经 rdm.perm.unset 实际撤销,不用布尔模拟)。
Why: 方案 §4/§5 的交互落地(P7)。 Evidence: tsc、design-guard 6/6、npm run build 通过;服务端语义由 RDM #346/#349 覆盖。 Impact: 两个 section 重构。 Refs: 提案 r1;Dev 任务卡 feature/rdm-increment-settings-duties
Why: P7-B/C——文档职责页升级为「文档清单+选中职责详情」(duty.catalog/get:名称/类型/阶段/在途轮次,当前职责经三个项目成员 Picker 回填并与冻结名单分列;在途轮次失效确认;批量勾选+统一三权走 assign.doc.batch,整批拒绝列原因);权限页升级为「单成员详情+多人矩阵」双视图(中文标签、系统范围动作折叠为技术详情、矩阵单元格悬停解释、行展开三态覆盖——沿用默认/项目内允许/项目内禁止,恢复默认走 perm.unset 实际撤销)。 Evidence: tsc、design-guard 6/6、npm run build 通过;服务端语义由 RDM #346(标签/矩阵)与 #349(unset)测试覆盖;折叠使用 @ui Collapsible 原语。 Impact: RdmDutiesSection/RdmPermMatrixSection 重构;无跨页变更。 Refs: 提案 r1 §4/§5/P7;RDM #346/#349
No dependencies set.
The note is not visible to the blocked user.
P7-B/C(提案 r1 §4/§5)——项目设置四页的后两页重构:
文档职责页:文档清单(duty.catalog:名称/类型/阶段/职责概况/在途轮次,勾选支持批量)+选中文档职责详情(duty.get 回填当前职责——三个项目成员 Picker,与整文冻结名单分列展示;在途轮次显示「变更将失效需重提交」确认);批量分配走 rdm.review.assign.doc.batch(整批拒绝列原因);保留整文提交/审核/驳回/终批操作。
项目权限页:双视图——按成员(默认自省;中文标签,来源与第一拒绝原因;系统范围动作折叠进 Collapsible 技术详情)+权限矩阵(rdm.perm.matrix:成员×项目动作 ✓/✗,单元格悬停解释,行展开单成员详情与三态覆盖:沿用角色默认/项目内允许/项目内禁止——恢复默认经 rdm.perm.unset 实际撤销,不用布尔模拟)。
Why: 方案 §4/§5 的交互落地(P7)。
Evidence: tsc、design-guard 6/6、npm run build 通过;服务端语义由 RDM #346/#349 覆盖。
Impact: 两个 section 重构。
Refs: 提案 r1;Dev 任务卡 feature/rdm-increment-settings-duties