dev2 · 2026-08-21 · 方法:按出图铁律 1.3「画之前先 grep 现网」补做 ——
逐块回答"现状什么样 / 什么条件显示 / 后端给得出吗"
结论:4 处是我想当然画的(2 处画错、2 处没依据) · 1 处自相矛盾
我画的:眼镜类里摆 憩尔目全焦视功能定制镜 / 压轴大师双控镜 …(照厂家 B 抄的型号)
代码事实:
app/schemas/refractive_record.py:177
PreventionItem = Literal["光疗类","远疗类","眼镜类","训练类","营养类","其他"]
web/app/h5/tablet/.../patient-rail.tsx:53 同一份六项
flywheel.py:34,68 prevention_history 注释:多选 ["光疗类","远疗类","眼镜类",...]
现有 prevention_history 粒度是大类,不是型号,而且是档案级(长官已定沿用档案级)。
⇒ 图画错了。两条路,请长官选:
- A(小改):沿用六大类,C 端就是六个标签(与门店平板端口径一致)——
但厂家 B 那种"选到具体型号"就没有了
- B(大改):新增"具体型号"这一层(型号表 + 归到大类),数据更值钱(能统计哪家产品在用),
但要建枚举、要维护、要跟大类映射
我倾向 B,因为渠道商业上"哪个型号在用"才有价值;但这是新增数据结构,得长官定。
代码事实:vision_exams 里三者是 worth_4dot String(4) / alternate_cover String(50) /
eye_position String(50),grep 不到任何枚举定义(schemas 与前端都查了,0 命中)。
⇒ 画成下拉是我编的。要么定义枚举(要专业口径),要么老实画成输入框。
建议:一期画输入框(与现有字段一致),枚举等有临床口径再补。
代码事实:席位密码登录不是独立页面,是 h5/chat/page.tsx:3098 的
阻塞式弹层(Phase 46.8「席位密码登录阻塞窗」),机构开 enable_password_login
且本设备未登录时弹出;登录接口 seat_auth.py:120 seat_login 收 username/password,
查 users 表 role='org_seat'。
⇒ 我画成独立登录页与现网不符。应改为:沿用现有阻塞弹层,家长打开 H5 即弹。
代码事实:users 表上的席位绑定字段是
seat_bound_unionid / seat_bound_openid / seat_bound_at / seat_expires_at / seat_valid_days
—— 只有微信绑定,没有手机号绑定字段。
⇒ 「家长自绑手机号」这一步现网没有对应字段,是新增需求(方案里定了"手机号唯一"要靠它)。
图上要标成新增,并且要新增字段(如 seat_bound_phone + 唯一约束)。
另:
seat_bound_unionid注释写明"非 UNIQUE,允许同人多席位" ——
与我们"一个手机号一个子席位"的约束不冲突(约束落在手机号上),但要写清楚。
1.3 明细弹框的 [⋯] 菜单里我列了「续期」,1.4 又画了续期弹窗并标注"二期灰置"。
⇒ 一期图上不该出现续期。已在图里改为:一期不放该项,二期再加。
(顺带:现有 PATCH /seats/{id}/extend {extend_days} 已存在,二期做时直接复用。)
axial_length_od/os 字段真实存在generate + 明文密码 + 下载 Excel)reset-password 返回明文,交互照搬seat_expires_at / seat_valid_days 现成,"到期停用 + 登录校验"有落点vision_exams 逐项对得上(主诉/既往史/身高体重/戴镜/验光方式/球柱轴/线框结构大方向没问题,但上面 1、2 必须先由长官定口径(防控措施粒度、视功能填法),
3、4 我直接按现网改图。改完再请长官过一遍,然后才做高保真。
云机环境 · 非验收证据。