交付出件箱

← 返回出件箱

两端新首页 · 完整实施方案 v4(怎么做 / 先做什么 / 影响什么)

2026-09-24 · 接 v3(home-redesign-decisions-v3-20260924.md)。只读调查,零代码改动。
口径以本文为准;v2 的「扫码能力全仓 0 实现」「红线文件冻结」两处已作废。

零、长官 9-24 第二轮拍板汇总

# 事项 长官口径
1 今日护眼情况四块 就是 4L,要做设备绑定,与 Phase 48C 之前的方案串起来
2 多孩子 门店数字按孩子算、名单按家三档 —— 同意
3 智脑内提醒 同意
4 扫码转店 不加确认;转走后原店看不到 —— 同意
5 互扫绑定 两个方向都要做(门店扫家长 + 家长扫门店)
6 首页独立页面 要做
7 打卡当天可重填 要做
8 同龄排第几 要做(推翻"本期摘出"的建议)

一、「之前的方案」是什么(查实)

方案 内容 状态
Phase 48C 规则 17(9-15 拍板,brand-partner-spec-v1-20260915.md:41,203) 4L 四格由家长自己绑定点亮:先选 4L 类型,再选品牌型号(型号清单先手工维护),远期做成类似小米之家设备库 未开工
规则 21 四格排版选定横排四格(2×2、横滑已比选弃用) 已定
48C 效果图三态(brand-partner-mockup-v2-20260915.html) 未绑定(灰)/ 已点亮 / 数据未接入(提示联系门店) 已定
今日护眼四格 UI(web/app/h5/chat/components/today-band.tsx + today-detail-sheet.tsx) 四格正是 大路灯/红光仪/离焦镜/读写台,数字全是写死的假数据 死代码:chat/page.tsx:2595 {false && <TodayBand …/>}
Phase 21B 设备上报(4l-brain-api-plan.md,app/api/device_report.py) 给第三方硬件厂商推数据用,按手机号关联,不挂孩子;test 库 device_data/device_type_config 均 0 行 骨架在,从没真接过
家长录检查时的「防控措施」(web/app/h5/family/[id]/exam/new/prevention.ts) 6 组含品牌词(眼镜类≈Lens、光疗类=Laser+Light 混在一起、远疗类≈Long、另有理疗/食疗/药品),存 refractive_records.prevention_measures 在用,但是"某次检查勾了什么",不是"绑定了什么设备"

结论:全仓没有"孩子 ↔ 设备"绑定表(DeviceBinding 等 0 命中,对照组 DeviceData 9 个文件命中)。4L 秒读 / AI 结论不读设备数据和防控措施(four_l_summary_prompt.py grep prevention|device_data 0 命中),本次改动不影响 AI。

二、每件事怎么做

件 A · 4L 设备绑定 + 每日打卡(串起 48C)

  1. 绑定挂在孩子上(与 9-09 长官"关联挂档案级"一致):新表「孩子 4L 设备」(孩子、4L 类型、品牌、型号、绑定时间),每个 4L 类型一个孩子最多绑一台
  2. 品牌型号清单:新表手工维护;第一版建议直接用 prevention.ts 里长官 8-21 批过的品牌词拆成四类(光疗类要拆成红光 / 护眼灯两类)
  3. 四格三态:未绑定(灰,点了去绑定)→ 已绑定(可打卡)→ 远期接厂商数据后自动出数(沿用 48C "数据未接入"态)
  4. 打卡:只对已绑定的类型打卡;完成度 = 今天记了几类 / 绑了几类;新表按(孩子, 4L 类型, 上海时区日期)唯一,当天可重填覆盖
  5. 单位:离焦镜 h、红光仪 次、护眼灯 h、读写台 h(与效果图、today-band.tsx 一致)
  6. 视觉复用 today-band.tsx 的四色样式和 constrained-number-picker.tsx 数字选择器
  7. 厂商自动上报(21B 按手机号那套)本期不做,关联键对不上孩子,要单独设计

件 B · 门店汇总 + 智脑内提醒

  1. 门店顶部数字按孩子算;名单按家三档(全记 / 记了一部分 / 都没记)
  2. 统计范围 = 本店能看到的孩子(复用 _org_visibility_clause)∩ 至少绑了一台 4L 设备的孩子(没绑设备的孩子没东西可记,不算"未记录",待长官确认)
  3. 提醒:新表(门店、孩子、提醒时间、已读时间);家长打开智脑首页顶部显示;门店名单显示「已读 / 未读 N 天」(效果图原样)
  4. 家长自己当天没打卡,首页也自动提示(不依赖门店点)
  5. 限制:只在智脑里显示,不推送到手机

件 C · 双向扫码绑定

先修两道门(v3 第二节):门店视角 _store_visible_clause 接上 service_org_id;家长视角 get_org_patient / 列表里 org_clause 与 own_clause 的 AND 关系改掉。补家长视角真打测试。test/生产 claimed 均 0,零存量影响。

扫一扫能力比 v2 说的小得多(更正):微信签名接口已存在 app/api/wx_jssdk.py:117 POST /jssdk-config,分享卡 / 语音 / 隐藏菜单都在用 wx.config(share/[token]/page.tsx:206、voice-poc、find-similar/page.tsx:252)→ 公众号 JS 安全域名已配。做扫一扫 = 在门店页 jsApiList 加 scanQRCode。

方向 后端 前端要做
门店扫家长 ✅ 4 端点已通(brand_code_claim.py),家长码是纯文本 token,正好配 scanQRCode 读文本 家长端「我的二维码」页;门店端「扫一扫」按钮 → 选孩子 → 直接转入(不弹确认);家长名下没孩子时现场新建(规则 14)
家长扫门店码 ❌ 要新做:门店码(网址式,参照品牌码 /h5/brand-scan?bt=,微信自带扫一扫就能打开)+ 家长身份的认领接口(复用 claim_patient,白名单改为本家长自己的孩子) 门店端「本店二维码」页;家长扫码落地页 → 选自己孩子 → 绑定

件 D · 两个首页(独立页面)

家长 /h5/home、门店 /h5/store-home,对话页只留对话。区块判定沿用 v1/v2(11 复用 / 6 改造 / 7 新建),把 4L 四格、提醒条、同龄排名放进来。登录由批次五一次拆成公共件,首页直接用。

件 E · 同龄排第几

现状(查实)
数据文件 ssa2026.xlsx(5411 条) 服务器上找不到(find 全盘只命中 git 对象误报);导入脚本 scripts/import_b1_excel.py 在,但写死从 Mac 本地读
后端 0 实现;机构开关 enable_peer_axial_compare(database.py:133)存在但无代码读取;find-similar-pane.tsx 注释说"后端端点仍在"是错的
前端 PeerAxialBlock 组件在(P97/P50/P3 刻度),未挂载,可复用
方法(长官 9-17 定) 用自己 5411 条做同龄经验排名,不引外部常模;三条红线:不叫预测 / 写"本库同龄排名" / 不贴红黄绿

做法:找回文件上传 → 先审数据(真实孩子数、各年龄样本够不够 —— 长官 9-17 定的第一步)→ 参照库三张表 + 导入 + 查询接口 → 两端首页挂组件。

三、先做什么(顺序)

步 内容 依赖 谁
0 准备(不写代码,可同时) ① 长官看批次五对比图 subseat-login-plan-v2-20260924.html → 批次五开工拆登录 ② 找回 5411 数据文件传服务器 ③ 效果图增量改:门店汇总口径、4L 未绑定态、提醒条 ④ 4L 品牌型号初版清单给长官过目 — 长官 / 团队 / 我
1 后端地基(现在就能开工,不依赖登录) 修两道门 + 真打测试 → 4L 绑定表 + 品牌型号表 + 绑定接口 → 打卡表 + 提交/查询 + 门店汇总接口 → 提醒表 + 接口 → 门店码 + 家长认领接口 — 我
2 前端(等批次五拆好登录) 两个首页 + 改全部跳转 + 通知运维改公众号菜单 → 4L 四格 + 绑定流程 + 打卡弹层 → 扫码四个页面 → 提醒条 + 门店名单 → 其余区块(趋势图补线、较上次、已读、待办/今日数据) 批次五登录公共件 我
3 同龄排第几 审数据 → 建库 → 接口 → 挂组件 数据文件到位 我

四、影响什么

范围 影响 处置
现有聊天页 chat/page.tsx 首页壳搬走;登录由批次五抽走 与批次五对齐,不同时改
12 处跳到 /h5/chat 的地方 登录落地、品牌码落地、退出落地、兜底失败等(v2 §2.3 清单) 逐个改到新首页
find-similar、eye-nav 把聊天页当"登录救援页" 登录抽成公共件后改指向
平板端 首页壳是平行实现,不会自动跟着变 本期不动平板,单列
nginx 根地址 chat.tongban.love.conf:156 301 到 /h5/chat 改指新首页
公众号菜单 / 二维码物料(仓库外) 配的都是 /h5/chat… 必须通知运维改,漏改全挂
门店 / 家长看孩子的范围 修两道门 现在 0 条认领数据,零存量影响
数据库 新增约 8 张表(4L 绑定、品牌型号、打卡、提醒、门店码 + 同龄参照库 3 张) 生产迁移链要接在 #730-#733 + 批次五之后(生产停在 phase48a_002)
AI 对话 / 4L 秒读 不读设备和打卡数据 不受影响
效果图 门店汇总卡"家长"→"孩子"、名单行加"部分记录"、4L 加未绑定态、加提醒条 增量改,不重画

五、还要长官定的

  1. 没绑任何 4L 设备的孩子,算不算"未记录"?建议不算
  2. 系统里还没账号的新家长扫门店码:A 提示先由门店开号(门店码只管绑定)/ B 扫了直接开号并绑定(要动开通计数)。建议 A
  3. 4L 品牌型号第一版用防控措施里现成的品牌词?
  4. 5411 数据文件谁来传到服务器?