const { default: api } = require("../../js/api"); const util = require('../../utils/util.js') // pages/historyOrderAfter/historyOrderAfter.js Page({ /** * 页面的初始数据 */ data: { date: '', startDate: '', endDate: '', pageNum:1,//查询页码 pageSize:5,//页数 isHaveOrder:true,//是否还有订单 paymentMode: -1, /** 根据当前模式(后支付:0或预支付:1)+ 授权状态(未授权:0;已授权:1) * + 订单状态(0:未支付; 1:已支付; 2:订单全额退款;3:订单部分退款;5:已完成) * 获取订单状态及颜色 */ statusValue: [{ paymentMode: "0", authorizationStatus: 0, orderStatus: 0, status: '未支付', statusColor: '#ff8d1a' }, { paymentMode: "0", authorizationStatus: 0, orderStatus: 1, status: '已完成', statusColor: '#a6a6a6' }, { paymentMode: "0", authorizationStatus: 0, orderStatus: 5, status: '已完成', statusColor: '#a6a6a6' }, { paymentMode: "1", authorizationStatus: 0, orderStatus: 1, status: '已失效', statusColor: '#a6a6a6' }, { paymentMode: "1", authorizationStatus: 1, orderStatus: 1, status: '已授权', statusColor: '#b1db5a' }, { paymentMode: "1", authorizationStatus: 0, orderStatus: 2, status: '已完成', statusColor: '#a6a6a6' }, { paymentMode: "1", authorizationStatus: 0, orderStatus: 3, status: '已完成', statusColor: '#a6a6a6' }, { paymentMode: "1", authorizationStatus: 0, orderStatus: 5, status: '已完成', statusColor: '#a6a6a6' }, ], orders: [] }, /** 获取当前日期 */ getNowDate() { const date = new Date(); // 获取当前日期 const year = date.getFullYear(); // 获取年份 const month = String(date.getMonth() + 1).padStart(2, '0'); // 获取月份,补零 const day = String(date.getDate()).padStart(2, '0'); // 获取日期,补零 return `${year}-${month}-${day}`; // 拼接成 yyyy-MM-dd 格式 }, /** 获取上个月日期 */ getLastMouthDate() { const currentDate = new Date(); // 获取当前日期 const year = currentDate.getFullYear(); // 当前年份 const month = currentDate.getMonth(); // 当前月份(0-11) const day = currentDate.getDate(); // 当前日期 // 计算一个月前的日期 const oneMonthAgoDate = new Date(year, month - 1, day); // 处理跨年问题(如果当前月份是 1 月,month - 1 会是 0,即上一年的 12 月) // 无需额外处理,Date 对象会自动处理 // 格式化日期为 YYYY-MM-DD const formattedDate = `${oneMonthAgoDate.getFullYear()}-${String(oneMonthAgoDate.getMonth() + 1).padStart(2, '0')}-${String(oneMonthAgoDate.getDate()).padStart(2, '0')}`; return formattedDate; }, /** 计算倒计时,倒计时结束后发起取消授权 */ startCountdow() { this.timer = setInterval(() => { const countDownZeroOrders = [] const orders = this.data.orders.map(order => { if (order.countdown && order.countdown != '0') { const currentCountDown = (Number(order.countdown) - 1); order.countdown = currentCountDown.toString(); if (currentCountDown <= 0) countDownZeroOrders.push(order) } return order }) this.setData({ orders: orders }) this.toUnAnthorization(countDownZeroOrders) }, 1000); }, /** 结束倒计时 */ endCountDown() { if (this.timer) { clearInterval(this.timer) this.timer = null } }, /** 发送取消授权 */ toUnAnthorization(orders) { console.log(orders) }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { const today = this.getNowDate(); const lastMouthDay = this.getLastMouthDate(); this.setData({ date: today, paymentMode: options.paymentMode, startDate: today, endDate: lastMouthDay }); console.log("历史页当前data",this.data) this.getOrder(); // this.startCountdow(); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { this.endCountDown() }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { if(!this.data.isHaveOrder) return; var page = this.data.pageNum + 1; this.setData({ pageNum:page }) this.getOrder() }, /** * 用户点击右上角分享 */ onShareAppMessage() { }, /** 日期选择器选择时间 */ bindDateChange(date) { this.setData({ date: date.detail.value, orders:[] }); console.log(date) this.getOrder() }, /** 组件按钮一点击事件 */ onOrderButtonClick1(event) { console.log(event) }, /** 组件按钮二点击事件 */ onOrderButtonClick2(event) { console.log(event) }, /** 获取订单 */ getOrder() { const that = this; api.request_WXFindOrders(this.data.date, this.data.pageNum, this.data.pageSize).then(res => { // api.request_WXFindOrders(this.data.date, 3, 5).then(res => { console.log("获取历史订单", res) const datas = res.data.data; if(datas.length <= 0) { that.data.isHaveOrder = false; return } var getOrders = datas.map(order => { var times = [order.authorizationTime, order.createTime, order.fuelItemTransactionEndTime, order.transactionTime]; var timeFormate = times.find(t => t != undefined && t != null && t != ''); var time = util.formatDateNotSecond(timeFormate); var volume = (order.originalQty != null && order.originalQty != undefined) ? order.originalQty : order.qty var status = that.data.statusValue.find(state => state.paymentMode == this.data.paymentMode && state.authorizationStatus == order.authorizationStatus && state.orderStatus == order.orderStatus ) var stute = ''; var stateColor = ''; var bt2 = '' if (status != undefined) { stute = status.status stateColor = status.statusColor } if(stute == '未支付') bt2 = '重新支付'; return { order: { status: stute, statusColor: stateColor, oilName: order.productName, nozzle: order.nozzleId, volume: volume, amount: order.originalAmount, payAmount: order.actualPaymentAmount, discount: order.originalAmount - order.actualPaymentAmount, orderId: order.id, time: time }, bottonText2: bt2 } }) var orderList = [...this.data.orders,...getOrders] this.setData({ orders: orderList }) console.log("转换后的订单", this.data.orders) }).catch(err => { console.log("获取历史订单失败", err) }) } })