| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| Dockerfile | ||
| components.json | ||
| eslint.config.mjs | ||
| next-env.d.ts | ||
| next.config.mjs | ||
| package.json | ||
| postcss.config.mjs | ||
| tsconfig.json |
主管点的是一个数字(「充填 · 半年到1年 420」),而他要为这批人负责。 现在多一步:摊开这一格圈定的**全部**患者(姓名/病历号/性别/年龄/主治医生/ 上次就诊医生/专属客服),看过再点「确定,交给助手」。🔴 与出确认单**同源**:GET /plans/assignments/cohort 用的是 propose 那段 **同一个** cohortWhereSql + 同一个 SELECTION_ORDER。⛔ 别为它另写查询 —— 排序一旦不同,第 1 页看到的人 ≠ 助手真会挑走的前 N 个,而且两边都不报错(T14)。 实测:中间表标题 420,助手随后说「这批 50 人从符合条件的 420 人里挑」,对得上。 分页取,不一次拉全:最大的格子四千多人(测试服 充填·3年以上 4,159), 一次拉回来 DOM 撑不住,主管也不会逐行看完。⚠ ️ 这里**用 offset 不用游标**(与列表页那条纪律相反,刻意):候选集是静态快照、 排序键确定性、而且主管要「第 3 / 84 页」这种可回跳的翻页。⭐ 助手**默认不最大化**了(handoff 原来传 maximize: true): 前面已经有中间表让他看过人,再铺满整屏等于把他刚看完的工作台盖掉, 而他多半还要回去点下一格。要看大图,窗口自己有最大化按钮。⚠ ️ 粒子起点从"格子"改成中间表上的「确定」按钮 —— 从一个已被弹窗盖住的格子 起飞,看起来像凭空出现。 越权闸两层都有:controller 一次(让"收 clinicId 必过闸"在源码上可数)+ service 一次(换任何入口进来都拦得住);测试两条都锁。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| public | Loading commit data... | |
| src | Loading commit data... | |
| .dockerignore | Loading commit data... | |
| .env.example | Loading commit data... | |
| Dockerfile | Loading commit data... | |
| components.json | Loading commit data... | |
| eslint.config.mjs | Loading commit data... | |
| next-env.d.ts | Loading commit data... | |
| next.config.mjs | Loading commit data... | |
| package.json | Loading commit data... | |
| postcss.config.mjs | Loading commit data... | |
| tsconfig.json | Loading commit data... |