Files
supervision-test-frontend-repo/qa-report/xispeak/QA_REPORT_UX.md
T
wsm 237a5810cf !145 docs(xispeak): 归档前端页面 QA 审查报告(用户视角)
* docs(xispeak): 归档前端页面 QA 审查报告(用户视角)
* docs(fixcontact): 归档前端页面 QA 审查报告(用户视角)
* docs(inspectTask): 归档前端页面 QA 审查报告(工程师+用户视角)
* docs(bqtakepulse): 归档前端页面 QA 审查报告(工程师+用户视角)
* docs(bgpartymatter): 归档前端页面 QA 审查报告(工程师+用户视角)
2026-08-11 07:27:58 +00:00

82 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 前端页面用户视角审查报告 — 重要指示批示台账(树形台账)
## 审查信息
- 页面/路由:`/bg/xispeak/BgXiSpeakList`(习总书记重要讲话指示批示情况台账,树形列表)
- 审查日期:2026-08-11
- 审查视角:业务用户(督办工作人员,不懂技术;兼顾首次使用新手)
- 相关文件:`src/views/bg/xispeak/BgXiSpeakList.vue``BgXiSpeak.data.ts``BgXiSpeak.api.ts``components/BgXiSpeakForm.vue``components/FeedbackRightNowModal.vue``src/components/semri/process/FlowScheduleStartModal.vue`
- 测试账号:admin/123456(登录走 mock,其余接口真实后端 8080)
- 证据目录:`qa-tmp/xispeak/screenshots/`(截图)、`qa-tmp/xispeak/artifacts/ux_walk*_log_readable.txt`(过程记录)
- 视觉说明:视觉复核已用 claude-vision-skill 实读截图 + DOM 实测互补——可视区内容(行状态配色等)以 vision 实读为准,被横向滚动藏住的列以 DOMscrollWidth vs clientWidth)为准
## 总体结论
- P0 × 0 P1 × 1 P2 × 7
- 一句话总结:核心任务(浏览树形台账、筛选、看统计、流程/表单操作)都能顺利办成,唯一的硬伤是发起"重复发起"流程时空周期字段会弹出**英文错误提示**(业务用户看不懂),其余为横向滚动、空态引导、表单必填项多等体验细节问题,页面整体可用。
## P0 - 用户办不成事 / 会出错
| # | 用户场景 | 用户会遇到什么 | 后果 | 证据 | 位置 |
|---|---------|--------------|------|------|------|
| - | 无 | 实测核心任务全部可完成,未发现 P0 | - | - | - |
## P1 - 明显受阻 / 容易困惑
| # | 用户场景 | 用户会遇到什么 | 后果 | 证据 | 位置 |
|---|---------|--------------|------|------|------|
| 1 | 督办工作人员对某条记录选"流程操作 → 发起落实措施收集流程 → 确认发起 → 重复发起",不改"重复周期"直接点"发起流程" | 页面弹出一条**英文**提示 `Please select interval type`,业务人员完全看不懂,也不知道"哪个没填、怎么填" | 用户卡住、只能猜或找技术人员;同处还有 3 条英文提示(interval type / repeat count / start time | 实测触发,截图 `qa-tmp/xispeak/screenshots/44_recurring_english_toast.png`;过程记录 `artifacts/ux_walk6_log_readable.txt``recurring_empty_toasts` | `src/components/semri/process/FlowScheduleStartModal.vue:331,335,339``createMessage.warning('Please select interval type')` 等未翻译) |
## P2 - 体验细节
| # | 用户场景 | 用户会遇到什么 | 后果 | 证据 | 位置 |
|---|---------|--------------|------|------|------|
| 1 | 发起流程时连续弹出两个**标题一模一样**的弹窗 | 点"发起落实措施收集流程"先弹"选择反馈方式"(标题=发起落实措施收集流程),点"确认发起"后又弹一个"发起类型/流程参数"的弹窗(标题仍是发起落实措施收集流程) | 用户以为点错了/重复点击,不确定当前在第几步 | 实测两步弹窗标题均相同,截图 `41_step1_feedback_now.png``42_step2_flow_schedule.png``artifacts/ux_walk6_log_readable.txt`step1/step2 modal_title | `components/FeedbackRightNowModal.vue:13``src/components/semri/process/FlowScheduleStartModal.vue` 标题一致 |
| 2 | 看台账列表时只有 1200px 宽视口却铺了 16 列 | "督办状态""牵头部门""贯彻落实措施"等关键列在很靠右的位置,必须横向拖动才能看到;首屏只能看到讲话情况/批示情况/时间等几列 | 用户来回拖滚动条,容易漏看逾期/督办状态 | 实测 `table_hscroll = {scrollWidth:2280, clientWidth:1200, scrollable:true}`,列数 16,截图 `20_layout_metrics.png` | `BgXiSpeak.data.ts` columns16 列含选择框/操作列) |
| 3 | 筛选/搜索后没有任何匹配数据 | 表格只剩一行"暂无数据",没有任何"清除筛选/重置条件"的引导按钮 | 新手不知道是条件填错还是真没数据,只能自己找"重置"按钮 | 实测空态仅文字"暂无数据",截图 `06_empty_search_result.png``artifacts/ux_walk_log_readable.txt``empty_state_text` | `BgXiSpeakList.vue` 表格空态 |
| 4 | 点"新增"录入一条台账 | 弹出 1400px 宽的表单,15 个字段里 **12 个必填**,时间/日期/密级/责任领导/牵头部门都要选 | 首次录入负担重、填到一半容易放弃;占位符(如"来源于党委会抄告")对新人不解释来源 | 实测必填 12 项、错误提示 11 条,截图 `33_add_modal_open.png``34_add_empty_submit.png``artifacts/ux_walk6_log_readable.txt``add_modal_field_labels`/`add_empty_submit_errors_v2` | `components/BgXiSpeakForm.vue`rules,见 `BgXiSpeakForm.vue:198-210` |
| 5 | 想查看某条记录的详情 | 第一列"习近平总书记重要讲话指示批示情况"是蓝色链接,但只有鼠标悬停才出现"点击查看详情"提示 | 新手不知道能点;误以为是表头标题 | 实测链接样式(蓝色 14px 加粗)`artifacts/ux_walk4_log_readable.txt``first_col_link_style`);tooltip 提示 | `BgXiSpeakList.vue:116-120` |
| 6 | 勾选多条后点"批量操作 → 删除" | 弹出"确认删除 / 是否删除所选记录",但**没有像单行删除那样提示会连带删除关联流程信息** | 用户以为只删台账记录,不知道关联流程数据也会被清理 | 实测批量确认弹窗正文仅"是否删除所选记录",截图 `51_batch_delete_modal.png`;对比单行删除提示见 `46_delete_popconfirm.png` | `BgXiSpeak.api.ts:68-73``batchDeleteBgXiSpeak` confirm 文案) |
| 7 | 看右上角统计标签"未开始 4 / 督办中 3(已逾期 3)/ 已完成 3" | 标签字号仅 12px,在右侧偏小,视力一般的用户要凑近看 | 关键督办压力信息不够醒目 | 实测 `stats_tag_style = {color:rgb(140,105,0), fs:12px}` | `BgXiSpeakList.vue:98-102` |
## 用户会觉得顺的地方
- **统计标签实时同步**:按"督办状态=督办中"筛选后,标签立即变为"未开始 0 / 督办中 3(已逾期 3)/ 已完成 0",搜索/重置同样同步(实测,`04_filter_bpm.png`)。
- **表单必填校验提示友好**:空表单点"确认"一次性给出 11 条"请输入/请选择 ××"的明确提示,能定位到具体字段(实测,`40_add_empty_submit_v2.png`)。
- **破坏性操作有防护**:单行删除有 popconfirm"确定删除吗? 将同时删除该记录关联的所有流程信息",批量删除有"确认删除/是否删除所选记录"(实测,`46_delete_popconfirm.png``51_batch_delete_modal.png`)。
- **流程操作菜单按状态动态变化**:未开始记录显示"发起落实措施收集流程/发起经办人执行反馈流程/查询督办流程";督办中记录显示"再次发起经办人执行反馈流程/查询督办流程/删除关联流程",用户不会被无效操作误导(实测,`07_flow_dropdown.png``45_inprogress_flow_menu.png`)。
- **树形台账浏览顺畅**:展开父节点能加载出子节点(5 行 → 7 行),第一列可点击查看详情(实测,`03_tree_expanded.png``32_detail_link_modal.png`)。
- 全程无 console 报错(实测 `console_error_count=0`)。
## 12 维度核对结果汇总
| # | 维度 | 通过 | 问题(简写+证据位置) |
|---|------|------|----------------------|
| 1 | 目标达成 | 通过 | 5 条核心任务(浏览/展开、筛选、统计、流程操作、表单操作)全部实测走通,无走不下去的路径 |
| 2 | 可发现性 | 问题 | 第一列查看详情入口仅 hover tooltip(P2-5);批量操作按钮需先勾选才出现(较隐蔽) |
| 3 | 可学习性 | 问题 | 两步弹窗同名易迷惑(P2-1);新增表单 12 必填对新手偏重(P2-4) |
| 4 | 效率 | 问题 | 16 列表格横向滚动看关键列(P2-2);必填项多、重复录入负担(P2-4) |
| 5 | 认知负荷 | 问题 | 同屏 16 列信息过载(P2-2);行状态配色可缓解(已 vision+DOM 复核:浅黄/浅红/浅绿相邻可区分) |
| 6 | 文案清晰度 | 问题 | 重复发起流程英文提示(P1-1);其余中文文案(校验/删除确认)清晰 |
| 7 | 反馈及时性 | 通过 | 统计标签随筛选/搜索/重置同步刷新;删除/发起有 message/popconfirm 反馈 |
| 8 | 误操作防护 | 通过 | 单行删除 + 批量删除均有确认;批量删除未提示关联流程(P2-6) |
| 9 | 空态/加载/错误态 | 问题 | 空搜索结果仅"暂无数据"无引导(P2-3);loading 状态存在 |
| 10 | 无障碍细节 | 待实测 | 键盘走查/焦点可见性未实测;统计标签 12px 偏小(P2-7) |
| 11 | 视觉一致性 | 通过 | 行状态配色(浅黄/浅红/浅绿)已 vision 复核 `02_list_overview.png` 五行三色相邻可区分;DOM `status-row-1/2/3` = #fffbe6/#fff1f0/#f6ffed;红绿对色弱用户区分度有限,已有统计标签/文字辅助 |
| 12 | 边界场景 | 通过 | 模糊搜索无结果正常显示空态、重置恢复、状态筛选联动正常(抽查) |
## 用户任务走查记录
- **任务 1:登录并进入台账** → `01_login.png``02_list_overview.png`,顺畅(登录后直达 `/bg/xispeak/BgXiSpeakList`)。
- **任务 2:浏览树形台账并展开子节点** → 点击行首展开图标,5 行展开为 7 行,子节点加载正常 → `03_tree_expanded.png`,顺畅。
- **任务 3:按督办状态筛选 + 看统计** → 选"督办中"→ 列表和右上角统计标签同步变为督办中 3 → `04_filter_bpm.png`,顺畅且反馈即时;重置 → `05_after_reset.png`
- **任务 4:关键词搜索到空结果** → 输入不存在关键词 → 仅"暂无数据",无引导 → `06_empty_search_result.png`,略困惑(P2-3)。
- **任务 5:发起落实措施收集流程(核心)** → 流程操作下拉 → 选择反馈方式弹窗 → 确认发起 → 发起类型弹窗(两步同名)→ 选"重复发起"空提交弹英文提示 → `41/42/43/44_*.png`,英文提示卡住用户(P1-1)。
- **任务 6:查看办理情况 / 详情** → 表单操作下拉 → 查看办理情况弹"反馈信息(共 0 条,已完成 0 条)" → `13_feedback_modal.png`;第一列点开详情弹"详情"只读 → `32_detail_link_modal.png`,顺畅。
- **任务 7:新增(空表单校验)** → 新增 → 空提交 → 11 条"请输入/请选择"友好提示 → `40_add_empty_submit_v2.png`,顺畅但必填项偏多(P2-4)。
- **任务 8:删除(单行/批量)** → 单行删除有 popconfirm 并提示连带流程 → `46_delete_popconfirm.png`;批量删除有确认弹窗但未提示关联流程 → `51_batch_delete_modal.png`
- **任务 9:高级查询** → 工具栏"高级查询"弹窗正常打开 → `50_super_query.png`,顺畅。
## 待实测 / 代码推断(不进入 P0/P1,需人工复核或后续验证)
- **行状态背景配色**(未开始=浅黄 #fffbe6、督办中=浅红 #fff1f0、已完成=浅绿 #f6ffed`BgXiSpeakList.vue:996-1004`)已用 vision+DOM 复核确认(`02_list_overview.png` 五行三色相邻可区分),非代码推断。注意:本页全行着色所以可辨识;配色为浅粉彩,若仅单行着色时会接近白色、辨识度骤降(inspectTask 已单独记录为 P2#9)。
- **批量删除是否连带物理删除关联流程数据**:前端确认文案未提及,后端 `deleteBatchBgXiSpeak` 行为未实测,仅记录文案不一致(P2-6)。
- **键盘操作 / 焦点可见性 / Tab 顺序**:本次未做键盘走查,需人工补充。
- **快速连点提交/翻页等并发边界**:本次未实测。
- **新增表单完整保存链路的回显**:本次空表单校验实测通过;完整填数保存因弹窗/浮层交互复杂未重复走通(此前 8-7 的历史 crud 脚本 `qa-tmp/xispeak/probe_crud.py` 已覆盖该链路)。
## 测试数据卫生
- 本次审查**未创建任何记录**(新增仅做空表单校验,未保存),无新增残留。
- **发现既有残留**:台账中已有 4 条顶层 `QA_UX_` 前缀测试记录及其子节点(`QA_UX_树形主台账1-未开始``QA_UX_树形测试父节点X``QA_UX_督办中台账2-已逾期``QA_UX_已完成台账3`),为历史 QA 测试遗留,非本次产生,**未删除**(避免破坏既有测试数据),建议后续统一清理。证据:`artifacts/ux_walk7_log_readable.txt``rows_summary`)、`ux_walk5_log_readable.txt``qa_rows_all_cells`)。