Files
hzdyjs/🚀出国登记PDF下载功能测试指南.md
T
2025-10-14 16:41:19 +08:00

183 lines
4.8 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.
# 🚀 出国登记PDF下载功能测试指南
## 📋 测试前准备
### 1. 确认环境
```bash
# 前端目录
cd /Users/weizzzz/Documents/Cursor/0828CURSOR/all-project/web
# 如果前端没有运行,启动前端
npm run dev
```
### 2. 确认依赖
依赖库已在 `package.json` 中配置:
- ✅ html2canvas: ^1.4.1
- ✅ jspdf: ^3.0.1
## 🧪 测试步骤
### 步骤1:访问出国登记管理页面
1. 打开浏览器访问:http://localhost
2. 登录系统(使用admin账号)
3. 导航至:**人事管理** -> **出国登记管理**
### 步骤2:进入登记历史选项卡
1. 在出国登记管理页面,点击**"登记历史"**选项卡
2. 确认列表中有数据(状态为"已通过"的记录)
3. 如果没有数据,需要先创建一些已通过的登记记录
### 步骤3:查看详情
1. 点击任意记录的**"查看详情"**按钮(眼睛图标)
2. 弹出"出国登记详情"对话框
3. 确认对话框显示完整的登记信息
### 步骤4:下载PDF
1. 在详情对话框底部,找到**"下载PDF"**按钮(蓝色按钮,带下载图标)
2. 点击**"下载PDF"**按钮
3. 观察系统提示:
- 出现"正在生成PDF,请稍候..."提示(约1-2秒)
- 然后出现"PDF下载成功"提示
4. 浏览器自动下载PDF文件到本地
### 步骤5:检查PDF文件
1. 在浏览器下载目录中找到下载的PDF文件
2. 文件命名格式:`出国登记表_姓名_时间戳.pdf`
3. 打开PDF文件,检查以下内容:
- ✅ 标题显示:"登记报备人员因私事出国(境)登记表"
- ✅ 编号显示:登记ID
- ✅ 表格边框清晰
- ✅ 基本信息正确填充:
- 姓名、性别、出生日期
- 身份证号
- 政治面貌
- 户籍所在地
- 工作部门
- 职务职称
- 行政职级
- 人员类别代码
- ✅ 照片位置预留(显示"照片"占位文字)
- ✅ 盖章位置预留
- ✅ 联系人信息区域
- ✅ 填表说明显示
## ✅ 预期结果
### 1. 功能正常
- [x] 点击"下载PDF"按钮能触发下载
- [x] 显示"正在生成PDF"提示
- [x] 显示"PDF下载成功"提示
- [x] 浏览器自动下载文件
### 2. PDF格式正确
- [x] 文件是有效的PDF格式(能用PDF阅读器打开)
- [x] 页面尺寸为A4(210mm × 297mm)
- [x] 标题居中且加粗
- [x] 表格结构完整
- [x] 边框线清晰
### 3. 数据正确
- [x] 所有字段数据正确显示
- [x] 日期格式为"年 月 日"格式
- [x] 中文字符显示正常
- [x] 无乱码
### 4. 样式美观
- [x] 字体为宋体
- [x] 表格单元格对齐正确
- [x] 行间距合适
- [x] 整体布局美观
## 🐛 可能的问题及解决方案
### 问题1:点击按钮没有反应
**原因**:可能前端代码未更新或有语法错误
**解决**:
```bash
# 1. 检查浏览器控制台是否有错误
# 2. 刷新页面(Ctrl+Shift+R 强制刷新)
# 3. 重启前端服务
cd web
npm run dev
```
### 问题2:提示"PDF容器未找到"
**原因**:DOM渲染未完成
**解决**:
- 代码中已有 `await nextTick()` 和 100ms 延迟
- 如果仍有问题,可能需要增加延迟时间
### 问题3:PDF显示为空白
**原因**:数据绑定问题或CSS样式问题
**解决**:
- 检查 `viewData.value` 是否有数据
- 检查PDF容器的CSS样式是否正确
### 问题4:中文乱码
**原因**:字体问题
**解决**:
- 确认CSS中使用了 `font-family: 'SimSun', '宋体', serif`
- 确认浏览器支持中文字体
### 问题5:依赖库未安装
**原因**:html2canvas或jspdf未安装
**解决**:
```bash
cd web
npm install html2canvas@^1.4.1 jspdf@^3.0.1
```
## 📸 测试截图建议
建议截图以下内容作为测试证据:
1. **登记历史列表页面**
2. **查看详情弹窗**(显示"下载PDF"按钮)
3. **下载成功提示**
4. **下载的PDF文件**(在文件管理器中)
5. **打开的PDF内容**(完整表格)
## 🔍 调试提示
如果需要调试,可以查看浏览器控制台(F12):
### 关键日志
```javascript
// PDF容器尺寸
PDF容器尺寸: { width: 794, height: xxx }
// Canvas尺寸
Canvas尺寸: { width: 1588, height: xxx }
// 如果有错误,会显示:
生成PDF失败: Error: ...
```
### 查看PDF容器内容
在点击"下载PDF"按钮后,PDF容器会短暂显示(虽然在屏幕外),可以在控制台中检查:
```javascript
// 在handleDownloadPDF函数的console.log后打断点
// 或临时修改容器样式为可见:
// style="position: fixed; left: 0; top: 0; ..."
```
## 📞 如有问题
如果测试过程中遇到任何问题:
1. 查看浏览器控制台错误信息
2. 查看网络请求是否正常
3. 确认数据是否完整
4. 检查代码是否有语法错误
---
## ✨ 测试完成后
测试通过后,可以:
1. 删除本测试指南文件
2. 删除实现说明文档
3. 正式使用该功能
**祝测试顺利!** 🎉