8.5 KiB
8.5 KiB
🚀 出国记录变更历史显示功能 - 快速测试指南
📋 测试概述
功能: 在出国记录详情弹窗中显示变更历史记录
测试时间: 2025-10-13
预计测试时长: 10-15分钟
⚡ 快速测试步骤
1️⃣ 启动服务
# 确保后端服务运行中
cd /Users/weizzzz/Documents/Cursor/0828CURSOR/all-project/backend
# 如果后端未启动,执行启动命令
# 确保前端服务运行中
cd /Users/weizzzz/Documents/Cursor/0828CURSOR/all-project/web
npm run dev
2️⃣ 检查测试数据
打开数据库客户端,执行以下SQL:
-- 1. 查找有变更历史的出国记录
SELECT
r.record_id,
r.applicant_name,
r.destination,
COUNT(c.change_id) as change_count
FROM rs_overseas_record r
LEFT JOIN rs_overseas_itinerary_change c
ON r.record_id = c.record_id AND c.deleted = 0
WHERE r.deleted = 0
GROUP BY r.record_id
HAVING change_count > 0
LIMIT 5;
预期结果:
record_id | applicant_name | destination | change_count
-----------------------------------------------------------------
1234567890123456 | 张三 | 美国 | 2
7890123456789012 | 李四 | 英国 | 1
如果没有数据,请先创建测试数据:
-- 2. 如果没有测试数据,创建一条变更记录
-- 注意:将下面的 record_id 替换为实际存在的记录ID
INSERT INTO rs_overseas_itinerary_change (
change_id,
record_id,
applicant_id,
applicant_name,
change_type,
original_destination,
new_destination,
original_start_date,
original_end_date,
new_start_date,
new_end_date,
change_reason,
status,
tenant_id,
create_time
) VALUES (
FLOOR(RAND() * 9000000000000000) + 1000000000000000, -- 随机雪花ID
<替换为实际的record_id>, -- 必须是已存在的记录ID
1, -- 申请人ID
'测试用户', -- 申请人姓名
'目的地变更,时间变更', -- 变更类型
'美国', -- 原目的地
'英国', -- 新目的地
'2025-01-01', -- 原出发日期
'2025-01-10', -- 原返回日期
'2025-02-01', -- 新出发日期
'2025-02-15', -- 新返回日期
'因工作安排调整,需要变更出国时间和目的地', -- 变更原因
'1', -- 状态:已通过
'000000', -- 租户ID
NOW() -- 创建时间
);
3️⃣ 前端功能测试
步骤详解
-
登录系统
- 访问: http://localhost
- 使用管理员账号登录
-
进入出国申请菜单
- 左侧菜单: 人事管理
- 子菜单: 出国申请
-
切换到出国记录选项卡
- 点击页面上方的 "出国记录" 选项卡
- 等待列表加载完成
-
打开记录详情
- 找到列表中的任意一条记录
- 点击操作列的 "查看详情" 按钮 (👁 图标)
-
查看变更历史
- 详情弹窗打开后,向下滚动到底部
- 查看 "变更历史记录" 区域
✅ 验证检查清单
基础功能验证
- 详情弹窗成功打开
- 出国记录基本信息正确显示
- "变更历史记录" 标题正确显示(带蓝色图标)
- 变更历史区域位于详情弹窗底部
有变更历史的记录
测试场景: 选择有变更历史的记录查看
- 变更历史表格正常显示
- 变更时间字段正确显示
- 变更类型以标签形式显示
- 多个变更类型显示为多个标签
- 原目的地和新目的地正确显示
- 原时间和新时间正确显示
- 变更原因内容正确显示
- 状态标签颜色正确:
- 待审核 = 橙色 (warning)
- 已通过 = 绿色 (success)
- 已拒绝 = 红色 (danger)
- 已撤回 = 灰色 (info)
- 审批意见内容正确显示(如果有)
- 表格可以正常滚动(如果记录很多)
无变更历史的记录
测试场景: 选择没有变更历史的记录查看
- 显示空状态提示: "暂无变更记录"
- 空状态图标正常显示
- 不显示表格组件
加载状态验证
- 打开详情时显示加载动画
- 加载完成后动画消失
- 控制台没有错误信息
🔍 控制台日志检查
打开浏览器开发者工具 (F12) → Console 选项卡
正常日志示例
查看记录: {recordId: 1234567890123456, applicantName: "张三", ...}
🔄 开始加载变更历史记录, recordId: 1234567890123456
✅ 变更历史记录加载成功, 共 2 条记录
异常日志排查
如果看到错误日志:
❌ 加载变更历史记录失败: ...
排查步骤:
- 检查Network面板,查看API请求是否成功
- 检查请求URL:
/rs/itinerary/change/record/{recordId}/history - 检查响应状态码和返回数据
- 检查用户权限是否包含
rs:itineraryChange:query
📊 测试截图记录
截图1: 出国记录列表
截图2: 详情弹窗 - 有变更历史
截图3: 详情弹窗 - 无变更历史
截图4: 控制台日志
🐛 常见问题排查
问题1: 变更历史区域不显示
可能原因:
- recordId 为空或undefined
- 前端代码未正确更新
解决方案:
# 1. 清除浏览器缓存
Ctrl + Shift + Delete
# 2. 强制刷新前端
Ctrl + F5
# 3. 重新编译前端
cd web
npm run build:dev
问题2: API请求失败
检查项:
- 后端服务是否运行
- 检查API路径是否正确
- 检查用户权限配置
-- 检查用户权限
SELECT m.perms
FROM sys_menu m
JOIN sys_role_menu rm ON m.menu_id = rm.menu_id
JOIN sys_user_role ur ON rm.role_id = ur.role_id
WHERE ur.user_id = <你的用户ID>
AND m.perms LIKE '%itineraryChange%';
问题3: 数据显示不正确
检查数据库数据:
-- 检查变更记录详细信息
SELECT * FROM rs_overseas_itinerary_change
WHERE record_id = <你的record_id>
AND deleted = 0
ORDER BY create_time DESC;
📝 测试结果记录
测试环境
- 测试时间: ___________________
- 测试人员: ___________________
- 浏览器: Chrome / Firefox / Safari / Edge
- 浏览器版本: ___________________
- 前端版本: ___________________
- 后端版本: ___________________
测试结果
| 测试项 | 测试结果 | 备注 |
|---|---|---|
| 详情弹窗打开 | ✅ / ❌ | |
| 变更历史加载 | ✅ / ❌ | |
| 有数据显示 | ✅ / ❌ | |
| 无数据显示 | ✅ / ❌ | |
| 状态标签颜色 | ✅ / ❌ | |
| 控制台无错误 | ✅ / ❌ |
发现的问题
测试结论
- ✅ 测试通过,功能正常
- ⚠️ 有小问题,但不影响使用
- ❌ 测试不通过,需要修复
🎯 性能测试(可选)
加载时间测试
测试方法:
- 打开浏览器Performance面板
- 点击"查看详情"按钮
- 记录从点击到变更历史显示的时间
性能指标:
- ⭐⭐⭐⭐⭐ < 500ms
- ⭐⭐⭐⭐ 500ms - 1s
- ⭐⭐⭐ 1s - 2s
- ⭐⭐ 2s - 3s
- ⭐ > 3s
大数据量测试
测试场景: 记录有10+条变更历史
-- 创建多条测试数据
-- 可以重复执行上面的INSERT语句,修改部分字段值
验证项:
- 表格滚动流畅
- 所有数据正确显示
- 页面不卡顿
- 内存占用正常
📞 联系方式
如果测试中遇到问题,请联系:
- 开发人员: AI Assistant
- 技术支持: ___________________
- 问题反馈: ___________________
📚 相关文档
🎉 祝测试顺利!