Files
cattleTransportation/pc-cattle-transportation/HTML_EXPORT_TEST_GUIDE.md
2025-10-21 17:29:52 +08:00

3.1 KiB
Raw Blame History

HTML文档导出功能测试指南

功能实现完成

🎯 核心功能

  • 实现了HTML格式的牛只发车验收单生成
  • 支持在新窗口中预览文档
  • 内置打印功能可保存为PDF
  • 严格按照图片格式设计布局
  • 完整的字段映射和计算逻辑

📋 字段映射

  • 供货单位 ← supplierName
  • 收货单位 ← buyerName
  • 发车地点 ← startLocation
  • 发车时间 ← createTime
  • 到达地点 ← endLocation
  • 司机姓名及联系方式 ← driverName + driverMobile
  • 装车车牌号 ← licensePlate
  • 下车总数量 ← ratedQuantity
  • 下车总重量 ← 计算:(落地装车磅数-空车磅重)/2
  • 单价 ← 计算:约定价格/2
  • 总金额 ← 计算:下车总重量×单价

🎨 设计特点

  • 专业的表格布局
  • 打印友好的样式
  • 响应式设计
  • 清晰的字体和间距
  • 边框和背景色区分

🧪 测试步骤

1. 基本功能测试

  1. 打开应用:http://localhost:8081/
  2. 登录并进入"入境检疫"页面
  3. 找到状态为"已装车"或"运输中"的记录
  4. 点击"下载文件"按钮

2. 预期结果

  • 新窗口打开,显示格式化的验收单
  • 所有字段正确填充
  • 计算公式正确执行
  • 布局与图片格式一致

3. 打印/PDF测试

  1. 在新窗口中点击"打印/保存为PDF"按钮
  2. 在打印对话框中选择"另存为PDF"
  3. 保存PDF文件
  4. 验证PDF格式和内容

4. 数据验证

检查以下计算是否正确:

  • 下车总重量 = (落地装车磅数 - 空车磅重) / 2
  • 单价 = 约定价格 / 2
  • 总金额 = 下车总重量 × 单价

🔧 技术实现

前端技术栈

  • Vue 3 Composition API
  • HTML5 + CSS3
  • JavaScript ES6+
  • 浏览器打印API

核心代码

// 计算字段
const landingWeight = parseFloat(row.landingEntruckWeight || 0);
const emptyWeight = parseFloat(row.emptyWeight || 0);
const totalWeight = ((landingWeight - emptyWeight) / 2).toFixed(2);
const unitPrice = (parseFloat(row.firmPrice || 0) / 2).toFixed(2);
const totalAmount = (parseFloat(totalWeight) * parseFloat(unitPrice)).toFixed(2);

// 生成HTML并打开新窗口
const newWindow = window.open('', '_blank');
newWindow.document.write(htmlContent);
newWindow.document.close();

🎉 优势

  1. 无需额外依赖不依赖复杂的Word处理库
  2. 跨平台兼容:所有现代浏览器都支持
  3. 打印友好:专门优化的打印样式
  4. PDF支持通过浏览器打印功能生成PDF
  5. 易于维护纯HTML/CSS实现易于修改
  6. 性能优秀:轻量级实现,加载快速

📝 使用说明

  1. 查看文档:点击"下载文件"按钮在新窗口中查看
  2. 打印文档:点击"打印/保存为PDF"按钮
  3. 保存PDF:在打印对话框中选择"另存为PDF"
  4. 编辑内容:可以在打印前手动编辑某些字段

🚀 后续优化建议

  1. 可以添加更多导出格式选项
  2. 可以添加文档模板选择功能
  3. 可以添加批量导出功能
  4. 可以添加文档预览功能