You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

343 lines
8.7 KiB

5 years ago
// 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,
4 years ago
cardTypes:{},
cxr1:false,
cxr1Text:'更多',
sysm:false,
sysmText:'更多',
sysm2:false,
3 years ago
sysm2Text:'更多',
imgLen:[]
5 years ago
},
/**
* 生命周期函数--监听页面加载
*/
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
})
})
},
getCodeImg:function(){
3 years ago
let that = this,sys =wx.getSystemInfoSync(),radio = sys.screenWidth / 750,qrcode=this.data.info.order_product_list[0].qrcode,codeImgs=[],codeId=0,arr = [];
3 years ago
this.data.info.order_product_list.forEach(qrcode=>{
3 years ago
qrcode.qrcode.map((item,index)=>{
arr.push(index)
this.setData({
imgLen:arr
})
3 years ago
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});
// if(codeImgs.length==qrcode.qrcode.length){
// that.setData({
// codeImgs:codeImgs
// })
// }
that.setData({
codeImgs:codeImgs
})
5 years ago
}
3 years ago
else {
3 years ago
new QRCode('damocode'+codeId,{
3 years ago
text: item.use_code,
width: 300 * radio,
height: 300 * radio,
3 years ago
padding:10, // 生成二维码四周自动留边宽度,不传入默认为0
correctLevel: QRCode.CorrectLevel.H, // 二维码可辨识度
3 years ago
callback: (res) => {
3 years ago
console.log(res);
3 years ago
codeImgs.push({img:res.path,code:item.use_code,text:item.use_code_display_text,state:item.stateText});
that.setData({
codeImgs:codeImgs
})
5 years ago
}
3 years ago
})
3 years ago
codeId = codeId + 1
3 years ago
}
})
})
5 years ago
},
prevCodeImg:function(){
let qrcode=this.data.info.order_product_list[0].qrcode,codeIndex = this.data.codeIndex;
if(codeIndex==0){
this.setData({
codeIndex:qrcode.length-1
})
}
else {
this.setData({
codeIndex:codeIndex-1
})
}
},
nextCodeImg:function(){
3 years ago
console.log(this.data.codeImgs);
let qrcode=this.data.codeImgs,codeIndex = this.data.codeIndex;
5 years ago
codeIndex = codeIndex + 1;
if(codeIndex==qrcode.length){
codeIndex = 0;
}
this.setData({
codeIndex:codeIndex
3 years ago
5 years ago
})
},
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;
})
},
4 years ago
goDetail(e){
console.log(e.currentTarget.dataset);
let item = e.currentTarget.dataset.set
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?'更多':'收起',
5 years ago
4 years ago
})
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;
}
},
5 years ago
/**
* 生命周期函数--监听页面初次渲染完成
*/
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 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;
})
this.setData({
isRefund:state.indexOf("REFUND")!=-1,
info:res.data,
4 years ago
product_model:"ticket"||res.data.order_product_list[0].product_model
5 years ago
})
this.getCodeImg()
5 years ago
// 获取行程规划
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'
5 years ago
})
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
clearTimeout(timer)
timer = null
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
}
})