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.
 

362 lines
9.5 KiB

// pages/order/hotel/index.js
import commonApi from "../../../utils/https/common"
import userApi from "../../../utils/https/user"
let app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
safeBottom:app.globalData.safeBottom,
showNoticeFlag:false,
roomNumbers:[1,2,3,4,5,6,7,8],
times:['14:00','15:00','16:00','17:00','18:00','19:00','20:00','21:00','22:00','23:00','23:59',"次日1:00","次日2:00","次日3:00","次日4:00","次日5:00","次日6:00"],
timeIndex:0,
numberIndex:0,
showInfoFlag:false,
showFeeFlag:false,
CtripHotelCart:null,
wifis:['无WiFi','收费WiFi','免费WiFi'],
wiredNetworks:['无有线宽带','收费有线宽带','免费有线宽带'],
showInfoMoreFlag:false,
selectLinkman:[],
customerNum:0,
customerName:[],
coupon:null,
tel:'',
priceInfo:[],
showMask:false,
editId:null,
linkmanList:[]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.couponCom = this.selectAllComponents("#coupon")[0];
let CtripHotelCart = app.globalData.product;
// 获取默认联系人
userApi.user_post("user/getDefaultContact",{
contactType:"CONTACT"
}).then(res=>{
if(res.data){
this.setData({
selectLinkman:[res.data],
tel:res.data.tel
})
}
this.getLinkmanList()
})
let roomNumbers = []
for(let i=0;i<10;i++){
roomNumbers.push(i+1)
}
this.setData({
roomNumbers:roomNumbers
})
commonApi.user_post("product/product_date_price",{
sku_id:CtripHotelCart.id,
end_date:CtripHotelCart.endDate,
start_date:CtripHotelCart.startDate
}).then(res=>{
res.data.splice(1,1);
let price_sum = 0;
res.data.map(item=>{
price_sum = price_sum + Number(item.price)
})
CtripHotelCart.price_sum = price_sum;
this.setData({
priceInfo:res.data,
CtripHotelCart:CtripHotelCart
})
})
},
inputTel:function(e){
this.setData({
tel:e.detail.value
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
// 显示房型详情
showInfo:function(){
this.setData({
showInfoFlag:!this.data.showInfoFlag
})
},
// 房型详情显示更多
showInfoMore:function(){
this.setData({
showInfoMoreFlag:!this.data.showInfoMoreFlag
})
},
// 显示价格明细
showFee:function(){
this.setData({
showFeeFlag:!this.data.showFeeFlag
})
},
// 修改房间数量
changeNumber:function(e){
if(Number(e.detail.value)<this.data.numberIndex && this.data.coupon){
wx.showToast({
title: '订单价格发生变化,请重新选择优惠券',
icon: 'none'
})
this.couponCom.setNullCoupon();
this.setData({
coupon:null
})
app.globalData.couponInfo = null;
}
this.setData({
numberIndex: Number(e.detail.value)
})
},
// 入住人名字
inputCustomerName:function(e){
let name = e.detail.value,index = e.currentTarget.dataset.index,customerName = this.data.customerName;
customerName[index] = name;
console.log(customerName)
this.setData({
customerName:customerName
})
},
showLinkman:function(){
this.setData({
showMask:!this.data.showMask
})
},
gotoEdit:function(e){
this.setData({
editId:e.currentTarget.dataset.item.id
})
},
cancel:function(){
let selectLinkman = this.data.selectLinkman,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 = [];
linkmanList.map(linkman=>{
if(linkman.selected==1){
selectLinkman.push(linkman);
}
})
if(selectLinkman.length>(this.data.numberIndex+1)){
this.setData({
numberIndex:selectLinkman.length-1
})
}
if(selectLinkman.length>0){
this.setData({
tel:selectLinkman[0].tel
})
}
this.setData({
selectLinkman:selectLinkman
})
this.showLinkman()
},
getLinkmanList:function(){
// 直接获取1000条出行人信息 就不要分页了
userApi.user_post("user/getContactOrConsignee",{
contactType:"CONTACT",
offset:0,
limit:1000
}).then(res=>{
let list = res.data;
list.map(item=>{
this.data.selectLinkman.map(linkman=>{
if(linkman.id==item.id){
item.selected = 1;
}
})
})
this.setData({
linkmanList:list
})
})
},
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;
linkmanList.map(linkman=>{
if(item.id==linkman.id){
linkman.selected = item.selected==1?0:1
}
})
this.setData({
linkmanList:linkmanList
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
if(this.data.editId){
// 如果是去编辑的
let editId = this.data.editId;
userApi.user_post("user/getContactInfoById",{
id:editId
}).then(res=>{
let selectLinkman = this.data.selectLinkman,linkmanList = this.data.linkmanList;
selectLinkman.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,
selectLinkman:selectLinkman
})
})
}
else {
this.getLinkmanList()
}
this.setData({
coupon:app.globalData.couponInfo
})
},
// 去支付
gotoPay:function(){
// let CtripHotelCart = this.data.CtripHotelCart;
// 判断入住人姓名是否和房间数量一致
console.log(this.data.selectLinkman)
let customerName = this.data.selectLinkman,numberIndex = this.data.numberIndex+1;
if(customerName.length<numberIndex){
wx.showToast({
title: '请填写住客姓名',
icon:"none"
})
return false;
}
if(!this.data.tel){
wx.showToast({
title: '请填写手机号',
icon:"none"
})
return false;
}
let selectLinkman = [];
customerName.map(item=>{
selectLinkman.push(item.name);
})
let product = this.data.CtripHotelCart;
let data = {
coupon_id:this.data.coupon?this.data.coupon.id:null,
source:"WECHATXCX",
product_list:[{
type : "hotel",//酒店
product_id: product.product_id,
sku_id:product.id,
start_date:product.startDate,
end_date:product.endDate,
reserve_mobile:this.data.tel,
customer_name:selectLinkman.join(","),
product_num:numberIndex
}]
}
if(app.globalData.from){
data.system_name = app.globalData.from;
}
if(app.globalData.retailId){
data.commission_code = app.globalData.retailId;
app.globalData.retailId = null;
}
if(app.globalData.category_id){
data.category_id = app.globalData.category_id;
}
commonApi.user_post("order/create",{
data:JSON.stringify(data)
}).then(res=>{
}).catch(err=>{
})
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
app.globalData.coupon = null;
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
}
})