Files
hzdyjs/🚀出国记录变更历史功能测试指南.md
T
2025-10-14 16:41:19 +08:00

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️⃣ 前端功能测试

步骤详解

  1. 登录系统

  2. 进入出国申请菜单

    • 左侧菜单: 人事管理
    • 子菜单: 出国申请
  3. 切换到出国记录选项卡

    • 点击页面上方的 "出国记录" 选项卡
    • 等待列表加载完成
  4. 打开记录详情

    • 找到列表中的任意一条记录
    • 点击操作列的 "查看详情" 按钮 (👁 图标)
  5. 查看变更历史

    • 详情弹窗打开后,向下滚动到底部
    • 查看 "变更历史记录" 区域

✅ 验证检查清单

基础功能验证

  • 详情弹窗成功打开
  • 出国记录基本信息正确显示
  • "变更历史记录" 标题正确显示(带蓝色图标)
  • 变更历史区域位于详情弹窗底部

有变更历史的记录

测试场景: 选择有变更历史的记录查看

  • 变更历史表格正常显示
  • 变更时间字段正确显示
  • 变更类型以标签形式显示
  • 多个变更类型显示为多个标签
  • 原目的地和新目的地正确显示
  • 原时间和新时间正确显示
  • 变更原因内容正确显示
  • 状态标签颜色正确:
    • 待审核 = 橙色 (warning)
    • 已通过 = 绿色 (success)
    • 已拒绝 = 红色 (danger)
    • 已撤回 = 灰色 (info)
  • 审批意见内容正确显示(如果有)
  • 表格可以正常滚动(如果记录很多)

无变更历史的记录

测试场景: 选择没有变更历史的记录查看

  • 显示空状态提示: "暂无变更记录"
  • 空状态图标正常显示
  • 不显示表格组件

加载状态验证

  • 打开详情时显示加载动画
  • 加载完成后动画消失
  • 控制台没有错误信息

🔍 控制台日志检查

打开浏览器开发者工具 (F12) → Console 选项卡

正常日志示例

查看记录: {recordId: 1234567890123456, applicantName: "张三", ...}
🔄 开始加载变更历史记录, recordId: 1234567890123456
✅ 变更历史记录加载成功, 共 2 条记录

异常日志排查

如果看到错误日志:

❌ 加载变更历史记录失败: ...

排查步骤:

  1. 检查Network面板,查看API请求是否成功
  2. 检查请求URL: /rs/itinerary/change/record/{recordId}/history
  3. 检查响应状态码和返回数据
  4. 检查用户权限是否包含 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请求失败

检查项:

  1. 后端服务是否运行
  2. 检查API路径是否正确
  3. 检查用户权限配置
-- 检查用户权限
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
  • 浏览器版本: ___________________
  • 前端版本: ___________________
  • 后端版本: ___________________

测试结果

测试项 测试结果 备注
详情弹窗打开 ✅ / ❌
变更历史加载 ✅ / ❌
有数据显示 ✅ / ❌
无数据显示 ✅ / ❌
状态标签颜色 ✅ / ❌
控制台无错误 ✅ / ❌

发现的问题




测试结论

  • ✅ 测试通过,功能正常
  • ⚠️ 有小问题,但不影响使用
  • ❌ 测试不通过,需要修复

🎯 性能测试(可选)

加载时间测试

测试方法:

  1. 打开浏览器Performance面板
  2. 点击"查看详情"按钮
  3. 记录从点击到变更历史显示的时间

性能指标:

  • ⭐⭐⭐⭐⭐ < 500ms
  • ⭐⭐⭐⭐ 500ms - 1s
  • ⭐⭐⭐ 1s - 2s
  • ⭐⭐ 2s - 3s
  • ⭐ > 3s

大数据量测试

测试场景: 记录有10+条变更历史

-- 创建多条测试数据
-- 可以重复执行上面的INSERT语句,修改部分字段值

验证项:

  • 表格滚动流畅
  • 所有数据正确显示
  • 页面不卡顿
  • 内存占用正常

📞 联系方式

如果测试中遇到问题,请联系:

  • 开发人员: AI Assistant
  • 技术支持: ___________________
  • 问题反馈: ___________________

📚 相关文档


🎉 祝测试顺利!