// pages/user/order/sceneOrderInfo/index.js import commonApi from "../../../../utils/https/common" import userApi from "../../../../utils/https/user" import QRCode from '../../../../utils/weapp-qrcode.js' import util from '../../../../utils/util' let app = getApp(), timer Page({ /** * 页面的初始数据 */ data: { id: null, info: null, orderState: app.globalData.orderState, productState: app.globalData.productState, product_model: null, isRefund: false, feeInfoFlag: false, codeIndex: 0, codeImgs: [], minute: 0, second: 0, cardTypes: {}, cxr1: false, cxr1Text: '更多', sysm: false, sysmText: '更多', sysm2: false, sysm2Text: '更多', imgLen: [], ids: [], isPost: false, // 有没有邮寄产品 showProgressPopup: false, reversedProgressList: [] // 数据源 }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { this.setData({ id: options.id }) userApi.user_post("user/getCardTypeList").then(res => { let cardTypes = {}; res.data.map(item => { cardTypes[item.type] = item.title; }) this.setData({ cardTypes: cardTypes }) }) }, // 防止弹窗背景滚动 preventTouchMove() { return; }, // 关闭弹窗 closeProgressPopup() { this.setData({ showProgressPopup: false }); }, // 打开弹窗 openProgressPopup() { this.setData({ showProgressPopup: true }); }, copy: function(e) { let code = e.currentTarget.dataset.num; wx.setClipboardData({ data: code, success: function(res) { wx.showToast({ title: '复制成功', icon: 'success' }) } }) }, getCodeImg: function() { let that = this, sys = wx.getSystemInfoSync(), radio = sys.screenWidth / 750, qrcode = this.data.info.order_product_list[0].qrcode, codeImgs = [], codeId = 0, arr = []; this.data.info.order_product_list.forEach(qrcode => { qrcode.qrcode.map((item, index) => { console.log(qrcode.is_force_display_code); item.is_force_display_code = qrcode.is_force_display_code console.log(item.is_force_display_code); arr.push(index) this.setData({ imgLen: arr }) if (item.use_url && item.use_code) { codeImgs.push({ img: item.use_url, code: item.use_code, text: item.use_code_display_text, state: item.stateText, is_force_display_code: item.is_force_display_code, flag: item.state }); // if(codeImgs.length==qrcode.qrcode.length){ // that.setData({ // codeImgs:codeImgs // }) // } that.setData({ codeImgs: codeImgs }) } else { console.log(item); new QRCode('damocode' + codeId, { text: item.use_code, width: 300 * radio, height: 300 * radio, padding: 10, // 生成二维码四周自动留边宽度,不传入默认为0 correctLevel: QRCode.CorrectLevel.H, // 二维码可辨识度 callback: (res) => { console.log(res); codeImgs.push({ img: res.path, code: item.use_code, text: item.use_code_display_text, state: item.stateText, is_force_display_code: item .is_force_display_code, flag: item.state }); that.setData({ codeImgs: codeImgs }) } }) console.log(this.data.codeImgs); codeId = codeId + 1 } }) }) console.log(this.data.imgLen); console.log(this.data.codeImgs); }, prevCodeImg: function() { let qrcode = this.data.codeImgs, codeIndex = this.data.codeIndex; console.log(codeIndex) if (codeIndex == 0) { this.setData({ codeIndex: qrcode.length - 1 }) } else { this.setData({ codeIndex: codeIndex - 1 }) } console.log(codeIndex) }, nextCodeImg: function() { console.log(this.data.codeImgs); let qrcode = this.data.codeImgs, codeIndex = this.data.codeIndex; codeIndex = codeIndex + 1; if (codeIndex == qrcode.length) { codeIndex = 0; } this.setData({ codeIndex: codeIndex }) }, showFeeInfo: function() { this.setData({ feeInfoFlag: !this.data.feeInfoFlag }) }, close: function() { let _this = this, info = _this.data.info; wx.showModal({ title: '提示', content: "确定取消吗", success: function(res) { if (res.confirm) { commonApi.user_post("order/close", { order_id: info.order_id }).then(res => { if (res.code == 1) { wx.showToast({ title: '取消成功', icon: 'success' }) info.state = "CLOSED"; info.order_product_list.map(item => { item.state = 'CLOSED' }) _this.setData({ info: info }) } }) } } }) }, refund: function() { let _this = this, info = _this.data.info; wx.showModal({ title: '提示', content: "确定取消吗", success: function(res) { if (res.confirm) { commonApi.user_post("order/refund", { order_id: info.order_id }).then(res => { if (res.code == 1) { wx.showToast({ title: '取消成功', icon: 'success' }) info.state = "WAIT_REFUND"; info.order_product_list.map(item => { item.state = 'WAIT_REFUND' }) _this.setData({ info: info }) } }) } } }) }, daojishi: function(time) { let now = new Date().getTime(); if (now > time) { clearTimeout(timer); timer = null; util.back(); return; } let times = time - now, minute = Math.floor(times / (60 * 1000)), second = Math.round((times - minute * 60 * 1000) / 1000); this.setData({ minute: util.formatNumber(minute), second: util.formatNumber(second) }) timer = setTimeout(() => { this.daojishi(time); }, 1000) }, // 查看苏康码 gotoSku: function() { commonApi.user_post("pbservice/Ztfw/sukangCode").then(res => { console.log(res) app.globalData.weburl = res.data.url; wx.navigateTo({ url: '/pages/pbService/web/index' }) return; }) }, goDetail(e) { console.log(e.currentTarget.dataset); let item = e.currentTarget.dataset.set // 组合产品 跳线路 if (item.compose_product_id) { wx.navigateTo({ url: '/pages/info/roadInfo/index?id=' + item.compose_product_id }) return } if (item.is_package == 1) { wx.navigateTo({ url: "/pages/info/postProductInfo/index?id=" + item.product_id }) return } else if (item.is_package == 2) { wx.navigateTo({ url: '/subPackages/goods/oneCardTour/info/index?id=' + item.scene_id }); return } else if (item.is_package == 3) { wx.navigateTo({ url: '/subPackages/goods/memberCard/index?id=' + item.product_id }); return } if (item.product_model == 'ticket') { wx.navigateTo({ url: "/pages/info/sceneProductInfo/index?id=" + item.scene_id }) } else if (item.product_model == 'post') { wx.navigateTo({ url: "/pages/info/postProductInfo/index?id=" + item.product_id }) } }, showMsg(e) { console.log(e.currentTarget.dataset); let msg = e.currentTarget.dataset.msg switch (msg) { case 'cxr1': this.setData({ cxr1: !this.data.cxr1, cxr1Text: this.data.cxr1 ? '更多' : '收起', }) break; case 'sysm1': this.setData({ sysm: !this.data.sysm, sysmText: this.data.sysm ? '更多' : '收起', }) break; case 'sysm2': this.setData({ sysm2: !this.data.sysm2, sysm2Text: this.data.sysm2 ? '更多' : '收起', }) break; default: break; } }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function() { }, /** * 生命周期函数--监听页面显示 */ onShow: function() { commonApi.user_post("order/query", { order_id: this.data.id }).then(res => { if (res.data.create_time && res.data.auto_close_time && res.data.state == 'UNPAID') { let time = (new Date(res.data.create_time.replace(/-/g, '/')).getTime() + Number(res .data.auto_close_time) * 1000); this.daojishi(time); } let proId = [] res.data.order_product_list.forEach(item => { proId.push(item.product_id) }) let state = "" res.data.order_product_list.map(order => { order.qrcode.map(item => { item.stateText = app.globalData.codeState[item.state]; }) order.contacts_info = order.contacts_info ? JSON.parse(order .contacts_info) : []; state = state + order.state; }) let reversedList = [...res.data.reservation_log].reverse(); this.setData({ isRefund: state.indexOf("REFUND") != -1, info: res.data, product_model: "ticket" || res.data.order_product_list[0].product_model, ids: proId.join(","), isPost: res.data.order_product_list.some(x => x.product_model == 'post'), reversedProgressList: reversedList }) console.log(res.data); // debugger console.log('ids', this.data.ids); this.getCodeImg() // 获取行程规划 let that = this; wx.getLocation({ type: 'gcj02', success: function(r) { let ajaxes = []; res.data.order_product_list.map(item => { ajaxes.push(commonApi.user_post("order/tripplan", { point_type: "gd", child_order_id: item.child_order_id, lon: r.longitude, lat: r.latitude })) }) Promise.all(ajaxes).then(r => { console.log(r) let orderInfo = that.data.info; r.map((item, index) => { if (item && item.data && item.data.url) { orderInfo.order_product_list[index] .btnUrl = item.data.url; } }) that.setData({ info: orderInfo }) }) } }) }) }, // 行程规划 leadRoad: function(e) { let url = e.currentTarget.dataset.url; app.globalData.weburl = url; wx.navigateTo({ url: '/pages/pbService/web/index' }) }, expandPost: function(e) { let index = e.currentTarget.dataset.index let productList = this.data.info.order_product_list let item = productList[index] item.showMore = !item.showMore this.setData({ info: this.data.info }) }, expandMsg: function(e) { let index = e.currentTarget.dataset.index let productList = this.data.info.order_product_list let item = productList[index] item.showMsg = !item.showMsg this.setData({ info: this.data.info }) }, /** * 生命周期函数--监听页面隐藏 */ onHide: function() { clearTimeout(timer) timer = null }, /** * 生命周期函数--监听页面卸载 */ onUnload: function() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function() { } })