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

273 lines
6.4 KiB
JavaScript

// packageC/hotel/HotelSearch/HotelSearch.js
var location = require("../../../mybehaviors/location/location");
var app = getApp();
Page({
behaviors: [location],
/**
* 页面的初始数据
*/
data: {
SEARCH_URL: "plugin.hotel.frontend.hotel.goods.get-hotel-goods-by-title",
address: "",
point: {
lat: '',
lng: ''
},
city: '',
title: '',
start_time: '',
end_time: '',
price: '',
star: '',
category: '',
loading: false,
allLoaded: false,
goload: true,
isLoadMore: true,
page: 1,
total_page: 0,
list_arr: [],
search_value: "",
toolbar: false,
PageNameList: {}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
if (options.start) {
this.setData({
start_time: options.start
});
}
if (options.star) {
this.setData({
star: options.star
});
}
if (options.end) {
this.setData({
end_time: options.end
});
}
if (options.price) {
this.setData({
price: options.price
});
}
if (options.category) {
this.setData({
category: options.category
});
}
this.getCustomizeHotelHead();
this._getLocation(()=> {this.search();});
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
if (this.data.isLoadMore) {
this.searchMore();
} else {
console.log('没有更多数据');
}
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
//附近搜索
search() {
var that = this;
let urlStr = app.getNetAddresss(that.data.SEARCH_URL);
urlStr += '&lng=' + this.data.point.lng;
urlStr += '&lat=' + this.data.point.lat;
urlStr += '&city_name=' + that.data.city;
urlStr += '&page=' + this.data.page;
urlStr += '&entrance_time=' + (this.data.start_time ? this.data.start_time : '');
urlStr += '&price=' + (this.data.price ? this.data.price : '');
urlStr += '&star_rated=' + (this.data.star ? this.data.star : '');
urlStr += '&category_id=' + (this.data.category ? this.data.category : '');
urlStr += '&leave_at=' + (this.data.end_time ? this.data.end_time : '');
urlStr += '&kwd=' + (this.data.search_value ? this.data.search_value : '');
app._getNetWork({
url: urlStr,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
list_arr: res.data.data,
total_page: res.data.last_page
});
}
},
fail: function (res) {
console.log(res);
}
});
},
//获取酒店自定义字段
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.hotels + '搜索页'
});
} 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.PageNameList.hotels + '搜索页') ? (res.data.PageNameList.hotels + '搜索页') : ''
});
try {
wx.setStorageSync('customizeHotelHead', JSON.stringify(res.data));
} catch (e) {
console.log(e);
}
}
},
fail: function (res) {
console.log(res);
}
});
}
},
gotoSearch() {
this.initData();
this.search();
},
initData() {
this.setData({
page: 1,
total_page: 0,
goload: true,
loading: true,
allLoaded: false,
isLoadMore: true,
list_arr: []
});
},
searchMore() {
var that = this;
if (this.data.page == this.data.total_page) {
return;
}
if (this.data.page >= this.data.total_page) {
this.setData({
loading: true,
allLoaded: true
});
return;
} else {
this.setData({
page: this.data.page + 1
});
let urlStr = app.getNetAddresss(that.data.SEARCH_URL);
urlStr += '&lng=' + this.data.point.lng;
urlStr += '&lat=' + this.data.point.lat;
urlStr += '&city_name=' + this.data.city;
urlStr += '&page=' + this.data.page;
urlStr += '&entrance_time=' + (this.data.start_time ? this.data.start_time : '');
urlStr += '&price=' + (this.data.price ? this.data.price : '');
urlStr += '&star_rated=' + (this.data.star ? this.data.star : '');
urlStr += '&category_id=' + (this.data.category ? this.data.category : '');
urlStr += '&leave_at=' + (this.data.end_time ? this.data.end_time : '');
urlStr += '&kwd=' + (this.data.search_value ? this.data.search_value : '');
app._getNetWork({
url: urlStr,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
loading: false,
allLoaded: false,
list_arr: that.data.list_arr.concat(res.data.data) //数组拼接
});
} else {
that.setData({
page: that.data.page - 1,
loading: true,
allLoaded: true,
isLoadMore: false
});
return;
}
},
fail: function (res) {
console.log(res);
}
});
}
},
seainp(e) {
let val = e.detail.value;
this.setData({
search_value: val
});
}
});