Files
Wx_BLWConfigTools_V02_Prod/pages/index/index.js
2025-12-11 09:50:02 +08:00

273 lines
7.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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];
}
})