273 lines
7.4 KiB
JavaScript
273 lines
7.4 KiB
JavaScript
|
|
// pages/basics/MakingRounds/MakingRounds.js
|
|||
|
|
const app = getApp()
|
|||
|
|
import {
|
|||
|
|
GetHostsInfo,
|
|||
|
|
GetMAC,
|
|||
|
|
GetFaceSN,
|
|||
|
|
ErrorInfo,
|
|||
|
|
CheckFaceSN,
|
|||
|
|
OpenDoorTest,
|
|||
|
|
GetRoomType,
|
|||
|
|
GetRoomTypeAndModalsListLog,
|
|||
|
|
WebChatUpgrade,
|
|||
|
|
QueryUpdateHostStatus,
|
|||
|
|
ForwardQueryUpdateHostProgressBar,
|
|||
|
|
GetRoomTypeNode,
|
|||
|
|
SetRCULight,
|
|||
|
|
SetRCUAir,
|
|||
|
|
SetRCUCurtain,
|
|||
|
|
} from '../../lib/RequestingCenter.js'
|
|||
|
|
Page({
|
|||
|
|
data: {
|
|||
|
|
userInfo: null,
|
|||
|
|
autho: null,
|
|||
|
|
selectGroupIndex:-1,
|
|||
|
|
ishotel: false,
|
|||
|
|
hotelIndex: 0,
|
|||
|
|
issel:false ,
|
|||
|
|
curNav:1,
|
|||
|
|
curIndex:0,
|
|||
|
|
top_height:0,
|
|||
|
|
inputValue:""
|
|||
|
|
},
|
|||
|
|
selectNav (event) {
|
|||
|
|
let id = event.target.dataset.id,
|
|||
|
|
index = parseInt(event.target.dataset.index);
|
|||
|
|
self = this;
|
|||
|
|
this.setData({
|
|||
|
|
curNav:id,
|
|||
|
|
curIndex:index
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
///选择酒店
|
|||
|
|
SelHotel: function (e) {
|
|||
|
|
let index = e.currentTarget.dataset['index'];
|
|||
|
|
this.setData({
|
|||
|
|
hotelIndex: index
|
|||
|
|
})
|
|||
|
|
wx.setStorageSync(this.data.userInfo.Id + '_xiaoxi_hotelId', this.data.autho[this.data.selectGroupIndex].Hotels[this.data.hotelIndex].HotelId)
|
|||
|
|
},
|
|||
|
|
//确定选择酒店
|
|||
|
|
ShowSelHotel: async function (e) {
|
|||
|
|
|
|||
|
|
let id = e.currentTarget.dataset['id'];
|
|||
|
|
if(id==-1){
|
|||
|
|
id = this.data.autho[this.data.selectGroupIndex].Hotels[this.data.hotelIndex].HotelId;
|
|||
|
|
}
|
|||
|
|
if(this.data.hotelIndex>=0){
|
|||
|
|
|
|||
|
|
app.globalData.HotelId=id
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
wx.navigateTo({
|
|||
|
|
url: '/pages/NewHome/NewHome?HotelId=' + id
|
|||
|
|
})
|
|||
|
|
}else{
|
|||
|
|
app.toast(2,'未选择酒店')
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
//选择酒店组
|
|||
|
|
bindgroup: function (e) {
|
|||
|
|
|
|||
|
|
let index
|
|||
|
|
try {
|
|||
|
|
index = e.currentTarget.dataset['index']
|
|||
|
|
} catch (error) {
|
|||
|
|
index=0
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
this.setData({
|
|||
|
|
selectGroupIndex: index,
|
|||
|
|
hotelIndex: 0,
|
|||
|
|
ishotel: true
|
|||
|
|
})
|
|||
|
|
wx.setStorageSync(this.data.userInfo.Id + '_xiaoxi_hotelId', this.data.autho[this.data.selectGroupIndex].Hotels[this.data.hotelIndex].HotelId)
|
|||
|
|
wx.setStorageSync(this.data.userInfo.Id + '_xiaoxi_selectGroupId', this.data.autho[this.data.selectGroupIndex].HotelGroupsId)
|
|||
|
|
},
|
|||
|
|
codebindgroup: function (GroupIndex,hotelIndex) {
|
|||
|
|
|
|||
|
|
this.setData({
|
|||
|
|
selectGroupIndex: GroupIndex,
|
|||
|
|
hotelIndex:hotelIndex,
|
|||
|
|
ishotel: true
|
|||
|
|
})
|
|||
|
|
wx.setStorageSync(this.data.userInfo.Id + '_xiaoxi_hotelId', this.data.autho[this.data.selectGroupIndex].Hotels[this.data.hotelIndex].HotelId)
|
|||
|
|
wx.setStorageSync(this.data.userInfo.Id + '_xiaoxi_selectGroupId', this.data.autho[this.data.selectGroupIndex].HotelGroupsId)
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
|
|||
|
|
//登录
|
|||
|
|
onLoad: async function (option) {
|
|||
|
|
let that=this
|
|||
|
|
|
|||
|
|
this.setData({
|
|||
|
|
userInfo: app.globalData.userinfo,
|
|||
|
|
autho: app.globalData.autho
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
if (this.data.userInfo == null) {
|
|||
|
|
app.checkLoginReadyCallback = res => {
|
|||
|
|
this.setData({
|
|||
|
|
userInfo: app.globalData.userinfo,
|
|||
|
|
autho: app.globalData.autho
|
|||
|
|
})
|
|||
|
|
this.ReaSel()
|
|||
|
|
};
|
|||
|
|
} else {
|
|||
|
|
this.ReaSel()
|
|||
|
|
}
|
|||
|
|
setTimeout(function () {
|
|||
|
|
// 1.使用wx.createSelectorQuery()查询到需要滚动到的元素位置
|
|||
|
|
wx.createSelectorQuery().select('#Headcustom').boundingClientRect(res => {
|
|||
|
|
// 2.使用wx.getSysTemInfo()获取设备及页面高度windowHeight(px)
|
|||
|
|
wx.getSystemInfo({
|
|||
|
|
success(ress) {
|
|||
|
|
|
|||
|
|
that.setData({
|
|||
|
|
top_height: ress.windowHeight - res.bottom,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}).exec(function (params) {
|
|||
|
|
console.log(params)
|
|||
|
|
})
|
|||
|
|
}, 100)
|
|||
|
|
let e=[]
|
|||
|
|
|
|||
|
|
|
|||
|
|
this.bindgroup(e)
|
|||
|
|
console.log(this.data.top_height)
|
|||
|
|
},
|
|||
|
|
inputSearchForHotels(e){
|
|||
|
|
this.setData({
|
|||
|
|
inputValue: e.detail.value
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
|
|||
|
|
SearchForHotels(e) {
|
|||
|
|
//debugger //hotelIndex
|
|||
|
|
let inputValue =this.data.inputValue.trim()
|
|||
|
|
if (inputValue.length==0) {
|
|||
|
|
wx.showModal({
|
|||
|
|
title: "提示",
|
|||
|
|
content: "无效搜索",
|
|||
|
|
showCancel:false
|
|||
|
|
})
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
let autho = this.data.autho
|
|||
|
|
let selectGroupIndex = this.data.selectGroupIndex
|
|||
|
|
const Naelement = autho[selectGroupIndex]
|
|||
|
|
const CNaelement =this.sortHotelsByFuzzyMatch(Naelement.Hotels,inputValue)
|
|||
|
|
autho[selectGroupIndex].Hotels=CNaelement
|
|||
|
|
this.setData({
|
|||
|
|
autho:autho
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
for (let aindex = 0; aindex < autho.length; aindex++) {
|
|||
|
|
const aelement = autho[aindex];
|
|||
|
|
|
|||
|
|
for (let bindex = 0; bindex < aelement.Hotels.length; bindex++) {
|
|||
|
|
const belement = aelement.Hotels[bindex];
|
|||
|
|
if (belement.Code==inputValue) {
|
|||
|
|
this.codebindgroup(aindex,bindex)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
if (belement.HotelName==inputValue) {
|
|||
|
|
this.codebindgroup(aindex,bindex)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
wx.showModal({
|
|||
|
|
title: "提示",
|
|||
|
|
content: "未找到该酒店!",
|
|||
|
|
showCancel:false
|
|||
|
|
})
|
|||
|
|
} ,
|
|||
|
|
//读取历史选择酒店
|
|||
|
|
ReaSel: function () {
|
|||
|
|
let _xiaoxi_hotelId = wx.getStorageSync(this.data.userInfo.Id + '_xiaoxi_hotelId')
|
|||
|
|
let _xiaoxi_selectGroupId = wx.getStorageSync(this.data.userInfo.Id + '_xiaoxi_selectGroupId')
|
|||
|
|
let _xiaoxi_selectGroupIndex = -1;
|
|||
|
|
let _xiaoxi_hotelIndex = -1;
|
|||
|
|
this.data.autho.forEach((element, index) => {
|
|||
|
|
if (element.HotelGroupsId == _xiaoxi_selectGroupId) {
|
|||
|
|
_xiaoxi_selectGroupIndex = index;
|
|||
|
|
element.Hotels.forEach((elements, indexs) => {
|
|||
|
|
if (elements.HotelId == _xiaoxi_hotelId) {
|
|||
|
|
_xiaoxi_hotelIndex = indexs;
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
this.setData({
|
|||
|
|
selectGroupIndex: _xiaoxi_selectGroupIndex,
|
|||
|
|
hotelIndex: _xiaoxi_hotelIndex
|
|||
|
|
})
|
|||
|
|
//非选择 读取上次进行跳转
|
|||
|
|
if(!this.data.issel && this.data.hotelIndex>-1){
|
|||
|
|
wx.navigateTo({
|
|||
|
|
url: '/pages/NewHome/NewHome?HotelId='+this.data.autho[this.data.selectGroupIndex].Hotels[this.data.hotelIndex].HotelId
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
// console.log(this.data.autho.length==1 && this.data.autho[0].Hotels.length==1 && option.issel!=0)
|
|||
|
|
//非选择 如果只有一个酒店就直接进行跳转
|
|||
|
|
if(this.data.autho.length==1 && this.data.autho[0].Hotels.length==1 && !this.data.issel){
|
|||
|
|
wx.navigateTo({
|
|||
|
|
url: '/pages/NewHome/NewHome?HotelId='+this.data.autho[0].Hotels[0].HotelId
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
} ,
|
|||
|
|
sortHotelsByFuzzyMatch:function(hotels, keyword) {
|
|||
|
|
// 1. 参数验证
|
|||
|
|
if (!Array.isArray(hotels)) {
|
|||
|
|
console.warn('第一个参数必须是数组');
|
|||
|
|
return [];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (typeof keyword !== 'string') {
|
|||
|
|
console.warn('第二个参数必须是字符串');
|
|||
|
|
return hotels.slice();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 2. 处理空数组或空关键字的情况
|
|||
|
|
const trimmedKeyword = keyword.trim();
|
|||
|
|
if (hotels.length === 0 || trimmedKeyword === '') {
|
|||
|
|
return hotels.slice();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
const lowerKeyword = trimmedKeyword.toLowerCase();
|
|||
|
|
|
|||
|
|
// 3. 分离匹配和不匹配的酒店
|
|||
|
|
const matchedHotels = [];
|
|||
|
|
const unmatchedHotels = [];
|
|||
|
|
|
|||
|
|
hotels.forEach(hotel => {
|
|||
|
|
// 检查是否为有效酒店对象
|
|||
|
|
if (!hotel || typeof hotel !== 'object' || !hotel.HotelName) {
|
|||
|
|
unmatchedHotels.push(hotel);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
const hotelName = String(hotel.HotelName).toLowerCase();
|
|||
|
|
const isMatch = hotelName.includes(lowerKeyword);
|
|||
|
|
|
|||
|
|
if (isMatch) {
|
|||
|
|
matchedHotels.push(hotel);
|
|||
|
|
} else {
|
|||
|
|
unmatchedHotels.push(hotel);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 4. 合并数组并返回
|
|||
|
|
return [...matchedHotels, ...unmatchedHotels];
|
|||
|
|
}
|
|||
|
|
})
|