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

346 lines
8.5 KiB
Markdown

# 🚀 出国记录变更历史显示功能 - 快速测试指南
## 📋 测试概述
**功能**: 在出国记录详情弹窗中显示变更历史记录
**测试时间**: 2025-10-13
**预计测试时长**: 10-15分钟
---
## ⚡ 快速测试步骤
### 1️⃣ 启动服务
```bash
# 确保后端服务运行中
cd /Users/weizzzz/Documents/Cursor/0828CURSOR/all-project/backend
# 如果后端未启动,执行启动命令
# 确保前端服务运行中
cd /Users/weizzzz/Documents/Cursor/0828CURSOR/all-project/web
npm run dev
```
### 2️⃣ 检查测试数据
**打开数据库客户端,执行以下SQL**:
```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
```
如果没有数据,请先创建测试数据:
```sql
-- 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. **登录系统**
- 访问: http://localhost
- 使用管理员账号登录
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
- 前端代码未正确更新
**解决方案**:
```bash
# 1. 清除浏览器缓存
Ctrl + Shift + Delete
# 2. 强制刷新前端
Ctrl + F5
# 3. 重新编译前端
cd web
npm run build:dev
```
### 问题2: API请求失败
**检查项**:
1. 后端服务是否运行
2. 检查API路径是否正确
3. 检查用户权限配置
```sql
-- 检查用户权限
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: 数据显示不正确
**检查数据库数据**:
```sql
-- 检查变更记录详细信息
SELECT * FROM rs_overseas_itinerary_change
WHERE record_id = <你的record_id>
AND deleted = 0
ORDER BY create_time DESC;
```
---
## 📝 测试结果记录
### 测试环境
- **测试时间**: ___________________
- **测试人员**: ___________________
- **浏览器**: Chrome / Firefox / Safari / Edge
- **浏览器版本**: ___________________
- **前端版本**: ___________________
- **后端版本**: ___________________
### 测试结果
| 测试项 | 测试结果 | 备注 |
|--------|---------|------|
| 详情弹窗打开 | ✅ / ❌ | |
| 变更历史加载 | ✅ / ❌ | |
| 有数据显示 | ✅ / ❌ | |
| 无数据显示 | ✅ / ❌ | |
| 状态标签颜色 | ✅ / ❌ | |
| 控制台无错误 | ✅ / ❌ | |
### 发现的问题
1. _______________________________________________
2. _______________________________________________
3. _______________________________________________
### 测试结论
- [ ] ✅ 测试通过,功能正常
- [ ] ⚠️ 有小问题,但不影响使用
- [ ] ❌ 测试不通过,需要修复
---
## 🎯 性能测试(可选)
### 加载时间测试
**测试方法**:
1. 打开浏览器Performance面板
2. 点击"查看详情"按钮
3. 记录从点击到变更历史显示的时间
**性能指标**:
- ⭐⭐⭐⭐⭐ < 500ms
- ⭐⭐⭐⭐ 500ms - 1s
- ⭐⭐⭐ 1s - 2s
- ⭐⭐ 2s - 3s
- ⭐ > 3s
### 大数据量测试
**测试场景**: 记录有10+条变更历史
```sql
-- 创建多条测试数据
-- 可以重复执行上面的INSERT语句,修改部分字段值
```
**验证项**:
- [ ] 表格滚动流畅
- [ ] 所有数据正确显示
- [ ] 页面不卡顿
- [ ] 内存占用正常
---
## 📞 联系方式
如果测试中遇到问题,请联系:
- **开发人员**: AI Assistant
- **技术支持**: ___________________
- **问题反馈**: ___________________
---
## 📚 相关文档
- [功能实现完成报告](./✅出国记录变更历史显示功能实现完成.md)
- [出国行程变更功能总结](../backend/ruoyi-modules/ruoyi-rs/出国行程变更功能开发总结.md)
---
**🎉 祝测试顺利!**