Files
lingniu-vehicle-ingest/vehicle-data-platform/docs/design/account-batch-import-20260723/README.md
2026-07-27 16:46:15 +08:00

50 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 账号批量导入失败恢复审计
## 结论
当前健康度:良好。账号管理已经从“只能逐个创建”升级为可恢复的批量任务流:管理员可以下载模板、上传 CSV、在创建前完成服务端预检、原位修复单行问题并只创建校验通过的账号。部分成功时保留失败项不要求重新上传整份文件。
## 1. 基线:入口与任务能力
基线页只有“新建客户账号”,批量开户需要重复进入表单,错误也无法集中定位。
![改造前账号目录](before/01-account-directory-desktop.jpg)
## 2. 桌面端:预检优先
桌面端使用 900px 宽任务抽屉同时容纳文件摘要、预检状态、逐行结果和固定底部操作。测试文件共 3 行1 行可创建、1 行用户名冲突、1 行车辆未接入。
![桌面端批量预检](after/01-account-import-preflight-desktop.jpg)
## 3. 桌面端:原位修复
首个失败项会自动展开,管理员可直接修改账号、密码、状态、菜单和 VIN修改后重新预检不丢失已解析的其他行。
![桌面端逐行修复](after/02-account-import-repair-desktop.jpg)
## 4. 移动端:单滚动任务面板
390 × 844 下切换为 94dvh 底部任务面板,摘要、结果和修复区使用同一内容滚动,主操作固定在底部。实测弹层宽 390px、文档宽 390px无横向溢出。
![移动端批量预检](after/03-account-import-preflight-mobile.jpg)
## 5. 行为与恢复规则
- CSV 表头固定为 `username,displayName,password,status,customerRef,tenantRef,menuKeys,vehicleVins`,每次最多 50 个账号。
- 预检复用单账号创建的用户名、密码、菜单和 VIN 校验规则,并检测文件内重复及库内用户名冲突。
- 创建按行隔离事务;单行失败不会回滚已成功账号,结果保留行号、错误类型和修复入口。
- 部分成功后,主操作明确为“仅保留 N 个失败项”;目录刷新后仍保留原搜索、状态、页码与导入窗口 URL 状态。
- 直接访问 `?userImport=open` 可恢复导入工作区;关闭窗口只移除导入参数。
## 6. 无障碍与验证
- 弹层具有“批量导入客户账号”名称,关闭按钮具有中文动作名称;区域、结果列表、字段和主操作均可由语义树识别。
- 已验证桌面和移动端主链路、深链恢复、文件上传、服务端预检、逐行修复和创建回执。
- 自动化测试覆盖 CSV 引号解析、模板输出、URL 保持、预检、修复与创建;全量前端 76 个文件、467 个测试通过API 全量测试通过,生产构建门禁通过。
- 当前限制:本轮未用专用读屏器完成逐键走查,也未用仪器量化所有状态色对比度;键盘语义以浏览器语义树和组件自动化测试为依据。
- 沿用平台现有 Semi UI、图标、颜色和任务抽屉系统因此没有生成新的位图或装饰资产。
## 后续
账号模块下一项是外部身份源接入反馈;平台级下一轮优先处理历史导出保留期、账号级字段视图同步与大任务分页。