49 lines
2.7 KiB
Markdown
49 lines
2.7 KiB
Markdown
# 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。
|
|
- **没验证到的部分**:未连接真实顺运宝账号;未在用户当前浏览器环境人工确认弹窗和提示的视觉位置。
|
|
|
|
## 相关提交
|
|
|
|
- `6e6e99a` fix: 进入顺运宝页面不再自动弹验证码框 (#48)
|