Files
Wx_BLWConfigTools_V02_Prod/pages/index/index.js

273 lines
7.4 KiB
JavaScript
Raw Normal View History

2025-12-11 09:50:02 +08:00
// 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()获取设备及页面高度windowHeightpx
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];
}
})