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.

486 lines
12 KiB

5 years ago
// pages/order/roadOrder/index.js
import userApi from "../../../utils/https/user"
import commonApi from "../../../utils/https/common"
let app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
product:null,
sku:[],
selectDate:null,
linkmans:[],
linkmanFlag:false,
linkmanList:[],
selectLinkman:[],
skuIndex:null,
reserve_mobile:"",
remark:"",
editId:null,
price:0,
3 years ago
coupon:app.globalData.couponInfo,
4 years ago
sku_ids:"",
3 months ago
prizeId:null,
smoothlyTotal: 0,
maxCouponObject: null
5 years ago
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
3 months ago
this.couponCom = this.selectAllComponents("#coupon")[0];
4 years ago
this.setData({
prizeId:wx.getStorageSync('prizeId')
})
5 years ago
userApi.user_post("user/getMyInfo").then(res=>{
this.setData({
reserve_mobile:res.data.mobile
})
})
let product = app.globalData.product,linkmans=[],sku_ids=[];
product.sku.map(item=>{
let num = Number(item.num);
linkmans.push(new Array(num));
sku_ids.push(item.id)
})
this.setData({
product:product.product,
sku:product.sku,
selectDate:product.selectDate,
linkmans:linkmans,
price:product.price,
sku_ids:sku_ids.join(",")
})
console.log(this.data)
5 years ago
// 获取默认联系人
this.getLinkmanList()
3 months ago
// this.showAllPrice()
},
// 子组件发生改变时更新价格
handleUpdateTotalPrice(e) {
this.setData({
smoothlyTotal: e.detail.total
});
// 重新计算总价
this.showAllPrice();
},
// 调用子组件清除优惠券方法
callOtherCompMethod: function(e) {
this.couponCom.setNullCoupon()
3 months ago
this.setData({
coupon: null,
})
3 months ago
},
showAllPrice() {
let price = app.globalData.product.price
3 months ago
let allPrice = price
3 months ago
// 顺手购价格
3 months ago
if (!this.data.coupon) {
price += this.data.smoothlyTotal || 0;
}
3 months ago
if (this.data.coupon) {
if (this.data.coupon.activity.discount_type == 'pricebreak') {
price = price - this.data.coupon.activity.money
} else {
price =(price * this.data.coupon.activity.fold)/ 10
}
} else {
price = price
}
if (price >0) {
this.setData({ price:price/100})
}else {
this.setData({ price:0 })
}
const smoothlyComp = this.selectComponent("#smoothlyOrderComp");
const skuIds = []
skuIds.push(this.data.sku_ids)
console.log(skuIds)
if(smoothlyComp) {
// 检查是否有选中的顺手购商品
const hasSkuIds = smoothlyComp.hasSelectedGoods();
if(hasSkuIds) {
skuIds.push(...smoothlyComp.emitSkuIds())
}
}
this.setData({
maxCouponObject: {
price: allPrice,
skuIds: skuIds.toString()
}
})
console.log(this.data.maxCouponObject)
5 years ago
},
showLinkman:function(e){
if(!this.data.linkmanFlag) {
let skuIndex = e.currentTarget.dataset.index,linkmans = this.data.linkmans[skuIndex],linkmanList = this.data.linkmanList;
linkmanList.map(item=>{
item.selected = 0;
linkmans.map(linkman=>{
if(item.id==linkman.id){
item.selected = 1;
}
})
})
linkmanList.map(item=>{
item.disable = 0;
this.data.linkmans.map((linkman,index)=>{
if(index!=skuIndex){
linkman.map(l=>{
if(l.id==item.id){
// 已经被别的规格选择了 那么只能灰掉
item.disable = 1;
}
})
}
})
})
this.setData({
linkmanList:linkmanList
})
}
this.setData({
linkmanFlag:!this.data.linkmanFlag,
skuIndex:e?e.currentTarget.dataset.index:null
})
},
gotoEdit:function(e){
let item = e.currentTarget.dataset.item;
this.setData({
editId:item.id
})
},
getLinkmanList:function(){
// 直接获取1000条出行人信息 就不要分页了
commonApi.user_post("token/check").then(res=>{
if(res.code==1){
userApi.user_post("user/getContactOrConsignee",{
contactType:"CONTACT",
offset:0,
limit:1000,
tm_flag: true,
5 years ago
}).then(res=>{
let list = res.data;
this.setData({
linkmanList:list,
linkmanFlag:false
})
})
}
})
},
setDefault:function(e){
let item = e.currentTarget.dataset.item,linkmanList = this.data.linkmanList;
userApi.user_post("user/setDefaultContact",{
contactId:item.id
}).then(res=>{
if(res.code==1){
wx.showToast({
title: '设置成功',
icon: 'success'
})
linkmanList.map(linkman=>{
if(linkman.id==item.id){
linkman.is_default=1;
}
else {
linkman.is_default = 0;
}
})
this.setData({
linkmanList:linkmanList
})
}
})
},
selectIt:function(e){
let item = e.currentTarget.dataset.item,linkmanList = this.data.linkmanList,skuIndex = this.data.skuIndex,sku = this.data.sku[skuIndex],num=0;
if(item.disable==1) return;
linkmanList.map(linkman=>{
if(item.id==linkman.id){
if(num >= sku.num && item.selected!=1){
linkman.selected = 0;
}
else {
linkman.selected = item.selected==1?0:1;
}
}
if(linkman.selected==1){
num ++;
}
})
if(num>sku.num) return;
this.setData({
linkmanList:linkmanList
})
},
cancel:function(){
let selectLinkman = this.data.linkmans[this.data.skuIndex],linkmanList = this.data.linkmanList;
linkmanList.map(linkman=>{
linkman.selected = 0;
selectLinkman.map(item=>{
if(item.id==linkman.id){
linkman.selected = 1;
}
})
})
this.setData({
linkmanList:linkmanList
})
this.showLinkman()
},
confirm:function(){
let linkmanList = this.data.linkmanList,selectLinkman = [],linkmans = this.data.linkmans,skuIndex = this.data.skuIndex;
linkmanList.map(linkman=>{
if(linkman.selected==1){
selectLinkman.push(linkman);
}
})
linkmans[skuIndex] = selectLinkman;
this.setData({
linkmans:linkmans
})
this.showLinkman()
},
inputTel:function(e){
this.setData({
reserve_mobile:e.detail.value
})
},
inputRemark:function(e){
this.setData({
remark:e.detail.value
})
},
order:function(){
3 months ago
const smoothlyComp = this.selectComponent("#smoothlyOrderComp");
if(smoothlyComp) {
// 检查是否有选中的顺手购商品
const hasSelected = smoothlyComp.hasSelectedGoods();
if(hasSelected && !smoothlyComp.data.address) {
wx.showToast({
title: '请选择收货地址',
icon: 'none'
})
return;
}
}
5 years ago
let sku = this.data.sku,product = this.data.product,linkmans = this.data.linkmans,product_list = [],reserve_mobile = this.data.reserve_mobile;
if(!reserve_mobile) {
wx.showToast({
title: '请输入联系方式',
icon:'none'
})
return;
}
let orderFlag = true;
sku.map((item,index)=>{
if(item.num>0){
let linkman = linkmans[index],visitors=[];
if(linkman.length<item.num){
wx.showToast({
title: '请选择'+item.num +"个出行人",
icon:"none"
})
orderFlag = false;
}
for(let i=0;i<linkman.length;i++){
let l = linkman[i];
if(!l || !l.id){
wx.showToast({
title: '请选择'+item.num +"个出行人",
icon:"none"
})
orderFlag = false
}
else {
visitors.push(l.id)
}
}
product_list.push({
type : "line",//线路
product_id: product.id,
sku_id:item.id,
product_num:item.num,
visitors:visitors.join(","),
reserve_mobile:reserve_mobile,
use_date:this.data.selectDate.date
})
}
})
if(orderFlag==false){
return;
}
3 months ago
// 顺手购下单参数
if(smoothlyComp && smoothlyComp.emitOrder() && smoothlyComp.emitOrder().length) {
product_list.push(...smoothlyComp.emitOrder())
}
5 years ago
let data = {
product_list:product_list,
coupon_id:this.data.coupon?this.data.coupon.id:null,
source:"WECHATXCX",
remark:this.data.remark
}
4 years ago
if(this.data.prizeId){
data.lottery_id = this.data.prizeId
}
5 years ago
if(app.globalData.from){
data.system_name = app.globalData.from;
}
if(app.globalData.retailId){
data.commission_code = app.globalData.retailId;
app.globalData.retailId = null;
}
5 years ago
if(app.globalData.category_id){
data.category_id = app.globalData.category_id;
}
if (this.data.product.ZTPoint) {
data.partner_code = this.data.product.ZTPoint
data.channel = this.data.product.ZTPoint
}
5 years ago
commonApi.user_post("order/create",{
data:JSON.stringify(data)
}).then(res=>{
})
},
3 years ago
//获取最高优惠券
getNewCoupon(e){
this.setData({
coupon:e.detail
})
3 months ago
this.showAllPrice()
3 years ago
},
5 years ago
// 一日游合同确认签字
// ondayConfirm:function(){
// let linkmans = this.data.linkmans,tourist_info=[],sku=this.data.sku;
// sku.map((item,index)=>{
// if(item.num>0){
// let linkman = linkmans[index];
// if(linkman.length<item.num){
// wx.showToast({
// title: '请先选择出行人',
// icon:"none"
// })
// orderFlag = false;
// }
// for(let i=0;i<linkman.length;i++){
// let l = linkman[i];
// if(!l || !l.id){
// wx.showToast({
// title: '请先选择出行人',
// icon:"none"
// })
// orderFlag = false
// }
// else {
// tourist_info.push({
// user_id:l.id,
// name:l.name,
// tel:l.tel,
// id_number:l.id_number,
// is_main:tourist_info.length===0
// })
// }
// }
// }
// })
// commonApi.user_post("Oneday/getContractUrl",{
// total_price:this.data.price,
// supplier_id:this.data.product.supplier_id,
// product_id:this.data.product.id,
// tourist_info:tourist_info
// }).then(res=>{
// console.log(res)
// })
// },
5 years ago
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
if(this.data.editId){
// 如果是去编辑的
let editId = this.data.editId;
userApi.user_post("user/getContactInfoById",{
id:editId
}).then(res=>{
let linkmans = this.data.linkmans,linkmanList = this.data.linkmanList;
linkmans.map(linkman=>{
linkman.map(item=>{
if(item.id==editId){
item.name = res.data.name;
item.tel = res.data.tel;
item.id_number = res.data.id_number;
item.is_default = res.data.is_default;
}
else if(res.data.is_default==1){
item.is_default = 0;
}
})
})
linkmanList.map(item=>{
if(item.id==editId){
item.name = res.data.name;
item.tel = res.data.tel;
item.id_number = res.data.id_number;
item.is_default = res.data.is_default;
}
})
this.setData({
linkmanList:linkmanList,
linkmans:linkmans
})
})
}
else {
this.getLinkmanList()
}
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
}
})