待办工作台:三个队列区块 + 待审核/待审批/待核对直达菜单 (#36) - #40
Conversation
代码评审报告(os-project-dev-review)档位:全量档(依据:改已有工作台页面与应用导航,影响六类岗位登录后的第一屏;diff 3 文件 +116/−13。调度员派发时注明全量档) 通用质量(/code-review 高档)无正确性缺陷。改动是纯声明式 UI 元数据(1 个页面新增 3 个
专属核查(四条逐条)1 改动面越界:✅ 无越界
2 降级对账:🟡 一条不符(见「发现清单」F1);其余 ✅
3 三禁痕迹:✅ 无 4 硬拍板落地:✅
调用面抽查(全量档要求)实例状态(抽查时):填报单 11 张 —— 人力审核中 1(产品部)、领导审批中 2(测试部 / 人力行政部)、分公司核对中 3、已通过 1(研发部)、填报中 4;核对任务 18 条,其中待核对 8 条。 区块 × 岗位可见矩阵(登录后落地页实测,行数为该岗位实际看到的行)
行动作是否只在服务端授权范围内生效 —— 逐条实点 + REST 双路验证,全部被服务端拦下,无一例越权写入成功:
导航新增三项对各岗位的可见性:六类岗位全部可见三项(与不加 我数的点击数(均从登录后落地页起算,全程 URL 只有
上一单达成的「填报人一屏填数出分提交、0 跳页」是否回退:未回退。 整轮 URL 去重后只有登录路径与 其他实测: 发现清单
清零条件(一行):更正需求符合度清单 A1.7 的佐证与噪音披露范围(四类岗位,零代码改动),复查只看这一条;清零即可合并。 |
应修 F1 处置:清单佐证已更正(零代码)评审唯一一条 🟡 应修已处置,更正评论:#36 (comment) 代码零改动(本分支 head 仍是
复核实例已停、临时目录已删;分支、标签、处理人未动。清零条件按评审「复查只看这一条」。 |
复查轮(os-project-dev-review)范围:严格限定为首轮评审唯一一条 🟡 应修 F1(需求符合度清单 A1.7 的佐证与披露范围不实,零代码)。按轮次纪律只查修复点 + 是否引入新问题,不重开全面评审。 核点 1 — PR head 未变,零代码属实:✅
核点 2 — 更正评论逐项核对:✅ 四项全中
其余条目三态未被顺手改动:✅ 原清单评论 核点 3 — 抽验(实测,非文本核对):✅ 3 格全对临时 clone(
事后对账:待核对任务由 3 条降为 2 条(仅因我自己那一次本职确认成功),11 张填报单状态零变化——两次越岗位实点均未产生任何写入。实例已按 PID 停止、端口 3115 已释放、临时目录已删。 核点 4 — 是否引入新问题:✅ 无零代码改动,无新提交、无元数据变化,不存在新增缺陷面。四条库专属核查在首轮已逐条给出结论(改动面越界 ✅ / 降级对账 🟡→本轮清零 / 三禁痕迹 ✅ / 硬拍板落地 ✅),本轮无任何一条被改动的输入,结论沿用。 ⚪ 记录(不阻塞合并)
清零核对(一行):首轮唯一的 🟡 应修 F1 —— A1.7 佐证与噪音披露范围 —— 已按事实更正、覆盖面反而更宽、服务端拒绝证据与平台出口齐备,并经我独立实测 3 格复现一致;阻塞与应修均已清零,可合并。 |
工作台 kpi_home 在「待填报的指标」「填报单」之外加三个只读网格: 「待我核对」(核对任务 status=pending,行动作 确认无误 / 提出争议)、 「待人力审核」「待领导审批」(填报单 status=hr_reviewing / leader_approving, 行动作 审核通过 / 驳回)。区块不按岗位显隐 —— 页面组件的 visibleWhen 不绑岗位, 且谁看到哪些行本来就由对象 OWD + 方案发布写入的动态共享规则 + 权限集 readScope 决定;空区块保留、pageSize 收到 10。 三个待办区块的 filter 过滤的是本对象自己的 status 列,不跨关系;「待填报的指标」 按「所属填报单为填报中」过滤仍然做不到(那是 kpi_entry_sheet.status,查询引擎 拒绝跨关系过滤,而 kpi_entry_line 上没有任何字段编码填报单状态),按 #36 「明细上若无该字段则如实记录,不加字段」如实记录在注释里,不加字段、不用退化条件。 导航「填报与审核」组新增三项,用 viewName 直指已存在的具名列表视图 (kpi_entry_sheet 的 hr / leader、kpi_check_task 的 pending)。改前分管领导的队列 藏在填报单页签栏的「还有 4 个」溢出菜单里(平台 objectstack-ai/objectstack#14883、 #14952),要 5 击才够得着;改后 3 击直达。三项不加 requiredPermissions:能看到几行 由数据范围决定,加能力闸门会挡掉本该用它的人。 翻译包经 pnpm i18n:extract 重生成(+3 个导航项 label)。 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
工作项 #36。
改了什么
工作台
kpi_home在原有「待填报的指标」「填报单」之外加三个只读网格区块,并在导航「填报与审核」组加三个直达项。kpi_check_task,status = pendingkpi_entry_sheet,status = hr_reviewingkpi_entry_sheet,status = leader_approving导航新增「待我核对」「待人力审核」「待领导审批」,用
viewName直指已存在的具名列表视图(kpi_check_task的pending、kpi_entry_sheet的hr/leader)。改前分管领导的队列藏在填报单页签栏的「还有 4 个」溢出菜单里(平台 objectstack-ai/objectstack#14883、#14952),登录起算 5 击才够得着;改后 3 击直达。翻译包经
pnpm i18n:extract重生成(+3 个导航项 label)。两个实现口径(都写进了代码注释)
区块不按岗位显隐。 一是页面组件的
visibleWhen只绑record/current_user/page.<var>,没有岗位谓词;二是谁看到哪些行本来就由对象 OWD + 方案发布写入的动态共享规则 + 权限集readScope决定 —— 按岗位再显隐一次是把同一条边界画两遍,而画在前端的那一遍不是边界。实测矩阵:部门填报人员三个待办区块全空,分公司核对人员「待我核对」只有本分公司,分管领导「待领导审批」只有分管主体。三个导航项不加
requiredPermissions。 机制沿用,但这三项指向的对象在所有岗位的权限集里都有读权,看到几行由数据范围决定;加能力闸门会把本该用它的人挡在自己队列门口。三个待办区块的
filter过滤的是本对象自己的status列,不跨关系;「待填报的指标」按「所属填报单为填报中」过滤仍然做不到 —— 那是kpi_entry_sheet.status,查询引擎拒绝跨关系过滤,而kpi_entry_line上没有任何字段编码填报单状态。按 #36「明细上若无该字段则如实记录,不加字段」如实记录在注释里,不加字段、不用退化条件冒充。src/views/index.ts经核实无需改动:四个流程动作与两个核对动作本来就是对象级、带locations: ['list_item']与状态谓词,列表行菜单在各状态下已正确出现(已通过 → 归档;人力审核中 / 领导审批中 / 分公司核对中 → 审核通过 | 驳回),驳回原因在行级入口同样必填。验证
pnpm verify绿(validate · tsc --noEmit · vitest 139 测试 · i18n 新鲜度)node scripts/software-flow.mjs→{"passed":54,"failed":0}node scripts/e2e-flow.mjs→{"passed":74,"failed":0}测试报告与需求符合度清单挂在 #36 评论上。
🤖 Generated with Claude Code