// pages/welfareMall/order/orderCompletion.js import WelfareMall from '../../../api/welfareMall' import {getMobileCache, getPhoneNumber as getPhoneNumberSync} from '../../../utils/user' Page({ /** * 页面的初始数据 */ data: { page: 1, pageSize: 10, lock: false, noResult: false, noMore: false, orderDetail: null, orderSn: '', hidden: true, reason: '', inputValue: '', repeat: false, }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { // var that = this; // that.orderSn = options.ordersn if(!options.ordersn){ return; } this.setData({ orderSn: options.ordersn, }) this.getOrder(options.ordersn); // this.data.orderSn = options.ordersn; }, /** * * 订单数据 */ getOrder: function(data) { WelfareMall.getOrder({ mobile: getMobileCache(), orderSn: data, }).then(res => { if (res.code == 200) { this.userOrderistView(res.data) } this.data.lock = false }).catch(_ => { console.log(_) this.data.lock = false }) }, /** * * 订单数据--查询 */ selectOrder: async function(orderSn) { let res = await WelfareMall.getOrder({ mobile: getMobileCache(), orderSn: orderSn, }) this.userOrderistView(res.data) await this.changeOrder(res.data.orderSn,res.data.status.value,res.data.status.showText); }, userOrderistView: function(data) { if (!data) { console.log("订单详情数据为空"); return } // 构建券包传参参数 const couponList = [] if (data.goodsList && Array.isArray(data.goodsList)) { data.goodsList.forEach(v => { const coupons = v.couponList if (coupons && coupons.length > 0) { coupons.forEach(coupon => { coupon.isSn = true coupon.payStatus = data.status.value couponList.push(coupon) }) } }) } //对象转换 this.data.orderDetail = data this.setData({ mobileTop:getMobileCache(), orderDetail: this.data.orderDetail, couponList, }) }, /** * * 取消订单 */ toCancelOrder(e) { var that = this; wx.showModal({ title: '取消订单', content: '', showCancel: true,//是否显示取消按钮 cancelText:"取消",//默认是“取消” cancelColor:'#00000',//取消文字的颜色 confirmText:"确定",//默认是“确定” confirmColor: '#00000',//确定文字的颜色 success: res => {if (res.cancel) { //点击取消,默认隐藏弹框 } else { //点击确定 WelfareMall.cancelOrder({ mobile: getMobileCache(), orderSn: that.data.orderSn, }).then(res => { if (res.code == 200) { wx.showToast({ title: '取消订单成功', icon: 'none', duration: 1500 }); that.selectOrder(that.data.orderSn); } }).catch(_ => { console.log(_) }) } }, fail: function (res) { console.log(res) },//接口调用失败的回调函数 }) }, /** * 获取订单参数 */ async goPay() { var that = this; if(that.data.repeat){ return; } that.data.repeat = true; let result = await WelfareMall.getOrderParams(that.data.orderSn,wx.getStorageSync('loginInfo').openId,true); let res = result.data wx.requestOrderPayment({ timeStamp: res.wxPrePayVo.timeStamp, package: res.wxPrePayVo.pack, nonceStr: res.wxPrePayVo.nonceStr, signType: res.wxPrePayVo.signType, paySign: res.wxPrePayVo.paySign, orderInfo:res.orderInfo, success: function (res) { //支付成功 console.log(res); that.selectOrder(that.data.orderSn); that.data.repeat = false; }, fail: function (res) { console.log(res); that.data.repeat = false; }, complete: function (res) { console.log(res); that.data.repeat = false; } }) }, /** * 申请退款 */ getMode: function(){ this.setData({ hidden: false, inputValue: '', reason: '', }); }, /** * 取消 */ cancel: function(){ this.setData({ hidden: true, inputValue: '', reason: '', }); }, /** * 提交 */ confirm: function(){ let that = this; var res = this.data.reason; console.log(res); if(res == null || res =='' || res == undefined){ wx.showToast({ title: '退款原因必填', icon: 'none', duration: 1500 }) } else { this.setData({ hidden: true }); wx.showToast({ title: '申请退款已提交', icon: 'none', duration: 2000, success: function(){ that.goRefund(res); } }); } }, /** * 退款原因 */ getReason: function(e){ this.setData({ reason: e.detail.value }) }, /** * * 申请退款 */ goRefund: async function(reason) { var that = this; await WelfareMall.orderRefund({ mobile: getMobileCache(), orderSn: that.data.orderSn, reason: reason, }); that.cancel(); await that.selectOrder(that.data.orderSn); // await wx.navigateTo({ // url: "../refund/refund?orderSn=" + that.data.orderSn // }) }, changeOrder: function(orderSn,status,showText){ var page = getCurrentPages(); //获取上一个页面的页面栈 var lastPage = page[page.length-2]; console.log(lastPage.data) let oldOrderList = lastPage.data.orderList; for(var i = 0;i