Files
Wx_BLWConfigTools_V01_Prod/pages/Hosts/Hosts.js

1477 lines
39 KiB
JavaScript
Raw Normal View History

2025-12-11 09:50:45 +08:00
// pages/Hosts/Hosts.js
const app = getApp()
//导入酒店信息请求发方法
import {
GetHostsInfo,
GetMAC,
GetFaceSN,
ErrorInfo,
CheckFaceSN,
OpenDoorTest,
GetRoomType,
GetRoomTypeAndModalsListLog,
WebChatUpgrade,
QueryUpdateHostStatus,
} from '../../lib/RequestingCenter.js'
import md5 from '../../utils/md5.min.js'
Page({
/**
* 页面的初始数据
*/
data: {
islogs: false,
//手动输入
FaceSNinput: 0,
//手动输入
input: 0,
//显示 0 全部 1 主机 2 人脸机
showinfo:0,
//帮助
Help: false,
//弹窗
modal: 0,
//房间数据
HostsData: null,
//过滤后房间数据
HostsDataFilters: null,
//酒店信息
Hotelinfo: null,
//是否返回 只有一个酒店不能返回
isback: true,
//已经绑定是数量
YMac: 0,
//未绑定是数量
NMac: 0,
//筛选按钮的值
sel: 0,
//权限信息
autho: null,
//选择的房间信息
selHosts: null,
//扫描的条形码
code: null,
//swview高度
top_height: 0,
//本次操作的状态数据
statusdata: [0, 0, 0, 0],
//mac绑定的酒店 服务器获取
bdHosts:[],
//房型信息
roomtype:[],
//升级状态
Upgradestatus:"",
UpgradestatusTimeout:"",
UpgradestatusTimeout2:"",
UpgradestIstrue:true,
//房间信息
roomtypeInfo:[],
//房间回路信息
roomtypeInfoNode:[],
},
// 监听单个字段
observersUpgradestatus: function() {
let Upgradestatus=this.data.Upgradestatus
let UpgradestatusTimeout2=this.data.UpgradestatusTimeout2
if (Upgradestatus=='升级就绪'||Upgradestatus[0]=='.') {
if (UpgradestatusTimeout2>0) {
this.setData({
UpgradestatusTimeout:UpgradestatusTimeout2
})
this.observersUpgradestatusTimeout()
}
}
},
observersUpgradestatusTimeout:function () {
let Upgradestatus=this.data.Upgradestatus
var timestampSec = Math.floor(Date.now() / 1000);
var UpgradestatusTimeout=this.data.UpgradestatusTimeout
if ((timestampSec-UpgradestatusTimeout) >60) {
this.setData({
Upgradestatus:"升级超时!",
UpgradestatusTimeout2:0
})
}else{
setTimeout(function () {
let selHosts =this.data.selHosts
let ID =selHosts.Id
let RoomTypeID = selHosts.RoomTypeID
let dastr =this.data.Upgradestatus
if (dastr.length>6) {
dastr='.'
}else{
dastr=dastr+'.'
}
QueryUpdateHostStatus({
hotelid:ID,
roomTypeID:RoomTypeID
}).then(res => {
if (res.IsSuccess ==true) {
if (res.Response.length>0) {
if (res.Response.BaiFenBi=='100%') {
this.setData({
Upgradestatus:'升级完成!',
UpgradestatusTimeout2:0
})
} else{
this.setData({
Upgradestatus:dastr,
UpgradestatusTimeout2:timestampSec
})
}
}else
{
this.setData({
Upgradestatus:dastr
})
}
} else{
this.setData({
Upgradestatus:"服务器反馈设备升级失败!",
UpgradestatusTimeout2:0
})
}
}, err => {
this.setData({
Upgradestatus:"服务器接口调用异常,设备升级失败!",
UpgradestatusTimeout2:0
})
}).catch(err => {
this.setData({
Upgradestatus:"服务器接口调用异常,设备升级失败!",
UpgradestatusTimeout2:0
})
});
this.observersUpgradestatus()
}, 1000)
//定时询问
}
},
GetFaceSN_long:function (params) {
if (!this.CheckFaceSNAutho()) {
app.toast(2, "无绑定权限~")
return;
}
let index = params.currentTarget.dataset['index']
// console.log(index)
let selHosts = this.data.HostsDataFilters[index];
selHosts.index = index;
this.setData({
selHosts: selHosts,
FaceSNinput: 100
})
if (this.data.HostsDataFilters[index].FaceSN != "" && this.data.HostsDataFilters[index].FaceSN != null) {
this.setData({
modal: -1,
message: [ this.data.HostsDataFilters[index].FaceSN,selHosts.RoomNumber]
})
} else {
this.ShowInputsn();
}
},
/// 解绑sn
JbSn:function(params) {
let jbjd = null;
let faceSN = null;
let that = this;
let index = -1;
debugger
if( typeof params.currentTarget.dataset['index'] != 'undefined'){
faceSN = this.data.code;
index = params.currentTarget.dataset['index']
//解绑的房间
jbjd = this.data.bdHosts[index];
// 0 表示绑定成功~
// 1 表示绑定失败~
// 2 表示取消绑定~
// xg
}else{
jbjd = this.data.selHosts;
faceSN = this.data.selHosts.FaceSN;
}
console.log(jbjd)
GetFaceSN({faceSN:faceSN,roomID:jbjd.Id,roomNumber:jbjd.RoomNumber,faceAddress:this.data.address,HotelID:jbjd.HotelID,isjb:true}).then(
res => {
if (res.Status == 200) {
switch (res.Data) {
case 0:
try {
app.toast(1, "解绑成功~");
let data = that.data.HostsData;
let OLD = -1;
try {
data.forEach(
(x, INDEX) => {
if (x.RoomNumber === jbjd.RoomNumber) {
OLD = INDEX;
throw new Error();
}
}
)} catch (error) {
}
if (OLD >= 0) {
// 0 表示绑定成功~
// 1 表示绑定失败~
// 2 表示取消绑定~
data[OLD].xg = 2;
data[OLD].FaceSN = "";
}
let res = that.GetFilters(that.data.sel, data);
let databdHosts = that.data.bdHosts;
let selHosts = that.data.selHosts;
// 表示 是查询到 sn被绑定 index>-1 ==-1 表示是长安解绑
if(index>-1){
databdHosts.splice(index,1);
}else{
selHosts.FaceSN = null
}
that.setData({
selHosts:selHosts,
HostsData: data,
bdHosts:databdHosts,
HostsDataFilters: res[0],
statusdata: res[1],
input: 0
})
} catch (error) {
console.log(error)
}
break;
case 1:
app.toast(2, "SN已经绑定酒店~")
break;
case 2:
app.toast(2, "SN绑定酒店失败~")
break;
case 3:
app.toast(2, "SN注册绑定酒店失败~")
break;
case 4:
app.toast(2, "未知错误~")
break;
case 5:
app.toast(2, "数据不符合~")
break;
case 6:
app.toast(2, "解绑失败~")
break;
default:
app.toast(2, "其他错误~")
break;
}
/// 0 成功
/// 1 已经注册已经绑定酒店
/// 2 已经注册更新失败
/// 3 未注册为分配酒店 添加注册 添加酒店是啊比
/// 4 未能预计的结果--
/// 5 数据不符合
/// 6 解绑失败
console.log(0)
}
else{
app.toast(2, "网络繁忙")
}
},
err => {
app.toast(2, "网络繁忙")
}
).catch(err => {
app.toast(2, "网络繁忙")
});
},
CheckFaceMAC:function(vlues){
return true;
console.log(vlues.length != 16)
return vlues.length == 16;
},
GetFaceSNend:function(){
this.GetHide();
let that = this;
let xg = 1;
GetFaceSN({faceSN:this.data.code, roomID:this.data.selHosts.Id,roomNumber:this.data.selHosts.RoomNumber,faceAddress:this.data.address,HotelID:this.data.Hotelinfo.HotelId}).then(
res => {
if (res.Status == 200) {
switch (res.Data) {
case 0:
app.toast(1, "绑定成功~");
xg = 0;
break;
case 1:
app.toast(2, "SN已经绑定酒店~");
break;
case 2:
xg = 1;
app.toast(2, "SN绑定酒店失败~");
break;
case 3:
app.toast(2, "SN注册绑定酒店失败~");
break;
case 4:
app.toast(2, "未知错误~");
break;
case 5:
app.toast(2, "数据不符合~");
break;
case 6:
app.toast(2, "解绑失败~");
break;
default:
app.toast(2, "其他错误~");
break;
}
/// 0 成功
/// 1 已经注册已经绑定酒店
/// 2 已经注册更新失败
/// 3 未注册为分配酒店 添加注册 添加酒店是啊比
/// 4 未能预计的结果--
/// 5 数据不符合
/// 6 解绑失败
try {
that.data.selHosts.xg = xg;
if(xg==0){
that.data.selHosts.FaceSN = this.data.code;
}
let data = that.data.HostsData;
data[that.data.selHosts.index] = that.data.selHosts;
let res = that.GetFilters(that.data.sel, that.data.HostsData);
that.setData({
HostsData: data,
HostsDataFilters: res[0],
statusdata: res[1],
code: null,
input: 0
})
} catch (error) {
console.log(error)
}
}
else{
app.toast(2, "网络繁忙")
}
},
err => {
app.toast(2, "网络繁忙")
}
).catch(err => {
app.toast(2, "网络繁忙")
});
},
CheckFaceMACWL(){
let that = this;
CheckFaceSN({faceSN:this.data.code}).then(
res => {
if (res.Status == 200) {
if(res.Data<=0){
that.setData({
modal:-521,
})
}else{
let remove = [];
let bdHosts = res.Data;
try {
//记录已经分配酒店但是未分配房间 且酒店是当前酒店 那就判断为没有绑定
that.data.autho.forEach((element, index) => {
element.Hotels.forEach((elements, indexs) => {
for (let index = 0; index < bdHosts.length; index++) {
if (elements.HotelId == bdHosts[index].HotelID) {
if(bdHosts[index].HotelID == that.data.Hotelinfo.HotelId && bdHosts[index].Id==0){
remove.push(index);
}
elements.Auth.forEach (Auth=>{
if(Auth.AuthorityId == 21 && Auth.AuthotypeId == 3){
//有权限
bdHosts[index].qx = 0;
}
})
}
}
})
});
} catch (error) {
console.log(error)
}
remove.forEach (x=>{
bdHosts.splice(x, 1);
})
let modalval = -200;
if(bdHosts.length<=0){
modalval = -521;
}
that.setData({
modal:modalval,
bdHosts:bdHosts
})
// app.toast(2, "已经被绑定")
}
}else{
app.toast(2, "网络繁忙")
}
},
err => {
console.log(err)
app.toast(2, "网络繁忙")
}).catch(err => {
console.log(err)
app.toast(2, "网络繁忙")
});
},
GetFaceSNOK:function(){
let that = this;
if (!this.CheckFaceMAC(that.data.code)) {
this.setData({
modal: 520
})
return;
};
if (that.data.selHosts.FaceSN == that.data.code) {
app.toast(2, "条码一致,无需更改~")
return;
}
this.CheckFaceMACWL()
},
//GetFaceCode 人脸机扫码
GetFaceCode:function(){
var that = this;
setTimeout(function () {
that.GetHide()
}, 100);
wx.scanCode({
// onlyFromCamera: true,// 只允许从相机扫码
success(res) {
// 扫码成功后 在此处理接下来的逻辑
that.setData({
code: res.result
})
that.GetFaceSNOK();
},
fail(err) {
app.toast(2, "未识别到有效条形码")
}
})
},
//检查人脸机房间权限
CheckFaceSNAutho: function () {
let res = false;
this.data.Hotelinfo.Auth.forEach(x=>{
if(x.AuthorityId==21 && x.AuthotypeId == 3){
res = true;
}
});
return res;
},
// 点击人脸机
GetFaceSN:function (params) {
//长按事件
if (this.endTime - this.startTime > 350) {
return;
}
if (!this.CheckFaceSNAutho()) {
app.toast(2, "无绑定权限~")
return;
}
let index = params.currentTarget.dataset['index']
// console.log(index)
let selHosts = this.data.HostsDataFilters[index];
selHosts.index = index;
this.setData({
selHosts: selHosts,
FaceSNinput: 0
})
if (this.data.HostsDataFilters[index].FaceSN != "" && this.data.HostsDataFilters[index].FaceSN != null) {
this.setData({
modal:-1,
message: [this.data.HostsDataFilters[index].FaceSN, selHosts.RoomNumber]
})
} else {
this.GetFaceCode()
}
},
//人脸机测试
testinfo:function(e){
// console.log(e.currentTarget.id)
var jbjd=this.data.selHosts
// console.log(jbjd)
wx.navigateTo({
url: '/pages/test/test?Hotelinfo=' + e.currentTarget.id+'&RoomID='+jbjd.Id+'&faceadd='+this.data.address
})
},
//开门测试
OpenDoor:function(e){
var that=this;
console.log(e.currentTarget.id)
var sn=e.currentTarget.id.split("_")
console.log(sn)
OpenDoorTest({faceSN:sn[2],isjb:true}).then(
res => {
if (res.Status == 200) {
app.toast(2, res.Message)
}
else{
app.toast(2, res.Message)
}
},
err => {
app.toast(2, "网络繁忙")
}
).catch(err => {
app.toast(2, "网络繁忙")
});
},
//检查房间权限
CheckAutho: function () {
let res = false;
this.data.Hotelinfo.Auth.forEach(x=>{
if(x.AuthorityId==16 && x.AuthotypeId == 3){
res = true;
}
});
return res;
},
//touch start 开始触摸房间区域
handleTouchStart: function (e) {
this.startTime = e.timeStamp;
//console.log(" startTime = " + e.timeStamp);
},
//touch end结束触摸房间区域
handleTouchEnd: function (e) {
this.endTime = e.timeStamp;
//console.log(" endTime = " + e.timeStamp);
},
// 帮助
HelpClick: function (params) {
this.setData({
islogs: false,
Help: !this.data.Help
})
},
//日志信息
islogsClick: function (params) {
this.setData({
islogs: !this.data.islogs,
Help: false
})
},
// 长按房间
GetMAC_long: function (params) {
if (!this.CheckAutho()) {
app.toast(2, "无绑定权限~")
return;
}
let index = params.currentTarget.dataset['index']
// console.log(index)
let selHosts = this.data.HostsDataFilters[index];
selHosts.index = index;
this.setData({
selHosts: selHosts,
input: 100
})
if (this.data.HostsDataFilters[index].MAC != "" && this.data.HostsDataFilters[index].MAC != null) {
this.setData({
modal: 1,
message: [selHosts.RoomNumber, this.data.HostsDataFilters[index].MAC]
})
} else {
this.ShowInput();
}
},
// 手动输入mac
ShowInput: function (params) {
this.setData({
modal: 1000,
code:""
})
},
// 手动输入sn
ShowInputsn: function (params) {
this.setData({
modal: -1000,
code:""
})
},
//解绑MAC
Jb:async function(params) {
let index = params.currentTarget.dataset['index']
//解绑的酒店
let jbjd = this.data.bdHosts[index];
// this.GetMacOKend(false);
let that = this;
await GetMAC({
roomNumber: jbjd.RoomNumber,
roomID: jbjd.Id,
HotelID: jbjd.HotelID,
MAC: "",
NoCheck: false,
loc: that.data.address
}).then(
res => {
if (res.Status == 1000) {
app.toast(2, "无权限")
}
if (res.Status == 200) {
app.toast(1, "解绑成功")
var databdHosts = that.data.bdHosts;
databdHosts.splice(index,1);
that.setData({
bdHosts:databdHosts
})
//如果酒店是当前酒店 就把当前酒店的房间 标记为解绑
if(jbjd.HotelID != that.data.HotelId)
{
// console.log(jbjd.HotelID)
// console.log(that.data.HotelId)
return;
}
let data = that.data.HostsData;
let OLD = -1;
try {
data.forEach(
(x, INDEX) => {
if (x.RoomNumber === jbjd.RoomNumber) {
OLD = INDEX;
throw new Error();
}
}
)} catch (error) {
}
if (OLD >= 0) {
// 0 表示绑定成功~
// 1 表示绑定失败~
// 2 表示取消绑定~
data[OLD].xg = 2;
data[OLD].MAC = "";
}
let res = that.GetFilters(that.data.sel, data);
that.setData({
HostsData: data,
HostsDataFilters: res[0],
statusdata: res[1]
})
console.log(data[OLD])
} else {
app.toast(2, "解绑失败")
}
},
err => {
app.toast(2, "网络繁忙")
}).catch(err => {
app.toast(2, "网络繁忙")
});
},
//检查mac地址
GetMACOK: function () {
let that = this;
if (!this.CheckMAC(that.data.code)) {
this.setData({
modal: 520
})
return;
};
var newmac = "";
for (var i = 0; i < that.data.code.length; i += 2) {
if (i + 2 >= that.data.code.length) {
newmac += that.data.code[i] + that.data.code[i + 1];
} else {
newmac += that.data.code[i] + that.data.code[i + 1] + "-";
}
}
if (that.data.selHosts.MAC == newmac) {
app.toast(2, "条码一致,无需更改~")
return;
}
this.setData({
modal: 521,
})
},
//最终绑定MAC
GetMacOKend: async function (type) {
let that = this;
if (type != true && type != false) {
type = type.currentTarget.dataset['type']
}
this.GetHide();
let xg = null;
await GetMAC({
roomNumber: that.data.selHosts.RoomNumber,
HotelID: that.data.selHosts.HotelID,
MAC: that.data.code,
NoCheck: type,
loc: that.data.address
}).then(
res => {
if (res.Status == 1000) {
xg = 100;
app.toast(2, "无权限")
}
if (res.Status == 200) {
xg = 0;
app.toast(1, "绑定成功")
} else {
if (!type) {
xg = 1;
app.toast(2, "绑定失败")
} else {
try {
if (res.Status == 100) {
xg = 100;
let modal = 3;
let mesg = [that.data.code];
//mac绑定的房间
let bdHosts = res.Data.Hosts;
try {
that.data.autho.forEach((element, index) => {
element.Hotels.forEach((elements, indexs) => {
for (let index = 0; index < res.Data.Hosts.length; index++) {
if (elements.HotelId == res.Data.Hosts[index].HotelID) {
elements.Auth.forEach (Auth=>{
if(Auth.AuthorityId == 16 && Auth.AuthotypeId == 3){
//有权限
bdHosts[index].qx = 0;
}
})
}
}
})
});
} catch (error) {
console.log(error)
}
that.setData({
modal: modal,
bdHosts:bdHosts,
message: mesg
})
} else {
if (res.Status == 150) {
xg = 1;
app.toast(2, "绑定失败")
} else {
xg = 100;
app.toast(2, "网络繁忙")
}
}
} catch (error) {
xg = 100;
console.log(error)
}
}
}
},
err => {
xg = 100;
app.toast(2, "网络繁忙")
}).catch(err => {
xg = 100;
app.toast(2, "网络繁忙")
});
try {
// 100表示检查MAC并没有执行绑定操作 或者 请求过程出错 不执行下面的操作
if (xg == 100) {
return;
}
//标记修改
that.data.selHosts.xg = xg;
// return;
var newmac = "";
for (var i = 0; i < that.data.code.length; i += 2) {
if (i + 2 >= that.data.code.length) {
newmac += that.data.code[i] + that.data.code[i + 1];
} else {
newmac += that.data.code[i] + that.data.code[i + 1] + "-";
}
}
that.data.selHosts.MAC = newmac;
let data = that.data.HostsData;
// 本房间有相同的 mac的房间标记为取消绑定 已经弃用了
// let OLD = -1;
// try {
// data.forEach(
// (x, INDEX) => {
// if (x.MAC == newmac && that.data.selHosts.Id != x.Id) {
// OLD = INDEX;
// throw new Error();
// }
// }
// )
// } catch (error) {
// console.log("房间 已经找到,无需循环~")
// }
// if (OLD >= 0) {
// // 0 表示绑定成功~
// // 1 表示绑定失败~
// // 2 表示取消绑定~
// data[OLD].xg = 2;
// data[OLD].MAC = "";
// }
data[that.data.selHosts.index] = that.data.selHosts;
let res = that.GetFilters(that.data.sel, that.data.HostsData);
that.setData({
HostsData: data,
HostsDataFilters: res[0],
statusdata: res[1],
code: null,
input: 0
})
} catch (error) {
console.log(error)
}
},
//检查Mac
CheckMAC: function (vlues) {
return (vlues.indexOf("34D0B8") == 0 && vlues.length == 12 && vlues.indexOf(" ") < 0);
},
//扫码~
GetCode: async function () {
var that = this;
setTimeout(function () {
that.GetHide()
}, 100);
wx.scanCode({
// onlyFromCamera: true,// 只允许从相机扫码
success(res) {
// 扫码成功后 在此处理接下来的逻辑
that.setData({
code: res.result
})
that.GetMACOK();
},
fail(err) {
app.toast(2, "未识别到有效条形码")
}
})
},
//隐藏提示~
GetHide() {
this.setData({
modal: 0,
input: 0,
FaceSNinput:0 ,
Upgradestatus:"",
})
},
// 房间点击事件
GetMAC: function (e) {
//长按事件
if (this.endTime - this.startTime > 350) {
return;
}
if (!this.CheckAutho()) {
app.toast(2, "无绑定权限~")
return;
}
let index = e.currentTarget.dataset['index']
// console.log(index)
let selHosts = this.data.HostsDataFilters[index];
selHosts.index = index;
this.setData({
selHosts: selHosts,
input: 0
})
if (this.data.HostsDataFilters[index].MAC != "" && this.data.HostsDataFilters[index].MAC != null) {
this.setData({
modal: 1,
message: [this.data.HostsDataFilters[index].MAC, selHosts.RoomNumber]
})
} else {
this.GetCode()
}
},
// 未分配max
GetMaxby(type = 0, arry = null) {
let y = 0;
let n = 0;
if (arry == null) {
arry = this.data.HostsData;
}
arry.forEach(x => {
if (x.MAC == "" || x.MAC == null) {
n++;
} else {
y++;
}
})
if (type == 0) {
return y;
}
return n;
},
//分类过滤方法
GetFilters(type = -1, arry = null) {
if (type == -1) {
type = this.data.sel
}
if (arry == null && this.data.HostsData != null) {
arry = this.data.HostsData;
}
if (arry == null) {
return;
}
let ok = 0;
let err = 0;
let no = 0;
let df = 0;
let res = [];
arry.forEach(x => {
switch (x.xg) {
case 0:
ok++;
break;
case 1:
err++;
break;
case 2:
no++;
break;
default:
df++;
break;
}
if (type == 0) {
res.push(x)
} else {
if (x.MAC == "" || x.MAC == null) {
if (type == 2) {
res.push(x)
}
} else {
if (type == 1) {
res.push(x)
}
}
}
})
return [res, [ok, err, no, df]];
},
// 分类点击事件
GetshowinfoClick(e) {
let showinfo = e.currentTarget.dataset['index']
this.setData({
showinfo:showinfo
})
},
GetRoomTypeList(){
debugger
GetHostsInfo({
HotelID: that.data.Hotelinfo.HotelId
}).then(res =>{
if (res.Status == 200) {
console.log('获取房型成功')
}
else{
console.log('获取房型失败:'+that.data.Hotelinfo.HotelId)
}
}).catch(err => {
console.log('网络访问错误')
console.log(err)
});
},
GetshowinfoClick1(e){
let showinfo = e.currentTarget.dataset['index']
var that=this;
that.setData({
showinfo:showinfo
})
GetHostsInfo({
HotelID: that.data.Hotelinfo.HotelId
}).then(res => {
if (res.Status == 200) {
that.setData({
HostsData: res.Data,
HostsDataFilters: res.Data,
isback: (app.globalData.autho.length > 1 || app.globalData.autho[0].Hotels.length > 1),
HotelId: that.data.Hotelinfo.HotelId,
statusdata: [0, 0, 0, 0],
YMac: this.GetMaxby(0, res.Data),
NMac: this.GetMaxby(1, res.Data)
})
that.GetLOC();
} else {
app.toast(2, res.Message || "网络繁忙")
}
}, err => {
console.log(err)
app.toast(2, "网络繁忙")
}).catch(err => {
console.log(err)
app.toast(2, "网络繁忙")
});
},
// 绑定筛选分类点击事件
GetClick(e) {
this.setData({
islogs: false,
Help: false
})
let index = e.currentTarget.dataset['index']
let res = this.GetFilters(index, this.data.HostsData);
this.setData({
sel: index,
HostsDataFilters: res[0],
statusdata: res[1]
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: async function (options) {
if (!options.HotelId || app.globalData.autho == null) {
app.toast(2, "无酒店信息~")
return;
}
this.setData({
autho: app.globalData.autho
})
// console.log(this.data.autho)
try {
this.data.autho.forEach((element, index) => {
element.Hotels.forEach((elements, indexs) => {
if (elements.HotelId == options.HotelId) {
this.setData({
Hotelinfo: elements
})
throw new Error();
}
})
});
} catch (error) {
console.log("已经找到,无需循环~")
}
let that = this;
setTimeout(function () {
// 1.使用wx.createSelectorQuery()查询到需要滚动到的元素位置
wx.createSelectorQuery().select('#scroll').boundingClientRect(res => {
// 2.使用wx.getSysTemInfo()获取设备及页面高度windowHeightpx
wx.getSystemInfo({
success(ress) {
that.setData({
top_height: ress.windowHeight - res.top
})
}
})
}).exec(function (params) {
console.log(params)
})
}, 100)
await GetHostsInfo({
HotelID: this.data.Hotelinfo.HotelId
}).then(res => {
if (res.Status == 200) {
that.setData({
HostsData: res.Data,
HostsDataFilters: res.Data,
isback: (app.globalData.autho.length > 1 || app.globalData.autho[0].Hotels.length > 1),
HotelId: options.HotelId,
statusdata: [0, 0, 0, res.Data.length],
YMac: this.GetMaxby(0, res.Data),
NMac: this.GetMaxby(1, res.Data)
})
app.globalData.HotelId=options.HotelId
that.GetLOC();
} else {
app.toast(2, res.Message || "网络繁忙")
}
}, err => {
console.log(err)
app.toast(2, "网络繁忙")
}).catch(err => {
console.log(err)
app.toast(2, "网络繁忙")
});
console.log(app.globalData.HotelId)
await GetRoomType({
HotelID: this.data.Hotelinfo.HotelId
}).then(res => {
app.SetroontypeListindex(res)
that.setData({
roomtype:app.globalData.roomIDName
})
}, err => {
console.log('GetRoomType error')
}).catch(err => {
});
await GetRoomTypeAndModalsListLog({
code:this.data.Hotelinfo.Code
}).then(res =>{
if (res.IsSuccess==true) {
that.setData({
roomtypeInfo:res.Result
})
}
})
},
//页面卸载
onUnload: function name(params) {
let data = wx.getStorageSync("oldHotelinfo") || []
let ok = false;
try {
for (let index = 0; index < data.length; index++) {
const element = data[index];
if (element.key == this.data.Hotelinfo.HotelId) {
ok = true;
data[index].data = this.data.HostsData;
throw new Error();
}
}
} catch (error) {
console.log('已经找到了')
}
if (!ok) {
data.push({
key: this.data.Hotelinfo.HotelId,
data: this.data.HostsData
})
}
try {
wx.setStorageSync('oldHotelinfo', data)
} catch (error) {
console.log(error)
}
console.log('000')
// 获取页面栈
var pages = getCurrentPages();
var currPage = pages[pages.length - 1]; // 当前页
var prevPage = pages[pages.length - 2]; // 上一个页面
prevPage.setData({
issel: this.data.Hotelinfo.HotelId
});
},
//固件升级
ConfigurationUpgrade: async function(e){
console.log('固件升级')
let selHosts =this.data.selHosts
this. Carryoutupgrade(false)
},
//配置升级
FirmwareUpgrade: async function (e){
console.log('配置升级')
this.Carryoutupgrade(true)
},
// 进行升级
Carryoutupgrade:function (params) {
//debugger
let selHosts =this.data.selHosts
let ID =selHosts.Id
let RoomTypeID = selHosts.RoomTypeID
let roontypeList =app.globalData.roontypeList
let Gfilename =""
let Pfilename =""
for (let index = 0; index < roontypeList.length; index++) {
const element = roontypeList[index];
if (RoomTypeID==element.ROOM_TYPE_OLD_ID) {
if (element.App_Cfg_For_L2.length>0) {
Gfilename=element.App_Cfg_For_L2
}
if (element.App_Cfg_For_L4.length>0) {
Gfilename=element.App_Cfg_For_L4
}
if (element.APPTYPE=="App_Cfg") {
Pfilename=element.CONFIG_BIN
}else{
Pfilename=""
}
break
}
}
debugger
Gfilename=Gfilename.replace('.hex','.bin')
if (params) {
if (Pfilename.length>0) {
WebChatUpgrade({
roomTypeID:RoomTypeID,
hostid_lists:'['+ID+']',
upgradefileName:Pfilename
}).then(res => {
if (res.IsSuccess ==true) {
this.setData({
Upgradestatus:"升级就绪",
UpgradestIstrue:params
})
this.observersUpgradestatus()
} else{
this.setData({
Upgradestatus:'服务器升级配置失败!'
})
this.DisplayPrompt('服务器升级配置失败!',1000)
}
}, err => {
this.setData({
Upgradestatus:'升级配置失败,服务器响应异常'
})
this.DisplayPrompt('升级配置失败,服务器响应异常',1000)
}).catch(err => {
this.setData({
Upgradestatus:'升级配置失败,服务器响应异常'
})
this.DisplayPrompt('升级配置失败,服务器响应异常',1000)
});
}else{
this.setData({
Upgradestatus:'升级配置失败!服务器未获取到配置!'
})
this.DisplayPrompt('升级配置失败!服务器未获取到配置!',1000)
}
}else{
if (Gfilename.length>0) {
WebChatUpgrade({
roomTypeID:RoomTypeID,
hostid_lists:'['+ID+']',
upgradefileName:Gfilename
}).then(res => {
if (res.IsSuccess ==true) {
this.setData({
Upgradestatus:"升级就绪",
UpgradestIstrue:params
})
this.observersUpgradestatus()
} else{
this.setData({
Upgradestatus:'服务器升级固件失败!'
})
this.DisplayPrompt('服务器升级固件失败!',1000)
}
}, err => {
this.setData({
Upgradestatus:'升级固件失败,服务器响应异常'
})
this.DisplayPrompt('升级固件失败,服务器响应异常',1000)
}).catch(err => {
this.setData({
Upgradestatus:'升级固件失败,服务器响应异常'
})
this.DisplayPrompt('升级固件失败,服务器响应异常',1000)
});
}else
{
this.setData({
Upgradestatus:"升级固件失败!!"
})
this.DisplayPrompt('升级固件失败!!',1000)
}
}
},
DisplayPrompt(tipstr, showtime)
{
wx.showLoading({
title: tipstr,
})
setTimeout(function () {
wx.hideLoading()
}, showtime)
},
// 反馈异常
ErrorInfo: async function (e) {
let type = e.currentTarget.dataset['type']
let that = this;
await ErrorInfo({
type: type,
MAC: this.data.selHosts.MAC,
roomNumber: this.data.selHosts.RoomNumber,
HotelID: this.data.selHosts.HotelID,
}).then(res => {
if (res.Status == 200) {
that.GetHide();
app.globalData.userinfo.error.push({
HostsId: that.data.selHosts.Id,
MAC: that.data.selHosts.MAC,
type: type
});
app.toast(1, "反馈成功~")
} else {
app.toast(2, "反馈失败~")
}
}, err => {
app.toast(2, "反馈失败~")
}).catch((e) => {
app.toast(2, "反馈失败~")
})
},
// 微信api获取经纬度
getFuzzyLocations() {
wx.getFuzzyLocation({
type: 'wgs84',
success: this.updateLocation,
fail: (e) => {
console.log(e)
}
})
},
// 根据经纬度,设置数据
updateLocation(res) {
let {
latitude: lat,
longitude: lon
} = res
let data = {
lat,
lon
}
// this.setData(data)
this.getAddress(lat, lon)
},
// 根据经纬度,逆地址解析
getAddress(lat, lon) {
// 在wx.request中this指向wx.request故无法setData此处将this指向that
var that = this
let SIG = md5("/ws/geocoder/v1?key=" + app.globalData.MapKey + "&location=" + String(lat) + "," + String(lon) + app.globalData.MapSk)
wx.request({
url: 'https://apis.map.qq.com/ws/geocoder/v1',
data: {
key: app.globalData.MapKey,
location: `${lat},${lon}`,
sig: SIG
},
success(res) {
let result = res.data.result
// console.log(result)
// formatted_addresses.recommend是经过腾讯地图优化过的描述方式更具人性化特点
let formatted_addresses = result.formatted_addresses.recommend
// 此处的that指向app
that.setData({
address: formatted_addresses
})
},
fail: (e) => {
console.log(e)
}
})
},
//每次展示获取一次定位
onShow() {
let that = this;
wx.getSetting({
success: (res) => {
console.log(JSON.stringify(res))
// res.authSetting['scope.userFuzzyLocation'] == undefined 表示 初始化进入该页面
// res.authSetting['scope.userFuzzyLocation'] == false 表示 非初始化进入该页面,且未授权
// res.authSetting['scope.userFuzzyLocation'] == true 表示 地理位置授权
if (res.authSetting['scope.userFuzzyLocation'] != undefined && res.authSetting['scope.userFuzzyLocation'] != true) {
//以前被拒绝授权指引用户授权
wx.showModal({
title: '请求授权当前位置',
content: '需要获取您的地理位置,请确认授权',
success: function (res) {
if (res.cancel) {
app.toast(2, "拒绝授权")
} else if (res.confirm) {
wx.openSetting({
success: function (dataAu) {
if (dataAu.authSetting["scope.userFuzzyLocation"] == true) {
app.toast(1, "授权成功")
that.getFuzzyLocations();
} else {
app.toast(2, "授权失败")
}
}
})
}
}
})
} else if (res.authSetting['scope.userFuzzyLocation'] == undefined) {
//调用wx.getFuzzyLocation
that.getFuzzyLocations();
} else {
that.getFuzzyLocations();
}
}
})
},
//读取本地历史缓存 并且 修改房间信息
GetLOC() {
let hc = null;
let data = wx.getStorageSync("oldHotelinfo") || []
try {
for (let index = 0; index < data.length; index++) {
const element = data[index];
if (element.key == this.data.Hotelinfo.HotelId) {
hc = data[index].data;
throw new Error();
}
}
} catch (error) {
console.log('已经找到')
}
if (hc != null) {
let data = this.data.HostsData;
hc.forEach(x => {
for (let index = 0; index < data.length; index++) {
if (data[index].Id == x.Id) {
data[index].xg = x.xg;
}
}
})
this.setData({
HostsData: data,
HostsDataFilters: data
})
}
}
})