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];
|
||
}
|
||
})
|