fix(merchant): 进件草稿按操作员隔离,换账号不再看到上一个账号的资料
商户端换账号登录后,进件页会提示"已恢复上次未提交的草稿",并把**上一个账号**的姓名、
身份证号、银行卡号预填进来。这不是体验问题,是把一个账号的敏感资料泄露给了下一个账号。
根因:草稿存在固定的全局 key merchant-onboarding-draft 下,而 uni 的 storage 不区分账号,
estoreDraft() 不校验归属就直接恢复。
改动:
- 新增 services/onboarding-draft.uts:按当前登录的 operatorId 给草稿 key 加命名空间
(取不到 operationId 时退回门店维度,再取不到则退回旧 key,避免拼出会互相覆盖的空后缀);
key 在取用点现算,不在模块加载时固化。
- merchant-onboarding.uvue:草稿读写改走该 key;草稿里记录 ownerOperatorId,
restoreDraft 先校验归属,不符就丢弃并清掉——这样已经存在于旧全局 key 下的、属于别的账号的
草稿也会被主动丢掉,而不是继续被恢复。
- merchant-onboarding-pending.uvue:approved 时只清当前账号自己的草稿。
- session.uts:clearSession 顺带清掉当前操作员的草稿(先取会话再清,否则算不出 key)。
草稿含身份证号与银行卡号,没有理由跨会话长期留在设备上。
静态自检:无重复导入、导入符号均存在、模板标签配对(view 84/84、picker 14/14、text 98/98)。