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.

418 lines
11 KiB

5 years ago
// pages/user/order/sceneOrderInfo/index.js
import commonApi from "../../../../utils/https/common"
import QRCode from '../../../../utils/weapp-qrcode.js'
import util from "../../../../utils/util"
let app = getApp(),timer;
Page({
/**
* 页面的初始数据
*/
data: {
info:null,
orderState:app.globalData.orderState,
5 years ago
productState:app.globalData.productState,
5 years ago
product_model:null,
isRefund:false,
feeInfoFlag:false,
codeIndex:0,
codeImgs:[],
minute:"",
second:"",
id:null,
pay_methods:app.globalData.pay_methods,
tjList:[],
2 years ago
showLoading:true,
ids:[]
5 years ago
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
id:options.id
})
commonApi._post("product/get_product_by_type", {
offset: 0,
limit: 6,
rand: true,
type:"venue,post,line,ticket"
}).then(res => {
this.setData({
showLoading:false
})
try {
this.setData({
tjList: res.data.list
})
} catch (error) {
console.log(error);
}
})
5 years ago
},
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";
3 years ago
info.state_text = "已关闭";
5 years ago
info.order_product_list.map(item=>{
item.state='CLOSED'
3 years ago
item.state_text='已关闭'
5 years ago
})
_this.setData({
info:info
})
}
})
}
}
})
},
copy:function(e){
wx.setClipboardData({
data: e.currentTarget.dataset.num,
success: function (res) {
wx.showToast({
title: '复制成功',
icon:'success'
})
}
})
},
getCodeImg:function(){
let code = "111";
let that = this,sys =wx.getSystemInfoSync(),radio = sys.screenWidth / 750,qrcode=this.data.info.order_product_list[0].qrcode,codeImgs=[];
qrcode.map((item,index)=>{
new QRCode('damocode'+index,{
text: item.use_code,
width: 300 * radio,
height: 300 * radio,
padding: 12, // 生成二维码四周自动留边宽度,不传入默认为0
correctLevel: QRCode.CorrectLevel.L, // 二维码可辨识度
callback: (res) => {
codeImgs.push(res.path);
if(codeImgs.length==qrcode.length){
that.setData({
codeImgs:codeImgs
})
}
console.log(res)
}
})
})
},
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(){
let qrcode=this.data.info.order_product_list[0].qrcode,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
})
},
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
})
}
})
}
}
})
},
// 查看苏康码
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;
})
},
gotoComment:function(e){
let id = e.currentTarget.dataset.id;
wx.navigateTo({
url: '/pages/order/comment/index?id='+id,
})
},
9 months ago
goDetail(e){
console.log(e.currentTarget.dataset);
let item = e.currentTarget.dataset.set
7 months ago
if (item.compose_product_id) {
wx.navigateTo({
url: '/pages/info/roadInfo/index?id='+item.compose_product_id
})
return
}
9 months ago
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
}
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
})
}
},
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
})
},
5 years ago
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
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)
},
// 确认收货
toConfirmPost() {
let _this =this;
wx.showModal({
title:'提示',
content:"确定收货吗",
success:function(res){
if(res.confirm){
commonApi.user_post("order/confirm_post",{
order_id:_this.data.info.order_id
}).then(res=>{
wx.showToast({
title: '操作成功',
icon:'success'
})
_this.getInfo()
})
}
}
})
},
getInfo () {
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.stateNums = {}
res.data.order_product_list.map(order=>{
if(res.data.stateNums[order.state]){
res.data.stateNums[order.state]++;
}
else {
res.data.stateNums[order.state] = 1;
}
order.consignee_info = order.consignee_info?JSON.parse(order.consignee_info):null;
state = state + order.state;
order.contacts_info = order.contacts_info?JSON.parse(order.contacts_info):[]
})
this.setData({
isRefund:state.indexOf("REFUND")!=-1,
info:res.data,
product_model:res.data.order_product_list[0].product_model,
ids: proId.join(",")
})
this.getCodeImg()
})
},
gotoDetail: function (e) {
let item = e.currentTarget.dataset.item;
util.pagePoint({
event: 'recommend_click',
param: {
id: item.id,
type: item.type
}
}, 1)
if (item.type == 'travels') {
// 游记做特殊处理 其他都按照原来的来
wx.navigateTo({
url: '/pages/info/strategyInfo/index?id=' + item.s_id,
})
} else {
util.gotoDetail(item);
}
},
5 years ago
/**
* 生命周期函数--监听页面显示
*/
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);
}
2 years ago
let proId = []
res.data.order_product_list.forEach(item => {
proId.push(item.product_id)
})
5 years ago
let state = "";
res.data.stateNums = {}
res.data.order_product_list.map(order=>{
if(res.data.stateNums[order.state]){
res.data.stateNums[order.state]++;
}
else {
res.data.stateNums[order.state] = 1;
}
order.consignee_info = order.consignee_info?JSON.parse(order.consignee_info):null;
state = state + order.state;
order.contacts_info = order.contacts_info?JSON.parse(order.contacts_info):[]
})
9 months ago
// 2025-7-21能否确认收货
res.data.is_all_confirm = true;
if (res.data.state=='PAID' && res.data.stateNums.WAIT_DELIVERY==res.data.order_product_list.length) {
res.data.order_product_list.forEach(v=>{
if (v.shipped_batch_count < v.batch_count ) {
res.data.is_all_confirm = false
}
})
} else {
9 months ago
res.data.is_all_confirm = false;
9 months ago
}
5 years ago
this.setData({
isRefund:state.indexOf("REFUND")!=-1,
info:res.data,
2 years ago
product_model:res.data.order_product_list[0].product_model,
ids: proId.join(",")
5 years ago
})
this.getCodeImg()
})
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
clearTimeout(timer)
timer = null;
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
}
})