2.7 KiB
2.7 KiB
48 Admin:进入顺运宝页面不应自动弹验证码框
- 类型:缺陷
- 父级大工单:#14
- 所属 MVP / 版本:#15 / MVP
- 状态:已完成
- 日期:2026-08-09
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/48
背景与目标
配置顺运宝 OCR 后,操作员进入顺运宝页面仍会立即看到手工验证码弹窗。原因是 OCR 自动登录只发生在点击“同步”之后,而列表页把本地会话无效直接解释成需要打开弹窗。本任务让进入页面保持只读:会话无效时只显示状态提示,只有操作员点击同步且自动登录失败后才打开手工登录弹窗。
最终方案
NeedLogin只由同步失败重定向携带的login_reason决定。- 继续调用
EnsureSybSession判断本地会话状态;该函数未修改,也不会请求外部系统。 - 本地会话无效时,在页面顶部按
ocr_url是否配置显示不同的.hint提示。 - 保留 #47 的失败原因展示和 #46 的手工登录流程。
与建单方案相比,最终提交没有新增专门测试文件或修改 UI 基线文档;服务端 HTML、五页面响应及真实二进制假配置场景已在实施时验证,后续顺运宝相关任务又补充了覆盖该页面的回归测试和 UI 基线。
改了哪些
admin/handler/web/others.go:把弹窗条件改为由login_reason驱动,并生成按 OCR 配置区分的未登录提示。admin/templates/syb/list.html:在列表页显示未登录状态提示,不因本地会话无效自动打开验证码弹窗。
验收结果
| 验收标准 | 结果 |
|---|---|
会话无效时进入 /syb 不自动弹登录框 |
通过 |
已配置和未配置 ocr_url 时分别显示准确提示 |
通过 |
| 会话有效时不显示未登录提示 | 通过 |
带 login_reason 返回列表页时打开弹窗并显示原因 |
通过 |
自动登录失败、手工登录及 EnsureSybSession 原路径未被破坏 |
通过 |
状态提示使用 .hint,五个页面均可访问 |
通过 |
| Go 1.23.0 静态检查和测试通过 | 通过 |
测试
- 执行的命令:Go 1.23.0 下执行
go vet ./...、gofmt -l .、go test ./... -count=1;使用真实 Admin 二进制和不可达的假base_url、ocr_url检查页面渲染。 - 结果:静态检查和测试通过;会话无效时页面不弹框,带
login_reason时弹框,OCR 配置为空或非空时提示正确,五个页面均返回 200。 - 没验证到的部分:未连接真实顺运宝账号;未在用户当前浏览器环境人工确认弹窗和提示的视觉位置。
相关提交
6e6e99afix: 进入顺运宝页面不再自动弹验证码框 (#48)