const util = require('../../../utils/util.js'); const app = getApp(); Page({ data: { showOrderNo: false, showGoodsRecom: false, showAddress: false, //地址 imgPath: util.config.imgPath, imgUrl: util.config.imgUrl, query: { orderid: '', otype: 0, presellStatus: 0 }, changeMeal_oid: '', info: {}, percent: 0, loadingSuc: true, npsOptons: {}, npsStatus: false, //nps组件是否显示 isGet: true, prevpagePath: '', iconView: false, showChat: false, showSku: false, //换场次弹窗 invitefbtn: true, //是否显示邀请海报按钮 refundShow: false, type: 0, codeShow: false, orderInfo: {}, oid: "", atype: 0, moreIsShow: false, //更多图片是否显示 selectIsShow: false, //更多下拉框是否显示 }, // 预付信息 orderStatus 1-待付款 2-已付款 3-退款/售后 4-待付尾款 5-订金失效 onLoad(query) { console.log(query) this.setData({ query }); let pages = getCurrentPages(); let prevpage = pages[pages.length - 2]; this.setData({ prevpagePath: prevpage.route }) }, onUnload() { //由付款页跳转至当前页面的,通过左上角返回至活动详情页 if (this.data.prevpagePath == 'pages/product/buy/index') { let url = ''; if (this.data.info.atype == 0) { url = `/pages/product/activity/index?aid=${this.data.info.aid}`; } else { url = `/pages/product/goods/detail?aid=${this.data.info.aid}`; } wx.reLaunch({ url: url }) } }, onShow() { if (this.data.isGet) { this.getData(); } }, showAddressPopup() { this.setData({ showOrderNo: true }) }, copyAddress(e) { wx.setClipboardData({ data: e.currentTarget.dataset.text, success: function (res) { wx.getClipboardData({ success: function (res) { wx.showToast({ title: '复制成功', }) } }) } }) }, closeOrderNo() { this.setData({ showOrderNo: false }) }, subOrderNo(e) { let data = e.detail, that = this; util.ajax({ func: "v2/order/refund/express/save", data: data, method: 'POST', }, function (res) { if (res.code == 0) { util.showTips(res.reason); setTimeout(() => { that.closeOrderNo() // that.getData(); }, 500); } else { util.showTips(res.reason); } }) }, // 规则弹框 showFund() { // if(this.data.orderInfo.refundRule==1){ // this.data.type=this.data.orderInfo.refundRule // } this.setData({ refundShow: true, type: this.data.orderInfo.refundRule, // type:3, showSku: false }) }, closeRefund() { this.setData({ refundShow: false }) }, isOK() { this.setData({ codeShow: false }) }, showCode() { this.setData({ codeShow: true, showSku: false }) }, // 换场次 confirmChange(e) { console.log(this.data.orderInfo); let that = this util.ajax({ func: "v2/order/getRefundPriceByOid", data: { "oid": that.data.oid } }, function (res) { console.log(res); if (res.code == 0) { console.log("confirmChange" + "执行了" + e); let data = {}; data.newAlipayId = e.detail ? e.detail : ''; data.oid = that.data.changeMeal_oid; data.password = that.data.info.subOrders[0].password data.priceInfo = that.data.orderInfo console.log(data); util.ajax({ func: "v2/order/change/audit", data, method: 'POST', load: false }, function (res) { if (res.code == 0) { util.showTips('已发起申请,请耐心等待宝大大审核~'); that.setData({ showSku: false, changeMeal_oid: '' }) that.getData(); } else { util.showTips(res.reason); } }) } else if (res.code == -10) { util.showTips('不满足更换场次要求,请联系宝大大处理') } else { util.showTips(res.reason); } }) }, // 活动评价/修改评价 actEvaluate(e) { let val = e.currentTarget.dataset.index; wx.navigateTo({ url: '/pages/order/comment/comment?orderid=' + this.data.info.orderid + '&otype=' + this.data.query.otype + (val == 1 ? '&act=edit' : ''), }) }, // 修改追评/追加评价 editEvaluate(e) { wx.navigateTo({ url: '/pages/order/addComment/addComment?orderid=' + this.data.info.orderid + '&otype=' + this.data.query.otype + '&act=' + (this.data.info.comment.additional == 1 ? 'edit' : ''), }) }, // 跳转首页 jumpPage() { wx.reLaunch({ url: '/pages/home/index', }) }, // 点击联系客服弹窗 showfixedChat() { this.setData({ showChat: true }) }, // 修改订单信息 editOrderDetail() { if ( //和修改信息按钮同样判断逻辑 this.data.info.atype != '1' && this.data.info.orderStatus == 2 && this.data.info.detailStopUpdate != 1 && (this.data.info.waitComment != 2 || (this.data.info.comment.additional == 1 && this.data.info.comment.modified == 1)) ) { wx.navigateTo({ url: '/pages/order/editOrderDetail/index?orderId=' + this.data.info.orderid, }) } }, // 点击更多 showMore() { this.setData({ moreIsShow: !this.data.moreIsShow, selectIsShow: !this.data.selectIsShow }) // console.log(this.data.selectIsShow); // this.setData({showChat:true}) }, // 开票页面 invoicing() { console.log(this.data.info); if (!this.data.info.verify) { util.showTips('需验票后3天才可申请开票') } else { wx.navigateTo({ url: '/pages/order/invoicing/index', }) } }, // 客服 customer() { this.setData({ showChat: true }) }, // 修改邮寄地址 chooseAddress() { this.setData({ showAddress: true }) }, // 提交地址 submitAddress(e) { let that = this, data = e.detail, info = that.data.info; this.setData({ 'info.mailAddress': data.name + ' ' + data.mobile + ' ' + data.provincial + ' ' + data.address }); util.ajax({ func: "v2/order/mail/address/save", data: { 'orderid': info.orderid, 'mailAddress': info.mailAddress }, method: 'POST' }, function (res) { console.log(res); if (res.code == 0) { util.showTips(res.reason); } else { util.showTips(res.reason); } }) }, // 关闭地址弹窗 closeAddress(e) { this.setData({ showAddress: false }) }, // 默认评价弹窗 nps() { let that = this, newDate = util.getNowFormatDate('yyyy-MM-dd hh:mm:ss'); let npsData = wx.getStorageSync("nps") || { num: 0, oldDate: newDate, timesSec: newDate }; if (((npsData.num < util.config.npsNum) && util.datedifference(newDate, npsData.timesSec, true) > 3600) || util.isObjEmpty(npsData)) { util.ajax({ func: "v2/order/reviews/one", load: false }, function (res) { if (res.code == 0 && !util.isObjEmpty(res.data)) { that.setData({ npsOptons: res.data, npsStatus: true }); npsData.num += 1; npsData.timesSec = newDate; wx.setStorageSync("nps", npsData) } }) } }, close(e) { //关闭nps this.setData({ npsStatus: false }); this.getData(); }, getData(val) { console.log(val); let that = this; let data = {}; if (!util.isEmpty(that.data.query.orderid)) { data.orderid = that.data.query.orderid; } if (!util.isEmpty((val || that.data.query.presellStatus))) { data.presellStatus = val || that.data.query.presellStatus } if (!util.isEmpty(that.data.query.otype)) { data.otype = that.data.query.otype } console.log(data); util.ajax({ func: "v2/order/detail", data, load: false }, function (res) { console.log(res); if (res.code == 0) { that.setData({ atype: res.data.atype }) let datas = res.data; // datas.totalFeeStr = datas.totalFee; datas.timeContrast = util.timeContrast(datas.stopBuy); // if (datas.mdiscount > 0) datas.totalFeeStr += " - " + datas.mdiscount + "(会员折扣)"; // if (datas.ldiscount > 0) datas.totalFeeStr += " - " + datas.ldiscount + "(早鸟)"; // if (datas.voucher > 0) datas.totalFeeStr += " - " + datas.voucher + "(现金券)"; // if (datas.bonus > 0) datas.totalFeeStr += " - " + datas.bonus + "(红包)"; // if (datas.coin > 0) datas.totalFeeStr += " - " + datas.coin + "(钱包)"; // if (datas.accountBalance > 0) datas.totalFeeStr += " - " + datas.accountBalance + "(账户余额)"; // if (datas.mdiscount > 0 || datas.voucher > 0 || datas.bonus > 0 || datas.ldiscount > 0 || datas.coin > 0 || datas.accountBalance > 0) { // datas.totalFeeStr += " = " + datas.price + "元"; // } else { // datas.totalFeeStr = datas.totalFee + "元"; // } if (!util.isEmpty(datas.mailAddress)) { var info = datas.mailAddress.split(" "); datas.mail = {}; datas.mail.name = info[0] || ""; datas.mail.postMobile = info[1] || ""; datas.mail.province = info[2] || ""; datas.mail.address = datas.mail.province.replace("/", "") + info[3]; } if (datas.comment) { datas.comment.tag = datas.comment.content.match(/#([^#]+)#/g) ? datas.comment.content.match(/#([^#]+)#/g).join("") : ''; datas.comment.content = datas.comment.content.replace(/#([^#]+)#/g, "").replace(//g, '\n'); if (datas.comment.additionalComment.content) { datas.comment.additionalComment.content = datas.comment.additionalComment.content.replace(//g, '\n') } } that.nps(); if (datas.saleTime && datas.presellPaymentDeadline) { datas.startTime = util.formatDate(util.formatUnixtimestamp(datas.saleTime), 'MM月dd日 hh:mm', false); datas.endTime = util.formatDate(util.formatUnixtimestamp(datas.presellPaymentDeadline), 'MM月dd日 hh:mm', false); } let num = 0, length = (datas.groupinfo.discount && !util.isEmpty(datas.groupinfo.discount.users)) ? datas.groupinfo.discount.users.length : 0; if (length > 0) { datas.groupinfo.discount.users.forEach(el => { num = el.status == 4 ? num++ : num; if (el.status == 4) { num++; } that.setData({ iconView: num == 0 ? false : true }); }); } that.setData({ info: datas }); console.log(that.data.info); that.getGoodsRecommend() if (datas.groupinfo.gstatus == 0 && datas.groupinfo.discount && datas.groupinfo.discount.status == 0 && datas.groupinfo.discount.deadline > 0) { that.data.info.groupinfo.discount.deadline = that.data.info.groupinfo.discount.deadline - new Date().getTime(); that.updateTime(); } } else util.showTips(res.reason); }); }, getGoodsRecommend() { let that = this; util.getGoodsRecommend(this.data.info.aid).then(res => { that.setData({ showGoodsRecom: res }) }) }, closeSku() { this.setData({ showSku: false, changeMeal_oid: '' }); }, // 获取订单信息 OrderInfo(oid) { // console.log(this.data.oid); let that = this util.ajax({ func: "v2/order/getRefundPriceByOid", data: { "oid": oid } }, function (res) { console.log(res); if (res.code == 0) { that.setData({ orderInfo: res.data, showSku: true, changeMeal_oid: oid }) } else if (res.code == -10) { util.showTips('不满足更换场次要求,请联系宝大大处理'); that.setData({ showSku: false, changeMeal_oid: oid }); } else { util.showTips(res.reason); that.setData({ showSku: false, changeMeal_oid: oid }); } }) }, // 换场次 changeMeals(e) { let status = e.currentTarget.dataset.status, oid = e.currentTarget.dataset.oid; if (status == 1) { this.setData({ showSku: false }); util.showTips('已提交申请,请耐心等待宝大大审核~'); return false; } else { this.setData({ oid: e.currentTarget.dataset.oid }) this.OrderInfo(e.currentTarget.dataset.oid) } // this.setData({showSku:true,changeMeal_oid:oid}); }, cancelOrder(e) { let that = this, val = e.target.dataset.presellstatus; util.ajax({ func: "order/cancel", data: { orderid: that.data.info.orderid } }, function (res) { if (res.code == 0) { if (val != 2) { if (that.data.prevpagePath == 'pages/product/buy/index') { wx.reLaunch({ url: '/pages/product/activity/index?aid=' + that.data.info.aid }) } else { wx.navigateBack(); } } else { that.getData(1) } } else { utils.showTips(res.reason); } }) }, // 跳转至表单详情页(支付尾款) jumpBalancePayment(e) { let data = e.currentTarget.dataset; wx.navigateTo({ url: '/pages/product/balancePayment/balancePayment?aid=' + data.aid + '&otype=' + data.otype + '&orderid=' + data.orderid + '&presellstatus=' + data.presellstatus + '&military=' + data.military + '&campSex=' + data.campSex, }) }, previewImage(e) { let index = e.currentTarget.dataset.index, id = e.currentTarget.dataset.id, comments = [], datas = this.data.info; if (id == 0) { //评论 comments = datas.comment.images; } else { //追加评论 comments = datas.comment.additionalComment.images; } wx.previewImage({ current: comments[index], // 当前显示图片的http链接 urls: comments // 需要预览的图片http链接列表 }) }, toDetail() { let url = ''; if (this.data.info.atype == 0) { url = `/pages/product/activity/index?aid=${this.data.info.aid}`; } else { url = `/pages/product/goods/detail?aid=${this.data.info.aid}`; } wx.navigateTo({ url: url, }) }, goPay() { let that = this, btype = 0; util.WXPay({ orderid: this.data.info.orderid, btype: that.data.query.presellStatus == 2 ? 0 : that.data.query.presellStatus }, this.data.info.aid, this.data.info.title, ).then(function () { that.data.query.otype = 2; that.setData({ query: that.data.query }); that.getData(); }, function (msg) { utils.showTips(msg); }) }, trip(e) { let datas = this.data.info wx.reportAnalytics('click_news', { aid: datas.aid, title: datas.title, }); wx.navigateTo({ url: '/pages/order/trip/trip?orderid=' + datas.orderid + '&refundpwd=' + e.currentTarget.dataset.refundpwd }) }, scheduling(e) { let oid = e.currentTarget.dataset.oid, optionId = e.currentTarget.dataset.optionid; wx.navigateTo({ url: '/pages/order/scheduling/scheduling?oid=' + oid + '&optionId=' + optionId, }) }, refund(e) { console.log(e); let index = e.currentTarget.dataset.index let datas = this.data.info, value = e.currentTarget.dataset; console.log(value); console.log(this.data.info); let info = this.data.info let that = this // console.log(that.data.info.subOrders[index].oid); // v2/order/getRefundPriceByOid if (that.data.atype != "1") { util.ajax({ func: "v2/order/getRefundPriceByOid", data: { oid: that.data.info.subOrders[index].oid, } }, function (res) { console.log(res); if (res.code == 0) { wx.navigateTo({ url: '/pages/order/refund/refund?orderid=' + datas.orderid + (value.password ? '&refundpwd=' + value.password : '') + '&refundStatus=' + value.status + (datas.groupinfo && datas.groupinfo.groupid ? ('&groupid=' + datas.groupinfo.groupid) : '') + '&index=' + value.index + '&oid=' + that.data.info.subOrders[index].oid }) } else { util.showTips(res.reason); } }) } else { wx.navigateTo({ url: '/pages/order/Copyrefund/Copyrefund?orderid=' + datas.orderid + (value.password ? '&refundpwd=' + value.password : '') + '&refundStatus=' + value.status + (datas.groupinfo && datas.groupinfo.groupid ? ('&groupid=' + datas.groupinfo.groupid) : '') + '&index=' + value.index + "&atype=" + that.data.atype }) } wx.reportAnalytics('order_refund', { aid: datas.aid, title: datas.title, }); }, cancelRefund(e) { let that = this; wx.showModal({ title: '提示', content: '确定取消退款', success: function (res) { if (res.confirm) { wx.reportAnalytics('cancel_refund', { aid: that.data.info.aid, title: that.data.info.title, }); util.ajax({ func: "order/cancel_refund", data: { orderid: that.data.info.orderid, password: e.currentTarget.dataset.password || "" } }, function (res) { if (res.code == 0) { if (res.data.count <= 0) { wx.navigateBack(); } else { that.getData(); } } else { util.showTips(res.reason); } }) } } }) }, errorImg() { this.data.info.logo = "/images/noimg.png"; this.setData({ info: this.data.info }); }, lookContract(e) { let datas = this.data.info, that = this; let type = e.currentTarget.dataset.type console.log(type); wx.reportAnalytics('look_contract', { aid: datas.aid, title: datas.title, }); const downloadTask = wx.downloadFile({ url: e.currentTarget.dataset.url, success: function (res) { console.log(res) if (res.statusCode === 200) { var filePath = res.tempFilePath if (type == "电子合同") { wx.openDocument({ filePath: filePath, fileType: 'pdf', }) } else if (type == "行程单") { wx.openDocument({ filePath: filePath, fileType: 'docx', }) } } else { that.setData({ loadingSuc: false }); } }, fail: function (res) { that.setData({ loadingSuc: false }); util.showTips('合同链接失效,请联系宝大大处理。'); } }) downloadTask.onProgressUpdate((res) => { that.setData({ percent: res.progress }); }) }, layer() { this.setData({ percent: 0 }) }, qrcode(e) { let data = e.currentTarget.dataset; if (data.status == 1) { wx.navigateTo({ url: '/pages/order/qrcode/index?password=' + data.password, }); } }, updateTime() { let self = this, data = this.data.info, lag = Math.floor(data.groupinfo.discount.deadline / 1000); data.updateTime = {}; data.updateTime.second = Math.floor(lag % 60); data.updateTime.minite = Math.floor((lag / 60) % 60); data.updateTime.hour = Math.floor(lag / 3600); data.updateTime.day = Math.floor((lag / 3600) / 24); data.updateTime.hour = isTimeLeng(data.updateTime.hour); data.updateTime.minite = isTimeLeng(data.updateTime.minite); data.updateTime.second = isTimeLeng(data.updateTime.second); data.groupinfo.discount.deadline = data.groupinfo.discount.deadline - 1000; self.setData({ info: data }); clearTimeout(updateTimer); let updateTimer = setTimeout(function () { self.updateTime(); }, 1000); function isTimeLeng(val) { var s = val.toString(); return s.length == 1 ? "0" + val : val; } }, // 拼团邀请 inviteGroup(e) { this.setData({ show: true, invitefbtn: e.currentTarget.dataset.invitefbtn == '0' ? true : false }) }, onShareAppMessage(res) { let datas = this.data.info, article = ''; let path = ''; if (res.from === 'button') { let str = []; str.push('aid=' + datas.aid) str.push('orderid=' + datas.orderid) str.push('invite=' + app.globalData.userInfo.code) str.push('sharesid=' + datas.sid) str.push('sharepid=' + datas.pid) str.push('sharer=' + app.globalData.userInfo.nickname) if (!util.isEmpty(datas.groupinfo.groupid) && datas.groupinfo.groupid != 'null' && datas.groupinfo.groupid != 'undefined' && datas.groupinfo.groupbook == 1 && datas.subOrders[0].status != 15) { str.push('groupid=' + datas.groupinfo.groupid) } path = '/pages/product/activity/index?' + str.join('&'); wx.reportAnalytics('order_share', { aid: datas.aid, title: datas.title, }); } else { path = '/pages/home/index' } if (!util.isEmpty(datas.sid) && !util.isEmpty(datas.pid) && util.isEmpty(datas.groupinfo.groupid)) { article = app.globalData.userInfo.nickname + '已报名并邀请你一起参与' + datas.title } else { article = (datas.groupbook != -1 ? '约吗?快来和我家孩子一起拼团挑战' : '') + datas.title; } return { title: article, path: path, imageUrl: '../images/share.png' } } })