# 待跟进尾款项目功能测试指南 ## 🧪 测试准备 ### 前置条件 1. 至少有一个项目处于售后归档阶段(`currentStage`: "售后归档" / "aftercare") 2. 该项目有订单报价总额(`project.data.quotation.total`) 3. 该项目有部分付款记录(`ProjectPayment`),但未全部付清 ### 测试数据准备 #### 1. 创建测试项目 ```javascript // 在 Parse Dashboard 或通过代码创建 const project = new Parse.Object('Project'); project.set('title', '测试项目-待跟进尾款'); project.set('currentStage', '售后归档'); project.set('company', companyPointer); project.set('data', { quotation: { total: 50000 // 订单总额 5 万元 } }); project.set('contact', contactPointer); await project.save(); ``` #### 2. 创建付款记录 ```javascript // 预付款 30% const payment1 = new Parse.Object('ProjectPayment'); payment1.set('project', projectPointer); payment1.set('type', 'advance'); payment1.set('amount', 15000); payment1.set('status', 'paid'); // 已支付 payment1.set('paymentDate', new Date('2024-11-01')); await payment1.save(); // 尾款 70% - 未支付 const payment2 = new Parse.Object('ProjectPayment'); payment2.set('project', projectPointer); payment2.set('type', 'final'); payment2.set('amount', 35000); payment2.set('status', 'pending'); // 待支付 payment2.set('dueDate', new Date('2024-12-01')); // 应付日期 await payment2.save(); ``` ## 📋 测试用例 ### 用例 1:基本数据加载 **测试步骤:** 1. 打开客服工作台页面 2. 观察控制台输出 **预期结果:** ``` 🔍 开始加载待跟进尾款项目... 📊 找到 X 个售后阶段项目 📋 项目 测试项目-待跟进尾款: 订单总额=¥50000, 已付=¥15000, 剩余=¥35000 ✅ 添加待跟进项目: 测试项目-待跟进尾款, 剩余¥35000, 状态=待付款 ✅ 待跟进尾款项目加载完成: 1 个项目(售后归档阶段) ``` **验证点:** - ✅ 项目正确显示在列表中 - ✅ 剩余金额计算正确(50000 - 15000 = 35000) - ✅ 状态显示为"待付款" ### 用例 2:逾期项目显示 **测试步骤:** 1. 修改尾款的 `dueDate` 为过去的日期(如:`2024-10-01`) 2. 刷新页面 **预期结果:** - 项目状态显示为 🔴 **已逾期** - 显示逾期天数(如:逾期40天) - 卡片背景变为红白渐变 - 状态标签带脉动动画 - 该项目排在列表最前面 **验证点:** - ✅ 逾期状态正确 - ✅ 逾期天数计算准确 - ✅ 视觉样式符合设计 - ✅ 排序位置优先 ### 用例 3:待创建尾款记录 **测试步骤:** 1. 删除所有 `type: 'final'` 的尾款记录 2. 保持订单总额和预付款记录不变 3. 刷新页面 **预期结果:** - 项目状态显示为 🟠 **待创建** - 卡片背景变为橙白渐变 - 仍然显示剩余金额 **验证点:** - ✅ 状态正确识别 - ✅ 金额计算不受影响 - ✅ 视觉样式正确 ### 用例 4:付款进度条 **测试步骤:** 1. 观察项目卡片中的进度条 **预期结果:** - 进度条显示:付款进度 30%(15000/50000) - 进度条颜色为蓝色渐变 - hover 时有光泽动画扫过 **验证点:** - ✅ 百分比计算正确 - ✅ 进度条宽度正确 - ✅ 动画效果流畅 ### 用例 5:多项目排序 **测试数据:** - 项目 A:逾期 30 天,剩余 ¥20000 - 项目 B:逾期 10 天,剩余 ¥30000 - 项目 C:未逾期,剩余 ¥15000 - 项目 D:待创建,剩余 ¥25000 **预期结果排序:** 1. 项目 A(逾期 30 天) 2. 项目 B(逾期 10 天) 3. 项目 C 或 D(按更新时间) **验证点:** - ✅ 逾期项目排在前面 - ✅ 逾期天数越长越靠前 - ✅ 其他项目正常排序 ### 用例 6:开始跟进功能 **测试步骤:** 1. 点击某个项目的"开始跟进"按钮 2. 观察控制台输出和页面跳转 **预期结果:** ``` 🎯 开始跟进项目 xxx 的尾款 ✅ 跟进记录已保存 ``` - 跳转到项目详情页 - URL 包含 `?stage=aftercare&focus=payment` - `ActivityLog` 表中新增一条记录: - `action`: "尾款跟进" - `description`: "客服开始跟进尾款:剩余金额 ¥35000" - `type`: "payment_followup" **验证点:** - ✅ 跳转成功 - ✅ 日志记录正确 - ✅ 页面定位正确 ### 用例 7:查看详情功能 **测试步骤:** 1. 点击某个项目的"查看详情"按钮 **预期结果:** ``` 📂 查看项目详情: xxx ``` - 跳转到项目详情页 - URL 为 `/project/detail/{projectId}` **验证点:** - ✅ 跳转成功 - ✅ 项目信息正确显示 ### 用例 8:小额零头过滤 **测试步骤:** 1. 创建一个项目: - 订单总额:¥10000 - 已付款:¥9950 - 剩余:¥50 2. 刷新页面 **预期结果:** - 该项目不显示在列表中 - 控制台日志显示剩余金额小于阈值 **验证点:** - ✅ 小额项目被正确过滤 - ✅ 其他项目不受影响 ### 用例 9:空状态显示 **测试步骤:** 1. 确保没有任何符合条件的项目 2. 打开客服工作台 **预期结果:** - 显示空状态图标和文字:"暂无待跟进尾款项目" - 统计显示:"0 个项目待跟进" **验证点:** - ✅ 空状态友好显示 - ✅ 不出现错误 ### 用例 10:全额支付项目过滤 **测试步骤:** 1. 创建一个项目并支付全款: - 订单总额:¥10000 - 已付款:¥10000 - 剩余:¥0 2. 刷新页面 **预期结果:** - 该项目不显示在列表中 - 控制台显示剩余金额为 0,不加入列表 **验证点:** - ✅ 已完全支付的项目被正确过滤 - ✅ 统计数字准确 ## 🐛 常见问题排查 ### 问题 1:项目不显示 **检查项:** 1. 项目的 `currentStage` 是否包含"售后归档"相关阶段 2. 项目是否有 `data.quotation.total` 字段 3. 剩余金额是否 > ¥100 4. 项目是否被标记为 `isDeleted: true` ### 问题 2:金额计算错误 **检查项:** 1. 查看控制台日志,确认读取的 `quotation.total` 2. 查询 `ProjectPayment` 表,确认所有付款记录 3. 确认 `status: 'paid'` 的记录是否正确 ### 问题 3:状态显示错误 **检查项:** 1. 检查尾款记录的 `type` 是否为 `'final'` 2. 检查 `dueDate` 是否正确设置 3. 检查 `status` 字段(paid/pending) ### 问题 4:排序不正确 **检查项:** 1. 确认逾期项目的 `dueDate` 小于当前时间 2. 检查控制台日志中的排序信息 3. 验证 `overdueDay` 计算是否正确 ## 📊 测试数据示例 ### 理想的测试场景 ```javascript // 场景 1:正常待付款 Project 1: - 总额: ¥50000 - 已付: ¥30000 (预付款 60%) - 剩余: ¥20000 - 尾款应付日期: 2024-12-31 - 状态: 待付款 // 场景 2:逾期严重 Project 2: - 总额: ¥100000 - 已付: ¥30000 (预付款 30%) - 剩余: ¥70000 - 尾款应付日期: 2024-10-01 (已逾期) - 状态: 已逾期 (逾期40天) // 场景 3:待创建尾款 Project 3: - 总额: ¥80000 - 已付: ¥40000 (预付款 50%) - 剩余: ¥40000 - 无尾款记录 - 状态: 待创建 // 场景 4:接近完款 Project 4: - 总额: ¥60000 - 已付: ¥55000 - 剩余: ¥5000 - 尾款应付日期: 2024-11-25 - 状态: 待付款 ``` ## ✅ 测试通过标准 1. ✅ 所有售后阶段且有剩余款项的项目都能正确显示 2. ✅ 金额计算准确无误 3. ✅ 状态判断逻辑正确 4. ✅ 排序规则符合预期 5. ✅ 交互功能正常工作 6. ✅ 控制台日志清晰详细 7. ✅ UI 样式美观流畅 8. ✅ 边界情况处理得当 9. ✅ 性能表现良好(查询速度快) 10. ✅ 无控制台错误或警告 ## 🚀 下一步建议 测试通过后,可以考虑以下增强: 1. 添加手动刷新按钮 2. 支持导出待跟进项目列表 3. 添加批量跟进功能 4. 集成消息提醒功能 5. 添加统计图表(按逾期天数分布等)