// components/order-stats/index.js // 首页订单统计卡片:全部完成 / 本月完成 / 未完成 const API = require('../../utils/api.js') Component({ data: { allCount: 0, allFee: 0, monthCount: 0, monthFee: 0, uncompletedCount: 0, uncompletedFee: 0 }, lifetimes: { attached() { this.load() } }, methods: { /** * 拉取订单记录并统计三个口径(数量与费用) * 全部完成:status === 'completed' * 本月完成:completed 且预约日期在本月 * 未完成:status !== 'completed' * 费用取 payment.totalFee 合计 */ load() { API.escort.getAllRecords({ page: 1, pageSize: 200 }) .then(res => { if (res.code !== 0) return const records = res.data.records || [] const now = new Date() const year = now.getFullYear() const month = now.getMonth() const feeOf = (item) => Number(item.payment && item.payment.totalFee) || 0 let allCount = 0 let allFee = 0 let monthCount = 0 let monthFee = 0 let uncompletedCount = 0 let uncompletedFee = 0 records.forEach(item => { if (item.status === 'completed') { allCount++ allFee += feeOf(item) const d = item.schedule && item.schedule.date ? new Date(item.schedule.date) : null if (d && !isNaN(d.getTime()) && d.getFullYear() === year && d.getMonth() === month) { monthCount++ monthFee += feeOf(item) } } else { uncompletedCount++ uncompletedFee += feeOf(item) } }) this.setData({ allCount, allFee, monthCount, monthFee, uncompletedCount, uncompletedFee }) }) .catch(err => { console.error('获取订单统计失败', err) }) } } })