diff --git a/docs/task/48-进入顺运宝页面不自动弹验证码框.md b/docs/task/48-进入顺运宝页面不自动弹验证码框.md new file mode 100644 index 0000000..288aaf8 --- /dev/null +++ b/docs/task/48-进入顺运宝页面不自动弹验证码框.md @@ -0,0 +1,48 @@ +# 48 Admin:进入顺运宝页面不应自动弹验证码框 + +- 类型:缺陷 +- 父级大工单:#14 +- 所属 MVP / 版本:#15 / MVP +- 状态:已完成 +- 日期:2026-08-09 +- Gitea 工单: + +## 背景与目标 + +配置顺运宝 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)