// pages/roomDetail/roomDetail.js const WXAPI = require('../../utils/request') import ICINLocker from "../../utils/ICINPakage/ICINLocker" var methods = require('../../utils/methods'); var util = require('../../utils/util'); import { BLE } from "../../utils/btls/ble"; // import { clearInterval } from "timers"; const app = getApp(); var bleall = require('../../utils/bleall'); const emitter = app.globalData.emitter import moment from "../../utils/moment" const ADD_NFC_MODE=10 // ArrayBuffer转16进度字符串示例 function ab2hex(buffer) { var hexArr = Array.prototype.map.call( new Uint8Array(buffer), function (bit) { return ('00' + bit.toString(16)).slice(-2) } ) return hexArr.join(','); } Page({ /** * 页面的初始数据 */ data: { passwordStatus:false, addpassword:'', showTwo:false, showOne:false, starttime:'', endtime:'', minDate: '', minDate1: '', info: "", //显示框 deviceinfo: { rssi: 0, battery: 0, lockStatus: 0, isOnline: 0, event: '', bleStatus: '' }, index: 0, fingerprintId: '', openlock: '', IssuingPersonnel: true, backstatus: false, cgInfo: '', zgBlueStatus: false, timer: '', count: 0, show: false, actions: [{ name: '静音', color: '#ee0a24' }, { name: '低音', color: '#333' }, { name: '高音', color: '#333' }, ], volume: '', bluestatus: app.globalData.backstatus, show1: false, TemporaryPassword: '', phone: '', userInfo: { type: '' }, authority: false, showbuleKey:false, deviceList:[], userRole:'', passwordList:[], NfcList:[], remotePasswordStatus:false }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var userRole = wx.getStorageSync('userRole') || '' this.setData({ userRole }) app.globalData.zgBlueStatus = false this.AddressPermissions() let deviceinfo = wx.getStorageSync('deviceinfo') if(deviceinfo.manufactureId==201||deviceinfo.manufactureId == 221){ var data3 = { code: "zg/bleRegisterInfo", signature:wx.getStorageSync('signature'), cardId:deviceinfo.cardId, data: { lockerId: deviceinfo.deviceNum } } WXAPI.sendCommandOne(data3).then(res1 => { if (res1.success) { wx.setStorageSync('cgInfo', res1.data) this.setData({ cgInfo: res1.data }) } else { } }) }else{ } this.getApartmentCardInfoMethods() this.getPassWordMehods() app.globalData.deviceNum = deviceinfo.deviceNum app.watch(this.getcartcount, 'backdata') app.watch(this.fingerprintFun, 'fingerprintId') app.watch(this.openlockfun, 'openlock') }, // 获取合同信息 getApartmentCardInfoMethods(){ let deviceinfoList = wx.getStorageSync('deviceinfoList') if(deviceinfoList[0].cardId){ let data={ signature:wx.getStorageSync('signature'), id:deviceinfoList[0].cardId, } WXAPI.getApartmentCardInfo(data).then(res=>{ if(res.success){ let leases = res.data.leases if(leases.length>0){ let leasesObject = leases[leases.length-1] let minDate = moment(leasesObject.signingTime).format('YYYY-MM-DD') let minDate1 = moment(leasesObject.contractTime).format('YYYY-MM-DD') this.setData({ minDate:minDate, minDate1:minDate1 }) }else{ wx.showToast({ title: "还未签订合同", duration: 2000, icon: 'none' }) } }else{ wx.showToast({ title: "获取合同信息失败", duration: 2000, icon: 'none' }) } }) }else{ wx.showToast({ title: "还未有对应合同", duration: 2000, icon: 'none' }) } }, // 添加远程密码 addRemotePassword(){ this.setData({ showTwo:true, remotePasswordStatus:true }) }, // 前往密码列表 goPasswordList(){ wx.navigateTo({ url: '/pagesA/passwordList/passwordList', }) }, // 交租跳转 payRentMethods(){ wx.navigateTo({ url: '/pages/rentDetail/rentDetail', }) }, onCloseBlue(){ this.setData({ showbuleKey:false }) }, onCloseTwo(){ this.setData({ showTwo:false, remotePasswordStatus:false }) }, onCloseOne(){ this.setData({ showOne:false }) }, // 选择开始结束时间 bindDateChangeAdd(e){ var str = e.detail.value + " 00:00:00" this.setData({ starttime: str }) }, bindDateChangeAddTwo(e){ var str = e.detail.value + " 00:00:00" this.setData({ endtime: str }) }, addUser(){ var cgInfo=this.data.cgInfo ICINLocker.getSignKey(cgInfo.lockerId, cgInfo.superId, cgInfo.superId, (callback) => { if (callback.status == '00') { ICINLocker.getCommonKey(cgInfo.lockerId, cgInfo.superId, cgInfo.superId, callback.signKey, (callback1) => { if (callback1.status == '00') { ICINLocker.addUserToLock(cgInfo.lockerId, cgInfo.superId, "BLEKEY_8d82e5d527e1", "0o01weit9ti9ti", "00", callback.signKey, "", callback1.commonKey, "00000000", "FFFFFFFF", (callback) => { console.log(callback) }) } }) } }) }, stringToHex(str){     var val="";     for(var i = 0; i < str.length; i++){       if(val == "")         val = str.charCodeAt(i).toString(16);       else         val += str.charCodeAt(i).toString(16);     }     return val;   }, linkBlue(){ wx.navigateTo({ url: '/pages/addBlueButton/addBlueButton', }) }, searchBlueButton(e) { var that = this var cgInfo=this.data.cgInfo var comm=this.stringToHex(e.currentTarget.dataset.select.name) console.log(comm) var deviceId=e.currentTarget.dataset.select.deviceId var keyId="0o01weit9ti9ti" var password="3030000000000000000000000000000000000000" app.globalData.blueDeviceId = e.currentTarget.dataset.select.name var blueKeyId=e.currentTarget.dataset.select.name ICINLocker.connect(deviceId,true) // 此处 deviceId 存起来,当断开连接时使用 .then((res) => { if (res.status == 0) { clearInterval(that.data.timer) this.setData({ bleStatus: '蓝牙已连接', deviceId: deviceId }) app.globalData.zgBlueStatus = true wx.showToast({ title: '连接成功', icon: "none", duration: 2000 }) ICINLocker.readBluetoothBuckle(cgInfo.lockerId, comm, callback2 => { if(callback2.status==0){ ICINLocker.registeBluetoothBuckle(cgInfo.superId, blueKeyId, keyId, password, "", cgInfo.authKey, comm, callback3 => { if(callback3.status==0){ wx.hideLoading() wx.showToast({ title: '添加成功', duration:2000, icon:"none" }) }else{ wx.hideLoading() wx.showToast({ title: '添加成功', duration:2000, icon:"none" }) } }) }else{ wx.hideLoading() wx.showToast({ title: '读取失败', duration:2000, icon:"none" }) } }); } else { wx.hideLoading() var msg = '' switch (res.errCode) { case 10001: msg = '调用失败,请打开蓝牙!'; break; } wx.showToast({ title: msg, duration: 2000, icon: 'none' }) //此处处理返回值不为成功(0)的情况 } }).catch((res) => { wx.hideLoading() console.log(res, '失败') // 此处处理未能连接成功问题 }) }, onChange2(event) { this.setData({ addpassword: event.detail }) }, onChange(event) { this.setData({ phone: event.detail }) }, // 发送临时密码 sendMessage() { var re = /^1\d{10}$/ if (re.test(this.data.phone)) { var data = { code: this.data.TemporaryPassword, phone: this.data.phone, device: this.data.deviceinfo.deviceNum, name: this.data.deviceinfo.roomName } WXAPI.sendEmergence(data).then(res => { if (res.success) { this.setData({ show1: false }) wx.showToast({ title: "发送成功", duration: 2000, icon: "none" }) } else { wx.showToast({ title: "发送失败", duration: 2000, icon: "none" }) } }) } else { wx.showToast({ title: "请输入正确的手机号", duration: 2000, icon: "none" }) } }, // 获取临时密码 getTemporaryPassword() { var data = { code: "zg/getEmergence", signature:wx.getStorageSync('signature'), cardId:this.data.deviceinfo.cardId, data: { lockerId: this.data.deviceinfo.deviceNum } } WXAPI.sendCommandOne(data).then(res => { if (res.success) { this.setData({ TemporaryPassword: res.data.data, show1: true }) } else { wx.showToast({ title: "获取失败", duration: 2000, icon: "none" }) } }) }, // 关闭临时密码弹窗 onClose1() { this.setData({ show1: false }); }, // 关闭设置音量 onClose() { this.setData({ show: false }); }, processCardNumber(cardNo){ var str1=cardNo.substr(0,8) var str2=cardNo.substr(8,8) var num=str2.split("") var status=num.every(item=> item==0) console.log(status,num,'numnum',str1,str2) if(status){ var bbb = str1.split("") var a, b; var aIndex = 0; var bIndex = 1; var arr = []; bbb.forEach((str, index) => { if (index % 2 === 0) { a = str; aIndex += 1 } else { b = str bIndex += 1 } if (a&&b&&(bIndex-aIndex === 1)) { arr.push(a+b) } }); console.log(arr) return arr.join("") }else{ var ll=str1+str2 return ll } }, sendNfc() { var time3 = new Date(this.data.starttime) var time4 = new Date(this.data.endtime) var passwordStartTimecontrast = time3.getTime() / 1000 var passwordEndTimecontrast = time4.getTime() / 1000 if (passwordStartTimecontrast > passwordEndTimecontrast) { wx.showToast({ title: '开始时间不能大于结束时间', duration: 2000, mask:true, icon: 'none' }) return } wx.showLoading({ title: '正在添加', mask: true }) var _this = this var deviceinfo = this.data.deviceinfo var info = JSON.parse(this.data.deviceinfo.info) if (deviceinfo.manufactureId == 101) { } else if (deviceinfo.manufactureId == 201||deviceinfo.manufactureId == 221) { var cgInfo = this.data.cgInfo var passwordStartTime = passwordStartTimecontrast var passwordEndTime = passwordEndTimecontrast var pzname='',cardName='' if(pzname==""){ pzname=_this.data.deviceinfo.name+'-蓝牙-NFC'+(_this.data.NfcList.length+1) cardName=_this.data.deviceinfo.name+'-蓝牙-NFC'+(_this.data.NfcList.length+1) }else{ pzname=_this.data.deviceinfo.name+'-蓝牙-'+pzname cardName=_this.data.deviceinfo.name+'-蓝牙-'+pzname } var dataPasswod = { code: "zg/cardOperate", cardId:deviceinfo.cardId, data: { lockerId: deviceinfo.deviceNum, imei: deviceinfo.imei, lockerUserId: info.userPassword, keyId: info.userPassword, action: 1, taskStatus: 1, order: 6210, startTime: passwordStartTime, endTime: passwordEndTime, cardType: 50, type: ADD_NFC_MODE, roomName: this.data.deviceinfo.roomName, cardName: cardName, operateName:_this.data.deviceinfo.name }, signature:wx.getStorageSync('signature'), } console.log(dataPasswod,'dataPasswod') WXAPI.sendCommandOne(dataPasswod).then(res => { console.log(res,'resres') if (res.success) { var pwdNo = res.data.index var passwordIndex = res.data.index var serialNumber=res.data.serialNumber pwdNo = pwdNo.toString(16) if (pwdNo.length < 2) { pwdNo='0'+pwdNo } var startTime = passwordStartTime.toString(16).toUpperCase() var endTime = passwordEndTime.toString(16).toUpperCase() info.startTime=startTime info.endTime=endTime info.pwdNo = pwdNo methods.bluetoothOperation_ZH(cgInfo,info,7).then(result=>{ if (result.status == '00') { let carNoId=this.processCardNumber(result.cardNo) var datacom = { code: "zg/bleSendVoucherReply", cardId:deviceinfo.cardId, data: { lockerId: deviceinfo.deviceNum, serialNumber: serialNumber, index: passwordIndex, type: ADD_NFC_MODE, cardNo: carNoId.toUpperCase(), result: 1, operateName:_this.data.deviceinfo.name }, signature:wx.getStorageSync('signature'), } WXAPI.sendCommandOne(datacom).then(res2 => { if (res2.success) { var str = { // cardId: this.personInfo.cardId, pzname:pzname, imei: _this.data.deviceinfo.imei, password: carNoId.toUpperCase(), blueCardNo:result.cardNo, userTelephone: info.userTelephone, operateMode: 10, userPassword: info.userPassword, passwordStartTime: passwordStartTime, passwordEndTime: passwordEndTime, is: false, roomName:_this.data.deviceinfo.roomName, } var data = { cardId: _this.data.deviceinfo.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 deviceNum: _this.data.deviceinfo.deviceNum, type: 3, blueCardNo:result.cardNo, imei: _this.data.deviceinfo.imei, serial: serialNumber, startTime: passwordStartTime, endTime: passwordEndTime, signature:wx.getStorageSync('signature'), }; console.log(data, '添加凭证') var datalist = { cardId: _this.data.deviceinfo.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 type: 13, startTime: passwordStartTime, endTime: passwordEndTime, signature:wx.getStorageSync('signature'), }; WXAPI.tsAddCertificate(datalist).then(res6 => { console.log(datalist,'NFC',res6) }) WXAPI.tsAddCertificate(data).then(res3 => { if (res3.success) { var updatedata = { id: res3.data, status:1, signature:wx.getStorageSync('signature'), }; WXAPI.editCertificate(updatedata).then((res2) => { }); console.log(res3, '添加凭证成功') _this.setData({ showOne: false }) _this.getPassWordMehods() wx.hideLoading() wx.showToast({ title: '添加成功', mask:true, icon: 'none', duration: 2000 }) } else { wx.hideLoading() wx.showToast({ title: '添加失败', mask:true, icon: 'none', duration: 2000 }) } }) } }) } else { wx.hideLoading() wx.showToast({ title: '添加失败', mask:true, icon: 'none', duration: 2000 }) var datacom = { code: "zg/bleSendVoucherReply", cardId:deviceinfo.cardId, data: { lockerId: deviceinfo.deviceNum, serialNumber: serialNumber, index: passwordIndex, type: ADD_NFC_MODE, result: 0 }, signature:wx.getStorageSync('signature'), } WXAPI.sendCommandOne(datacom).then(res2 => { console.log(res2, '失败') _this.setData({ showOne: false }) }) } }) } else { wx.showToast({ title: res.msg, duration: 2000, mask:true, icon: 'none' }) } }) } }, // 选择设置音量 onSelect(event) { var volume = '', volume1 = '' if (event.detail.name == '静音') { volume = '00' volume1 = 0 } else if (event.detail.name == '低音') { volume = '01' volume1 = 1 } else if (event.detail.name == '高音') { volume = '02' volume1 = 2 } this.setData({ volume: volume }) wx.showLoading({ title: "正在设置...", }); if (this.data.deviceinfo.manufactureId == 201||this.data.deviceinfo.manufactureId == 221) { this.setVolume(volume) } else if (this.data.deviceinfo.manufactureId == 101) { this.setVolume1(volume) } }, fingerprintFun() { this.data.fingerprintId = app.globalData.fingerprintId }, // 人员管理 personManger() { wx.navigateTo({ url: '/pages/personManger/personManger', }) }, openlockfun() { var that = this this.data.openlock = app.globalData.openlock var userInfo=wx.getStorageSync('deviceinfo') if (app.globalData.openlock == 1) { var data = { code: "ld/bleUnlockRecord", signature:wx.getStorageSync('signature'), cardId:this.data.deviceinfo.cardId, data: { deviceNum: this.data.deviceinfo.deviceNum, userTelephone: "18270949468", password: "2021", roomId:that.data.deviceinfo.roomId, roomName:that.data.deviceinfo.roomName, cardName:userInfo.name, } } console.log(data) WXAPI.sendCommandOne(data).then(res => { }) } else { wx.showToast({ title: "开门失败,请重新开门", duration: 2000, icon: "none" }) } }, getcartcount(val) { var that = this let deviceNum = that.data.deviceinfo.deviceNum if (app.globalData.backdata == 3 && this.data.backstatus) { that.startFp_29(deviceNum, 0x02) } else if (app.globalData.backdata == 2 && this.data.backstatus) { that.startFp_29(deviceNum, 0x01) } else if (app.globalData.backdata == 1 && this.data.backstatus) { var data = { managerTelephone: "18270949468", managerPassword: "202108", userTelephone: JSON.parse(that.data.deviceinfo.info).userTelephone, userPassword: JSON.parse(that.data.deviceinfo.info).userPassword, startTime: "20210813010101", endTime: "20680813010101" } this.data.backstatus = false that.startFp_63(data.managerTelephone, data.managerPassword, data.userTelephone, data.userPassword, data.startTime, data.endTime, 16) } }, startFp_63(managerTelephone, managerPassword, userTelephone, userPassword, startTime, endTime, num) { wx.showLoading({ title: "正在发送...", }); setTimeout(() => { wx.hideLoading() }, 1000); let cmd = 0x63 let mt = util.stringToUint8Array(managerTelephone) let mp = util.stringToUint8Array(managerPassword) let ut = util.stringToUint8Array(userTelephone) let up = util.stringToUint8Array(userPassword) let ust = util.time40ToBytes(startTime) let uet = util.time40ToBytes(endTime) let fst = util.time40ToBytes(startTime) let fet = util.time40ToBytes(endTime) let length = 1 + 11 + 6 + 11 + 6 + 5 + 5 + 4 + 2 + 10 + 5 + 5 + 1 + 2 + 1 let b = new Uint8Array(length) b[0] = cmd b.set(mt, 1) b.set(mp, 12) b.set(ut, 18) b.set(up, 29) b.set(ust, 35) b.set(uet, 40) //权限 b[45] = 0x46; b[46] = 0x46; b[47] = 0x46; b[48] = 0x46; //密码长度 uint16 b[49] = 0 b[50] = 0x0a //密码数据 b[51] = this.data.fingerprintId b[52] = 0xff b[53] = 0xff b[54] = 0xff b[55] = 0xff b[56] = 0xff b[57] = 0xff b[58] = 0xff b[59] = 0xff b[60] = 0xff b.set(fst, 61) b.set(fet, 66) b[71] = 0xff; b[72] = 0xff; b[73] = 0xff; b[74] = num; //添加指纹 app.globalData.ble.send(cmd, b) }, delete_63(managerTelephone, managerPassword, userTelephone, userPassword, startTime, endTime, id) { wx.showLoading({ title: "正在发送...", }); setTimeout(() => { wx.hideLoading() }, 1000); let cmd = 0x63 let mt = util.stringToUint8Array(managerTelephone) let mp = util.stringToUint8Array(managerPassword) let ut = util.stringToUint8Array(userTelephone) let up = util.stringToUint8Array(userPassword) let ust = util.time40ToBytes(startTime) let uet = util.time40ToBytes(endTime) let fst = util.time40ToBytes(startTime) let fet = util.time40ToBytes(endTime) let length = 1 + 11 + 6 + 11 + 6 + 5 + 5 + 4 + 2 + 10 + 5 + 5 + 1 + 2 + 1 let b = new Uint8Array(length) b[0] = cmd b.set(mt, 1) b.set(mp, 12) b.set(ut, 18) b.set(up, 29) b.set(ust, 35) b.set(uet, 40) //权限 b[45] = 0x46; b[46] = 0x46; b[47] = 0x46; b[48] = 0x46; //密码长度 uint16 b[49] = 0 b[50] = 0x0a //密码数据 b[51] = id b[52] = 0xff b[53] = 0xff b[54] = 0xff b[55] = 0xff b[56] = 0xff b[57] = 0xff b[58] = 0xff b[59] = 0xff b[60] = 0xff b.set(fst, 61) b.set(fet, 66) b[71] = 0xff; b[72] = 0xff; b[73] = 0xff; b[74] = 18; //删除指纹 app.globalData.ble.send(cmd, b) }, startFp_29(deviceNum, status) { wx.showLoading({ title: "正在发送...", }); setTimeout(() => { wx.hideLoading() }, 1000); let cmd = 0x29 let dn = util.stringToUint8ArrayWithPadding(deviceNum, 20, 0xff) let length = 1 + 20 + 5 + 1 + 1 let b = new Uint8Array(length) b[0] = cmd b.set(dn, 1) //send data=0x0036000008 b[21] = 0x00; b[22] = 0x36; b[23] = 0; b[24] = 0; b[25] = 0x08 b[26] = status //status: 0x03, 0x02, 0x01 b[27] = 0x01 app.globalData.ble.send(cmd, b) }, // 设置密码 permissionsfun() { wx.navigateTo({ url: "/pages/permissions/permissions" }) }, // 跳转开锁记录页面 getlogList() { wx.navigateTo({ url: "/pages/openLockLog/openLockLog?&roomId=" + this.data.deviceinfo.roomId+"&cardId="+this.data.deviceinfo.cardId }) }, // zg蓝牙连接 openTheDoor() { // if(this.data.deviceinfo.info){ // JSON.parse(this.data.deviceinfo.info) // var deviceinfo = this.data.deviceinfo var userInfo = wx.getStorageSync('deviceinfo') ICINLocker.getSignKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, (callback) => { console.log(callback) if (callback.status == '00') { var userSignKey = callback.signKey ICINLocker.getCommonKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, userSignKey, (callback) => { console.log(callback) var commonKey = callback.commonKey ICINLocker.openTheDoor(this.data.cgInfo.lockerId, this.data.cgInfo.superId, userSignKey, this.data.cgInfo.superId, '', '01', commonKey, (callback) => { var data = { code: "zg/bleUnlockRecord", signature:wx.getStorageSync('signature'), cardId:this.data.deviceinfo.cardId, data: { lockerId: this.data.cgInfo.lockerId, lockerUserId: this.data.cgInfo.superId, roomId:this.data.deviceinfo.roomId, roomName:this.data.deviceinfo.roomName, cardName:userInfo.name, operateName:this.data.deviceinfo.name } } WXAPI.sendCommandOne(data).then(res => { console.log(res) }) }) }) } }); // }else{ // wx.showToast({ // title: '请先下发人员', // duration:2000, // icon:'none' // }) // } }, // 退出登录 loginOut(){ console.log(1111) wx.removeStorage({ key:"signature" }) wx.redirectTo({ url:"/pages/login/login" }) }, // 添加指纹 addFingerPrints() { var userInfo = JSON.parse(this.data.deviceinfo.info) ICINLocker.getCommonKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, this.data.cgInfo.authKey, (callback) => { ICINLocker.addFingerPrints(this.data.cgInfo.lockerId, this.data.cgInfo.superId, userInfo.userPassword, this.data.cgInfo.superId, '', this.data.cgInfo.authKey, '00000000', 'FFFFFFFF', '00', callback.commonKey, (callback) => { console.log(callback) }) }) }, // 蓝牙初始化 btntest1(e) { var event = e.currentTarget.dataset.i var that = this; this.data.event = event var deviceinfo = this.data.deviceinfo this.setData({ remotePasswordStatus:false }) if (deviceinfo.manufactureId == 201||deviceinfo.manufactureId == 221) { if (app.globalData.zgBlueStatus) { if (event == 0) { this.openTheDoor() } else if (event == 1) { this.addPassword() }else if (event == 3) { this.addFingerPrints() } else if (event == 6) { this.setData({ show: true }) }else if (event == 11) { this.setData({ showOne: true }) }else if (event == 12) { this.goPasswordList() } } else { that.goBlue() } } else if (deviceinfo.manufactureId == 101) { if (app.globalData.bleStatus == '蓝牙已连接') { if (event == 0) { this.btntest2() } else if (event == 1) { this.addPassword() }else if (event == 3) { this.btntest3() } else if (event == 6) { // this.setVoice() this.setData({ show: true }) } else if (event == 7) { wx.showModal({ title: "常开设置", cancelText: '关闭', confirmText: '开启', success: (res) => { if (res.confirm) { that.setOpen() } else if (res.cancel) { that.setOpen1() } } }) } } else { this.startconnect() } } }, goBlue() { var that = this wx.showLoading({ title: '连接中', }) console.log(this.data.deviceinfo.deviceNum, 'this.data.deviceinfo.deviceNum') ICINLocker.scanDevices(this.data.deviceinfo.deviceNum) .then((res) => { console.log(res) if (res.status == 0) { var deviceId = res.deviceId //成功找到蓝牙情况下进行锁连接 app.globalData.blueDeviceId = res.deviceId ICINLocker.connect(res.deviceId,false) // 此处 deviceId 存起来,当断开连接时使用 .then((res) => { if (res.status == 0) { clearInterval(that.data.timer) this.setData({ bleStatus: '蓝牙已连接', deviceId: deviceId }) app.globalData.zgBlueStatus = true wx.hideLoading() wx.showToast({ title: '连接成功', icon: "none", duration: 2000 }) if (this.data.event == 0) { this.openTheDoor() }else if(this.data.event == 1){ this.addPassword() } else if (this.data.event == 3) { this.addFingerPrints() } else if (this.data.event == 6) { this.setData({ show: true }) }else if(this.data.event == 11){ this.setData({ showOne: true }) }else if (event == 12) { this.goPasswordList() } } else { wx.hideLoading() var msg = '' switch (res.errCode) { case 10001: msg = '调用失败,请打开蓝牙!'; break; } wx.showToast({ title: msg, duration: 2000, icon: 'none' }) //此处处理返回值不为成功(0)的情况 } }).catch((res) => { wx.hideLoading() console.log(res, '失败') // 此处处理未能连接成功问题 }) } }) .catch((res) => { //此处处理未能连接到蓝牙的问题 if (res.status == 1) { if (res.statusReason.errCode == 10001) { wx.hideLoading() wx.showToast({ title: '请检查手机蓝牙和定位功能是否打开?', duration: 2000, icon: 'none' }) } else { if (!app.globalData.zgBlueStatus && that.data.bluestatus) { that.goBlue() } else { wx.hideLoading() } } } }) }, /** * *设置音量 * @param {门锁ID} _lockId * @param {用户ID – 最多20字节} _userId * @param {r 声音选项 00: 静音 01: 低音 02:高音} _action * @param _commonKey * @param {回调方法} callback **/ // 设置音量 setVolume1(volume) { wx.showLoading({ title: "正在发送...", }); setTimeout(() => { wx.hideLoading() }, 1000); let cmd = 0xF2 // let dn = util.stringToUint8ArrayWithPadding(deviceNum, 20, 0xff) let length = 2 let b = new Uint8Array(length) b[0] = cmd b[1] = volume; app.globalData.ble.send(cmd, b, function (res) { }) }, setVolume(volume) { ICINLocker.getSignKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, (callback) => { console.log(callback, '-----') if (callback.status == '00') { ICINLocker.getCommonKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, callback.signKey, (callback1) => { console.log(callback1, '2222222') if (callback1.status == '00') { ICINLocker.setVolume(this.data.cgInfo.lockerId, this.data.cgInfo.superId, volume, callback1.commonKey, (callback2) => { console.log(callback2, '333333333') if (callback2.status == '00') { wx.hideLoading() wx.showToast({ title: '设置成功', duration: 2000, icon: 'none' }) } else { wx.hideLoading() wx.showToast({ title: '设置失败', duration: 2000, icon: 'none' }) } }) } else { wx.hideLoading() wx.showToast({ title: '设置失败', duration: 2000, icon: 'none' }) } }) } else { wx.hideLoading() wx.showToast({ title: '设置失败', duration: 2000, icon: 'none' }) } }); }, //设置常开 setOpen() { wx.showLoading({ title: "正在开启...", }); setTimeout(() => { wx.hideLoading() }, 1000); let cmd = 0xF3 // let dn = util.stringToUint8ArrayWithPadding(deviceNum, 20, 0xff) let length = 2 let b = new Uint8Array(length) b[0] = cmd b[1] = 1; app.globalData.ble.send(cmd, b, function (res) {}) }, setOpen1() { wx.showLoading({ title: "正在关闭...", }); setTimeout(() => { wx.hideLoading() }, 1000); let cmd = 0xF3 // let dn = util.stringToUint8ArrayWithPadding(deviceNum, 20, 0xff) let length = 2 let b = new Uint8Array(length) b[0] = cmd b[1] = 0; app.globalData.ble.send(cmd, b, function (res) {}) }, //设置音量 setVoice() { }, startconnect() { //if(checkWechatVersion()) // { wx.showLoading({ title: "连接中" }) var deviceinfo = this.data.deviceinfo const ble = new BLE(this.data.deviceinfo.deviceNum, emitter) app.globalData.ble = ble this.watchBLE() app.globalData.ble.init() // } }, watchBLE() { var that = this var deviceinfo = this.data.deviceinfo if (app.globalData.ble) { app.globalData.ble.listen(res => { if (res.type == 'connect') { if (res.data == "未打开适配器") { wx.hideLoading() wx.showToast({ title: '请检查手机蓝牙和定位功能是否打开?', duration: 2000, icon: 'none' }) } else { if (res.data == '蓝牙已连接') { this.data.info = res.data app.globalData.bleStatus = res.data if (this.data.event == 0) { this.btntest2() } else if(this.data.event == 1){ this.addPassword() }else if (this.data.event == 3) { this.btntest3() } else if (this.data.event == 6) { // this.setVoice() this.setData({ show: true }) } else if (this.data.event == 7) { wx.showModal({ title: "常开设置", cancelText: '关闭', confirmText: '开启', success: (res) => { if (res.confirm) { that.setOpen() } else if (res.cancel) { that.setOpen1() } } }) } } } } }) } }, // 添加密码 addPassword(){ this.setData({ showTwo:true }) }, async getPassWordMehods(){ var that=this let deviceinfoList = wx.getStorageSync('deviceinfo') var data = { id:deviceinfoList.cardId, signature:wx.getStorageSync('signature'), }; WXAPI.tsGetCertificate(data).then(res=>{ if(res.success){ var dataOne=[],dataTwo=[] res.data.map(li=>{ if(li.type == 14){ li.content=JSON.parse(li.content) dataOne.push(li) }else if(li.type == 13){ li.content=JSON.parse(li.content) dataTwo.push(li) } }) this.setData({ passwordList:dataOne, NfcList:dataTwo }) }else{ wx.showToast({ title: '获取失败', duration:'2000', mask:true, icon:'none' }) } }) }, async sendPassword() { var addpassword = this.data.addpassword.toString() if(addpassword.length!=6){ wx.showToast({ title: '格式错误,密码为6位数字!', icon:'none' }) return false; } var time3 = new Date(this.data.starttime) var time4 = new Date(this.data.endtime) var passwordStartTimecontrast = time3.getTime() / 1000 var passwordEndTimecontrast = time4.getTime() / 1000 let passwordStatus = this.data.passwordStatus console.log(time3,time4,passwordStartTimecontrast,passwordEndTimecontrast) // await this.getPassWordMehods(this.data.addpassword,this.data.deviceinfo.cardId,14) let paaaWd=this.data.passwordList.filter(lt=> lt.content.password == this.data.addpassword) if(paaaWd.length > 0){ passwordStatus = false }else{ passwordStatus = true } if(this.data.addpassword==''){ wx.showToast({ title: '密码不能为空', mask:true, duration: 2000, icon: 'none' }) return } if(!passwordStatus){ wx.showToast({ title: '已存在该密码,请重输', duration: 2000, mask:true, icon: 'none' }) return } if (passwordStartTimecontrast > passwordEndTimecontrast) { wx.showToast({ title: '开始时间不能大于结束时间', duration: 2000, mask:true, icon: 'none' }) return } wx.showLoading({ title: '正在添加', mask:true, }) var _this = this var deviceinfo = this.data.deviceinfo if(this.data.remotePasswordStatus){ var pzname='',cardName='' pzname=_this.data.deviceinfo.name+'-远程-密码'+(_this.data.passwordList.length+1) cardName=_this.data.deviceinfo.name+'-远程-密码'+(_this.data.passwordList.length+1) let dataObject={ code: "zg/tempPassword", data: { lockerId: deviceinfo.deviceNum, imei: deviceinfo.imei, order: 6207, lockerUserId: JSON.parse(deviceinfo.info).userPassword, passwordCount: 255, keyId: JSON.parse(deviceinfo.info).userPassword, passwordStartTime: passwordStartTimecontrast, passwordEndTime: passwordEndTimecontrast, action: 1, password: addpassword, cardName: cardName, roomName: deviceinfo.roomName }, operateName:_this.data.deviceinfo.name, signature:wx.getStorageSync('signature'), cardId: deviceinfo.cardId, } WXAPI.sendCommandOne(dataObject).then(res=>{ if (res.success) { let dataPassword = { imei: deviceinfo.imei, deviceNum: deviceinfo.deviceNum, userTelephone: JSON.parse(deviceinfo.info).userTelephone, cardId: deviceinfo.cardId, userPassword: JSON.parse(deviceinfo.info).userPassword, password: addpassword, operateMode: 7, order: 6207, type: 4, passwordStartTime: passwordStartTimecontrast, passwordEndTime: passwordEndTimecontrast, is: false, cardName: cardName, roomName: deviceinfo.roomName, pzname: pzname, pass: false }; var data = { cardId: _this.data.deviceinfo.cardId, content: JSON.stringify(dataPassword), //operateMode:NFC-10、把人员添加到凭证-1 deviceNum: _this.data.deviceinfo.deviceNum, type: 4, imei: _this.data.deviceinfo.imei, serial: res.data.serialNumber, startTime: passwordStartTimecontrast, endTime: passwordEndTimecontrast, signature:wx.getStorageSync('signature'), }; var datalist = { cardId: _this.data.deviceinfo.cardId, content: JSON.stringify(dataPassword), //operateMode:NFC-10、把人员添加到凭证-1 type: 14, startTime: passwordStartTimecontrast, endTime: passwordEndTimecontrast, signature:wx.getStorageSync('signature'), }; console.log(datalist,'密码11') WXAPI.tsAddCertificate(datalist).then(res6 => { console.log(datalist,'密码22') }) wx.showToast({ title: '下发成功', icon: 'none', mask:true, duration: 2000 }) WXAPI.tsAddCertificate(data).then(res3 => { if (res3.success) { // var updatedata = { // id: res3.data, // status:1, // signature:wx.getStorageSync('signature'), // }; // WXAPI.editCertificate(updatedata).then((res2) => { // }); _this.getPassWordMehods() _this.setData({ showTwo: false }) wx.hideLoading() wx.showToast({ title: '下发成功', icon: 'none', mask:true, duration: 2000 }) } else { wx.hideLoading() wx.showToast({ title: '添加失败', mask:true, icon: 'none', duration: 2000 }) } }) }else{ wx.showToast({ title: `${res.msg}`, duration:2000, icon:'none' }) } }) }else{ if (deviceinfo.manufactureId == 101) { var time1 = moment(this.data.starttime).format("YYYYMMDDHHmmss") var time2 = moment(this.data.endTime).format("YYYYMMDDHHmmss") var time3 = new Date(_this.data.starttime.replace(/-/g, '/')) var time4 = new Date(_this.data.endTime.replace(/-/g, '/')) var passwordStartTime = time3.getTime() / 1000 var passwordEndTime = time4.getTime() / 1000 let info = JSON.parse(_this.data.deviceinfo.info) var data1 = { managerTelephone: "18270949468", managerPassword: '202108', userTelephone: info.userTelephone, userPassword: info.userPassword, password: this.data.addpassword, startTime: time1, endTime: time2, } var timestamp = moment().format("x") bleall.startFp1_63(data1.managerTelephone, data1.managerPassword, data1.userTelephone, data1.userPassword, data1.password, data1.startTime, data1.endTime, 7, timestamp, function (res) { console.log(res) if (res.success) { var pzname='',cardName='' pzname=_this.data.deviceinfo.name+'-蓝牙-密码'+(_this.data.passwordList.length+1) cardName=_this.data.personLi.name+'-蓝牙-密码'+(_this.data.passwordList.length+1) var str = { // cardId: this.personInfo.cardId, pzname:pzname, imei: _this.data.deviceinfo.imei, password: _this.data.addpassword, userTelephone: info.userTelephone, operateMode: 7, userPassword: info.userPassword, passwordStartTime: time1, passwordEndTime: time2, is: false, pass:true } var data3 = { code: "ble/operateUserInfo", signature:wx.getStorageSync('signature'), cardId:_this.data.deviceinfo.cardId, data: { deviceNum: _this.data.deviceinfo.deviceNum, imei: _this.data.deviceinfo.imei, userTelephone: info.userTelephone, userPassword: info.userPassword, password: _this.data.password, userStartTime: time1, userEndTime: time2, passwordStartTime: time1, passwordEndTime: time2, operateMode: 7, order: 6207, timestamp: timestamp, managerTelephone: '18270949468', managerPassword: '202108', passwordLength: 10, permission: 4294967295, times: 255, recycleTime: "65535", roomName: _this.data.deviceinfo.roomName, cardName: cardName, } } WXAPI.sendCommandOne(data3).then(res3 => { if (res3.success) { var data4 = { result: 1, serial: res3.data.serialNumber } WXAPI.updatePush(data4).then(res4 => { }) var data = { cardId: _this.data.deviceinfo.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 deviceNum: _this.data.deviceinfo.deviceNum, type: 4, imei: _this.data.deviceinfo.imei, serial: res3.data.serialNumber, startTime: passwordStartTime, endTime: passwordEndTime, signature:wx.getStorageSync('signature'), }; var datalist = { cardId: _this.data.deviceinfo.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 type: 14, startTime: passwordStartTime, endTime: passwordEndTime, signature:wx.getStorageSync('signature'), }; console.log(datalist,'密码11') WXAPI.tsAddCertificate(datalist).then(res6 => { console.log(datalist,'密码22') }) WXAPI.tsAddCertificate(data).then(res3 => { if (res3.success) { var updatedata = { id: res3.data, status:1, signature:wx.getStorageSync('signature'), }; WXAPI.editCertificate(updatedata).then((res2) => { }); _this.getPassWordMehods() _this.setData({ showTwo: false }) wx.hideLoading() wx.showToast({ title: '添加成功', icon: 'none', mask:true, duration: 2000 }) } else { wx.hideLoading() wx.showToast({ title: '添加失败', mask:true, icon: 'none', duration: 2000 }) } }) } else { wx.showToast({ title: res3.msg, mask:true, icon: 'none', duration: 2000 }) } }) }else{ wx.hideLoading() if (res.data == "蓝牙功能暂不支持") { _this.startconnect() }else{ wx.showToast({ title: '下发失败', mask:true, duration: 2000, icon: "none" }) } } }) }else if(deviceinfo.manufactureId == 201||deviceinfo.manufactureId == 221){ var cgInfo = this.data.cgInfo console.log(passwordStartTimecontrast,passwordEndTimecontrast) var passwordStartTime = passwordStartTimecontrast var passwordEndTime = passwordEndTimecontrast var pzname='',cardName='' console.log(_this.data.passwordList,_this.data.deviceinfo) pzname=_this.data.deviceinfo.name+'-蓝牙-密码'+(_this.data.passwordList.length+1) cardName=_this.data.deviceinfo.name+'-蓝牙-密码'+(_this.data.passwordList.length+1) let info = JSON.parse(_this.data.deviceinfo.info) var dataPasswod = { code: "zg/tempPassword", cardId:deviceinfo.cardId, data: { lockerId: deviceinfo.deviceNum, imei: deviceinfo.imei, passwordCount: 255, lockerUserId: info.userPassword, keyId: info.userPassword, passwordStartTime: passwordStartTime, passwordEndTime: passwordEndTime, order: 6207, action: 1, password: this.data.addpassword, type: 1, roomName: this.data.deviceinfo.roomName, cardName: cardName, operateName:_this.data.deviceinfo.name }, signature:wx.getStorageSync('signature'), } console.log(dataPasswod) WXAPI.sendCommandOne(dataPasswod).then(res => { console.log(res, '获取索引') if (res.success) { var pwdNo = res.data.index var passwordIndex = res.data.index // var str = res.data.index pwdNo = pwdNo.toString(16) if (pwdNo.length < 2) { pwdNo='0'+pwdNo } var startTime = passwordStartTime.toString(16).toUpperCase() var endTime = passwordEndTime.toString(16).toUpperCase() console.log(startTime,endTime) info.startTime=startTime info.endTime=endTime info.pwdNo=pwdNo info.password=_this.data.addpassword methods.bluetoothOperation_ZH(cgInfo,info,3).then(result=>{ console.log(result) if (result.status == '00') { var datacom = { code: "zg/bleSendVoucherReply", signature:wx.getStorageSync('signature'), cardId:deviceinfo.cardId, data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: passwordIndex, type: 7, result: 1, operateName:_this.data.deviceinfo.name } } var str = { // cardId: this.personInfo.cardId, imei: deviceinfo.imei, pzname:pzname, password: _this.data.addpassword, userTelephone: info.userTelephone, operateMode: 7, userPassword: info.userPassword, passwordStartTime: passwordStartTime, passwordEndTime: passwordEndTime, is: false, pass:true } var data = { cardId: deviceinfo.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 deviceNum: deviceinfo.deviceNum, type: 4, imei: deviceinfo.imei, serial: res.data.serialNumber, startTime: passwordStartTime, endTime: passwordEndTime, signature:wx.getStorageSync('signature'), }; var datalist = { cardId: deviceinfo.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 type: 14, startTime: passwordStartTime, endTime: passwordEndTime, signature:wx.getStorageSync('signature'), }; console.log(datalist,'密码11') WXAPI.tsAddCertificate(datalist).then(res6 => { console.log(datalist,'密码22',res6) }) console.log(data, '添加凭证') WXAPI.tsAddCertificate(data).then(res3 => { if (res3.success) { var updatedata = { id: res3.data, status:1, signature:wx.getStorageSync('signature'), }; WXAPI.editCertificate(updatedata).then((res2) => { }); WXAPI.sendCommandOne(datacom).then(res2 => { if (res2.success) {} }) console.log(res3, '添加凭证成功') _this.setData({ show: false, showTwo:false }) _this.getPassWordMehods() wx.hideLoading() wx.showToast({ title: '添加成功', mask:true, icon: 'none', duration: 2000 }) } else { wx.hideLoading() wx.showToast({ title: '添加失败', mask:true, icon: 'none', duration: 2000 }) } }) } else { wx.showToast({ title: '添加失败', mask:true, icon: 'none', duration: 2000 }) var datacom = { code: "zg/bleSendVoucherReply", signature:wx.getStorageSync('signature'), cardId:deviceinfo.cardId, data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: res.data.index, type: 7, result: 0 } } WXAPI.sendCommandOne(datacom).then(res2 => { console.log(res2, '失败') _this.setData({ show: false }) }) } }) // .catch(err=>{ // wx.hideLoading() // wx.showToast({ // title: '添加失败', // icon: 'none', // mask:true, // duration: 2000 // }) // var datacom = { // code: "zg/bleSendVoucherReply", // signature:wx.getStorageSync('signature'), // data: { // lockerId: deviceinfo.deviceNum, // serialNumber: res.data.serialNumber, // index: res.data.index, // type: 7, // result: 0 // } // } // WXAPI.sendCommandOne(datacom).then(res2 => { // console.log(res2, '失败') // _this.setData({ // show: false // }) // }) // }) } else { wx.showToast({ title: res.msg, duration: 2000, mask:true, icon: 'none' }) } }) } } }, closeblue() { app.globalData.ble.close() this.data.info = '' app.globalData.bleStatus = false this.data.bleStatus = false, this.data.respond = [] }, closeblue1() { // wx.showLoading({ // title: "正在停止...", // }); app.globalData.ble.close() // setTimeout(() => { // wx.hideLoading() // }, 1000); this.data.info = '' app.globalData.bleStatus = false this.data.bleStatus = false, this.data.respond = [] }, btntest3(event) { var that = this let deviceNum = that.data.deviceinfo.deviceNum this.data.backstatus = true that.startFp_29(deviceNum, 0x03) // setTimeout(() => { // that.getcartcount() // }, 300) }, btntest2(event) { var that = this let userTelephone = "18270949468" //JSON.parse(this.data.deviceinfo.info).userTelephone let userPassword = "202108" //JSON.parse(this.data.deviceinfo.info).userPassword let pwd = "2021110309" //JSON.parse(this.data.deviceinfo.info).userPassword let openLockType = 2 var userInfo=wx.getStorageSync('deviceinfo') var timestamp = moment().format("x") bleall.openLock(userTelephone, userPassword, pwd, openLockType, timestamp, function (res) { if (res.success) { var data = { code: "ld/bleUnlockRecord", signature:wx.getStorageSync('signature'), cardId:that.data.deviceinfo.cardId, data: { deviceNum: that.data.deviceNum, userTelephone: userTelephone, password: userPassword, roomId:that.data.deviceinfo.roomId, roomName:that.data.deviceinfo.roomName, cardName:userInfo.name, } } WXAPI.sendCommandOne(data).then(res => { }) } if (res.data == "蓝牙功能暂不支持") { wx.showToast({ title: '重新连接蓝牙中', duration: 2000, icon: "none" }) that.startconnect() } }) }, openLock(userTelephone, userPassword, pwd, openLockType) { wx.showLoading({ title: "正在发送...", }); setTimeout(() => { wx.hideLoading() }, 1000); let cmd = 0x41 console.log(util, userTelephone) let ut = util.stringToUint8Array(userTelephone) let up = util.stringToUint8Array(userPassword) let p = util.hexStringToBytesWithPadding(pwd, 10, 0xff) let length = 1 + 11 + 6 + 10 + 1 let b = new Uint8Array(length) b[0] = cmd b.set(ut, 1) b.set(up, 12) b.set(p, 18) b[28] = openLockType console.log(b) app.globalData.ble.send(cmd, b, length) }, //远程开锁 remoteUnlocking() { if (this.data.info == '蓝牙已连接') { this.closeblue1() } var str2 = { imei: this.data.deviceinfo.imei, openLockType: 2, is: true, }; WXAPI.openLock(str2).then(res => { if (res.data.success) { wx.showToast({ title: "操作成功", icon: "none", duration: 2000 }) } }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { app.globalData.zgBlueStatus = false // this.btntest1() }, AddressPermissions() { wx.openBluetoothAdapter({ success: function (res) { console.log('蓝牙已开启!'); }, fail: function (e) { console.log(e) wx.showToast({ title: '请打开蓝牙!', duration: 2000, icon: 'none' }) } }); ICINLocker.getLocationPermission().then((res) => { if (res.status == 0) {} else { // 连接出现问题 } }).catch((res) => { //处理未能获得地理位置情况 wx.showToast({ title: '请打开微信定位功能!', duration: 2000, icon: 'none' }) }) }, /** * 生命周期函数--监听页面显示 */ onShow: function () { var deviceinfo = wx.getStorageSync('deviceinfo') this.setData({ deviceinfo:deviceinfo, bleStatus: app.globalData.bleStatus }) }, /** * 生命周期函数--监听页面隐藏 */ /** * 生命周期函数--监听页面卸载 */ onUnload: function () { if (app.globalData.zgBlueStatus) { ICINLocker.disConnect(app.globalData.blueDeviceId); this.onReady() } this.setData({ bluestatus: false }) this.closeblue() }, onHide() { this.closeblue() }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { // this.AddressPermissions() var deviceinfo = wx.getStorageSync('deviceinfo') app.globalData.deviceNum = deviceinfo.deviceNum var userInfo1 = wx.getStorageSync('userInfo') if (deviceinfo.manufactureId == 201|| deviceinfo.manufactureId == 221) { var data3 = { code: "zg/bleRegisterInfo", signature:wx.getStorageSync('signature'), cardId:deviceinfo.cardId, data: { lockerId: deviceinfo.deviceNum } } WXAPI.sendCommandOne(data3).then(res1 => { if (res1.success) { wx.setStorageSync('cgInfo', res1.data) this.setData({ cgInfo: res1.data }) } else { } }) } if (deviceinfo.roomId) { if (userInfo1.type != 3) { var data2 = { q: JSON.stringify({ id: deviceinfo.roomId }), orderBy: "createTime", orderType: 'desc' } WXAPI.getSiteTenant(data2).then(res1 => { if (res1.data.list.length > 0) { var array = res1.data.list.reverse() wx.setStorageSync('info', array[0]) deviceinfo.info = array[0].info this.setData({ deviceinfo: deviceinfo }) } else { wx.showToast({ title: "还未下发人员,请先下发人员", duration: 2000, icon: 'none' }) } }) } else if (userInfo1.type == 3) { this.setData({ deviceinfo: deviceinfo }) } } else { wx.navigateTo({ url: "../index/index" }) } this.setData({ info: app.globalData.bleStatus, deviceinfo: deviceinfo }) wx.stopPullDownRefresh() }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })