用户反馈 3 个问题:
| # | 用户描述 | 根因 | 修复 |
|---|---|---|---|
| 1 | 换 WiFi 后登录页出现验证码白色方框、提示「验证码加载失败,请检查网络」 | 后端 app.captcha.required=false 已禁用验证码,但前端 Login.vue 的 captchaRequired 默认值是 true,且 /api/auth/captcha-config 请求失败时 .catch(() => {}) 静默忽略,页面残留一个加载不出来的验证码框 |
默认值改 false;改为 fail-safe:仅当后端明确返回 code===200 && data.required===true 才显示验证码,请求异常一律按「不需要验证码」处理 |
| 2 | 报表生成-汇总大表预览:点击后弹「导出失败,请确认导入数据,或查看后端日志」 | 前端 failWith(err, action) 把**所有**异常(含网络/代理层失败)都渲染成同一句笼统文案,默认 action 还是「导出」,误导读成数据问题 |
重写 failWith + 新增 errReason(raw):区分「连不上服务器」与「后端真实原因」;预览调用传 action='预览';Blob 错误响应先 text() 再解析 |
| 3 | 预览弹窗指标错位(指标压在「当月货运量」上);弹窗不可拖动、无圆角 | 表头是 3 列(指标/数据/同比),与 4 列数据行(分类/指标/数据/同比)不匹配;Element UI 2.15.14 没有 draggable 属性(那是 Element Plus) |
表头补为 4 列 分类/指标/数据/同比;新增 v-dialog-drag 指令实现拖动(只改 .el-dialog 的 transform,关闭时复位),加 border-radius:10px |
改动文件:traffic-audit-web/src/views/Login.vue、traffic-audit-web/src/views/ReportExport.vue、新增 traffic-audit-web/src/directives/dialogDrag.js、traffic-audit-web/src/main.js(注册指令)。
http://localhost:8080(vue-cli-service serve,dev 构建)Started TrafficAuditApplication,重启后新编译)tab.playwright.evaluate() 直读 DOM + 截图| # | 场景 | 输入/操作 | 预期 | 实际 | 结论 |
|---|---|---|---|---|---|
| 1 | 验证码-后端已关闭 | 新开标签访问 #/login(后端不可用时同样验证) |
不出现验证码方框,不出现「验证码加载失败」 | 页面无 .captcha-box,提示「测试模式:行为验证码已跳过」 |
通过 |
| 2 | 验证码-接口正常 | GET /api/auth/captcha-config |
required=false |
{"code":200,"message":"success","data":{"required":false}} |
通过 |
| 3 | 预览-表头列数 | 打开预览弹窗读 thead th |
4 列且顺序为 分类/指标/数据/同比 | ['分类','指标','数据','同比'] |
通过 |
| 4 | 预览-指标对齐 | 读首行各单元格 x 坐标 | 分类对齐「道路货运」、指标对齐「当月货运量(万吨)」、数据对齐 16888.76、同比在数据右侧 | 分类 x=35、指标 x=118、数据 x=394、同比 x=587(16888.76 在 x=394) |
通过 |
| 5 | 预览-弹窗圆角 | 读 .el-dialog 计算样式 |
有圆角 | borderRadius=10px、overflow=hidden |
通过 |
| 6 | 预览-弹窗拖动 | tab.drag([150,60],[270,220]) 拖标题栏 |
弹窗跟随移动 | 由 (0,40) → (120,200),transform=matrix(1,0,0,1,120,160),位移量等于拖拽增量 |
通过 |
| 7 | 预览-关闭复位 | 关闭弹窗后读 transform | 复位为 none | transform=none、visible=false |
通过 |
| 8 | 预览-中口径之后无表格 | 读弹窗内 table 数量与内容 |
有且仅有 1 张指标表 | 弹窗内 1 张表(12 行指标,含中口径 4 行),表下仅两条同比缺失提示与「关闭」按钮 | 通过 |
| 9 | 失败提示-网络异常 | 后端停掉时点预览 | 明确提示网络/服务未启动,而非「导出失败,请确认导入数据」 | 预览失败:无法连接服务器,请检查网络连接,或确认后端服务是否已启动 |
通过 |
| 10 | 导出-正常路径 | 点「导出」 | 下载成功提示 | 报表导出成功 |
通过 |
/api/report/preview 与 /api/report/export/summaryWorkbook 全部返回 200(2026-08 导出 950747 字节)。该文案只在**网络/代理层失败**时出现(换 WiFi 后请求打不到后端),属于提示误导。现已改为区分具体原因。draggable:弹窗拖动只能自己实现,已用 v-dialog-drag 指令;<style> 必须**非 scoped**(el-dialog 默认 append-to-body)。tab.click(index) 的索引在页面刷新后会失效,曾误点到「投资报表」Tab;Playwright locator 点 Element UI 表格内按钮会超时;tab.drag 坐标必须在视口内。以上均已记入《问题与注意事项汇总》。用户确认「预览弹窗的行数文案可以改」,已实施:
ReportExport.vue 中 共 {{ it.rowCount || 0 }} 行 改为按报表类型区分——summaryWorkbook,指标型):显示 指标 {{ (it.summary || []).length }} 项;共 {{ it.rowCount || 0 }} 行明细。rowCount 恒为 0,与下方「月度覆盖:1~8月均有数据」自相矛盾,容易误判为没数据。分类/指标/数据/同比,弹窗内仍只有 1 张表(12 行)。截图:_shot_preview_after_wording_20260916.png。