本次改进主要针对售后归档模块(stage-aftercare)和客服dashboard,实现了以下功能:
实现内容:
OnChanges生命周期钩子,监听项目数据变化@Input() orderTotal属性,支持外部传入订单总金额loadOrderTotalFromProject()方法,从项目的data.quotation.total字段读取订单总金额loadData()方法中自动调用,确保每次加载数据时都同步最新的订单总金额数据流:
订单阶段 (stage-order)
↓ 保存到 project.data.quotation.total
售后归档阶段 (stage-aftercare)
↓ 通过 loadOrderTotalFromProject() 读取
finalPayment.totalAmount (显示在界面)
关键代码位置:
yss-project/src/modules/project/pages/project-detail/stages/stage-aftercare.component.ts
OnChanges接口@Input() orderTotalngOnChanges()和loadOrderTotalFromProject()方法loadData()中调用loadOrderTotalFromProject()已实现功能(代码审查确认):
createImagePreview()方法)previewImage()方法)checkAndHandleTimeout()方法)实现内容:
关键代码位置:
yss-project/src/modules/project/pages/project-detail/stages/stage-aftercare.component.ts
deletePaymentVoucher()方法UI实现:
yss-project/src/modules/project/pages/project-detail/stages/stage-aftercare.component.html
canEdit时显示)实现内容:
// 自动计算逻辑
总金额 = project.data.quotation.total (从订单阶段读取)
已支付金额 = Σ(所有凭证的amount)
待支付金额 = 总金额 - 已支付金额
关键代码位置:
yss-project/src/modules/project/pages/project-detail/stages/stage-aftercare.component.ts
calculatePaidAmount()方法修改内容:
修改文件:
yss-project/src/app/pages/customer-service/dashboard/dashboard.html
初始加载:
ngOnInit()时调用loadData()loadData()中调用loadOrderTotalFromProject()读取订单总金额实时更新:
@Input() orderTotal接收父组件传入的金额ngOnChanges()监听orderTotal变化,自动更新项目数据变更:
project输入属性变化loadOrderTotalFromProject()使用Map<string, UploadState>管理多文件上传状态:
uploadStates: Map<string, {
status: 'uploading' | 'analyzing' | 'completed' | 'error';
progress: number;
message: string;
imagePreview?: string;
startTime?: number;
estimatedTime?: number;
}> = new Map();
所有上传状态卡片都已有完整的CSS样式:
ProjectPayment表不可用时使用ProjectFile)quotation.total时不会报错)性能优化:
用户体验:
数据分析:
本次改进成功实现了:
用户可以正常使用以上所有功能,体验流畅,数据准确。