2026-09-24 · 结构性重排版 · 左「现在」1:1 照 test 环境真实截图复刻,右「改后」按批次五 13 条拍板绘制 · 橙色虚线仅标真正新增的元素,未改动的列不加标注
家长账号改成『机构前缀 + 6 位数字』:前缀由平台后台给每个机构设(1-6 个大写字母,不能和别的机构重复),数字从 100001 开始往下排。门店账号不变。
门店账号、家长账号都是 10 位纯数字,格式一样,容易混淆谁是谁
BF 是这家机构的前缀,100001 是它开的第 1 个家长号;老家长号不改
输入「席位账号」+ 密码。改后一个字不变,老席位完全不受影响。
席位账号 + 密码
老席位完全不受影响,界面、字段、流程一个字都没改
新席位首次登录仍然用「账号 + 初始密码」这一套,跟老席位没有区别。
首次登录用「账号 + 管理员给的初始密码」
这一步不变;输入的账号可能带机构前缀(家长),也可能不带(门店)。管理员重置过密码的号,也按这一步登:用重置后拿到的账号 + 新密码
新开的账号设置完以后,用手机号 + 密码登录,账号就用不上了,所以弹窗不再显示账号,改成提醒以后用手机号登录;手机号仍然必填,这次后端也加锁。手机号那栏标题统一叫『手机号』(原家长版『家长手机号』、门店版『门店联系电话』,seat-change-password-sheet.tsx:37)。
绿提示条 + 两个密码框 + 家长手机号 + 底部说明 + 确认并进入
不再显示账号;手机号标题旁加『用于登录』小标签,底部说明提醒以后用手机号 + 密码登录
新开的账号设置完以后,登录只填手机号 + 密码。店里的平板也一样改;平板只给店员用,同一个手机号就算也开了家长账号,在平板上也直接进门店账号,不用选。
只能输「席位账号」,没有别的选择
输入框只显示手机号,不再提供「用账号登录」的入口;密码框占位符也改成「密码」——新席位这一步已设过自己的密码,初始密码已失效
微信授权后自动帮用户填好登录名;新席位帮的是手机号,老席位帮的仍是账号。
账号栏自动填入 0134202609(门店),密码栏跟着变成「密码」(不再提示是初始密码)
新席位自动填入手机号 13812341234,提示语跟着改成「已自动帮您填入手机号」
点任意功能先完成初始化;以后微信失效时,可以用手机号 + 密码登录(界面同第 5 块改后)。
扫码、微信授权后直接进对话页,全程没有密码
进去后点任意功能,先弹出和第 4 块改后一样的初始化弹窗(品牌码家长没有管理员给的初始密码,所以底部这句跟第 4 块不同)
同一个人的门店新号和家长新号填了同一个手机号:输的是哪个号的密码就进哪个号;两个号密码一样时,才弹这个框让本人选。
左:门店账号 0134202609,右:家长账号 0000012609,两个号各登各的
两个号密码一样时才弹出;样子照抄找回密码那个选账号框,标签用『门店版 / 家长版』,不显示店名
同一个人既有老门店号、又有新家长号,而且两个号都用自己的微信登过:登录框写『手机号或账号』,填账号进门店号,填手机号进家长号。只有这种人才看到这个框。
现在只能填席位账号
填席位账号 + 密码 → 进门店号;填手机号 + 密码 → 进家长号。不加『用账号登录』链接,不加提示小字
品牌码开通名单加「手机号」列 + 「重置密码」按钮;不加「换绑」。这是 PC 后台页面,表格较宽,本块改为上下排列(现在在上、改后在下),其余不受影响。
| 用户 | openid | 开通时间 | 到期日 | 孩子档案 | 当前绑定机构 | 绑定时间 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|---|
铁 铁雨 |
o2s142Jv...TMCM | 2026-09-17 17:08 | 2027-09-17 | 1 | 未绑定 | — | 有效 | 停用·延期 |
留 留白 |
o2s142BN...jyvE | 2026-09-17 13:57 | 2027-09-17 | 0 | 未绑定 | — | 有效 | 停用·延期 |
test 环境「测试示范档案机构 · 品牌码与开通」页真实截图复刻(2 条真实数据):用户 / openid / 开通时间 / 到期日 / 孩子档案 / 当前绑定机构 / 绑定时间 / 状态 / 操作(停用、延期)共 9 列
| 用户 | 手机号 | openid | 开通时间 | 到期日 | 孩子档案 | 当前绑定机构 | 绑定时间 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
铁 铁雨 |
13812341234 | o2s142Jv...TMCM | 2026-09-17 17:08 | 2027-09-17 | 1 | 未绑定 | — | 有效 | 停用·延期·重置密码 |
留 留白 |
— | o2s142BN...jyvE | 2026-09-17 13:57 | 2027-09-17 | 0 | 未绑定 | — | 有效 | 停用·延期·重置密码 |
加「手机号」列(放在「用户」后面,空值显示「—」,样式照搬子席位管理页「家长手机」列)+「重置密码」按钮(样式照搬子席位管理页同名按钮);不加「换绑」
门店版和家长版一样:新开的门店号设置完以后用手机号 + 密码登录。手机号那栏标题和家长版统一叫『手机号』(原门店版叫『门店联系电话』,seat-change-password-sheet.tsx:37),旁边加『用于登录』提醒。
test 环境真实截图复刻(门店版):绿提示条 + 两个密码框 + 门店联系电话 + 底部说明 + 确认并进入
和家长版改法一样:标题右侧加『用于登录』小标签,底部说明提醒以后用手机号 + 密码登录
前缀单独一个小弹框、单独保存,不和『家长子席位开通』开关绑在一起(只用品牌码的机构也要设)。开过号以后前缀锁定,不能再改。
| 机构名称 | 状态 | 操作 |
|---|---|---|
| 测试示范档案机构 | 启用 |
|
现在「更多」里有 4 项:头图、重新生成凭证、停用、删除机构
| 机构名称 | 状态 | 操作 |
|---|---|---|
| 测试示范档案机构 | 启用 |
|
「更多」菜单第一项加「子席位前缀」,和「头图」放一组,跟下面的停用、删除用横线隔开
测试示范档案机构
账号示例:BF100001 · 开过号以后前缀不能再改
点「子席位前缀」弹出这个小框,单独保存;样子照后台「开通子席位」弹窗
只能填 1-6 个英文字母
前缀 BF 已被其他机构使用,请换一个
在后台开子席位时,机构没设前缀就不让开,并告诉管理员去哪里设。
子席位不计入正式席位数、不进结算 · 开通后该机构的家长子席位功能同时启用
test 环境「开通子席位」弹窗真实截图复刻:所属机构(模糊检索)+ 数量(1-50)+ 有效期(天)+ 取消/确认开通(未选机构时禁用,本图即禁用态)
子席位不计入正式席位数、不进结算 · 开通后该机构的家长子席位功能同时启用
该机构还没设置子席位账号前缀,请先到『机构管理 → 更多 → 子席位前缀』里设置
左:选了没设前缀的机构 → 出提示,确认开通按钮置灰
子席位不计入正式席位数、不进结算 · 开通后该机构的家长子席位功能同时启用
账号前缀:BF,新开的号接着往下排
右:选了已设前缀的机构 → 灰字提示前缀,可正常开通
家长扫品牌码会自动开家长号,所以机构没设前缀时不能开启品牌码。
现在点「品牌码」会弹这个框,点「确认开启」就开了,不看有没有前缀
该机构还没设置子席位账号前缀,
请先到『机构管理 → 更多 → 子席位前缀』里设置
没设前缀时,框里直接说清楚去哪设,「确认开启」点不了
店员在手机上给家长开号时,如果店里还没设前缀,也不让开,并告诉他找谁。本块『现在』照代码画,没有对照真截图(test 上登不进门店席位账号)。
照代码画(没有真实截图):标题「开通席位」+ 数量步进器 + 取消/确认开通
弹窗里出现橙提示条(样式复用同文件已有的橙色提示块),确认开通按钮置灰
家长号不再是 10 位数字,这句提示要把『10位数字』去掉。
照代码画:账号框填了手机号形状的输入,密码框下方红字提示
去掉『10位数字』,红字改成「席位账号不是手机号,请输入提供给您的账号」
web/app/h5/chat/components/seat-login-sheet.tsx:300,328,389(占位符文案);平板端另一份 web/app/h5/tablet/components/seat-login.tsxseat-login-sheet.tsx:305-309(Sparkles 图标 + emerald-600);密码占位符随 autoFilledFromWx 切到「密码」:seat-login-sheet.tsx:326-333web/app/h5/chat/components/seat-change-password-sheet.tsx:37 isParent ? "家长手机号" : "门店联系电话";文案逐句核对见 :153,163,181,209,261,280-283,293web/app/h5/chat/components/seat-forgot-password-sheet.tsx:141-163(找回密码框本身不动);标签『门店版 / 家长版』,不显示店名,后端不用补店名字段4位序号+YYYYMM:app/services/seat_service.py:162;家长账号格式 6位序号+YYMM:seat_service.py:239reports-out/subseat-login-v2-plan-20260923.md 第 261-269 行;9-24 长官拍板改为『机构自定义前缀(1-6 位大写字母)+ 6 位数字,从 100001 起排』,门店号仍不动,见附录末尾代码出处#d6f0e3 / #e0ecff / #fbfdfa:web/app/h5/tablet/components/seat-login.tsx:36;卡片 max-w-[460px] rounded-[22px]::218web/app/h5/chat/page.tsx:2598-2689;输入框占位符「和赵阳博士说点什么…」:3264;免责声明 :3287app/services/brand_code_service.py:88,98,110/admin/orgs/94/brand-code 真实截图复刻,非仅凭代码推断):表头 9 列 + 操作按钮:web/app/(dashboard)/admin/orgs/[id]/brand-code/page.tsx:592-600(表头)、:641,649(停用/延期按钮,family_seat_user_id == null 时置灰,见 :639-640 注释);「手机号」列样式 + 空值兜底「—」照搬子席位管理页「家长手机」列:web/app/(dashboard)/admin/parent-seats/page.tsx:971;「重置密码」按钮样式照搬同页:parent-seats/page.tsx:1035app/services/seat_service.py:186-255(月度序号计数表原子批量取号,现状仍是纯数字「6位序号+YYMM」,机构前缀取号逻辑待此基础上扩展)app/models/organization.py 当前无 prefix 相关字段,是真正的 NEW 列,非漏读).orgm-* 编辑机构弹窗复刻(page.tsx:381-393 输入框 / :476-496 家长子席位卡片 / :712-723 底部保存区)本轮已整块删除,不再是第 12 块出处,样式类同步从 CSS 删除web/app/(dashboard)/admin/orgs/page.tsx:1291-1365(触发按钮 data-menu-trigger="true" :1291-1307;菜单容器 fixed z-50 w-36 bg-white border border-slate-200 rounded-lg shadow-xl py-1 :1326-1334;现有 4 项『头图 :1335-1342 / 重新生成凭证 :1345-1350 / 停用启用 :1352-1357 / 删除机构 :1359-1364』;『头图』与下面 3 项生命周期操作之间的分隔线 border-t border-slate-100 my-1 :1343);「现在」1:1 照 test 环境 /admin/orgs 真实截图 + 真实 computed style 复刻(非仅凭代码推断,2026-09-24 Playwright 登录 ljg_admin 只读实测,未点任何写库项):截图 /tmp/real-admin-orgs-more-menu.png(菜单展开态)+ /tmp/real-admin-orgs-more-menu-context.png(整页上下文);真实 computed style:border-radius:8px / border:1px solid rgb(226,232,240) / box-shadow 与 Tailwind shadow-xl 一致 / padding:4px 0px / width:144px;『子席位账号前缀』独立小弹框结构与配色复用第 13 块『开通子席位』弹窗同款 provm-*(出处见下一条),未新造任何弹窗样式web/app/(dashboard)/admin/parent-seats/page.tsx:1127-1216(所属机构模糊检索 / 数量 / 有效期字段 className 逐一照抄)web/app/(dashboard)/admin/orgs/page.tsx:1367-1410(标题/三条要点文案/取消·确认开启按钮);确认后触发的开启函数 handleConfirmOpenBrandCode :1074;品牌码页「启用品牌码」按钮 [id]/brand-code/page.tsx:461 在机构没开过品牌码时本就置灰(未开通空态),不是开通入口,故不在该按钮上加提示;9-24 长官改:提示放确认弹窗,不放品牌码页web/app/h5/settings/components/SeatStoreCard.tsx:889-1003(开通弹层结构)、:1363-1385(底部取消/确认开通按钮);警告条样式取自同文件已有的橙色提示块 SeatStoreCard.tsx:1356(text-[#9a4a00] bg-[#fff8ed] border-[#fde7c7] rounded-lg px-3 py-2),未额外自造颜色web/app/h5/chat/lib/seat-login-hints.ts:13-14(PHONE_LIKE_USERNAME_MESSAGE 现状文案)、web/app/h5/chat/components/seat-login-sheet.tsx:357-366(错误提示行 DOM 结构,13px / text-red-600 / AlertCircle 图标 / gap-1.5)#d97706(本文件 .gray-hint class,见 CSS line 259-260),不是此前写的『灰字』;#d97706 即 Tailwind amber-600。重新 grep 代码:admin/parent-seats/page.tsx 并非『0 命中』——:42 bg-amber-50 text-amber-700(「待绑定」状态标签)、:1086 bg-amber-600 hover:bg-amber-700(「换绑」确认按钮)均已用同色系;admin/orgs/[id]/brand-code/ 目录确认 0 命中;另 admin/orgs/page.tsx:121 有 text-amber-600(AlertTriangle 图标)。本图色值与代码里多处警示色一致,是同色阶复用,不是灰字兜底,此前『0 命中』的说法有误