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

4.8 KiB
Raw Blame History

🚀 出国登记PDF下载功能测试指南

📋 测试前准备

1. 确认环境

# 前端目录
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. 功能正常

  • 点击"下载PDF"按钮能触发下载
  • 显示"正在生成PDF"提示
  • 显示"PDF下载成功"提示
  • 浏览器自动下载文件

2. PDF格式正确

  • 文件是有效的PDF格式(能用PDF阅读器打开)
  • 页面尺寸为A4(210mm × 297mm)
  • 标题居中且加粗
  • 表格结构完整
  • 边框线清晰

3. 数据正确

  • 所有字段数据正确显示
  • 日期格式为"年 月 日"格式
  • 中文字符显示正常
  • 无乱码

4. 样式美观

  • 字体为宋体
  • 表格单元格对齐正确
  • 行间距合适
  • 整体布局美观

🐛 可能的问题及解决方案

问题1:点击按钮没有反应

原因:可能前端代码未更新或有语法错误 解决:

# 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未安装 解决:

cd web
npm install html2canvas@^1.4.1 jspdf@^3.0.1

📸 测试截图建议

建议截图以下内容作为测试证据:

  1. 登记历史列表页面
  2. 查看详情弹窗(显示"下载PDF"按钮)
  3. 下载成功提示
  4. 下载的PDF文件(在文件管理器中)
  5. 打开的PDF内容(完整表格)

🔍 调试提示

如果需要调试,可以查看浏览器控制台(F12):

关键日志

// PDF容器尺寸
PDF容器尺寸: { width: 794, height: xxx }

// Canvas尺寸
Canvas尺寸: { width: 1588, height: xxx }

// 如果有错误,会显示:
生成PDF失败: Error: ...

查看PDF容器内容

在点击"下载PDF"按钮后,PDF容器会短暂显示(虽然在屏幕外),可以在控制台中检查:

// 在handleDownloadPDF函数的console.log后打断点
// 或临时修改容器样式为可见:
// style="position: fixed; left: 0; top: 0; ..."

📞 如有问题

如果测试过程中遇到任何问题:

  1. 查看浏览器控制台错误信息
  2. 查看网络请求是否正常
  3. 确认数据是否完整
  4. 检查代码是否有语法错误

✨ 测试完成后

测试通过后,可以:

  1. 删除本测试指南文件
  2. 删除实现说明文档
  3. 正式使用该功能

祝测试顺利! 🎉