Files
cmautobuy/docs/task/48-进入顺运宝页面不自动弹验证码框.md
T
2026-08-09 21:14:58 +08:00

2.7 KiB

48 Admin:进入顺运宝页面不应自动弹验证码框

背景与目标

配置顺运宝 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。
  • 没验证到的部分:未连接真实顺运宝账号;未在用户当前浏览器环境人工确认弹窗和提示的视觉位置。

相关提交

  • 6e6e99a fix: 进入顺运宝页面不再自动弹验证码框 (#48)