yuminge-app/yun-min-program-plugin-master/packageC/hotel/HotelHome/HotelHome.js

510 lines
12 KiB
JavaScript

// packageC/hotel/HotelHome/HotelHome.js
var location = require("../../../mybehaviors/location/location");
var app = getApp();
Page({
behaviors: [location],
/**
* 页面的初始数据
*/
data: {
language: '',
data_info: {},
show1: true,
show2: true,
detail: "",
star_num: "",
location: {},
phone: "",
is_cashier: false,
PageNameList: {}, //自定义标题
address: "",
point: {
lat: '',
lng: ''
},
city: '',
title: '',
cityData: '',
HOME_PAGE_URL: "plugin.hotel.frontend.hotel.get-hotel-info.get-info-by-hotel-id",
start: '',
end: '',
show3: false,
room_arr: [],
loading: false,
allLoaded: false,
goload: true,
isLoadMore: true,
page: 1,
total_page: 0,
night_day: "",
banner_img: "",
name: "",
catagory_name: "",
toolbar: false,
wxTitie: "",
id: "",
ROOM_URL: "plugin.hotel.frontend.hotel.goods.get-goods-to-page"
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
if (options.scene) {
let scene = decodeURIComponent(options.scene);
console.log(scene);
if (scene) {
var info_arr = [];
info_arr = scene.split('&');
console.log(info_arr);
for (let i = 0; i < info_arr.length; i++) {
let chil_arr = [];
chil_arr = info_arr[i].split('=');
// 这是自提点
console.log(chil_arr);
if (chil_arr[0] == 'id') {
this.setData({
id: chil_arr[1]
});
}
}
}
}
if (options.id) {
this.setData({
id: options.id
});
}
if (options.city) {
this.setData({
cityData: options.city
});
}
if (options.start) {
this.setData({
start: options.start
});
}
if (options.end) {
this.setData({
end: options.end
});
}
this._getLocation(() => {this.getHomePageData();});
this.getInitTime();
this.getDays(this.data.start, this.data.end);
this.initData();
this.getData();
this.getCustomizeHotelHead();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() {
let language = wx.getStorageSync('langIndex');
this.setData({ 'language': language.en});
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {
},
getHomePageData() {
var that = this;
let urlStr = app.getNetAddresss(that.data.HOME_PAGE_URL);
urlStr += '&hotel_id=' + this.data.id;
urlStr += '&lng=' + this.data.point.lng;
urlStr += '&lat=' + this.data.point.lat;
urlStr += '&city_name=' + this.data.cityData;
app._getNetWork({
url: urlStr,
success: function(resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
data_info: res.data,
phone: res.data.mobile,
is_cashier: res.data.is_cashier == 1 ? true : false,
});
that.getStar(res.data.star_rated);
}
},
fail: function(res) {
console.log(res);
}
});
},
//星级
getStar(vaule) {
switch (vaule) {
case 0:
this.setData({
star_num: "未评星"
});
break;
case 2:
this.setData({
star_num: "二星级经济型"
});
break;
case 3:
this.setData({
star_num: "三星级舒适性"
});
break;
case 4:
this.setData({
star_num: "四星级高档型"
});
break;
case 5:
this.setData({
star_num: "五星级豪华型"
});
break;
default:
break;
}
},
//获取酒店自定义字段
getCustomizeHotelHead() {
let that = this;
let isQuestHotel = "";
try {
const value = wx.getStorageSync('customizeHotelHead');
if (value) {
isQuestHotel = value;
// Do something with return value
}
} catch (e) {
// Do something when catch error
}
if (!app._isTextEmpty(isQuestHotel)) {
this.setData({
PageNameList: JSON.parse(isQuestHotel)
});
wx.setNavigationBarTitle({
title: this.data.PageNameList.hotel_home_page
});
} else {
let urlStr = app.getNetAddresss("plugin.hotel.frontend.hotel.get-hotel-info.get-custom-name");
app._getNetWork({
url: urlStr,
success: function(resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
PageNameList: res.data
});
wx.setNavigationBarTitle({
title: res.data.hotel_home_page ? res.data.hotel_home_page : ''
});
try {
wx.setStorageSync('customizeHotelHead', JSON.stringify(res.data));
} catch (e) {
console.log(e);
}
}
},
fail: function(res) {
console.log(res);
}
});
}
},
gotoCashier() {
wx.navigateTo({
url: '/packageC/cashier/cashier_pay/cashier_pay?hotel_id=' + this.data.id
});
},
goToAdress() {
let latitude = this.data.data_info.latitude;
let longitude = this.data.data_info.longitude;
let hotel_name = this.data.data_info.hotel_name;
let point = app.BMapTransqqMap(parseFloat(longitude),parseFloat(latitude));
wx.openLocation({
latitude: point.lat,
longitude: point.lng,
scale: 18,
name: hotel_name
});
},
gophone() {
let mobile = this.data.phone;
wx.makePhoneCall({
phoneNumber: mobile
});
},
gotoCheckRoom() {
wx.navigateTo({
url: '/packageC/hotel/HotelChooseRoom/HotelChooseRoom?id=' + this.data.data_info.id + '&start=' + this.data.start +
'&end=' + this.data.end + '&city=' + this.data.cityData
});
},
toggleShow1() {
this.setData({
show1: (!this.data.show1)
});
},
toggleShow2() {
this.setData({
show2: (!this.data.show2)
});
},
getInitTime() {
if (app._isTextEmpty(this.data.start) || app._isTextEmpty(this.data.end)) {
this.getTime();
}
},
getTime() {
let now = new Date();
let next = new Date(now.getTime() + 24 * 60 * 60 * 1000);
this.setData({
start: `${now.getFullYear()}-${now.getMonth() + 1 < 10 ? `0${now.getMonth() + 1}` : `${now.getMonth() + 1}`
}-${now.getDate() < 10 ? `0${now.getDate()}` : `${now.getDate()}`}`
});
this.setData({
end: `${next.getFullYear()}-${next.getMonth() + 1 < 10 ? `0${next.getMonth() + 1}` : `${next.getMonth() + 1}`
}-${next.getDate() < 10 ? `0${next.getDate()}` : `${next.getDate()}`}`
});
},
//时间日期
getDays(strDateStart, strDateEnd) {
let strSeparator = "-"; //日期分隔符
let oDate1, oDate2, iDays;
oDate1 = strDateStart.split(strSeparator);
oDate2 = strDateEnd.split(strSeparator);
let strDateS = new Date(oDate1[0], oDate1[1] - 1, oDate1[2]);
let strDateE = new Date(oDate2[0], oDate2[1] - 1, oDate2[2]);
iDays = parseInt(Math.abs(strDateS - strDateE) / 1000 / 60 / 60 / 24); //把相差的毫秒数转换为天数
this.setData({
night_day: iDays
});
},
initData() {
this.setData({
page: 1,
total_page: 0,
goload: true,
loading: true,
allLoaded: false,
isLoadMore: true,
room_arr: []
});
},
getData() {
var that = this;
let urlStr = app.getNetAddresss(that.data.ROOM_URL);
urlStr += '&page=' + this.data.page;
urlStr += '&hotel_id=' + this.data.id;
urlStr += '&enter_at=' + this.data.start;
urlStr += '&leave_at=' + this.data.end;
app._getNetWork({
url: urlStr,
success: function(resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
room_arr: res.data.list.data,
total_page: res.data.list.last_page
});
if (app._isTextEmpty(that.data.banner_img)) {
that.setData({
banner_img: res.data.hotel.banner_thumb
});
}
if (app._isTextEmpty(that.data.name)) {
that.setData({
name: res.data.hotel.hotel_name
});
}
if (app._isTextEmpty(that.data.catagory_name)) {
that.setData({
catagory_name: res.data.hotel.has_one_category.name
});
}
} else {
wx.showToast({
title: res.msg,
icon: 'none',
duration: 1500,
success: function() {
setTimeout(function() {
//要延时执行的代码
wx.navigateBack({
delta: 1
});
}, 1500); //延迟时间
}
});
}
},
fail: function(res) {
console.log(res);
}
});
},
show2btn() {
this.setData({
show2: true
});
},
show3btn() {
this.setData({
show3: true
});
},
acceptTime(e) {
let type = e.detail.type;
let date = e.detail.date;
if (type == "离店") {
this.setData({
end: date
});
} else if (type == "入住") {
this.setData({
start: date
});
}
this.checkDate(type);
},
checkDate(type) {
//入住日期不能为空
//离店日期不能小于住店日期
//离店日期不能和住店日期同一天
let start = new Date(this.data.start).getTime();
let end = new Date(this.data.end).getTime();
if (app._isTextEmpty(this.data.start)) {
wx.showToast({
title: '请先选择入住日期',
icon: 'none',
duration: 2000
});
this.setData({
end: ""
});
return;
} else {
if (start == end) {
wx.showToast({
title: '入住和离店日期不能为同一天',
icon: 'none',
duration: 2000
});
this.setData({
end: ""
});
return;
}
if (start > end) {
wx.showToast({
title: '离店日期需要大于入店日期',
icon: 'none',
duration: 2000
});
this.setData({
end: ""
});
return;
}
//关闭弹窗
if (type == "离店") {
//计算多少晚
this.getDays(this.data.start, this.data.end);
this.setData({
show3: false
});
} else if (type == "入住") {
this.setData({
show2: false
});
}
}
},
close(e) {
let type = e.detail;
if (type == "离店") {
this.setData({
show3: false
});
} else if (type == "入住") {
this.setData({
show2: false
});
}
},
show2closebtn() {
this.setData({
show2: false
});
},
show3closebtn() {
this.setData({
show3: false
});
},
gotoGoods(e) {
let val = e.currentTarget.dataset.id;
if (app._isTextEmpty(this.data.start)) {
wx.showToast({
title: '住店时间不能为空',
icon: 'none',
duration: 2000
});
return;
}
if (app._isTextEmpty(this.data.end)) {
wx.showToast({
title: '离店时间不能为空',
icon: 'none',
duration: 2000
});
return;
}
wx.navigateTo({
url: '/packageA/detail_v2/detail_v2?id=' + val + '&start=' + this.data.start + '&end=' + this.data.end
});
},
});