const navigationBarHeight = (getApp().statusBarHeight + 50) + 'px' let config = require("../../../config/config.js"); let util = require("../../../utils/util"); let Http = require("../../../utils/HttpBasics"); let app = getApp(); const imgurl = require("../../../utils/imgurl"); const QR = require("../../../utils/memberqrcode.js"); Page({ /** * 页面的初始数据 */ data: { payOrderNo:"",//评价订单id evaluateFlag:false,//控制评价显隐藏 serviceUrl:'',//客服外部链接 dynamicRq: "", expiredSeconds: 0, showhieRq: false, mouldType: 0, showFlag: false, navigationBarHeight, upDataRqUrlF: imgurl.upDataRqF.url, succUrl: imgurl.succ.url, spcodeUrl: imgurl.spcode.url, chevronUrl: imgurl.chevron.url, teljpgUrl: imgurl.teljpg.url, newUrl: imgurl.new1.url, weixinTitle: imgurl.weixinTitle.url, lineUrl: imgurl.line.url, wm01Url: imgurl.wm01.url, wm02Url: imgurl.wm02.url, wm03Url: imgurl.wm03.url, wm04Url: imgurl.wm04.url, showModalStatus: false, flag: 0, order: null, orderId: null, //存储计时器 setInter: "", mystatus: '', staticGamedata: {}, showIf: false, showPage: false, showButton: false, cardDetail: null, supportTransfer: '', cardIf: false, contentType: 0, orderFlag: false, //判断是不是线上配送 }, copeCode(e) { let code = e.currentTarget.dataset.text tt.setClipboardData({ data: code, success: function () { tt.showToast({ title: '复制成功', icon: "none" }) } }) }, gokuaidi(e) { let nu = e.currentTarget.dataset.nu tt.navigateToMiniProgram({ appId: 'wx6885acbedba59c14', path: `pages/result/result?nu=${nu}&com=&querysource=third_xcx` }) }, setShow() { this.setData({ showFlag: true }) }, hieShow() { this.setData({ showFlag: false }) }, goDetail() { tt.navigateTo({ url: `/pages/coupon/detail/index?couponChannelId=${this.data.order.couponChannelId}`, success: (res) => { }, fail: (res) => { }, }); }, refund(){//退款 Http.post({ url:config.api.refund, data:{ orderId:this.data.order.id } }).then(res=>{ tt.navigateTo({ url: `/pages/refund/refund?id=${this.data.order.id}`, success: (res) => { }, fail: (res) => { }, }); }).catch(err=>{ tt.showToast({ title: err.message ? err.message : err.data, // 内容 icon: "none" }); }) }, goRefund(e) { let this_ = this if(this_.data.order.couponOrderStatus==0){ tt.showModal({ title: "申请退款", content: "提交申请退款", confirmText: "确定", success(res) { if (res.confirm) { this_.refund() console.log("confirm, continued"); } else if (res.cancel) { console.log("cancel, cold"); } else { // what happend? } }, fail(res) { console.log(`showModal调用失败`); }, }); }else if(this_.data.order.couponOrderStatus==3){//退款中 tt.navigateTo({ url: `/pages/refund/refund?id=${this.data.order.id}`, success: (res) => { }, fail: (res) => { }, }); } }, //刷新订单 updetail() { let that = this let url = config.api.orderDetail Http.get({ url: url, data: { orderId: this.data.orderId } }).then(res => { tt.hideLoading(); var createDate = util.formatTime(res.data.orders[0].createDate, "yyyy-MM-dd hh:mm:ss"); let tempData = res.data.orders[0] tempData.deliveryInfo = tempData.deliveryInfo ? JSON.parse(tempData.deliveryInfo) : "" tempData.itemGroup = tempData.itemGroup ? JSON.parse(tempData.itemGroup) : "" tempData.validStartDate = util.formatTime(tempData.validStartDate, "yyyy-MM-dd") tempData.validEndDate = util.formatTime(tempData.validEndDate, "yyyy-MM-dd") that.setData({ order: tempData, showPage: true, createDate: createDate, composeOrderType: tempData.composeOrderType, contentType: tempData.contentType ? tempData.contentType : 0, orderFlag: tempData.type == 11 ? true : false ,//判断是不是线上配送 }) if (tempData.couponOrderId) { //0未付款 1已支付 2已取消 3退款中 4已退款 that.setRq() // that.upStatus() let setInter = setInterval(() => { if (tempData.couponOrderStatus == 0) { Http.get({ url: config.api.getStatus, data: { couponOrderId: tempData.couponOrderId } }).then(res => { console.log(res); that.setData({ couponOrderStatus: res.data.CouponOrderStatus }); if (res.data.CouponOrderStatus == 1 || res.data.CouponOrderStatus == 3) { /** * 动态改变上一级页面的核销状态 */ // that.getStaticGame() //直接调用上一个页面的setData()方法,把数据存到上一个页面中去 clearInterval(that.data.setInter); clearInterval(that.data.templTiem); that.updetail() that.setData({ mystatus: res.data.CouponOrderStatus }); } }) .catch(err => { tt.showToast({ title: err.errMsg, icon: 'none', duration: 2000, mask: false }); }) } }, 2000); that.setData({ setInter: setInter }) } if(tempData.couponOrderStatus&&tempData.couponOrderStatus==1){//核销后 that.goIfEvaluate()//判断订单是否能评价 } }) .catch(error => { tt.hideLoading(); tt.showModal({ title: '提示', content: error.errMsg, showCancel: false }) }) }, //确认收货 verify() { Http.post({ url: config.api.verify, data: { couponOrderId: this.data.order.couponOrderId } }).then(res => { tt.showToast({ title: '签收成功', icon: "none" }) this.updetail() }).catch(err => { tt.showModal({ title: '提示', content: err.message ? err.message : err.data, showCancel: false }) }) }, phone: function (e) { let that = this; console.log(e); tt.makePhoneCall({ phoneNumber: e.currentTarget.dataset.merchantlinkphone }); }, /** * 跳转到门店列表的详情页面 */ gotoDetail(e) { tt.navigateTo({ url: `/pages/index/searchbar/detail/index?id=${e.currentTarget.dataset.id}` }) }, getUserInfo: function () { let that = this; // 获取用户信息 Http.get({ url: config.api.getScore, data: {} }) .then(res => { console.log(res) that.setData({ userName: res.data.nickName, avatarUrl: res.data.avatarUrl }) }) }, onShareAppMessage: function (res) { app.globalData.previewFlag = true if (res.from === 'button') { console.log(res, 3333333333333333333333) // 来自页面内转发按钮 let _this = this; return { title: _this.data.userName + '赠送您一张' + _this.data.order.title, path: '/pages/index/index?couponChannelId=' + this.data.order.couponChannelId + '&cuserId=' + this.data.order.cuserId + '&couponId=' + this.data.order.productId + '&coverImg=' + this.data.order.coverImg + '&userName=' + this.data.userName + '&avatarUrl=' + this.data.avatarUrl + '&couponOrderId=' + this.data.order.couponOrderId + '&updateDate=' + this.data.order.updateDate, imageUrl: this.data.order.coverImg, success: function (res) { // 转发成功 }, fail: function (res) { // 转发失败 } } } else { console.log(res, 444444444444444444) } }, createQrCode: function (url, canvasId, cavW, cavH) { //调用插件中的draw方法,绘制二维码图片 let that = this; QR.api.draw(url, canvasId, cavW, cavH, function (res) { that.setData({ tempFilePath: res }) }); }, setRq() { let _this = this _this.setData({ showhieRq: false, }) Http.get({//获取动态二维码 url: config.api.dynamicId, data: { couponOrderId: _this.data.order.couponOrderId } }).then(res => { console.log(res, "res") _this.setData({ dynamicRq: res.data.dynamicId, expiredSeconds: res.data.expiredSeconds }) let url = JSON.stringify({ END: "C", TYPE: "couponorder", ID: _this.data.dynamicRq }) if(res.data.expiredSeconds==0){ //倒计时为零直接显示券码 }else{ let inre = setInterval(() => { if (_this.data.expiredSeconds > 1) { _this.setData({ expiredSeconds: _this.data.expiredSeconds - 1 }) // console.log("有效", _this.data.expiredSeconds) } else { // console.log("无效", _this.data.expiredSeconds) clearInterval(_this.data.templTiem) _this.setData({ showhieRq: true }) } _this.setData({ templTiem: inre }) }, 1000) } _this.createQrCode(url, "qrcode", 350, 350); }).catch(err => { tt.showToast({ title: err.message, icon: 'none', duration: 2000, mask: false }); }) }, goPaySnapshoot(e) { let id = e.currentTarget.dataset.id; tt.navigateTo({ url: `/pages/paySnapshoot/paySnapshoot?id=${id}`, success: (res) => { }, fail: (res) => { }, }); }, powerDrawer: function (e) { let that = this; console.log(e) // couponOrderStatus // 0 未使用 // 1 已使用 // 2 已过期 // 3 已经退款 if (that.data.mystatus == "" || that.data.mystatus == undefined) { tt.navigateTo({ url: `/pages/orderquanma/index?quancode=${e.currentTarget.dataset.quancode }&title=${e.currentTarget.dataset.title}&subtitle=${e.currentTarget.dataset.subtitle }&remark=${e.currentTarget.dataset.remark}&couponorderstatus=${e.currentTarget.dataset.couponorderstatus}&validstatus=${e.currentTarget.dataset.validstatus} &contentType=${that.data.contentType}` }); } else { tt.navigateTo({ url: `/pages/orderquanma/index?quancode=${e.currentTarget.dataset.quancode }&title=${e.currentTarget.dataset.title}&subtitle=${e.currentTarget.dataset.subtitle }&remark=${e.currentTarget.dataset.remark}&couponorderstatus=${that.data.mystatus}&validstatus=${e.currentTarget.dataset.validstatus} &contentType=${that.data.contentType}` }); } }, gotogame: function () { let that = this; tt.redirectTo({ url: '/pages/game/index?url=' + that.data.staticGamedata.url + "&id=" + that.data.staticGamedata.id + "&gameId=" + that.data.staticGamedata.gameId, }) }, // 买完卡跳转到立即使用页面 gotoUse: function () { tt.navigateTo({ url: '/pages/cardorder/index/index' }) }, // 获取游戏 getStaticGame(token) { let _this = this; Http.get({ url: config.api.getGame, data: { triggleAction: 3 // 购买触发 } }).then(res => { if (res.data.id) { _this.setData({ showIf: true }) } _this.setData({ staticGamedata: res.data }) }) .catch(err => { console.log(err); }) }, goEvaluate(){ let _this = this tt.rateAwemeOrder({ orderId: _this.data.payOrderNo, success({ result }) { console.log(result); if (result) { tt.navigateBack({ delta: 1, success: (res) => { }, fail: (res) => { }, }); // 用户已经评价的逻辑 } else { // 用户没有评价的逻辑 } }, fail(err) { console.log(err); }, }); }, goIfEvaluate(){ let _this = this Http.get({ url:config.api.getchanId, data:{ id:_this.data.order.couponOrderId } }).then(res=>{ tt.canRateAwemeOrders({ orderIds: [res.data.payOrderNo], success({ result }) { console.log("result", result); _this.setData({ evaluateFlag:result[0], payOrderNo:res.data.payOrderNo }) }, fail(err) { console.log(err); }, }); }).catch(err=>{ tt.showToast({ title: err.message ? err.message : err.data, // 内容 icon: "none" }); }) }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.getSeUrl() this.setData({ mouldType: app.globalData.mouldType }) let that = this; // if (options.dingdan && options.dingdan == "order") { // } that.setData({ orderId: options.orderId, }); tt.hideShareMenu() if (options.cardIf) {//转赠 展示不需 that.setData({ cardIf: true }) } tt.showLoading({ title: "加载中" }); }, onShow: function () { let that = this; that.setData({ showButton: false }) that.updetail() }, getSeUrl(){//获取客服链接 const openId = tt.getStorageSync('openId'); Http.post({ url:config.api.getServiceUrl, data:{ appid: app.globalData.appId, openid: openId } }).then(res=>{ this.setData({ serviceUrl:res.data?res.data:'' }) if(res.data){ tt.setStorageSync('serviceData', res.data); } }) }, goWebView(){ let _this = this tt.navigateTo({ url: `/pages/serviceWebView/serviceWebView`, success: (res) => { }, fail: (res) => { }, }); }, /** * 去拼团 */ goToOrderGroup(orderId, orderGroupId, _this) { let that = this; // 支付成功 Http.post({ url: config.api.toOrderGroup, data: { id: orderGroupId, orderId, couponId: _this.data.order.productId } }) .then(res => { tt.redirectTo({ url: `/pages/spellDetail/index?orderId=${orderId}&couponId=${_this.data.order.productId}&orderGroupId=${res.data.orderGroupId}` }); }) .catch(err => { console.log(err); }) // return; }, /** * 发起支付 */ orderFunc(e) { var that = this; that.setData({ showButton: true }) tt.showLoading({ title: "加载中..." }); const orderId = "" + that.data.orderId; if (that.data.order.payment > 0) { // 支付金额不为0 Http.post({ url: config.api.payOrderCreate, data: { orderId: orderId, composeOrderType: that.data.composeOrderType } }).then(res => { var payOrderId = "" + res.data.outOrderNo; tt.hideLoading(); tt.pay({ service: 5, orderInfo: { order_id: res.data.orderId, order_token: res.data.token, }, success: res => { tt.showLoading({ title: '订单正在处理中...', }) if (res.code == 0) { setTimeout(function () { tt.hideLoading() }, 5000) that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that); // 支付成功 if (res.errMsg == "requestPayment:ok") { if (that.data.order.type == 100) { tt.setStorage({ key: 'couponNum2', data: "couponNum2" }) } else if (that.data.order.type != 5) { tt.setStorage({ key: 'couponNum', data: "couponNum" }) } } } else if (res.code === 1) { that.setData({ showButton: false }) tt.hideLoading(); tt.showToast({ title: '支付超时', // 内容 icon: "none" }); } else if (res.code === 2) { that.setData({ showButton: false }) tt.hideLoading(); tt.showToast({ title: '支付失败', // 内容 icon: "none" }); } else if (res.code === 3) { that.setData({ showButton: false }) tt.hideLoading(); tt.showToast({ title: '支付关闭', // 内容 icon: "none" }); } else if (res.code === 4) { that.setData({ showButton: false }) tt.hideLoading(); tt.showToast({ title: '支付取消', // 内容 icon: "none" }); } else if (res.code === 9) { that.setData({ showButton: false }) tt.hideLoading(); tt.showToast({ title: '订单状态开发者自行获取', // 内容 icon: "none" }); } }, fail: res => { that.setData({ showButton: false }) that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that); return; }, }); }).catch(err => { tt.hideLoading(); that.setData({ showButton: false }) tt.showModal({ title: "抱歉", content: err.message, showCancel: false }) }); } else { // 免费券 that.payOrderUpdate(orderId, "0", 1, '', 'free') // 支付成功 if (that.data.order.type == 100) { tt.setStorage({ key: 'couponNum2', data: "couponNum2" }) } else if (that.data.order.type != "5") { tt.setStorage({ key: 'couponNum', data: "couponNum" }) } tt.showToast({ title: "支付成功", duration: 2000, image: imgurl.success.url, }); } }, /** * 支付订单更新 */ payOrderUpdate: (orderId, payOrderId, status, reason, type, _this) => { // 支付成功 Http.post({ url: config.api.payOrderUpdate, data: { payOrderId: payOrderId, composeOrderId: orderId, status: status, reason: reason } }) .then(res => { tt.hideLoading(); _this.setData({ showButton: false }) if (!type && type != 'free') { tt.showToast({ title: "购买成功", duration: 2000, image: imgurl.success.url, mask: false, success: function () { tt.showLoading({ title: "加载中..." }); setTimeout(function () { tt.hideLoading(); }, 1600); setTimeout(() => { let url = "" if (_this.data.orderFlag) { tt.redirectTo({ url: `/pages/order/detail/index?orderId=${orderId}&dingdan=order` }); } else { tt.redirectTo({ url: `/pages/order/detail/index?orderId=${orderId}` }); } }, 1600); } }); } else if (type == 'free') { tt.redirectTo({ url: `/pages/order/detail/index?orderId=${orderId}` }); } }) .catch(err => { console.log(err) if (!type) { setTimeout(function () { _this.payOrderUpdate(orderId, payOrderId, status, reason, type, _this); }, 1500) } }); }, onUnload: function () { let that = this; clearInterval(that.data.setInter); clearInterval(that.data.templTiem); }, onHide: function () { let that = this; clearInterval(that.data.setInter); clearInterval(that.data.templTiem); }, });