// pages/addperson/addperson.js const app = getApp() const WXAPI = require('../../utils/request') import ICINLocker from "../../utils/ICINPakage/ICINLocker" var util = require('../../utils/util'); var util1 = require('../../utils/util1'); const config = require('../../config') const plugin = requirePlugin("myPlugin") var methods = require('../../utils/methods'); var md5 = require('../../utils/md5.js'); var bleall = require('../../utils/bleall'); import moment from "../../utils/moment" import { BLE } from "../../utils/btls/ble"; const emitter = app.globalData.emitter 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(','); } function CurentTime() { var now = new Date(); var year = now.getFullYear(); //年 var month = now.getMonth() + 1; //月 var day = now.getDate(); //日 var hh = now.getHours(); //时 var mm = now.getMinutes(); //分 var clock = year + "-"; if (month < 10) clock += "0"; clock += month + "-"; if (day < 10) clock += "0"; clock += day + " "; // if (hh < 10) // clock += "0"; // clock += '00' + ":"; // // if (mm < 10) clock += '0'; clock += '00:00:00'; return (clock); } function CurentTime1() { var now = new Date(); var year = now.getFullYear() + 3; //年 var month = now.getMonth() + 1; //月 var day = now.getDate(); //日 var hh = now.getHours(); //时 var mm = now.getMinutes(); //分 var clock = year + "-"; if (month < 10) clock += "0"; clock += month + "-"; if (day < 10) clock += "0"; clock += day + " "; // if (hh < 10) // clock += "0"; // clock += hh + ":"; // if (mm < 10) clock += '0'; // clock += mm; clock += '23:59:59'; return (clock); } var date = new Date() var isConnected = false var connectedDeviceId = '' var basecode = 29283991 var lockId = 1 var lockManagerId = 1 var lockMac = '' var isInitReady = false var lockModel var lockDevice var taskId = 0 var pincode = -1 var pincodeIndex = -1 var rfCardId = -1 var rfCardIndex = -1 var fingerprintIndex = -1 var passwordLiAll = { id: '' } var isLockLogin = false var serialNumber = '' let letterRandom = [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ]; function randomMethods() { let str = '' for (let i = 0; i < 8; i++) { str += letterRandom[Math.round(Math.random() * (letterRandom.length - 1))]; } return str } Page({ /** * 页面的初始数据 */ data: { isBindLock: false, isPincodeAdd: false, isRfCardAdd: false, isFingerprintAdd: false, isUnloked: false, isMuted: false, isNbEnable: true, lockModel: 0, lock: {}, isSearch: app.globalData.isSearch, activeKey: 0, NfcList: [], FpList: [], passwordList: [], show: false, datetimerange: [CurentTime(), CurentTime1()], minDate: '', minDate1: '', endtime: '', starttime: '', addIndex: 0, pzname: '', current: '', currentIndex: '', fingerprintId: '', backstatus: false, radioDetil: '', passwordStatus: true, items: [{ value: '0', name: '左手大拇指', checked: false }, { value: '1', name: '左手食指', checked: false }, { value: '2', name: '右手大拇指', checked: false }, { value: '3', name: '右手食指', checked: false } ], showLoading: false, requestSatatus: true, password: '' }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var cgInfo = wx.getStorageSync('cgInfo') var deviceinfo = wx.getStorageSync('deviceinfo') var personLi = wx.getStorageSync('personLi') console.log("242",personLi); let minDate = moment(personLi.startTime).format('YYYY-MM-DD HH:mm:ss') let minDate1 = moment(personLi.endTime).format('YYYY-MM-DD HH:mm:ss') // let minDate = wx.getStorageSync('minDate') // let minDate1 = wx.getStorageSync('minDate1') this.setData({ cgInfo: cgInfo, minDate, minDate1, starttime: minDate, endtime: minDate1, deviceinfo: deviceinfo, personLi: personLi, isSearch: false }) this.getPassword() this.getNfc() this.getCarId() this.getFp() if (deviceinfo.manufactureId == 1201) { this.searchDevicesMethods() } else if (deviceinfo.manufactureId == 101) { app.watch(this.getcartcount, 'backdata') app.watch(this.fingerprintFun, 'fingerprintId') } if(deviceinfo.bluetoothMac){ let superAdmin = [] var superAdminIdlist = deviceinfo.bluetoothMac.slice(deviceinfo.bluetoothMac.length - 11, deviceinfo.bluetoothMac.length).split(":").join("") for (let i = 0; i < superAdminIdlist.length; i++) { if (superAdminIdlist[i] >= 0 && superAdminIdlist[i] <= 9) { superAdmin.push(superAdminIdlist[i]) } else { let adminid = superAdminIdlist.charCodeAt(i) superAdmin.push(adminid) } } let superAdminId = superAdmin.join('').slice(superAdmin.length - 8, superAdmin.length) basecode = superAdminId console.log(basecode, "basecode"); } }, // 指纹选择 radioChange(e) { var personLi = wx.getStorageSync('personLi') var pzname = '' if (e.detail.value == 0) { pzname = "左手大拇指" } else if (e.detail.value == 1) { pzname = "左手食指" } else if (e.detail.value == 2) { pzname = "右手大拇指" } else if (e.detail.value == 3) { pzname = "右手食指" } this.setData({ radioDetil: pzname }) this.getfingerprintMrhods(pzname, personLi.cardId, 11) }, getfingerprintMrhods(pzname, id, type) { var that = this var items = [{ value: '0', name: '左手大拇指', checked: false }, { value: '1', name: '左手食指', checked: false }, { value: '2', name: '右手大拇指', checked: false }, { value: '3', name: '右手食指', checked: false } ] var data = { pageNum: 0, pageSize: 0, orderBy: "create_at desc", q: { cardId: id, types: type, deviceNum: this.data.deviceinfo.deviceNum, inStatus: '0,1,702' }, }; WXAPI.getCertificates(data).then(res => { var dataOne = util.zlib_unzip(res.data) if (res.success) { dataOne.map(li => { var content = JSON.parse(li.content) if (content.fingerprintAlias == pzname) { wx.showModal({ title: '提示', content: '该指纹已存在,请选择其他', success(res1) { if (res1.confirm) { console.log('用户点击确定') that.setData({ items, radioDetil: '' }) } else if (res1.cancel) { console.log('用户点击取消') that.setData({ items, radioDetil: '' }) } } }) } }) } else { wx.showToast({ title: '获取失败', mask: true, duration: '2000', icon: 'none' }) } }) }, fingerprintFun() { this.data.fingerprintId = app.globalData.fingerprintId }, getcartcount(val) { var that = this var _this = this let deviceNum = that.data.deviceinfo.deviceNum var timestamp = moment().format("x") wx.showLoading({ title: '添加指纹中', mask: true }) if (app.globalData.backdata == 3 && this.data.backstatus) { bleall.startFp_29(deviceNum, 0x02, timestamp, function (res) {}) } else if (app.globalData.backdata == 2 && this.data.backstatus) { bleall.startFp_29(deviceNum, 0x01, timestamp, function (res) {}) } else if (app.globalData.backdata == 1 && this.data.backstatus) { console.log(app.globalData.backdata, this.data.backstatus, 'app.globalData.backdata, this.data.backstatus', this.data.fingerprintId) if (this.data.fingerprintId != 255) { var info = JSON.parse(this.data.personLi.info) var time1 = moment(this.data.datetimerange[0]).format("YYYYMMDDHHmmss") var time2 = moment(this.data.datetimerange[1]).format("YYYYMMDDHHmmss") var time3 = new Date(this.data.datetimerange[0].replace(/-/g, '/')) var time4 = new Date(this.data.datetimerange[1].replace(/-/g, '/')) var passwordStartTime = time3.getTime() / 1000 var passwordEndTime = time4.getTime() / 1000 var data = { managerTelephone: "18270949468", managerPassword: "202108", userTelephone: info.userTelephone, userPassword: info.userPassword, startTime: time1, endTime: time2 } console.log(data, this.data.fingerprintId) // if(app.globalData.fingerprintId != -1){ // setTimeout(() => { // app.globalData.backdata = -1 this.setData({ backstatus: false }) let fingerprintId = '' console.log(_this.data.fingerprintId, typeof (_this.data.fingerprintId)) if (Number(_this.data.fingerprintId) < 9) { fingerprintId = '0' + _this.data.fingerprintId.toString(16) } else { fingerprintId = _this.data.fingerprintId.toString(16) } let deviceinfo = that.data.deviceinfo bleall.startFp_63(data.managerTelephone, data.managerPassword, data.userTelephone, data.userPassword, data.startTime, data.endTime, 16, this.data.fingerprintId, timestamp, function (res) { console.log(res, 'resres') if (res.success) { wx.hideLoading() var cardName = '', pzname = '' if (that.data.pzname) { cardName = that.data.personLi.name + '-蓝牙-' + that.data.pzname pzname = '蓝牙-' + that.data.pzname } else { cardName = that.data.personLi.name + '-蓝牙-指纹' + that.data.FpList.length + 1 pzname = '蓝牙-指纹' + that.data.FpList.length + 1 } var str = { // cardId: this.personInfo.cardId, imei: _this.data.deviceinfo.imei, pzname: pzname, password: '', userTelephone: info.userTelephone, operateMode: 16, fingerprintAlias: _this.data.radioDetil, userPassword: info.userPassword, passwordStartTime: time1, passwordEndTime: time2, is: false, pass: true } var data3 = { code: "ble/operateUserInfo", data: { deviceNum: deviceinfo.deviceNum, imei: deviceinfo.imei, userTelephone: info.userTelephone, userPassword: info.userPassword, password: fingerprintId, userStartTime: time1, userEndTime: time2, passwordStartTime: time1, passwordEndTime: time2, operateMode: 16, order: 6216, timestamp: timestamp, managerTelephone: '18270949468', managerPassword: '202108', passwordLength: 10, permission: 4294967295, times: 255, recycleTime: "65535", roomName: _this.data.deviceinfo.roomName, cardName: cardName, } } console.log(data3, 'pppppp') WXAPI.sendCommand(data3).then(res3 => { console.log(res3, 'resres3') if (res3.success) { var data4 = { result: 1, serial: res3.data.serialNumber } WXAPI.updatePush(data4).then(res4 => { }) var data6 = { result: 1, serial: res3.data.serialNumber, face: fingerprintId } WXAPI.editPushBySerial(data6).then(res4 => { }) var data = { cardId: _this.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 deviceNum: _this.data.deviceinfo.deviceNum, type: 1, imei: _this.data.deviceinfo.imei, serial: res3.data.serialNumber, startTime: passwordStartTime, endTime: passwordEndTime, }; var datalist = { cardId: _this.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 type: 11, startTime: passwordStartTime, endTime: passwordEndTime, }; WXAPI.addCertificates(datalist).then(res6 => {}) console.log(data, '添加凭证') WXAPI.addCertificates(data).then(res4 => { if (res4.success) { var updatedata = { id: res4.data, status: 1 }; WXAPI.updateCertificates(updatedata).then((res2) => {}); console.log(res3, '添加凭证成功') _this.getFp() _this.setData({ show: 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.hideLoading() wx.showToast({ title: res3.msg, mask: true, icon: 'none', duration: 2000 }) } }) } else { wx.hideLoading() wx.showToast({ title: '添加失败', duration: 2000, icon: 'none' }) } if (res.data == "蓝牙功能暂不支持") { _this.startconnect() } }) // }, 200) // } } else { wx.hideLoading() wx.showToast({ title: '添加失败', mask: true, duration: 2000, icon: 'none' }) } } }, // 删除开锁方式 delMode(e) { var current = e.currentTarget.dataset.current var index = e.currentTarget.dataset.index var cgInfo = this.data.cgInfo var deviceinfo = this.data.deviceinfo this.setData({ current: current, currentIndex: index }) if (deviceinfo.manufactureId == 101) { if (current == 1) { this.delPassword1(index) } else if (current == 2) { this.delNfc1(index) } else if (current == 3) { this.delFp1(index) } } else if (deviceinfo.manufactureId == 201 || deviceinfo.manufactureId == 221) { if (current == 1) { this.delPassword(index) } else if (current == 2) { this.delNfc1(index) } else if (current == 3) { this.delFp(index) } } else if (deviceinfo.manufactureId == 1201 || deviceinfo.manufactureId == 1241) { if (this.data.isSearch) { if (current == 1) { this.delPasswordLwj(index) } else if (current == 2) { this.delNfcLwj(index) } else if (current == 3) { this.delFpLwj(index) } }else{ this.searchDevicesMethods() } } }, getNFCIndexLwj(index, callback) { var data = { q: JSON.stringify({ cardId: this.data.personLi.cardId, inStatus: "1", types: '3', deviceNum: this.data.NfcList[index].deviceNum, // this.data.NfcList[index].serial, // result:1 }), pageNum: 1, pageSize: 10, orderBy: "create_at desc" }; WXAPI.getCertificates(data).then(res => { if (res.success) { var dataOne = util.zlib_unzip(res.data) console.log(dataOne, 'ddd') callback(dataOne) } else { wx.showToast({ title: '获取失败', mask: true, duration: 2000, icon: 'none' }) } }) }, getNFCIndex(index, callback) { var data = { q: JSON.stringify({ serial: this.data.NfcList[index].serial, result: 1 }), pageNum: 1, pageSize: 10, }; WXAPI.getDeviceResult(data).then(res => { if (res.success) { var dataOne = util.zlib_unzip(res.data) console.log(dataOne, 'ddd') callback(dataOne) } else { wx.showToast({ title: '获取失败', mask: true, duration: 2000, icon: 'none' }) } }) }, getFpIndex(index, callback) { var data = { q: JSON.stringify({ serial: this.data.FpList[index].serial, }), pageNum: 1, pageSize: 10, }; WXAPI.getDeviceResult(data).then(res => { if (res.success) { var dataOne = util.zlib_unzip(res.data) console.log(dataOne, 'ddd') callback(dataOne) } else { wx.showToast({ title: '获取失败', duration: 2000, mask: true, icon: 'none' }) } }) }, addPassword(e) { this.setData({ show: true, current: e.currentTarget.dataset.current, addIndex: e.currentTarget.dataset.addindex }) }, onChange1(event) { // event.detail 为当前输入的值 this.setData({ password: event.detail }) }, onChange2(event) { // event.detail 为当前输入的值 this.setData({ pzname: event.detail }) }, bindDateChange: function (e) { var str = e.detail.value + " 00:00:00" this.data.datetimerange[0] = str this.setData({ starttime: str, }) }, bindDateChange1: function (e) { var str = e.detail.value + " 23:59:59" this.data.datetimerange[1] = str this.setData({ endtime: str }) }, delNfc1(index) { wx.showLoading({ title: '正在删除', mask: true }) var cgInfo = this.data.cgInfo var personLi = this.data.NfcList[index] var deviceinfo = this.data.deviceinfo var info = JSON.parse(personLi.content) var personInfo = JSON.parse(this.data.personLi.info) var _this = this this.getNFCIndex(index, function (data) { console.log(data, 'datatdatata', data[0]) if (data.length > 0 && data[0].face != null) { var FPindex = data[0].face var dataPasswod = { code: "zg/cardOperate", data: { lockerId: deviceinfo.deviceNum, imei: deviceinfo.imei, lockerUserId: personInfo.userId, keyId: personInfo.userId, action: 2, taskStatus: 1, cardType: 50, cardNo: info.password, cardIndex: FPindex, startTime: personLi.startTime, endTime: personLi.endTime, order: 6212, type: 12, roomName: _this.data.deviceinfo.roomName, cardName: _this.data.personLi.name + personLi.pzname, } } WXAPI.sendCommand(dataPasswod).then(res => { console.log(res, '获取索引', FPindex) if (res.success) { var serialNumber = res.data.serialNumber var fingerNo = FPindex.toString(16) if (fingerNo.length == 1) { fingerNo = '0' + fingerNo } else { fingerNo = fingerNo } ICINLocker.getSignKey(cgInfo.lockerId, cgInfo.superId, cgInfo.superId, (callback) => { console.log(callback, fingerNo) if (callback.status == '00') { ICINLocker.getCommonKey(cgInfo.lockerId, cgInfo.superId, cgInfo.superId, callback.signKey, (callback1) => { console.log(callback1) if (callback1.status == '00') { var startTime = personLi.startTime.toString(16).toUpperCase() var endTime = personLi.endTime.toString(16).toUpperCase() console.log(cgInfo.lockerId, cgInfo.superId, personInfo.userId, personInfo.userId, fingerNo.toUpperCase(), '--', '01', callback.signKey, startTime, endTime, callback1.commonKey) ICINLocker.modifyRFCard(cgInfo.lockerId, cgInfo.superId, personInfo.userId, personInfo.userId, fingerNo.toUpperCase(), '', '01', callback.signKey, startTime, endTime, callback1.commonKey, ( callback2) => { console.log(callback2) if (callback2.status == '00') { var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: serialNumber, index: FPindex, type: 12, result: 1 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '成功----') }) wx.showToast({ title: '下发成功', mask: true, icon: 'none', duration: 2000 }) var data = { ids: [personLi.id] } wx.hideLoading() WXAPI.deleteCertificates(data).then(res1 => { if (res1.success) { _this.getNfc() wx.showToast({ title: '删除成功', mask: true, icon: 'none', duration: 2000 }) } else { 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", data: { lockerId: deviceinfo.deviceNum, serialNumber: serialNumber, index: FPindex, type: 12, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') }) } }) } else { wx.hideLoading() wx.showToast({ title: '删除失败', mask: true, icon: 'none', duration: 2000 }) var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: serialNumber, index: FPindex, type: 12, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') }) } }) } else { wx.hideLoading() wx.showToast({ title: '删除失败', mask: true, icon: 'none', duration: 2000 }) var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: serialNumber, index: FPindex, type: 12, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') }) } }) } else { wx.showToast({ title: res.msg, mask: true, icon: 'none', duration: 2000 }) } }) } else { wx.hideLoading() wx.showToast({ title: '删除失败', mask: true, duration: 2000, icon: 'none' }) } }) }, delNfcLwj(index) { wx.showLoading({ title: '正在删除', mask: true }) var personLi = this.data.NfcList[index] passwordLiAll = personLi var deviceinfo = this.data.deviceinfo var info = JSON.parse(personLi.content) var personInfo = JSON.parse(this.data.personLi.info) var _this = this this.getNFCIndexLwj(index, function (data) { if (data.length > 0) { let passwordIndex = info.index var dataPasswod = { code: "lwj/cardOperate", data: { lockerId: deviceinfo.deviceNum, lockerUserId: personInfo.userId, startTime: personLi.startTime, endTime: personLi.endTime, order: 6212, operateMode: 12, action: 2, cardNo: info.password, type: 12, cardName: _this.data.personLi.name, roomName: deviceinfo.roomName, cardIndex: info.index } } console.log(dataPasswod, 'dataPasswod', info) WXAPI.sendCommand(dataPasswod).then(res => { console.log(res, '获取索引') if (res.success) { rfCardIndex = res.data.index serialNumber = res.data.serialNumber rfCardId = info.password taskId = 62 _this.initBluetooth() } else { wx.hideLoading() wx.showToast({ title: res.msg, mask: true, icon: 'none', duration: 2000 }) } }) } else { wx.hideLoading() wx.showToast({ title: '删除失败', mask: true, duration: 2000, icon: 'none' }) } }) }, delFp1(index) { wx.showLoading({ title: '正在删除', mask: true }) var cgInfo = this.data.cgInfo var personLi = this.data.FpList[index] var deviceinfo = this.data.deviceinfo var info = JSON.parse(personLi.content) var person = this.data.personLi var _this = this this.getFpIndex(index, function (data) { if (data.length > 0) { var FPindex = data[0].face var timestamp = moment().format("x") var fingerprintId = '' if (Number(FPindex) < 9) { fingerprintId = '0' + FPindex.toString(16) } else { fingerprintId = FPindex.toString(16) } var data1 = { managerTelephone: "18270949468", managerPassword: '202108', userTelephone: info.userTelephone, userPassword: info.userPassword, password: fingerprintId, startTime: "20210813010101", endTime: "20680813010101" } bleall.startFp1_63(data1.managerTelephone, data1.managerPassword, data1.userTelephone, data1.userPassword, data1.password, data1.startTime, data1.endTime, 18, timestamp, function (res) { if (res.success) { var dataPasswod = { code: "ble/operateUserInfo", data: { deviceNum: deviceinfo.deviceNum, imei: deviceinfo.imei, userTelephone: info.userTelephone, userPassword: info.userPassword, password: fingerprintId, userStartTime: info.passwordStartTime, userEndTime: info.passwordEndTime, passwordStartTime: info.passwordStartTime, passwordEndTime: info.passwordEndTime, operateMode: 18, order: 6218, timestamp: timestamp, managerTelephone: '18270949468', managerPassword: '202108', passwordLength: 10, permission: 4294967295, times: 255, recycleTime: "65535", roomName: _this.data.deviceinfo.roomName, cardName: _this.data.personLi.name, } } var data = { ids: [personLi.id] } wx.hideLoading() WXAPI.deleteCertificates(data).then(res1 => { if (res1.success) { _this.getFp() wx.showToast({ title: '删除成功', mask: true, icon: 'none', duration: 2000 }) } else { wx.showToast({ title: '删除失败', mask: true, icon: 'none', duration: 2000 }) } }) WXAPI.sendCommand(dataPasswod).then(res1 => { console.log(res1, '获取索引') if (res1.success) { var data4 = { result: 1, serial: res1.data.serialNumber } WXAPI.updatePush(data4).then(res4 => { }) } else { wx.showToast({ title: res1.msg, mask: true, icon: 'none', duration: 2000 }) } }) } else { wx.hideLoading() } }) } else { wx.hideLoading() wx.showToast({ title: '获取指纹ID失败', mask: true, duration: 2000, icon: 'none' }) } }) }, delFpLwj(index) { console.log("删除指纹"); wx.showLoading({ title: '正在删除', mask: true }) var cgInfo = this.data.cgInfo var personLi = this.data.FpList[index] passwordLiAll = personLi var deviceinfo = this.data.deviceinfo var info = JSON.parse(personLi.content) var person = this.data.personLi var _this = this console.log(personLi, "personLi"); this.getFpIndex(index, function (data) { if (data.length > 0) { // 删除 var dataFP = { code: "lwj/fpOperate", data: { fpIndex: info.index, lockerId: deviceinfo.deviceNum, lockerUserId: info.userPassword, keyId: info.userPassword, operateMode: 18, order: 6218, roomName: deviceinfo.roomName, startTime: personLi.startTime, endTime: personLi.endTime, action: 2, cardName: personLi.name } } console.log(dataFP); WXAPI.sendCommand(dataFP).then(res => { console.log(res, "获取索引"); if(res.success){ // fingerprintIndex = res.data.index fingerprintIndex = JSON.parse(personLi.content).index serialNumber = res.data.serialNumber taskId = 72 _this.initBluetooth() }else{ wx.hideLoading() wx.showToast({ title: res.msg, mask: true, icon: 'none', duration: 2000 }) } }) } else { wx.hideLoading() wx.showToast({ title: '获取指纹ID失败', mask: true, duration: 2000, icon: 'none' }) } }) }, delFp(index) { wx.showLoading({ title: '正在删除', mask: true }) var cgInfo = this.data.cgInfo var personLi = this.data.FpList[index] var deviceinfo = this.data.deviceinfo var info = JSON.parse(personLi.content) var personInfo = JSON.parse(this.data.personLi.info) var _this = this this.getFpIndex(index, function (data) { if (data.length > 0) { var FPindex = data[0].face var dataPasswod = { code: "zg/fpOperate", data: { lockerId: deviceinfo.deviceNum, imei: deviceinfo.imei, lockerUserId: personInfo.userId, keyId: personInfo.userId, fingerId: FPindex, fingerType: '0', startTime: personLi.startTime, endTime: personLi.endTime, order: 6218, action: 2, type: 1, roomName: _this.data.deviceinfo.roomName, cardName: _this.data.personLi.name, } } WXAPI.sendCommand(dataPasswod).then(res => { console.log(res, '获取索引') if (res.success) { var fingerNo = FPindex.toString(16) if (fingerNo < 10) { fingerNo = '000' + fingerNo } else { fingerNo = '00' + fingerNo } ICINLocker.getSignKey(cgInfo.lockerId, cgInfo.superId, cgInfo.superId, (callback) => { console.log(callback) if (callback.status == '00') { ICINLocker.getCommonKey(cgInfo.lockerId, cgInfo.superId, cgInfo.superId, callback.signKey, (callback1) => { console.log(callback1) if (callback1.status == '00') { var startTime = personLi.startTime.toString(16).toUpperCase() var endTime = personLi.endTime.toString(16).toUpperCase() console.log(cgInfo.lockerId, cgInfo.superId, personInfo.userId, personInfo.userId, '01', fingerNo, '', callback.signKey, '00', startTime, endTime, callback1.commonKey, '-----') ICINLocker.modifyFingerPrints(cgInfo.lockerId, cgInfo.superId, personInfo.userId, personInfo.userId, '01', fingerNo, '', callback.signKey, '00', startTime, endTime, callback1.commonKey, ( callback2) => { console.log(callback2) if (callback2.status == '00') { var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: FPindex, type: 18, result: 1 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '成功----') }) wx.showToast({ title: '下发成功', mask: true, icon: 'none', duration: 2000 }) var data = { ids: [personLi.id] } wx.hideLoading() WXAPI.deleteCertificates(data).then(res1 => { if (res1.success) { _this.getFp() wx.showToast({ title: '删除成功', mask: true, icon: 'none', duration: 2000 }) } else { 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", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: FPindex, type: 18, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') }) } }) } else { wx.hideLoading() wx.showToast({ title: '删除失败', mask: true, icon: 'none', duration: 2000 }) var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: FPindex, type: 18, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') }) } }) } else { wx.hideLoading() wx.showToast({ title: '删除失败', mask: true, icon: 'none', duration: 2000 }) var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: FPindex, type: 18, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') }) } }) } else { var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: FPindex, type: 18, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') }) var data = { ids: [personLi.id] } wx.hideLoading() WXAPI.deleteCertificates(data).then(res1 => { if (res1.success) { _this.getFp() } }) wx.hideLoading() wx.showToast({ title: res.msg, mask: true, icon: 'none', duration: 2000 }) } }) } else { wx.hideLoading() wx.showToast({ title: '获取失败', mask: true, duration: 2000, icon: 'none' }) } }) }, delPassword1(index) { wx.showLoading({ title: '正在删除', mask: true }) var _this = this var deviceinfo = this.data.deviceinfo var passwordLi = this.data.passwordList[index] passwordLiAll = passwordLi var info = JSON.parse(passwordLi.content) var data = { managerTelephone: "18270949468", managerPassword: "202108", userTelephone: info.userTelephone, userPassword: info.userPassword, password: info.password, startTime: info.passwordStartTime, endTime: info.passwordEndTime } console.log(data) var timestamp = moment().format("x") bleall.startFp1_63(data.managerTelephone, data.managerPassword, data.userTelephone, data.userPassword, data.password, data.startTime, data.endTime, 9, timestamp, function (res) { if (res.success) { var data = { ids: [passwordLi.id] } WXAPI.deleteCertificates(data).then(res1 => { if (res1.success) { var data3 = { code: "ble/operateUserInfo", data: { deviceNum: deviceinfo.deviceNum, imei: deviceinfo.imei, userTelephone: info.userTelephone, userPassword: info.userPassword, password: info.password, userStartTime: info.passwordStartTime, userEndTime: info.passwordEndTime, passwordStartTime: info.passwordStartTime, passwordEndTime: info.passwordEndTime, operateMode: 9, order: 6209, timestamp: timestamp, managerTelephone: '18270949468', managerPassword: '202108', passwordLength: 10, permission: 4294967295, times: 255, recycleTime: "65535", roomName: _this.data.deviceinfo.roomName, cardName: _this.data.personLi.name, } } WXAPI.sendCommand(data3).then(res => { if (res.success) { var data4 = { result: 1, serial: res.data.serialNumber } WXAPI.updatePush(data4).then(res4 => { }) } }) _this.getPassword() wx.hideLoading() wx.showToast({ title: '删除成功', icon: 'none', mask: true, duration: 2000 }) } else { wx.hideLoading() wx.showToast({ title: '删除失败', icon: 'none', mask: true, duration: 2000 }) } }) } if (res.data == "蓝牙功能暂不支持") { // wx.hideLoading() // wx.showLoading({ // title: '重新连接蓝牙中' // }) _this.startconnect() } }) }, startconnect() { wx.showLoading({ title: "连接蓝牙中", mask: true }) this.setData({ showLoading: true }) // this.setData({ // showLoading:true // }) 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 if (app.globalData.ble) { app.globalData.ble.listen(res => { if (res.type == 'connect') { if (res.data == "未打开适配器") { this.setData({ showLoading: false }) wx.hideLoading() wx.showModal({ title: "提示", content: "请检查手机蓝牙和定位功能是否打开?", showCancel: false, confirmText: "确定", success(res) {} }); } else { if (res.data == '蓝牙已连接') { app.globalData.bleStatus = res.data this.setData({ showLoading: false }) if (this.data.current == 0) { this.sendPassword() } else if (that.data.current == 1) { this.delPassword1(this.data.currentIndex) } else if (that.data.current == 2) { this.sendFp() } } } } }) } }, delPasswordLwj(index) { wx.showLoading({ title: '正在删除', mask: true }) var _this = this var deviceinfo = this.data.deviceinfo var passwordLi = this.data.passwordList[index] passwordLiAll = passwordLi var info = JSON.parse(passwordLi.content) var personInfo = JSON.parse(this.data.personLi.info) var cgInfo = this.data.cgInfo var dataPasswod = { code: "lwj/passwordOperate", data: { lockerId: deviceinfo.deviceNum, lockerUserId: personInfo.userId, startTime: passwordLi.startTime, endTime: passwordLi.endTime, order: 6209, operateMode: 9, action: 2, password: info.password, type: 9, cardName: _this.data.personLi.name, roomName: deviceinfo.roomName } } console.log(dataPasswod, 'dataPasswod', info) WXAPI.sendCommand(dataPasswod).then(res => { console.log(res, '获取索引') if (res.success) { pincodeIndex = res.data.index serialNumber = res.data.serialNumber taskId = 52 _this.initBluetooth() } else { wx.hideLoading() wx.showToast({ title: res.msg, mask: true, icon: 'none', duration: 2000 }) } }) }, onDelRfCard: function () { var that = this wx.showLoading({ title: '删除房卡中', }) var bytes = plugin.delRfCard(lockDevice.name, basecode, 0, rfCardIndex) console.debug('bytes', bytes) that.sendBytes(bytes) }, onDelFingerprint: function() { var that = this wx.showLoading({ title: '删除指纹中', }) var bytes = plugin.delFingerprint(lockDevice.name, basecode, fingerprintIndex) console.debug('bytes', bytes); that.sendBytes(bytes) }, onDelPincode: function () { var that = this wx.showLoading({ title: '删除密码中', }) var bytes = plugin.delPincode(lockDevice.name, basecode, pincode, pincodeIndex) console.debug('bytes', bytes) that.sendBytes(bytes) }, delPassword(index) { wx.showLoading({ title: '正在删除', mask: true }) var _this = this var deviceinfo = this.data.deviceinfo var passwordLi = this.data.passwordList[index] passwordLiAll = passwordLi var info = JSON.parse(passwordLi.content) var personInfo = JSON.parse(this.data.personLi.info) var cgInfo = this.data.cgInfo var dataPasswod = { code: "zg/tempPassword", data: { lockerId: deviceinfo.deviceNum, imei: deviceinfo.imei, passwordCount: 255, lockerUserId: personInfo.userId, keyId: personInfo.userId, passwordStartTime: passwordLi.startTime, passwordEndTime: passwordLi.endTime, order: 6209, action: 2, password: info.password, type: 1, cardName: _this.data.personLi.name, roomName: deviceinfo.roomName } } console.log(dataPasswod, 'dataPasswod', info) WXAPI.sendCommand(dataPasswod).then(res => { console.log(res, '获取索引') if (res.success) { var pwdNo = res.data.index.toString(16) // var pwdNo = res.data.index var passwordIndex = res.data.index if (pwdNo.length < 2) { pwdNo = '0' + pwdNo } else { pwdNo = pwdNo } console.log("1626", pwdNo); ICINLocker.getUserSignKey(cgInfo.lockerId, cgInfo.superId, personInfo.userId, cgInfo.superId, cgInfo.authKey, '01', (callback) => { console.log("1628",callback) if (callback.status == '00') { var userSignKey = callback.userSignKey ICINLocker.getCommonKey(cgInfo.lockerId, personInfo.userId, personInfo.userId, userSignKey, (callback) => { console.log("1632", callback); if (callback.status == '00') { console.log(callback, 'commonKey') var commonKey = callback.commonKey var startTime = passwordLi.startTime.toString(16).toUpperCase() var endTime = passwordLi.endTime.toString(16).toUpperCase() ICINLocker.handlePwd(deviceinfo.deviceNum, cgInfo.superId, personInfo.userId, info.password, pwdNo, cgInfo.superId, cgInfo.authKey, '', startTime, endTime, 0, commonKey, (callback) => { console.log("1639",callback) if (callback.status == '00') { var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: passwordIndex, type: 9, result: 1 } } WXAPI.sendCommand(datacom).then(res2 => { if (res2.success) {} }) var data = { ids: [passwordLiAll.id] } WXAPI.deleteCertificates(data).then(res1 => { if (res1.success) { _this.getPassword() 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", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: res.data.index, type: 9, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') }) } }) } else { 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: res.msg, mask: true, icon: 'none', duration: 2000 }) } }) }, getPassWordMehods(content, id, type) { var that = this var data = { pageNum: 0, pageSize: 0, orderBy: "create_at desc", q: { cardId: id, password: content, deviceNum: this.data.deviceinfo.deviceNum, types: type, inStatus: '0,1,702' }, }; WXAPI.getCertificates(data).then(res => { if (res.success) { var dataOne = util.zlib_unzip(res.data) if (dataOne.length > 0) { wx.showModal({ title: '提示', content: '该密码已存在,不能重复添加', success(res1) { if (res1.confirm) { console.log('用户点击确定') that.setData({ password: '', passwordStatus: false }) } else if (res1.cancel) { console.log('用户点击取消') that.setData({ password: '', passwordStatus: false }) } } }) } else { this.setData({ passwordStatus: true }) } } else { wx.showToast({ title: '获取失败', duration: '2000', mask: true, icon: 'none' }) } }) }, sendPassword() { let passwordLength = this.data.password.toString() if (passwordLength.length != 6) { wx.showToast({ title: '格式错误,密码为6位数字!', icon: 'none' }) return false; } wx.showLoading({ title: '正在添加', mask: true, }) var time3 = new Date(this.data.datetimerange[0].replace(/-/g, '/')) var time4 = new Date(this.data.datetimerange[1].replace(/-/g, '/')) var passwordStartTimecontrast = time3.getTime() / 1000 var passwordEndTimecontrast = time4.getTime() / 1000 this.getPassWordMehods(this.data.password, this.data.personLi.cardId, 14) if (this.data.password == '') { wx.showToast({ title: '密码不能为空', mask: true, duration: 2000, icon: 'none' }) return } if (!this.data.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 var info = JSON.parse(this.data.personLi.info) if (deviceinfo.manufactureId == 101) { var time1 = moment(this.data.datetimerange[0]).format("YYYYMMDDHHmmss") var time2 = moment(this.data.datetimerange[1]).format("YYYYMMDDHHmmss") var time3 = new Date(_this.data.datetimerange[0].replace(/-/g, '/')) var time4 = new Date(_this.data.datetimerange[1].replace(/-/g, '/')) var passwordStartTime = time3.getTime() / 1000 var passwordEndTime = time4.getTime() / 1000 var data1 = { managerTelephone: "18270949468", managerPassword: '202108', userTelephone: info.userTelephone, userPassword: info.userPassword, password: this.data.password, 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.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.password.toString(), userTelephone: JSON.parse(_this.data.personLi.info).userTelephone, operateMode: 7, userPassword: JSON.parse(_this.data.personLi.info).userPassword, passwordStartTime: time1, passwordEndTime: time2, is: false, pass: true } var data3 = { code: "ble/operateUserInfo", 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.sendCommand(data3).then(res3 => { if (res3.success) { var data4 = { result: 1, serial: res3.data.serialNumber } WXAPI.updatePush(data4).then(res4 => { }) var data = { cardId: _this.data.personLi.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, }; var datalist = { cardId: _this.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 type: 14, startTime: passwordStartTime, endTime: passwordEndTime, }; console.log(datalist, '密码11') WXAPI.addCertificates(datalist).then(res6 => { console.log(datalist, '密码22') }) WXAPI.addCertificates(data).then(res3 => { if (res3.success) { var updatedata = { id: res3.data, status: 1 }; WXAPI.updateCertificates(updatedata).then((res2) => {}); _this.getPassword() _this.setData({ show: 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 == "蓝牙功能暂不支持") { // wx.showToast({ // title: '重新连接蓝牙中', // duration: 2000, // icon: "none" // }) _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 var time1 = new Date(_this.data.datetimerange[0].replace(/-/g, '/')) var time2 = new Date(_this.data.datetimerange[1].replace(/-/g, '/')) var passwordStartTime = time1.getTime() / 1000 var passwordEndTime = time2.getTime() / 1000 var pzname = '', cardName = '' pzname = '蓝牙-密码' + (_this.data.passwordList.length + 1) cardName = _this.data.personLi.name + '-蓝牙-密码' + (_this.data.passwordList.length + 1) var dataPasswod = { code: "zg/tempPassword", data: { lockerId: deviceinfo.deviceNum, imei: deviceinfo.imei, passwordCount: 255, lockerUserId: info.userId, keyId: info.userId, passwordStartTime: passwordStartTime, passwordEndTime: passwordEndTime, order: 6207, action: 1, password: this.data.password.toString(), type: 1, roomName: this.data.deviceinfo.roomName, cardName: cardName, } } WXAPI.sendCommand(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() info.startTime = startTime info.endTime = endTime info.pwdNo = pwdNo info.password = this.data.password.toString() methods.bluetoothOperation_ZH(cgInfo, info, 3).then(result => { if (result.status == '00' || result.status == '0a') { var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: passwordIndex, type: 7, result: 1 } } var str = { // cardId: this.personInfo.cardId, imei: _this.data.deviceinfo.imei, pzname: pzname, password: _this.data.password.toString(), userTelephone: JSON.parse(_this.data.personLi.info).userTelephone, operateMode: 7, userPassword: JSON.parse(_this.data.personLi.info).userPassword, passwordStartTime: passwordStartTime, passwordEndTime: passwordEndTime, is: false, pass: true } var data = { cardId: _this.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 deviceNum: _this.data.deviceinfo.deviceNum, type: 4, imei: _this.data.deviceinfo.imei, serial: res.data.serialNumber, startTime: passwordStartTime, endTime: passwordEndTime, }; var datalist = { cardId: _this.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 type: 14, startTime: passwordStartTime, endTime: passwordEndTime, }; console.log(datalist, '密码11') WXAPI.addCertificates(datalist).then(res6 => { console.log(datalist, '密码22', res6) }) console.log(data, '添加凭证') WXAPI.addCertificates(data).then(res3 => { if (res3.success) { var updatedata = { id: res3.data, status: 1 }; WXAPI.updateCertificates(updatedata).then((res2) => {}); WXAPI.sendCommand(datacom).then(res2 => { if (res2.success) {} }) console.log(res3, '添加凭证成功') _this.getPassword() _this.setData({ show: false }) 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", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: res.data.index, type: 7, result: 0 } } WXAPI.sendCommand(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", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: res.data.index, type: 7, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') _this.setData({ show: false }) }) }) } else { wx.showToast({ title: res.msg, duration: 2000, mask: true, icon: 'none' }) } }) } else if (deviceinfo.manufactureId == 1201 || deviceinfo.manufactureId == 1241) { console.log(this.data.isSearch); if (this.data.isSearch) { wx.hideLoading() this.addPincode() } else { this.searchDevicesMethods() } } }, onAddPincode: function () { console.log("2073123"); var that = this wx.showLoading({ title: '添加密码中', }) var info = JSON.parse(this.data.personLi.info) let deviceinfo = this.data.deviceinfo var time1 = new Date(that.data.starttime.replace(/-/g, '/')) var time2 = new Date(that.data.endtime.replace(/-/g, '/')) var passwordStartTime = time1.getTime() / 1000 var passwordEndTime = time2.getTime() / 1000 var pzname = '', cardName = '' pzname = '蓝牙-密码' + (that.data.passwordList.length + 1) cardName = that.data.personLi.name + '-蓝牙-密码' + (that.data.passwordList.length + 1) var dataPasswod = { code: "lwj/passwordOperate", data: { lockerId: deviceinfo.deviceNum, lockerUserId: info.userId, startTime: passwordStartTime, endTime: passwordEndTime, order: 6207, operateMode: 7, action: 1, password: this.data.password.toString(), type: 7, roomName: this.data.deviceinfo.roomName, cardName: cardName, } } console.log(dataPasswod); WXAPI.sendCommand(dataPasswod).then(res => { console.log(res, '获取索引') if (res.success) { var pwdNo = res.data.index serialNumber = res.data.serialNumber pincodeIndex = pwdNo that.sendAddPincode() } }) // var startTime = util1.getLocalTime(8) // var endTime = new Date(startTime.getTime() + 5 * 60 * 1000) //有效期5分钟 }, sendAddPincode() { var that = this var startTime = new Date(Number(moment(that.data.starttime).format('x'))) var endTime = new Date(Number(moment(that.data.endtime).format('x'))) pincode = this.data.password console.log(lockDevice.name, basecode, pincode, pincodeIndex, startTime, endTime) let bytes = plugin.addPincode(lockDevice.name, basecode, pincode, pincodeIndex, startTime, endTime) console.log('bytes', bytes) that.sendBytes(bytes) }, addPincode: function () { console.log("2124"); var that = this taskId = 51 that.initBluetooth() }, initBluetooth: function () { var that = this wx.getConnectedBluetoothDevices({ services: [config.uuid.serviceUuid], success: function (res) { res.devices.map(function (it) { if (it.deviceId == connectedDeviceId || it.name == that.data.deviceinfo.deviceNum) { isConnected = true } }) that.setData({ isConnected: isConnected }) console.log(isInitReady, 'isConnected', isConnected) if (isConnected) { console.log("2144"); if (isInitReady) { console.log("2146"); that.doWork() } else { that.setupConnection() } } else { that.connectTo() } }, }) }, setupConnection: function () { var that = this wx.showLoading({ title: '初始化连接中', }) wx.getBLEDeviceServices({ deviceId: lockDevice.deviceId, success: function (res) { console.log('Services', res) wx.getBLEDeviceCharacteristics({ deviceId: lockDevice.deviceId, serviceId: config.uuid.serviceUuid.toUpperCase(), success: function (res) { console.log('Characteristics', res) wx.showToast({ title: '连接成功', duration: 1000, icon: 'none' }) wx.onBLECharacteristicValueChange(function (res) { console.log(res, 'reslllllll') var bytes = new Uint8Array(res.value) console.log('bytes', bytes) var data = plugin.parseBytes(lockDevice.name, basecode, bytes) console.log('data', data) switch (data.cmd) { case 'reportLockBattery': { if (data.data.battery < 10) { wx.showModal({ title: '电量报警', content: `门锁当前电量${data.data.battery}%!\n电量严重不足,请立即更换电池!`, showCancel: false }) } else if (data.data.battery < 30) { wx.showModal({ title: '电量预警', content: `门锁当前电量${data.data.battery}%!\n请及时更换电池!`, showCancel: false }) } break } case 'reportRfCardResult': { if (taskId == 61) { wx.showModal({ title: '检测到新卡', content: `是否添加此房卡,卡号:${data.data.cardId}?`, success: function (res) { if (res.confirm) { console.log(data.data, 'rfCardIdrfCardId') // rfCardId = randomMethods()//data.data.cardId that.onAddRfCard() } } }) } else { if (lockModel > 70) { if (data.data.isValid) { wx.showModal({ title: '提示', content: `房卡开锁成功,序号:${data.data.index}!`, showCancel: false }) } else { wx.showModal({ title: '提示', content: `多次刷房卡开锁失败!`, showCancel: false }) } } else { if (data.data.isValid) { wx.showModal({ title: '提示', content: `房卡开锁成功,卡号:${data.data.cardId}!`, showCancel: false }) } else { wx.showModal({ title: '提示', content: `房卡未授权,卡号:${data.data.cardId}!`, showCancel: false }) } } } break } case 'reportPincodeResult': { if (lockModel > 70) { if (data.data.isValid) { wx.showModal({ title: '提示', content: `密码开锁成功,序号:${data.data.index}!`, showCancel: false }) } else { wx.showModal({ title: '提示', content: `多次密码开锁失败!`, showCancel: false }) } } else { if (data.data.isValid) { wx.showModal({ title: '提示', content: `密码:${data.data.pincode}开锁成功!`, showCancel: false }) } else { wx.showModal({ title: '提示', content: `密码:${data.data.pincode}未授权!`, showCancel: false }) } } break } case 'reportFingerprintResult': { if (data.data.isValid) { wx.showModal({ title: '提示', content: `指纹开锁成功,序号:${data.data.index}!`, showCancel: false }) } else { wx.showModal({ title: '提示', content: `多次指纹开锁失败!`, showCancel: false }) } break } case 'queryLockState': { wx.hideLoading() if (data.code != 200) { wx.showModal({ title: '提示', content: '查询失败!', showCancel: false, success: function (res) {} }) break } that.setData({ lock: { mac: data.data.mac, lockType: util1.getLockType(lockModel), }, isBindLock: data.data.isBind }) lockMac = data.data.mac if (taskId > 0) { if (data.data.isBind) { // wx.showModal({ // title: data.data.mac, // content: '此设备已经硬件绑定!', // showCancel: false, // success: function (res) {} // }) } else { wx.showModal({ title: data.data.mac, content: '此设备硬件未绑定!', showCancel: false, success: function (res) {} }) } } taskId = 0 break } case 'queryLockBattery': { wx.hideLoading() if (data.code != 200) { wx.showModal({ title: '提示', content: '查询失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 wx.showModal({ title: '提示', content: `此门锁电量为${data.data.battery}%`, showCancel: false, success: function (res) {} }) break } case 'queryNbImei': { wx.hideLoading() if (data.code != 200) { wx.showModal({ title: '提示', content: '查询失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 wx.showModal({ title: '提示', content: `此NB设备IMEI为${data.data.imei}`, showCancel: false, success: function (res) {} }) break } case 'setNbFun': { wx.hideLoading() if (data.code != 200) { wx.showModal({ title: '提示', content: '设置Nb功能失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 wx.showModal({ title: '提示', content: that.data.isNbEnable ? 'NB功能已禁用' : 'NB功能已打开', showCancel: false, }) that.setData({ isNbEnable: !that.data.isNbEnable }) break } case 'sendBindLock': { wx.hideLoading() if (data.code != 200) { wx.showModal({ title: '提示', content: '绑定失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 that.setData({ isBindLock: data.data.isBind }) if (data.data.isBind) { wx.showToast({ title: '绑定成功!', }) } else { wx.showToast({ title: '绑定失败!', }) } break } case 'sendUnbindLock': { wx.hideLoading() if (data.code != 200) { wx.showModal({ title: '提示', content: '解绑失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 that.setData({ isBindLock: data.data.isBind }) if (data.data.isBind) { wx.showToast({ title: '解绑失败!', }) } else { wx.showToast({ title: '解绑成功!', }) } break } case 'login1': case 'sendOpenLockP1': { if (data.code != 200) { wx.hideLoading() if (taskId == 41) { wx.showModal({ title: '提示', content: that.data.isJack ? '上电失败!' : '解锁失败!', showCancel: false, success: function (res) {} }) } else if (taskId == 32) { wx.showModal({ title: '提示', content: '登录失败!', showCancel: false, success: function (res) {} }) } break } if (taskId == 41) { var bytes = plugin.sendOpenLockP2(lockDevice.name, basecode, data.data.randomN) console.debug('bytes', bytes) that.sendBytes(bytes) } else if (taskId == 32) { var bytes = plugin.login2(lockDevice.name, basecode, data.data.randomN) console.debug('bytes', bytes) that.sendBytes(bytes) } break; } case 'login': case 'sendOpenLockP2': { wx.hideLoading() if (data.code != 200) { if (taskId == 41) { wx.showModal({ title: '提示', content: that.data.isJack ? '上电失败!' : '解锁失败!', showCancel: false, success: function (res) {} }) } else if (taskId == 32) { wx.showModal({ title: '提示', content: '登录失败!', showCancel: false, success: function (res) {} }) } break } isLockLogin = true if (taskId == 41) { // var data = { // code: "zg/bleUnlockRecord", // data: { // lockerId: that.data.deviceinfo.deviceNum, // roomId:that.data.deviceinfo.roomId, // roomName:that.data.deviceinfo.roomName, // cardName:that.data.userInfo.username // } // } var data = { code: "ble/bleUnlockRecord", data: { deviceNum: that.data.deviceinfo.deviceNum, roomId: that.data.deviceinfo.roomId, roomName: that.data.deviceinfo.roomName, cardName: that.data.userInfo.username, productId: that.data.deviceinfo.manufactureId, userId: '29283991' } } WXAPI.sendCommand(data).then(res => { console.log(res) }) wx.showToast({ title: that.data.isJack ? '上电成功!' : '解锁成功!', }) } else if (taskId == 32) { wx.showToast({ title: '登录成功!', }) } taskId = 0 break; } case 'syncClock': { wx.hideLoading() if (data.code != 200) { wx.showModal({ title: '提示', content: '同步时间失败!' + data.data.msg, showCancel: false, success: function (res) {} }) break } taskId = 0 wx.showModal({ title: '提示', content: '时间更新成功!', showCancel: false }) break; } case 'addPincode': { // console.log(data.data,'data.data') // wx.hideLoading() let data2 = { "code": "ble/bleSendVoucherReply", "data": { "deviceNum": that.data.deviceinfo.deviceNum, "serialNumber": serialNumber, "index": pincodeIndex, "type": 7, "result": 1, "productId": that.data.deviceinfo.manufactureId } } if (data.code != 200) { data2 = { "code": "ble/bleSendVoucherReply", "data": { "deviceNum": that.data.deviceinfo.deviceNum, "serialNumber": serialNumber, "index": pincodeIndex, "type": 7, "result": 0, "productId": that.data.deviceinfo.manufactureId } } WXAPI.sendCommand(data2).then(res => { }) wx.showModal({ title: '提示', content: '添加密码失败!' + data.data.msg, showCancel: false, success: function (res) {} }) break } var time1 = new Date(that.data.starttime.replace(/-/g, '/')) var time2 = new Date(that.data.endtime.replace(/-/g, '/')) var passwordStartTime = time1.getTime() / 1000 var passwordEndTime = time2.getTime() / 1000 var pzname = '', cardName = ''; pzname = '蓝牙-密码' + (that.data.passwordList.length + 1) cardName = that.data.personLi.name + '-蓝牙-密码' + (that.data.passwordList.length + 1) var str = { // cardId: this.personInfo.cardId, imei: that.data.deviceinfo.imei, pzname: pzname, password: that.data.password.toString(), userTelephone: JSON.parse(that.data.personLi.info).userTelephone, operateMode: 7, userPassword: JSON.parse(that.data.personLi.info).userPassword, passwordStartTime: passwordStartTime, passwordEndTime: passwordEndTime, index: pincodeIndex, is: false, pass: true } var data1 = { cardId: that.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 deviceNum: that.data.deviceinfo.deviceNum, type: 4, imei: that.data.deviceinfo.imei, serial: serialNumber, startTime: passwordStartTime, endTime: passwordEndTime, }; var datalist = { cardId: that.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 type: 14, startTime: passwordStartTime, endTime: passwordEndTime, }; WXAPI.addCertificates(datalist).then(res6 => { console.log(datalist, '密码22', res6) }) WXAPI.addCertificates(data1).then(res3 => { if (res3.success) { var updatedata = { id: res3.data, status: 1 }; WXAPI.updateCertificates(updatedata).then((res2) => {}); WXAPI.sendCommand(data2).then(res => { }) that.getPassword() that.setData({ show: false }) wx.hideLoading() wx.showToast({ title: '添加成功', mask: true, icon: 'none', duration: 2000 }) } else { wx.hideLoading() wx.showToast({ title: '添加失败', mask: true, icon: 'none', duration: 2000 }) } }) taskId = 0 that.setData({ isPincodeAdd: true, show: false }) wx.showModal({ title: '提示', content: `添加密码${pincode}成功!`, showCancel: false }) break } case 'delPincode': { wx.hideLoading() if (data.code != 200) { var datacom = { code: "lwj/passwordOperate", data: { lockerId: that.data.deviceinfo.deviceNum, serialNumber: serialNumber, index: pincodeIndex, action: 2, type: 9, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') }) wx.showModal({ title: '提示', content: '删除密码失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 wx.showModal({ title: '提示', content: `删除密码成功!`, showCancel: false, }) var datacom = { code: "lwj/passwordOperate", data: { lockerId: that.data.deviceinfo.deviceNum, serialNumber: serialNumber, index: pincodeIndex, action: 2, type: 9, result: 1 } } WXAPI.sendCommand(datacom).then(res2 => { if (res2.success) {} }) var data = { ids: [passwordLiAll.id] } WXAPI.deleteCertificates(data).then(res1 => { if (res1.success) { that.getPassword() wx.hideLoading() wx.showToast({ title: '删除成功', mask: true, icon: 'none', duration: 2000 }) } else { wx.hideLoading() wx.showToast({ title: '删除失败', mask: true, icon: 'none', duration: 2000 }) } }) that.setData({ isPincodeAdd: false }) pincode = -1 pincodeIndex = -1 break } case 'addRfCard': { wx.hideLoading() if (data.code == 100) { wx.showLoading({ title: data.data.msg, }) break } else if (data.code != 200) { var datacom = { code: "ble/bleSendVoucherReply", data: { deviceNum: that.data.deviceinfo.deviceNum, serialNumber: serialNumber, index: rfCardIndex, type: ADD_NFC_MODE, cardNo: '', result: 0, productId: that.data.deviceinfo.manufactureId } } WXAPI.sendCommand(datacom).then(res2 => {}) wx.showModal({ title: '提示', content: '添加房卡失败!' + data.data.msg, showCancel: false, success: function (res) {} }) break } taskId = 0 that.setData({ isRfCardAdd: true }) if (lockModel > 70) { console.log(data.data, 'rfCardIndexrfCardIndex') // rfCardId = randomMethods() wx.showModal({ title: '提示', content: `添加房卡成功,序号${rfCardIndex}!`, showCancel: false }) that.addRfcardCertificates() } else { console.log(data.data, 'rfCardIndexrfCardIndex1') // rfCardId = randomMethods() wx.showModal({ title: '提示', content: `添加房卡成功,卡号${rfCardId}!`, showCancel: false }) that.addRfcardCertificates() } break } case 'delRfCard': { wx.hideLoading() if (data.code != 200) { var datacom = { code: "lwj/cardOperate", data: { lockerId: that.data.deviceinfo.deviceNum, serialNumber: serialNumber, index: rfCardIndex, action: 2, type: 12, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败2933') }) wx.showModal({ title: '提示', content: '删除房卡失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 that.setData({ isRfCardAdd: false }) if (lockModel > 70) { wx.showModal({ title: '提示', content: `删除房卡成功,序号${rfCardIndex}!`, showCancel: false, }) } else { wx.showModal({ title: '提示', content: `删除房卡成功,卡号${rfCardId}!`, showCancel: false, }) } var datacom = { code: "lwj/cardOperate", data: { lockerId: that.data.deviceinfo.deviceNum, serialNumber: serialNumber, index: rfCardIndex, action: 2, type: 12, result: 1 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') }) var data = { ids: [passwordLiAll.id] } WXAPI.deleteCertificates(data).then(res1 => { console.log(res1, '2936'); if (res1.success) { that.getNfc() wx.showToast({ title: '删除成功', mask: true, icon: 'none', duration: 2000 }) } else { wx.showToast({ title: '删除失败', mask: true, icon: 'none', duration: 2000 }) } }) that.setData({ isRfCardAdd: false }) rfCardId = -1 rfCardIndex = -1 break } case 'addFingerprint': { wx.hideLoading() if (data.code == 100) { wx.showLoading({ title: data.data.msg, }) break } else if (data.code != 200) { wx.showModal({ title: '提示', content: '添加指纹失败!' + data.data.msg, showCancel: false, success: function (res) {} }) var datacom = { code: "ble/bleSendVoucherReply", data: { deviceNum: that.data.deviceinfo.deviceNum, serialNumber: serialNumber, index: 0, type: 16, result: 0, productId: that.data.deviceinfo.manufactureId } } WXAPI.sendCommand(datacom).then(res2 => { if (res2.success) {} }) break } taskId = 0 that.setData({ isFingerprintAdd: true }) wx.showModal({ title: '提示', content: `添加指纹成功,序号${fingerprintIndex}!`, showCancel: false }) var time1 = new Date(that.data.starttime.replace(/-/g, '/')) var time2 = new Date(that.data.endtime.replace(/-/g, '/')) var passwordStartTime = time1.getTime() / 1000 var passwordEndTime = time2.getTime() / 1000 var cardName = '', pzname = '' if (that.data.pzname) { cardName = that.data.personLi.name + '-蓝牙-' + that.data.pzname pzname = '蓝牙-' + that.data.pzname } else { cardName = that.data.personLi.name + '-蓝牙-指纹' + (that.data.FpList.length + 1) pzname = '蓝牙-指纹' + (that.data.FpList.length + 1) } var str = { // cardId: this.personInfo.cardId, imei: that.data.deviceinfo.imei, pzname: pzname, password: '', fingerprintAlias: that.data.radioDetil, userTelephone: JSON.parse(that.data.personLi.info).userTelephone, operateMode: 16, userPassword: JSON.parse(that.data.personLi.info).userPassword, passwordStartTime: passwordStartTime, passwordEndTime: passwordEndTime, index: fingerprintIndex, is: false, pass: true } var data2 = { cardId: that.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 deviceNum: that.data.deviceinfo.deviceNum, type: 1, imei: that.data.deviceinfo.imei, serial: serialNumber, startTime: passwordStartTime, endTime: passwordEndTime, status: 1 }; var datalist = { cardId: that.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 type: 11, startTime: passwordStartTime, endTime: passwordEndTime }; var datacom = { code: "ble/bleSendVoucherReply", data: { deviceNum: that.data.deviceinfo.deviceNum, serialNumber: serialNumber, index: fingerprintIndex, type: 16, result: 1, productId: that.data.deviceinfo.manufactureId } } WXAPI.addCertificates(datalist).then(res6 => {}) console.log(data, '添加凭证') WXAPI.addCertificates(data2).then(res3 => { if (res3.success) { var updatedata = { id: res3.data, status: 1 }; WXAPI.updateCertificates(updatedata).then((res2) => {}); WXAPI.sendCommand(datacom).then(res2 => { if (res2.success) {} }) console.log(res3, '添加凭证成功') that.getFp() that.setData({ show: false }) wx.hideLoading() wx.showToast({ title: '添加成功', mask: true, icon: 'none', duration: 2000 }) } else { wx.hideLoading() wx.showToast({ title: '添加失败', mask: true, icon: 'none', duration: 2000 }) } }) break } case 'delFingerprint': { wx.hideLoading() if (data.code != 200) { var datacom = { code: "lwj/fpOperate", data: { lockerId: that.data.deviceinfo.deviceNum, serialNumber: serialNumber, index: fingerprintIndex, action: 2, type: 18, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') }) wx.showModal({ title: '提示', content: '删除指纹失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 wx.showModal({ title: '提示', content: `删除指纹成功,序号${fingerprintIndex}!`, showCancel: false, }) var datacom = { code: "lwj/fpOperate", data: { lockerId: that.data.deviceinfo.deviceNum, serialNumber: serialNumber, index: fingerprintIndex, action: 2, type: 18, result: 1 } } WXAPI.sendCommand(datacom).then(res2 => { if (res2.success) {} }) var data = { ids: [passwordLiAll.id] } WXAPI.deleteCertificates(data).then(res1 => { if (res1.success) { that.getFp() wx.hideLoading() wx.showToast({ title: '删除成功', mask: true, icon: 'none', duration: 2000 }) } else { wx.hideLoading() wx.showToast({ title: '删除失败', mask: true, icon: 'none', duration: 2000 }) } }) that.setData({ isFingerprintAdd: false }) fingerprintIndex = -1 break } case 'changeAdminPincode': { wx.hideLoading() if (data.code != 200) { wx.showModal({ title: '提示', content: '修改管理密码失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 wx.showToast({ title: '修改管理密码成功!', }) } case 'queryLockSlotState': { wx.hideLoading() if (data.code != 200) { wx.showModal({ title: '提示', content: '查询失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 wx.showModal({ title: '提示', content: data.data.state == 0 ? '此门锁方舌关闭' : '此门锁方舌打开', showCancel: false, success: function (res) {} }) break } case 'queryLockUnlockState': { wx.hideLoading() if (data.code != 200) { wx.showModal({ title: '提示', content: '查询失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 wx.showModal({ title: '提示', content: data.data.state == 0 ? '此门锁已关闭' : '此门锁已打开', showCancel: false, success: function (res) {} }) break } case 'setLockUnlockState': { wx.hideLoading() if (data.code != 200) { wx.showModal({ title: '提示', content: '设置常开指令失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 wx.showModal({ title: '提示', content: data.data.state == 0 ? '常开模式已退出' : '常开模式已开启', showCancel: false, }) that.setData({ isUnloked: data.data.state == 1 }) break } case 'setLockMuteState': { wx.hideLoading() if (data.code != 200) { wx.showModal({ title: '提示', content: '设置静音指令失败!', showCancel: false, success: function (res) {} }) break } taskId = 0 wx.showModal({ title: '提示', content: data.data.state == 1 ? '静音模式已退出' : '静音模式已开启', showCancel: false, }) that.setData({ isMuted: data.data.state == 0 }) break } } }) wx.notifyBLECharacteristicValueChange({ deviceId: lockDevice.deviceId, serviceId: config.uuid.serviceUuid.toUpperCase(), characteristicId: config.uuid.notifyUuid.toUpperCase(), state: true, success: function (res) { console.log('setupNotify', res) isInitReady = true setTimeout(function () { wx.hideLoading() // that.onQueryBindState() that.login() }, 500) }, }) }, }) }, }) }, onQueryBindState: function () { var that = this wx.showLoading({ title: '查询中', }) var bytes = plugin.queryLockState(lockDevice.name) console.debug('bytes', bytes) that.sendBytes(bytes) }, queryBindState: function () { var that = this taskId = 21 that.initBluetooth() }, doWork: function () { var that = this console.log(taskId); switch (taskId) { case 11: { that.onBindLock() break } case 12: { that.onUnbindLock() break } case 21: { that.onQueryBindState() break } case 22: { that.onQueryBattery() break } case 31: { that.onQueryNbImei() break } case 32: { that.onLogin() break } case 41: { that.LwjonOpenLock() break } case 42: { that.onSyncClock() break } case 51: { that.onAddPincode() break } case 52: { that.onDelPincode() break } case 61: { // that.onAddRfCard() // if (lockModel > 70) { that.sendAddRfcard() // } else { // wx.showModal({ // title: '提示', // content: '请刷卡!', // showCancel: false // }) // } break } case 62: { that.onDelRfCard() break } case 71: { that.onAddFingerprint() break } case 72: { that.onDelFingerprint() break } case 81: { that.onChangeAdminPincode() break } case 91: { that.onQueryLockSlotState() break } case 92: { that.onQueryLockUnlockState() break } case 101: { that.onChangeLockUnlockState() break } case 102: { that.onChangeLockMutedState() break } case 111: { this.onChangeLockNbState() } default: { } } }, connectTo: function () { var that = this wx.showLoading({ title: '连接中', }) wx.createBLEConnection({ deviceId: lockDevice.deviceId, timeout: config.ble.connectTimeOut, success: function (res) { console.log('connectTo', res) isConnected = true // app.globalData.isConnected = true wx.hideLoading() setTimeout(function () { that.setupConnection() }, 500) }, fail: function (e) { console.debug('connectTo', e) wx.hideLoading() switch (e.errCode) { case 10003: { wx.showModal({ title: '连接失败', content: '是否重新连接?', success: function (res) { if (res.confirm) { that.connectTo() } } }) break } case 10012: { wx.showModal({ title: '连接失败', content: '蓝牙连接超时', showCancel: false }) break } case 10002: { wx.showModal({ title: '连接失败', content: '没有找到指定设备', showCancel: false }) break } } } }) }, searchDevicesMethods() { var that = this; wx.showLoading({ title: '正在搜索', // mask: true }) this.setData({ searchClick: false }) wx.openBluetoothAdapter({ success: function (res) { wx.startBluetoothDevicesDiscovery({ success: function (res) { wx.getBluetoothDevices({ success: function (res) { res.devices.map(it => { var status = it.name.indexOf('WSL_') if (status != -1) { if (it.RSSI != 127) { if (it.advertisData != null) { it.adData = util1.ab2hex(it.advertisData) if (it.adData.length > 10) { var macStr = it.adData.substring(4, 16).toUpperCase() //console.log('macStr', macStr) it.mac = macStr.substr(10, 2) + ':' + macStr.substr(8, 2) + ':' + macStr.substr(6, 2) + ':' + macStr.substr(4, 2) + ':' + macStr.substr(2, 2) + ':' + macStr.substr(0, 2) if (it.adData.substring(1, 2) == '1') { it.isLightOn = true it.textColor = 'green' } else { it.isLightOn = false it.textColor = 'black' } if (it.adData.substring(3, 4) == '1') { it.textColor = 'pink' it.isBind = true } else { it.isBind = false } } } else { it.textColor = 'black' } lockModel = util1.getLockModel(it.name) it.lockType = util1.getLockType(lockModel) if (it.name == that.data.deviceinfo.deviceNum) { app.addDeviceWithDevName(it.name, it) lockDevice = it connectedDeviceId = it.deviceId that.setData({ isSearch: true }) that.initBluetooth() } } } }) if (!that.data.isSearch) { that.searchDevicesMethods() } } }) }, fail: function (res) { wx.hideLoading({ success: (res) => { wx.showToast({ title: res.errMsg, duration: 2000, icon: 'none' }) }, }) } }) }, fail: function (res) { console.log('请打开蓝牙和定位功能') wx.hideLoading({ success: (res) => { wx.showToast({ title: '请打开蓝牙和定位功能', duration: 2000, icon: 'none' }) }, }) } }) }, LwjonOpenLock: function () { var that = this wx.showLoading({ title: that.data.isJack ? '上电中' : '解锁中', }) console.log(lockDevice.name, 'lockDevice.name0') var bytes = plugin.sendOpenLockP1(lockDevice.name, basecode) console.debug('bytes', bytes) that.sendBytes(bytes) }, openLock: function () { var that = this taskId = 41 that.initBluetooth() }, sendBytes(bytes) { setTimeout(() => { wx.writeBLECharacteristicValue({ deviceId: lockDevice.deviceId, serviceId: config.uuid.serviceUuid.toUpperCase(), characteristicId: config.uuid.writeUuid.toUpperCase(), value: bytes, success: function (res) { }, }) }, 50) }, sendNfc() { var time3 = new Date(this.data.datetimerange[0].replace(/-/g, '/')) var time4 = new Date(this.data.datetimerange[1].replace(/-/g, '/')) 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.personLi.info) if (deviceinfo.manufactureId == 101) { } else if (deviceinfo.manufactureId == 201 || deviceinfo.manufactureId == 221) { var cgInfo = this.data.cgInfo var time1 = new Date(_this.data.datetimerange[0].replace(/-/g, '/')) var time2 = new Date(_this.data.datetimerange[1].replace(/-/g, '/')) var passwordStartTime = time1.getTime() / 1000 var passwordEndTime = time2.getTime() / 1000 var pzname = _this.data.pzname, cardName = '' if (pzname == "") { pzname = '蓝牙-NFC' + (_this.data.NfcList.length + 1) cardName = _this.data.personLi.name + '-蓝牙-NFC' + (_this.data.NfcList.length + 1) } else { pzname = '蓝牙-' + pzname cardName = _this.data.personLi.name + '-蓝牙-' + pzname } var dataPasswod = { code: "zg/cardOperate", data: { lockerId: deviceinfo.deviceNum, imei: deviceinfo.imei, lockerUserId: info.userId, keyId: info.userId, action: 1, taskStatus: 1, order: 6210, startTime: passwordStartTime, endTime: passwordEndTime, cardType: 50, type: ADD_NFC_MODE, roomName: this.data.deviceinfo.roomName, cardName: cardName, } } console.log(dataPasswod, 'dataPasswod') WXAPI.sendCommand(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", data: { lockerId: deviceinfo.deviceNum, serialNumber: serialNumber, index: passwordIndex, type: ADD_NFC_MODE, cardNo: carNoId.toUpperCase(), result: 1 } } WXAPI.sendCommand(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: JSON.parse(_this.data.personLi.info).userTelephone, operateMode: 10, userPassword: JSON.parse(_this.data.personLi.info).userPassword, passwordStartTime: passwordStartTime, passwordEndTime: passwordEndTime, is: false, roomName: _this.data.deviceinfo.roomName, } var data = { cardId: _this.data.personLi.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, }; console.log(data, '添加凭证') var datalist = { cardId: _this.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 type: 13, startTime: passwordStartTime, endTime: passwordEndTime, }; WXAPI.addCertificates(datalist).then(res6 => { console.log(datalist, 'NFC', res6) }) WXAPI.addCertificates(data).then(res3 => { if (res3.success) { var updatedata = { id: res3.data, status: 1 }; WXAPI.updateCertificates(updatedata).then((res2) => {}); console.log(res3, '添加凭证成功') _this.getNfc() _this.setData({ show: false }) 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", data: { lockerId: deviceinfo.deviceNum, serialNumber: serialNumber, index: passwordIndex, type: ADD_NFC_MODE, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { console.log(res2, '失败') _this.setData({ show: false }) }) } }).catch(err => { var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: serialNumber, index: passwordIndex, type: ADD_NFC_MODE, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { _this.setData({ show: false }) }) wx.showToast({ title: '添加失败', mask: true, icon: 'none', duration: 2000 }) }) } else { wx.showToast({ title: res.msg, duration: 2000, mask: true, icon: 'none' }) } }) } else if (deviceinfo.manufactureId == 1201 || deviceinfo.manufactureId == 1241) { if (this.data.isSearch) { wx.hideLoading() this.addRfCard() } else { this.searchDevicesMethods() } } }, addRfCard: function () { console.log("3691NFC"); var that = this taskId = 61 that.initBluetooth() }, onAddRfCard: function () { var that = this wx.showLoading({ title: '添加房卡中', }) var startTime = new Date(Number(moment(that.data.starttime).format('x'))) var endTime = new Date(Number(moment(that.data.endtime).format('x'))) console.log("锁", lockDevice.name, basecode, 0, rfCardIndex, startTime, endTime); var bytes = plugin.addRfCard(lockDevice.name, basecode, 0, rfCardIndex, startTime, endTime) console.debug('bytes', bytes) that.sendBytes(bytes) }, addRfcardCertificates() { var that = this var time1 = new Date(that.data.starttime.replace(/-/g, '/')) var time2 = new Date(that.data.endtime.replace(/-/g, '/')) var passwordStartTime = time1.getTime() / 1000 var passwordEndTime = time2.getTime() / 1000 var pzname = '', cardName = ''; pzname = '蓝牙-NFC' + (that.data.passwordList.length + 1) cardName = that.data.personLi.name + '-蓝牙-NFC' + (that.data.passwordList.length + 1) let carNoId = rfCardId var datacom = { code: "ble/bleSendVoucherReply", data: { deviceNum: that.data.deviceinfo.deviceNum, serialNumber: serialNumber, index: rfCardIndex, type: ADD_NFC_MODE, cardNo: rfCardId.toUpperCase(), result: 1, productId: that.data.deviceinfo.manufactureId } } WXAPI.sendCommand(datacom).then(res2 => { if (res2.success) { var str = { // cardId: this.personInfo.cardId, pzname: pzname, imei: that.data.deviceinfo.imei, password: carNoId.toUpperCase(), blueCardNo: rfCardIndex, userTelephone: JSON.parse(that.data.personLi.info).userTelephone, operateMode: 10, userPassword: JSON.parse(that.data.personLi.info).userPassword, passwordStartTime: passwordStartTime, passwordEndTime: passwordEndTime, is: false, index: rfCardIndex, roomName: that.data.deviceinfo.roomName, } var data2 = { cardId: that.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 deviceNum: that.data.deviceinfo.deviceNum, type: 3, blueCardNo: carNoId, imei: that.data.deviceinfo.imei, serial: serialNumber, startTime: passwordStartTime, endTime: passwordEndTime, }; console.log(data2, '添加凭证') var datalist = { cardId: that.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 type: 13, startTime: passwordStartTime, endTime: passwordEndTime, }; WXAPI.addCertificates(datalist).then(res6 => { console.log(datalist, 'NFC', res6) }) WXAPI.addCertificates(data2).then(res3 => { if (res3.success) { var updatedata = { id: res3.data, status: 1 }; WXAPI.updateCertificates(updatedata).then((res2) => {}); console.log(res3, '添加凭证成功') that.getNfc() that.setData({ show: false }) 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: res2.message, duration: 2000, icon: 'none' }) } }) }, sendAddRfcard() { var that = this var info = JSON.parse(this.data.personLi.info) let deviceinfo = this.data.deviceinfo var time1 = new Date(that.data.starttime.replace(/-/g, '/')) var time2 = new Date(that.data.endtime.replace(/-/g, '/')) var passwordStartTime = time1.getTime() / 1000 var passwordEndTime = time2.getTime() / 1000 var pzname = '', cardName = '' if(that.data.pzname == ''){ pzname = '蓝牙-NFC' + (that.data.NfcList.length + 1) }else{ pzname = '蓝牙-NFC' + that.data.pzname } cardName = that.data.personLi.name + '-蓝牙-NFC' + (that.data.NfcList.length + 1) rfCardId = randomMethods() var dataPasswod = { code: "lwj/cardOperate", data: { lockerId: deviceinfo.deviceNum, lockerUserId: info.userId, startTime: passwordStartTime, endTime: passwordEndTime, order: 6210, operateMode: 10, action: 1, cardNo: rfCardId, type: 10, roomName: this.data.deviceinfo.roomName, cardName: cardName, } } console.log("平台", dataPasswod); WXAPI.sendCommand(dataPasswod).then(res => { console.log(res, '获取索引') if (res.success) { var pwdNo = res.data.index serialNumber = res.data.serialNumber rfCardIndex = pwdNo setTimeout(() => { that.onAddRfCard() }, 500) } }) }, 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 } }, sendFp() { var time3 = new Date(this.data.datetimerange[0].replace(/-/g, '/')) var time4 = new Date(this.data.datetimerange[1].replace(/-/g, '/')) var passwordStartTimecontrast = time3.getTime() / 1000 var passwordEndTimecontrast = time4.getTime() / 1000 if (passwordStartTimecontrast > passwordEndTimecontrast) { wx.showToast({ title: '开始时间不能大于结束时间', duration: 2000, mask: true, icon: 'none' }) return } if (this.data.radioDetil == '') { wx.showToast({ title: '请选择是那个指纹?', mask: true, duration: 2000, icon: 'none' }) return } wx.showLoading({ title: '正在添加指纹', mask: true }) var _this = this var deviceinfo = this.data.deviceinfo var info = JSON.parse(this.data.personLi.info) if (deviceinfo.manufactureId == 101) { let deviceNum = deviceinfo.deviceNum this.setData({ backstatus: true }) var timestamp = moment().format("x") var time1 = moment(this.data.datetimerange[0]).format("YYYYMMDDHHmmss") var time2 = moment(this.data.datetimerange[1]).format("YYYYMMDDHHmmss") bleall.startFp_29(deviceNum, 0x03, timestamp, function (res) { console.log(res, 'resresres') if (res.success) { wx.showLoading({ title: '正在添加指纹', mask: true }) } if (res.data == "蓝牙功能暂不支持") { wx.hideLoading() _this.startconnect() } }) } else if (deviceinfo.manufactureId == 201 || deviceinfo.manufactureId == 221) { var cgInfo = this.data.cgInfo var time1 = new Date(_this.data.datetimerange[0].replace(/-/g, '/')) var time2 = new Date(_this.data.datetimerange[1].replace(/-/g, '/')) var passwordStartTime = time1.getTime() / 1000 var passwordEndTime = time2.getTime() / 1000 var cardName = '', pzname = '' if (this.data.pzname) { cardName = _this.data.personLi.name + '-蓝牙-' + _this.data.pzname pzname = '蓝牙-' + _this.data.pzname } else { cardName = _this.data.personLi.name + '-蓝牙-指纹' + (_this.data.FpList.length + 1) pzname = '蓝牙-指纹' + (_this.data.FpList.length + 1) } var dataPasswod = { code: "zg/addFingerPrint", data: { lockerId: deviceinfo.deviceNum, imei: deviceinfo.imei, lockerUserId: info.userPassword, keyId: info.userPassword, fingerType: 0, order: 6216, fingerId: '', roomName: deviceinfo.roomName, cardName: cardName, startTime: passwordStartTime, endTime: passwordEndTime, file: '', type: 1 } } WXAPI.sendCommand(dataPasswod).then(res => { console.log(res, '获取索引') if (res.success) { var startTime = passwordStartTime.toString(16).toUpperCase() var endTime = passwordEndTime.toString(16).toUpperCase() info.startTime = startTime info.endTime = endTime methods.bluetoothOperation_ZH(cgInfo, info, 5).then(result => { if (result.status == '00' && result.completeFlag == '01') { console.log(result, 'callback2callback2') var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: result.fingerprintNo, type: 16, result: 1 } } console.log(datacom) var str = { // cardId: this.personInfo.cardId, imei: _this.data.deviceinfo.imei, pzname: pzname, password: '', fingerprintAlias: _this.data.radioDetil, userTelephone: JSON.parse(_this.data.personLi.info).userTelephone, operateMode: 16, userPassword: JSON.parse(_this.data.personLi.info).userPassword, passwordStartTime: passwordStartTime, passwordEndTime: passwordEndTime, is: false, pass: true } var data = { cardId: _this.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 deviceNum: _this.data.deviceinfo.deviceNum, type: 1, imei: _this.data.deviceinfo.imei, serial: res.data.serialNumber, startTime: passwordStartTime, endTime: passwordEndTime, status: 1 }; var datalist = { cardId: _this.data.personLi.cardId, content: JSON.stringify(str), //operateMode:NFC-10、把人员添加到凭证-1 type: 11, startTime: passwordStartTime, endTime: passwordEndTime }; WXAPI.addCertificates(datalist).then(res6 => {}) console.log(data, '添加凭证') WXAPI.addCertificates(data).then(res3 => { if (res3.success) { var updatedata = { id: res3.data, status: 1 }; WXAPI.updateCertificates(updatedata).then((res2) => {}); WXAPI.sendCommand(datacom).then(res2 => { if (res2.success) {} }) console.log(res3, '添加凭证成功') _this.getFp() _this.setData({ show: false }) wx.hideLoading() wx.showToast({ title: '添加成功', mask: true, icon: 'none', duration: 2000 }) } else { wx.hideLoading() wx.showToast({ title: '添加失败', mask: true, icon: 'none', duration: 2000 }) } }) } }).catch(err => { var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: 0, type: 16, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { if (res2.success) {} }) }) } else { var datacom = { code: "zg/bleSendVoucherReply", data: { lockerId: deviceinfo.deviceNum, serialNumber: res.data.serialNumber, index: 0, type: 16, result: 0 } } WXAPI.sendCommand(datacom).then(res2 => { if (res2.success) {} }) wx.showToast({ title: res.msg, duration: 2000, mask: true, icon: 'none' }) } }) } else if (deviceinfo.manufactureId == 1201 || deviceinfo.manufactureId == 1241) { if (this.data.isSearch) { // fingerprintIndex = 1 // serialNumber = 1686309639840 // this.onAddFingerprint() // return var time1 = new Date(_this.data.datetimerange[0].replace(/-/g, '/')) var time2 = new Date(_this.data.datetimerange[1].replace(/-/g, '/')) var passwordStartTime = time1.getTime() / 1000 var passwordEndTime = time2.getTime() / 1000 var cardName = '', pzname = '' if (this.data.pzname) { cardName = _this.data.personLi.name + '-蓝牙-' + _this.data.pzname pzname = '蓝牙-' + _this.data.pzname } else { cardName = _this.data.personLi.name + '-蓝牙-指纹' + (_this.data.FpList.length + 1) pzname = '蓝牙-指纹' + (_this.data.FpList.length + 1) } var dataPasswod = { code: "lwj/fpOperate", data: { lockerId: deviceinfo.deviceNum, action: 1, lockerUserId: info.userPassword, fpData: '', operateMode: 16, order: 6216, roomName: deviceinfo.roomName, cardName: cardName, startTime: passwordStartTime, endTime: passwordEndTime, type: 1 } } console.log(dataPasswod); WXAPI.sendCommand(dataPasswod).then(res => { console.log("123123",res); if (res.success) { fingerprintIndex = res.data.index serialNumber = res.data.serialNumber this.onAddFingerprint() } }) } else { this.searchDevicesMethods() } } }, login: function () { var that = this taskId = 32 that.initBluetooth() }, onLogin: function () { var that = this wx.showLoading({ title: '登录中', }) var bytes = plugin.login1(lockDevice.name, basecode) console.debug('bytes', bytes) that.sendBytes(bytes) }, onAddFingerprint: function () { var that = this wx.showLoading({ title: '添加指纹中', }) // var startTime = util1.getLocalTime(8) // var endTime = new Date(startTime.getTime() + 5 * 60 * 1000) //有效期5分钟 var startTime = new Date(Number(moment(that.data.starttime).format('x'))) var endTime = new Date(Number(moment(that.data.endtime).format('x'))) // fingerprintIndex = Math.floor(Math.random() * 100) console.log(lockDevice.name, basecode, fingerprintIndex, startTime, endTime); var bytes = plugin.addFingerprint(lockDevice.name, basecode, fingerprintIndex, startTime, endTime) console.debug('bytes', bytes) that.sendBytes(bytes) }, // 关闭添加人员弹窗 onClose() { this.setData({ show: false }); }, onChange(event) { console.log(event.detail) this.setData({ activeKey: event.detail }) }, getPassword() { var data = { pageNum: 0, pageSize: 0, q: JSON.stringify({ cardId: this.data.personLi.cardId, deviceNum: this.data.deviceinfo.deviceNum, types: "4", inStatus: '0,1,702' }) } console.log(data) WXAPI.getCertificates(data).then(res => { var dataOne = util.zlib_unzip(res.data) if (res.success) { dataOne.map(li => { li['pzname'] = JSON.parse(li.content).pzname li['password'] = util.plusXing(JSON.parse(li.content).password, 2, 2, '*') }) this.setData({ passwordList: dataOne }) } }) }, getNfc() { var data = { pageNum: 0, pageSize: 0, q: JSON.stringify({ cardId: this.data.personLi.cardId, deviceNum: this.data.deviceinfo.deviceNum, types: "3", inStatus: '0,1,702' }) } WXAPI.getCertificates(data).then(res => { console.log(res) var dataOne = util.zlib_unzip(res.data) console.log(dataOne) if (res.success) { dataOne.map(li => { li['pzname'] = JSON.parse(li.content).pzname li['password'] = util.plusXing(JSON.parse(li.content).password, 2, 2, '*') }) this.setData({ NfcList: dataOne }) } }) }, getFp() { var data = { pageNum: 0, pageSize: 0, q: JSON.stringify({ cardId: this.data.personLi.cardId, deviceNum: this.data.deviceinfo.deviceNum, types: "1", inStatus: '0,1,702' }) } WXAPI.getCertificates(data).then(res => { var dataOne = util.zlib_unzip(res.data) console.log("123123",dataOne); if (res.success) { dataOne.map(li => { li['pzname'] = JSON.parse(li.content).pzname li['password'] = '' li['fingerprintAlias'] = JSON.parse(li.content).fingerprintAlias || '' }) this.setData({ FpList: dataOne }) } }) }, getCarId() { var data = { pageNum: 0, pageSize: 0, q: JSON.stringify({ cardId: this.data.personLi.cardId, deviceNum: this.data.deviceinfo.deviceNum, types: "2", inStatus: '0,1,702' }) } WXAPI.getCertificates(data).then(res => { var dataOne = util.zlib_unzip(res.data) if (res.success) { dataOne.map(li => { li['pzname'] = JSON.parse(li.content).pzname li['password'] = util.plusXing(JSON.parse(li.content).password, 2, 2, '*') }) this.setData({ CarIdList: dataOne }) } }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { if (isConnected) { console.log(connectedDeviceId, 'connectedDeviceId') wx.closeBLEConnection({ deviceId: connectedDeviceId, success: function (res) { isConnected = false app.globalData.isConnected = false }, }) } }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })