席位登录改造 · 现在 vs 改后 对比

范围:改已在用的席位登录功能(账号密码登录+首登强制改密)。左列=生产现状,右列=改后。四组场景:门店端 / 家长手机端 / 品牌码扫码家长 / 一个手机号对应两个账号。

核心口径:账号密码登录永远保留,手机号是新增的第二条路,不是替代;密码正好 6 位数字;手机号格式 ^1\d{10}$;家长新账号格式 T+6位序号+YYMM 共 11 位(如 T0000012609),门店账号不变仍是 10 位纯数字。

现在(灰色说明条) 改后(橙色说明条) 橙虚线 = 本次新增的界面元素(只标右列)

场景组 A · 门店端(手机端 / 平板端)

组件:web/app/h5/chat/components/seat-login-sheet.tsx + seat-change-password-sheet.tsx(平板端 tablet/components/seat-login.tsx 复制同一套提交逻辑,视觉为绿色渐变底 + 更大圆角,登录/改密的字段与改动点完全一致 —— 以下用手机端样式统一示意)。
现在:登录只认「席位账号」,首登设完密码后,以后每次登录仍旧只能输账号。
改后:账号密码登录方式不变,新增「手机号」作为第二条登录路径,两条路都能进。

改动点:下次登录的账号输入框占位符从「席位账号」变为「手机号 或 账号」,且该输入框改为同时接受两种格式(手机号 ^1\d{10}$ 或 10 位账号)
赵阳智脑
欢迎使用 请登录您账户
① 首次登录:输入席位账号+管理员给的 6 位初始密码。
赵阳智脑
首次登录 · 请设置您的密码

为保护账号安全,请设置您专属的 6 位数字登录密码

请设置 6 位数字作为登录密码

设置后,管理员给您的初始密码立即失效,以后请用您自己设的这个密码登录

② 首登强制改密(无关闭按钮,不设完不能用),同时登记门店联系电话。
赵阳智脑
欢迎使用 请登录您账户

已填入您上次登录用的密码

③ 下次登录:输入框占位符仍是「席位账号」,只能输账号,手机号打不进。
赵阳智脑
欢迎使用 请登录您账户
① 首次登录不变:仍是账号 + 管理员给的初始密码。
赵阳智脑
首次登录 · 请设置您的密码

为保护账号安全,请设置您专属的 6 位数字登录密码

请设置 6 位数字作为登录密码

设置后,管理员给您的初始密码立即失效,以后请用您自己设的这个密码登录

② 不变:字段/校验/接口一律不动(collectPhone=true);手机号改为前端和后端都强制必填,不允许跳过(现状后端其实是可选的,本次补上)。
赵阳智脑
欢迎使用 请登录您账户

已填入您上次登录用的密码

③ 下次登录占位符改为「手机号 或 账号」,输入 11 位手机号或 10 位账号都能进,原账号密码方式不受影响。

场景组 B · 家长手机端

家长和门店共用同一个登录窗组件(seat-login-sheet.tsx),字段/校验/接口完全一致,区别只在账号本身的格式与来源。
现在:家长账号也是 10 位数字,登录逻辑与门店端相同 —— 首登设密后,以后仍只能输账号。
改后:家长新增「账号 T0000012609 请记好」的提示(初始化弹窗内新增一行),且同样支持手机号登录。

改动点:①初始化弹窗内新增只读账号提示行 ②下次登录同样支持「手机号 或 账号」 ③手机号改为前端和后端都强制必填,不允许跳过(现状后端其实是可选的,本次补上)
赵阳智脑
欢迎使用 请登录您账户
① 首次登录:与门店端同一窗口,账号是 10 位数字。
赵阳智脑
首次登录 · 请设置您的密码

为保护账号安全,请设置您专属的 6 位数字登录密码

请设置 6 位数字作为登录密码

设置后,管理员给您的初始密码立即失效,以后请用您自己设的这个密码登录

② isParent=true → 标签换成「家长手机号」,没有账号提示。
赵阳智脑
欢迎使用 请登录您账户

已填入您上次登录用的密码

③ 下次登录同样只能输账号,家长记不住 10 位纯数字时很容易忘。
赵阳智脑
欢迎使用 请登录您账户
① 首次登录不变。
赵阳智脑
首次登录 · 请设置您的密码

为保护账号安全,请设置您专属的 6 位数字登录密码

账号 T0000012609 请记好

请设置 6 位数字作为登录密码

② 新增只读提示行「账号 T0000012609 请记好」,家长首次设密时同步记住新格式账号(大写T+6位序号+YYMM)。
赵阳智脑
欢迎使用 请登录您账户

已填入您上次登录用的密码

③ 家长以后可以直接输自己的手机号登录,不用再翻出那串 11 位账号。

场景组 C · 品牌码扫码家长

走微信授权链路(startSeatWxOAuth / getWxIdentityToken),不经过账号密码登录窗。
现在:扫码微信授权成功后直接进入,全程免密,家长从没设过密码、也不知道自己的账号;微信身份失效(温浮窗 10min 后)时,唯一出路是再走一次微信授权。
改后:进入后点任意功能,弹出与门店端一模一样的初始化弹窗 —— 账号本来就有(系统自动分配的),只是密码从没有人知道过;本次改动是让家长自己设一个他知道的密码(同时登记手机号,只读展示分配到的账号);此后微信失效时,新增「手机号 + 密码」登录路径作为兜底,不影响日常扫码免密进入。

改动点:①新增首触发的初始化弹窗(含只读账号展示) ②微信失效时新增手机号+密码兜底登录路径
赵阳智脑
您好,我是赵阳智脑,有什么想了解的都可以问我~
孩子最近视力下降有点快
根据档案记录为您分析…
输入消息…
① 扫品牌码 → 微信授权成功 → 直接进入对话,全程不设密码,家长不知道自己的账号是什么。
赵阳智脑
请重新登录以继续使用

登录状态已失效,请重新登录。

家长从未设置过密码,没有账号密码可用

② 微信身份失效(温浮窗 10min 后)时,唯一出路是再走一次微信授权,没有别的路。
赵阳智脑
首次登录 · 请设置您的密码

为保护账号安全,请设置您专属的 6 位数字登录密码

账号 T0000012609 请记好

改后 · 点击任意功能触发(原来扫码即免密进入不会弹此窗)—— 与门店端同一套初始化弹窗,含只读账号展示。
赵阳智脑
请重新登录以继续使用

登录状态已失效,请重新登录。

微信失效时新增可用手机号+密码登录(因为①已设过密码);「重新验证微信身份」仍保留,两条路并存。
赵阳智脑
您好,我是赵阳智脑,有什么想了解的都可以问我~
孩子最近视力下降有点快
根据档案记录为您分析…
输入消息…
日常扫码路径不受影响:微信身份没过期时,照样扫码免密秒进,只是多了一个兜底,不影响这条主路径。

场景组 D · 一个手机号对应两个账号

背景:生产实测有手机号同时挂在一个门店席位和一个家长席位上(同一个人既是店员又是家长)。门店端、家长端都开放手机号登录后,这类手机号登录会一次查出 2 个账号,必须让用户自己选。
现在:门店账号、家长账号各自独立登录,互不相干,用户要分别记住两串不同格式的账号。
改后:先用手机号+密码验证身份,验证通过后如果命中多个账号,才弹出候选框,按「门店名+身份标签」选择;候选项必须同时显示门店名和身份(门店员工/家长)——因为这两个账号可能落在同一家门店,只显示门店名会完全分不清是哪一个。平板端只服务门店、只查门店席位,账号天然唯一,不会弹候选框,不单独画帧。

改动点:①先验密码再弹候选,避免先弹候选造成"输入他人手机号就能看到对方开了几个账号"的信息泄露 ②候选项须同时显示门店名 + 身份标签(门店员工/家长),不能只显示门店名 ③平板端天然唯一,无候选框 ④候选框只可能发生在两个新席位之间(老席位不能用手机号登录,不会进入候选流程);平板端不需要候选框(只查门店席位,恒唯一)
赵阳智脑
欢迎使用 请登录您账户
① 这个人的门店账号登录:输入 10 位门店账号 0134202609 + 密码,进入门店端。
赵阳智脑
欢迎使用 请登录您账户
② 这个人的家长账号登录:输入 11 位家长账号 T0000012609 + 密码,进入家长端。两个账号完全独立,互不相干,要分别记住。
赵阳智脑
欢迎使用 请登录您账户
① 这个人的门店账号和家长账号绑定同一个手机号,输入手机号 + 密码,点击登录。
赵阳智脑
请选择登录身份

手机号 138****1234 · 密码 •••••• · 已验证通过

该手机号对应 2 个账号,请选择本次登录的身份

阳光视光中心(建国路店) 门店员工
阳光视光中心(建国路店) 家长
② 候选框(本次核心新增):先在顶部回显已验证通过的手机号(脱敏)和密码,验证通过后才展示候选 —— 不能先弹候选再验密码,否则任何人输入他人手机号就能看到对方开了几个账号,是信息泄露。两个候选项故意用同一家门店名,正是为了体现:不标身份标签,光看门店名根本分不清是哪一个,所以每项必须同时显示门店名 + 身份标签(门店员工 / 家长)。
登录成功
正在进入门店端工作台

已选择 阳光视光中心(建国路店) · 门店员工

若刚才选的是「家长」身份,则进入家长端首页,界面与场景组 B 一致,此处不重复画。

③ 选完身份后,系统按所选身份进入对应端首页(门店端 / 家长端界面与场景组 A / B 已展示一致)。

场景组 E · 微信自动带入

组件同场景组 A/B:web/app/h5/chat/components/seat-login-sheet.tsx。微信授权成功后,若能反查出上次登录的席位,登录框的账号输入框会被自动带入该值(autoFilledFromWx),下方出现绿色提示;用户只需再输密码即可登录 —— 与场景组 C 的「全程免密直接进入」是两条不同的路径(C 组是免密进对话,本组是登录框被预填但仍要输密码)。
现在:不论老席位还是新席位,微信带回来的都是「账号」,提示文案统一是「已自动帮您填入账号」。
改后:由席位开关决定 —— 老席位行为不变,仍带入账号;新席位改为带入「手机号」,提示文案相应变为「已自动帮您填入手机号」;用户侧感知不到这个切换,直接输密码登录即可。

改动点:新席位微信自动带入的字段从「账号」变为「手机号」,提示文案同步从「已自动帮您填入账号」变为「已自动帮您填入手机号」;老席位这条路径一个字不变
赵阳智脑
欢迎使用 请登录您账户

已自动帮您填入账号

① 微信授权后进入登录页,账号框自动填好了 0134202609,下方提示「已自动帮您填入账号」。
赵阳智脑
欢迎使用 请登录您账户

已自动帮您填入账号

② 用户只需输入密码即可登录:不论新席位还是老席位,现在微信带回来的都是账号。
赵阳智脑
欢迎使用 请登录您账户

已自动帮您填入账号

① 老席位:仍然自动填账号 0134202609,提示文案不变,行为完全不变。
赵阳智脑
欢迎使用 请登录您账户

已自动帮您填入手机号

② 新席位:自动填的是手机号 13812341234,提示文案变为「已自动帮您填入手机号」—— 这是本组唯一新增点。
赵阳智脑
欢迎使用 请登录您账户

已自动帮您填入手机号

③ 究竟带入账号还是手机号,由席位开关决定,用户无感:两种情况下用户都只是「看一眼、输密码、点登录」,不需要多做任何操作。