测试 Spec — AI 列表可见性与通用布局修复
status: complete
created: 2026-07-21
1. 增量范围
| 级别 |
场景 |
预期 |
| P0 |
两个页面根容器高度 |
AiCrudPage 获得明确可用高度,表格正文不塌陷 |
| P0 |
无数据列表 |
复用 AiTable 的 NEmpty 空状态并可见 |
| P1 |
多列表格横向滚动 |
由共享组件根据列宽自动计算,固定操作列保持正常 |
| P1 |
页面既有功能 |
搜索、分页、编辑/详情/预览等逻辑不变 |
| P2 |
前端集成 |
目标 ESLint 和生产构建通过 |
2. 执行命令
source ~/.nvm/nvm.sh && nvm use v20.19.0
cd forge-admin-ui
pnpm exec vitest run src/components/ai-form/__tests__/AiTable.spec.js
pnpm exec eslint src/views/ai/prompt-template.vue src/views/ai/dashboard-generate-record.vue
NODE_OPTIONS=--max-old-space-size=8192 pnpm build
rg -n 'max-height="calc\(100vh - 300px\)"|:scroll-x="(1560|1600)"|min-height: 100%' \
forge-admin-ui/src/views/ai/prompt-template.vue \
forge-admin-ui/src/views/ai/dashboard-generate-record.vue
git diff --check
3. 浏览器验证
- 复用用户已有服务,不主动停止或重启用户进程。
- 登录后分别访问
/ai/prompt-template、/ai/dashboard-generate-record。
- 有数据时检查表头、数据行、横向滚动和分页均可见。
- 使用不匹配的筛选条件检查“没有匹配结果”空状态;若无初始数据,检查“暂无数据”空状态。
- 当前环境不能启动浏览器或访问本地服务时,在执行日志中记录限制,不将浏览器验证表述为通过。
4. 完成标准
- 两个页面不再包含冲突的固定表格高度和固定横向滚动宽度。
- 定向测试、目标 ESLint、生产构建和差异检查通过。
- 浏览器验证已执行,或有明确的非代码环境限制记录。
5. 实际结果
| 验证项 |
结果 |
| AiTable 定向 Vitest |
passed,1 file / 1 test |
| 两个目标页面 ESLint |
passed,0 errors / 0 warnings |
| 布局静态检查 |
passed,固定 max-height、固定 scroll-x 和旧 min-height: 100% 均无残留;共享 NEmpty 存在 |
| 前端生产构建 |
passed,8725 modules,1m38s |
git diff --check |
passed |
| 浏览器自动化 |
blocked,Chromium 在当前 macOS 沙箱中注册 MachPort 被拒绝;未停止用户已有服务 |