// pages/DetailsOfRefund/DetailsOfRefund.js var http = require('../../utils/http.js'); var util = require('../../utils/util.js'); Page({ /** * 页面的初始数据 */ data: { statusObject: { 0: '待支付', 20: '订单已接单', 30: '订单待配送', 40: '订单配送中', 50: '订单取消待审核', 60: '订单已取消', 70: '订单已送达', 80: '订单已完成' }, totalUsableScore:0, dvyType:'',//配送方式 orderItemDtos: [], remarks: "", actualTotal: 0, canRefund:false, userAddrDto: null, orderNumber: "", createTime: "", status: 0, productTotalAmount: '', transfee: '', totalNum:0, reduceAmount: '', prodid: '', orderType: 0, shopName: '', //店铺名称 canRefund: false, // 能否退款 canAllRefund: false, // 能否整单退款 isLastProd: false, //最后一款商品 irrevocable: false, //不可撤销 sum: [], //本单已申请单个退款的商品数组 orderScore: 0, // 整单使用积分 orderNumSend:'', estimatedTime: '', estimatedTimeStr: '', sendInfo:null,//骑手信息 markers:[] }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { this.setData({ orderNumSend:options.orderNum }) this.loadOrderDetail(options.orderNum); }, /** * 加载订单数据 */ loadOrderDetail: function(orderNum) { var ths = this; wx.showLoading(); //加载订单详情 var params = { url: "/p/myOrder/orderDetail", method: "GET", data: { orderNumber: orderNum }, callBack: function(res) { let img='' res.orderItemDtos.forEach(e=>{ img=e.pic.split(',') e.pic=img[0] }) var dvyType if(res.dvyType == 1){ dvyType = '运费(快递)' }else if(res.dvyType == 3){ dvyType = '配送费(即时配送)' }else{ dvyType = '自提' } ths.setData({ totalUsableScore:res.totalUsableScore, dvyType:dvyType, orderNumber: orderNum, actualTotal: res.actualTotal, //实际支付总额(商品总额+运费) canRefund:res.canRefund, userAddrDto: res.userAddrDto, remarks: res.remarks, orderItemDtos: res.orderItemDtos, createTime: res.createTime, status: res.status, // status: res.status,//海博订单状态 productTotalAmount: res.total, //所有商品总额 transfee: res.transfee, //运费 totalNum:res.totalNum, reduceAmount: res.reduceAmount, orderType: res.orderType, shopName: res.shopName, canRefund: res.canRefund, canAllRefund: res.canAllRefund, orderScore: res.orderScore, // 整单使用积分 estimatedTime: res.estimatedTime, estimatedTimeStr: res.estimatedTimeStr, }); wx.hideLoading(); if(res.status==40){//配送中再获取骑手位置 ths.getSenderPosition() } } }; http.request(params); }, /** * 获取骑手位置 */ getSenderPosition: function (e) { wx.showLoading(); var ths = this; var params = { url: "/p/location/info", method: "get", data: { orderNumber:this.data.orderNumber //'1978351838923198464' }, callBack: res => { wx.hideLoading(); console.log(res); if(res.code == 200&&res.data){ let markers = [ { // 骑手标记 id: 1, longitude:res.data.longitude, latitude: res.data.latitude, iconPath: '../../images/icon/sender.png', // 骑手图标 width: "140rpx", height: '176rpx', rotate: 0, // 旋转角度(可根据方向动态调整) zIndex: 3, // 层级(骑手图标在最上层) customCallout: { anchorY: 0, anchorX: 0, display: 'ALWAYS', }, }, { // 收货地址 id: 2, longitude:ths.data.userAddrDto.longitude, latitude: ths.data.userAddrDto.latitude, iconPath: '../../images/icon/head04.png', // 图标 width: "80rpx", height: '80rpx', rotate: 0, // 旋转角度(可根据方向动态调整) zIndex: 3, // 层级(骑手图标在最上层) }, ] ths.setData({ markers, sendInfo:res.data }) } } }; http.request(params); }, //跳转商品详情页 toProdPage: function(e) { var prodid = e.currentTarget.dataset.prodid; if(this.data.orderType==3){ console.log('积分商品') wx.navigateTo({ url: '/pages/convertProdDet/convertProdDet?prodid=' + prodid, }) }else{ wx.navigateTo({ url: '/pages/prod/prod?prodid=' + prodid, }) } }, /** * 付款 */ onPayAgain: function (e) { wx.showLoading({ mask: true }); var ths = this; var orderType = this.data.orderType; var params = { url: "/p/order/pay", method: "POST", data: { orderType: orderType ? orderType : 0, payType: 1, orderNumbers: this.data.orderNumber }, callBack: res => { //console.log(res); wx.hideLoading(); wx.requestPayment({ timeStamp: res.timeStamp, nonceStr: res.nonceStr, package: res.package, signType: res.signType, paySign: res.paySign, success: function () { ths.loadOrderDetail(this.data.orderNumber) //请求订单详情数据 // wx.navigateTo({ // url: '/pages/pay-result/pay-result?sts=1&orderNumbers=' + e.currentTarget.dataset.ordernum, // }) }, fail: function (err) { //console.log("支付失败"); } }) } }; http.request(params); }, //删除已完成||已取消的订单 delOrderList: function (e) { var ths = this wx.showModal({ title: '', content: '确定要删除此订单吗?', confirmColor: "#FF941A", success(res) { if (res.confirm) { var ordernum = e.currentTarget.dataset.ordernum; wx.showLoading(); var params = { url: "/p/myOrder/" + ordernum, method: "DELETE", data: {}, callBack: function (res) { ths.loadOrderData(ths.data.sts, 1); wx.hideLoading(); } } http.request(params); } else if (res.cancel) { console.log('用户点击取消') } } }) }, /** * 取消订单 */ onCancelOrder: function (e) { var ths = this; wx.showModal({ title: '', content: '要取消此订单?', confirmColor: "#FF941A", cancelText: '否', confirmText: '是', success(res) { if (res.confirm) { wx.showLoading({ mask: true }); var params = { url: "/p/myOrder/cancel/" + ths.data.orderNumber, method: "PUT", data: {}, callBack: function (res) { //console.log(res); ths.loadOrderDetail(ths.data.orderNumber) //请求订单详情数据 wx.hideLoading(); } }; http.request(params); } else if (res.cancel) { //console.log('用户点击取消') } } }) }, /** * 申请退款 */ applyRefund: function(e) { var item = {} item.orderNumber = this.data.orderNumber; item.actualTotal = this.data.actualTotal; item.transfee = this.data.transfee; item.status = this.data.status; //订单状态 item.orderItemDtos = this.data.orderItemDtos; item.totalNum = this.data.totalNum item.orderScore = this.data.orderScore, // 整单积分 item.userAddrDto = this.data.userAddrDto, // 用户信息 //拿到存储在本地的订单项数据 wx.setStorageSync("refundItem", item); wx.redirectTo({ //通过wx.redirectTo实现跳转(关闭当前页面,跳转到应用内某个页面) url: '/pages/applyRefund/applyRefund', }) }, callSender(){ wx.makePhoneCall({ phoneNumber: this.data.sendInfo.courierPhone//仅为示例,并非真实的电话号码 }) }, // 一键复制事件 copyBtn: function(e) { let data = e.currentTarget.dataset.value wx.setClipboardData({ //准备复制的数据 data, success: function(res) { wx.showToast({ title: '复制成功', }); } }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })