// pages/Bluetooth/Bluetooth.js
|
|
const config = require('../../config')
|
|
const util1 = require('../../utils/util1.js')
|
|
const plugin = requirePlugin("myPlugin")
|
|
|
|
|
|
|
|
var util = require('../../utils/util');
|
|
var md5 = require('../../utils/md5.js');
|
|
// import {
|
|
// BLE
|
|
// } from "../../utils/btls/ble";
|
|
const app = getApp();
|
|
|
|
function RandNum() {
|
|
var rand = ''
|
|
for (var i = 0; i < 8; i++) {
|
|
rand += Math.floor(Math.random() * 10)
|
|
}
|
|
return rand
|
|
}
|
|
var connectedDeviceId
|
|
var basecode = 29283991 //RandNum()//
|
|
var lockId = 1
|
|
var lockManagerId = 1
|
|
var lockMac = ''
|
|
var isInitReady = false
|
|
var isConnected = false
|
|
var lockModel
|
|
var lockDevice
|
|
var taskId = 0
|
|
|
|
var pincode = -1
|
|
var pincodeIndex = -1
|
|
|
|
var rfCardId = -1
|
|
var rfCardIndex = -1
|
|
|
|
var fingerprintIndex = -1
|
|
|
|
var isLockLogin = false
|
|
|
|
|
|
|
|
const WXAPI = require('../../utils/request')
|
|
import ICINLocker from '../../utils/ICINPakage/ICINLocker'
|
|
import moment from '../../utils/moment';
|
|
// const emitter = app.globalData.emitter
|
|
// 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: {
|
|
platformId: 0, // 运营商
|
|
platformname: "",
|
|
sheetshow: false,
|
|
actions1: [{
|
|
name: '电信',
|
|
id: 1
|
|
},
|
|
{
|
|
name: '移动',
|
|
id: 2
|
|
},
|
|
{
|
|
name: '联通',
|
|
id: 3
|
|
},
|
|
{
|
|
name: "直连UDP平台",
|
|
id: 8
|
|
},
|
|
{
|
|
name: "直连TCP平台",
|
|
id: 9
|
|
},
|
|
{
|
|
name: "消息服务器",
|
|
id: 98
|
|
},
|
|
{
|
|
name: "本地缓存",
|
|
id: 99
|
|
}
|
|
],
|
|
selectRadio1: '1201',
|
|
showreg: false, // 注册到平台的弹出层
|
|
show2: false,
|
|
WifiName: '',
|
|
WifiPwd: "",
|
|
isBindLock: false,
|
|
isPincodeAdd: false,
|
|
isRfCardAdd: false,
|
|
isRegister: false,
|
|
isFingerprintAdd: false,
|
|
isUnloked: false,
|
|
isMuted: false,
|
|
isNbEnable: true,
|
|
lockModel: 0,
|
|
lock: {
|
|
imei: '',
|
|
roomName: '',
|
|
roomId: '',
|
|
mac: '',
|
|
lockType: '',
|
|
id: ''
|
|
},
|
|
|
|
showWifi: false,
|
|
showIP: false,
|
|
deviceInfo: {
|
|
roomId: '',
|
|
deviceNum: ''
|
|
},
|
|
dataTree: [],
|
|
selectKey: '', //选中的节点id
|
|
dataList: [],
|
|
array: [],
|
|
show: false,
|
|
deviceNum: '',
|
|
type: '1',
|
|
cgInfo: '',
|
|
lockStatus: "",
|
|
userInfo: '',
|
|
show1: false,
|
|
actions: [{
|
|
name: '静音',
|
|
color: '#ee0a24'
|
|
},
|
|
{
|
|
name: '低音',
|
|
color: '#333'
|
|
},
|
|
{
|
|
name: '高音',
|
|
color: '#333'
|
|
},
|
|
],
|
|
resgiterdevice: true,
|
|
volume: '',
|
|
adminuserinfo: {
|
|
enterpriseId: ''
|
|
},
|
|
wifiName: '',
|
|
wifiPassword: '',
|
|
IPName: '',
|
|
IPport: '',
|
|
privateKey: "",
|
|
showRoom: false,
|
|
firstAuthList: [],
|
|
secondAuthList: [],
|
|
threeAuthList: [],
|
|
fourAuthList: [],
|
|
romeLockerList: [],
|
|
firstAuthListInfo: [],
|
|
secondAuthListInfo: [],
|
|
threeAuthListInfo: [],
|
|
fourAuthListInfo: [],
|
|
romeLockerListInfo: [],
|
|
selectRoomList: ["", "", "", "", ""],
|
|
index: 0,
|
|
indexSecond: 0,
|
|
indexThree: 0,
|
|
indexFour: 0,
|
|
indexFive: 0,
|
|
FiveAuthList: {},
|
|
selectindex: '',
|
|
selectRadio: '1',
|
|
onlyResgiter: false,
|
|
selectRoomName: ''
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
if (options.selectKey) {
|
|
this.setData({
|
|
selectKey: options.selectKey,
|
|
selectRoomName: options.selectRoomName
|
|
})
|
|
}
|
|
if (options.selectindex == 4) {
|
|
var data = {
|
|
q: JSON.stringify({
|
|
deviceNum: options.deviceNum
|
|
})
|
|
}
|
|
this.data.deviceInfo.deviceNum = options.deviceNum
|
|
WXAPI.getDeviceItems(data).then(res => {
|
|
console.log(res);
|
|
if (res.data.list.length > 0) {
|
|
let lock = this.data.lock
|
|
lock.roomName = res.data.list[0].roomName || ''
|
|
lock.roomId = res.data.list[0].roomId || ''
|
|
lock.id = res.data.list[0].id || ''
|
|
lock.deviceNum = res.data.list[0].deviceNum || ''
|
|
lock.cardName = wx.getStorageSync('userInfo').username
|
|
|
|
// var data = {
|
|
// code: "zg/bleRegisterInfo",
|
|
// data: {
|
|
// lockerId: options.deviceNum
|
|
// }
|
|
// }
|
|
// WXAPI.sendCommand(data).then(res1 => {
|
|
// if (res1.success) {
|
|
// this.setData({
|
|
// cgInfo: res1.data
|
|
// })
|
|
// } else {
|
|
|
|
// }
|
|
// })
|
|
let superAdmin = []
|
|
var superAdminIdlist = lock.mac.slice(lock.mac.length - 11, lock.mac.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, superAdminId, this.data.lock);
|
|
this.setData({
|
|
deviceInfo: res.data.list[0],
|
|
lock: lock,
|
|
resgiterdevice: false
|
|
})
|
|
} else {
|
|
this.setData({
|
|
resgiterdevice: true
|
|
})
|
|
}
|
|
})
|
|
var that = this
|
|
connectedDeviceId = options.connectedDeviceId
|
|
lockMac = options.mac
|
|
console.log('onLoad', 'mac = ' + lockMac, connectedDeviceId)
|
|
|
|
lockModel = util1.getLockModel(options.name)
|
|
|
|
console.log('onLoad', 'model = ' + lockModel)
|
|
var lockType = util1.getLockType(lockModel)
|
|
var lock = this.data.lock
|
|
lock.mac = lockMac
|
|
lock.lockType = lockType
|
|
lock.deviceNum = options.deviceNum
|
|
|
|
|
|
lockDevice = app.getDeviceByDevName(options.name)
|
|
wx.setNavigationBarTitle({
|
|
title: options.name,
|
|
})
|
|
that.setData({
|
|
lock: lock,
|
|
lockModel: lockModel,
|
|
isNbLock: lockModel > 30 && lockModel < 49 || lockModel > 80 && lockModel < 89 || lockModel > 100 && lockModel < 109,
|
|
isFpLock: lockModel > 70 && lockModel < 89,
|
|
isJack: lockModel > 10000 && lockModel < 10009
|
|
})
|
|
var adminuserinfo = wx.getStorageSync('userInfo')
|
|
this.setData({
|
|
deviceNum: options.deviceNum,
|
|
type: options.type,
|
|
adminuserinfo: adminuserinfo,
|
|
selectindex: options.selectindex
|
|
})
|
|
|
|
|
|
} else {
|
|
var adminuserinfo = wx.getStorageSync('userInfo')
|
|
this.setData({
|
|
deviceNum: options.deviceNum,
|
|
type: options.type,
|
|
adminuserinfo: adminuserinfo,
|
|
selectindex: options.selectindex
|
|
})
|
|
var datathree = {
|
|
code: "zg/auth/firstAuthList",
|
|
data: {}
|
|
}
|
|
WXAPI.sendCommand(datathree).then(res1 => {
|
|
if (res1.success) {
|
|
var firstAuthList = []
|
|
res1.data.map(li => {
|
|
firstAuthList.push(li.value)
|
|
})
|
|
this.setData({
|
|
firstAuthListInfo: res1.data,
|
|
firstAuthList: firstAuthList
|
|
})
|
|
}
|
|
})
|
|
if (options.deviceNum.indexOf('yxwl') != -1) {
|
|
|
|
} else if (options.deviceNum.indexOf('ICIN')) {
|
|
this.concatFun(options.deviceNum)
|
|
this.readLockStatus()
|
|
}
|
|
var data = {
|
|
q: JSON.stringify({
|
|
deviceNum: options.deviceNum
|
|
})
|
|
}
|
|
WXAPI.getDeviceItems(data).then(res => {
|
|
console.log(res, '设备列表')
|
|
if (res.data.list.length == 0) {
|
|
this.setData({
|
|
deviceInfo: '',
|
|
resgiterdevice: false
|
|
})
|
|
} else {
|
|
if (res.data.list[0].roomId) {
|
|
this.getuser(res.data.list[0].roomId)
|
|
var selectRoomList = res.data.list[0].roomName.split('/')
|
|
this.setData({
|
|
selectRoomList
|
|
})
|
|
}
|
|
var data = {
|
|
code: "zg/bleRegisterInfo",
|
|
data: {
|
|
lockerId: options.deviceNum
|
|
}
|
|
}
|
|
WXAPI.sendCommand(data).then(res1 => {
|
|
if (res1.success) {
|
|
this.setData({
|
|
cgInfo: res1.data,
|
|
deviceInfo: res.data.list[0]
|
|
})
|
|
} else {
|
|
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}
|
|
this.getRoom()
|
|
},
|
|
onSelect(event) {
|
|
console.log(event.detail);
|
|
this.setData({
|
|
platformId: event.detail.id,
|
|
platformname: event.detail.name
|
|
})
|
|
},
|
|
changesheetshow() {
|
|
this.setData({
|
|
sheetshow: true
|
|
})
|
|
},
|
|
//
|
|
onChangeSelectRaio(event) {
|
|
this.setData({
|
|
selectRadio: event.detail,
|
|
});
|
|
},
|
|
onChangeSelectRaio1(event) {
|
|
this.setData({
|
|
selectRadio1: event.detail
|
|
})
|
|
},
|
|
bindPickerChange: function (e) {
|
|
console.log('picker发送选择改变,携带值为', e.detail.value)
|
|
var selectRoomList = this.data.selectRoomList
|
|
selectRoomList[0].name = this.data.firstAuthListInfo[e.detail.value].value
|
|
selectRoomList[0].code = this.data.firstAuthListInfo[e.detail.value].code
|
|
this.setData({
|
|
index: e.detail.value,
|
|
selectRoomList
|
|
})
|
|
var datathree = {
|
|
code: "zg/auth/secondAuthList",
|
|
data: {
|
|
parentId: selectRoomList[0].code
|
|
}
|
|
}
|
|
WXAPI.sendCommand(datathree).then(res1 => {
|
|
if (res1.success) {
|
|
var secondAuthList = []
|
|
res1.data.map(li => {
|
|
secondAuthList.push(li.value)
|
|
})
|
|
this.setData({
|
|
secondAuthListInfo: res1.data,
|
|
secondAuthList: secondAuthList
|
|
})
|
|
}
|
|
})
|
|
},
|
|
bindPickerChangeSecond: function (e) {
|
|
console.log('picker发送选择改变,携带值为', e.detail.value)
|
|
var selectRoomList = this.data.selectRoomList
|
|
selectRoomList[1].name = this.data.secondAuthListInfo[e.detail.value].value
|
|
selectRoomList[1].code = this.data.secondAuthListInfo[e.detail.value].code
|
|
this.setData({
|
|
indexSecond: e.detail.value,
|
|
selectRoomList
|
|
})
|
|
var datathree = {
|
|
code: "zg/auth/threeAuthList",
|
|
data: {
|
|
parentId: selectRoomList[1].code
|
|
}
|
|
}
|
|
WXAPI.sendCommand(datathree).then(res1 => {
|
|
if (res1.success) {
|
|
var threeAuthList = []
|
|
res1.data.map(li => {
|
|
threeAuthList.push(li.value)
|
|
})
|
|
this.setData({
|
|
threeAuthListInfo: res1.data,
|
|
threeAuthList: threeAuthList
|
|
})
|
|
}
|
|
})
|
|
},
|
|
bindPickerChangeThree: function (e) {
|
|
console.log('picker发送选择改变,携带值为', e.detail.value)
|
|
var selectRoomList = this.data.selectRoomList
|
|
selectRoomList[2].name = this.data.threeAuthListInfo[e.detail.value].value
|
|
selectRoomList[2].code = this.data.threeAuthListInfo[e.detail.value].code
|
|
this.setData({
|
|
indexThree: e.detail.value,
|
|
selectRoomList
|
|
})
|
|
var datathree = {
|
|
code: "zg/auth/fourAuthList",
|
|
data: {
|
|
parentId: selectRoomList[2].code
|
|
}
|
|
}
|
|
WXAPI.sendCommand(datathree).then(res1 => {
|
|
if (res1.success) {
|
|
var fourAuthList = []
|
|
res1.data.map(li => {
|
|
fourAuthList.push(li.value)
|
|
})
|
|
this.setData({
|
|
fourAuthListInfo: res1.data,
|
|
fourAuthList: fourAuthList
|
|
})
|
|
}
|
|
})
|
|
},
|
|
bindPickerChangeFour: function (e) {
|
|
console.log('picker发送选择改变,携带值为', e.detail.value)
|
|
var selectRoomList = this.data.selectRoomList
|
|
selectRoomList[3].name = this.data.fourAuthListInfo[e.detail.value].value
|
|
selectRoomList[3].code = this.data.fourAuthListInfo[e.detail.value].code
|
|
this.setData({
|
|
indexFour: e.detail.value,
|
|
selectRoomList
|
|
})
|
|
var datathree = {
|
|
code: "zg/auth/getRomeUnLockerList",
|
|
data: {
|
|
parentId: selectRoomList[3].code
|
|
}
|
|
}
|
|
WXAPI.sendCommand(datathree).then(res1 => {
|
|
if (res1.success) {
|
|
var romeLockerList = []
|
|
res1.data.map(li => {
|
|
romeLockerList.push(li.value)
|
|
})
|
|
this.setData({
|
|
romeLockerListInfo: res1.data,
|
|
romeLockerList: romeLockerList
|
|
})
|
|
}
|
|
})
|
|
},
|
|
bindPickerChangeFive: function (e) {
|
|
console.log('picker发送选择改变,携带值为', e.detail.value)
|
|
var selectRoomList = this.data.selectRoomList
|
|
selectRoomList[4].name = this.data.romeLockerListInfo[e.detail.value].value
|
|
selectRoomList[4].code = this.data.romeLockerListInfo[e.detail.value].code
|
|
this.setData({
|
|
indexFive: e.detail.value,
|
|
selectRoomList
|
|
})
|
|
// var datathreeOne = {
|
|
// code: "zg/auth/romeFiveAuthByName",
|
|
// data: {
|
|
// "firstAuthName": selectRoomList[0].name,
|
|
// "secondAuthName": selectRoomList[1].name,
|
|
// "threeAuthName": selectRoomList[2].name,
|
|
// "fourAuthName": selectRoomList[3].name,
|
|
// "roomAuth": selectRoomList[4].name
|
|
// }
|
|
// }
|
|
// WXAPI.sendCommand(datathreeOne).then(res1 => {
|
|
// if (res1.code==200) {
|
|
// this.setData({
|
|
// FiveAuthList:res1.data
|
|
// })
|
|
// }
|
|
// })
|
|
},
|
|
// 获取锁端私钥
|
|
getPirvateKey() {
|
|
wx.showLoading({
|
|
title: '读取中',
|
|
mask: true
|
|
})
|
|
var that = this
|
|
ICINLocker.getSignKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId,
|
|
(callback) => {
|
|
var signKey = callback.signKey
|
|
ICINLocker.getCommonKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, signKey, (callback1) => {
|
|
ICINLocker.getPirvateKey(this.data.cgInfo.lockerId, callback1.commonKey, (callback2) => {
|
|
if (callback2.status == '00') {
|
|
console.log(callback2, 'sdsiy')
|
|
var privateKey = callback2.privateKey
|
|
if (privateKey) {
|
|
that.setData({
|
|
privateKey: privateKey
|
|
})
|
|
}
|
|
wx.hideLoading()
|
|
console.log(that.data.privateKey, 'sdsiy')
|
|
}
|
|
})
|
|
})
|
|
})
|
|
setTimeout(() => {
|
|
wx.hideLoading()
|
|
}, 5000)
|
|
},
|
|
synchronizationTime() {
|
|
var time = parseInt(new Date().getTime() / 1000)
|
|
ICINLocker.getSignKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId,
|
|
(callback) => {
|
|
var signKey = callback.signKey
|
|
ICINLocker.getCommonKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, signKey, (callback1) => {
|
|
var _commonKey = callback1.commonKey
|
|
ICINLocker.updateTime(this.data.cgInfo.lockerId, this.data.cgInfo.superId, time, '', _commonKey, callback2 => {
|
|
if (callback2.status == '00') {
|
|
wx.showToast({
|
|
title: '同步时间成功',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
this.setData({
|
|
showIP: false
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '同步时间失败,错误码:' + callback2.status,
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
});
|
|
|
|
})
|
|
})
|
|
},
|
|
confirmSetIP() {
|
|
if (this.data.IPName == '' || this.data.IPport == '') {
|
|
wx.showToast({
|
|
title: '请填写完整信息',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
} else {
|
|
var NbGwIp = this.data.IPName
|
|
var NbGwPort = this.data.IPport
|
|
ICINLocker.getSignKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId,
|
|
(callback) => {
|
|
console.log(callback)
|
|
var signKey = callback.signKey
|
|
ICINLocker.getCommonKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, signKey, (callback1) => {
|
|
console.log(callback1)
|
|
var _commonKey = callback1.commonKey
|
|
ICINLocker.setWifiApInfo(NbGwIp, NbGwPort, _commonKey, callback2 => {
|
|
if (callback2.status == '00') {
|
|
wx.showToast({
|
|
title: '设置成功',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
this.setData({
|
|
showIP: false
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '设置失败,错误码:' + callback2.status,
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
});
|
|
})
|
|
})
|
|
}
|
|
},
|
|
confirmSetWifi() {
|
|
if (this.data.wifiName == '' || this.data.wifiPassword == '') {
|
|
wx.showToast({
|
|
title: '请填写完整信息',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
} else {
|
|
var _wifiApSsid = this.data.wifiName
|
|
var _wifiApPwd = this.data.wifiPassword
|
|
ICINLocker.getSignKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId,
|
|
(callback) => {
|
|
console.log(callback)
|
|
var signKey = callback.signKey
|
|
ICINLocker.getCommonKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, signKey, (callback1) => {
|
|
console.log(callback1)
|
|
var _commonKey = callback1.commonKey
|
|
ICINLocker.setWifiApInfo(_wifiApSsid, _wifiApPwd, _commonKey, callback2 => {
|
|
if (callback2.status == '00') {
|
|
wx.showToast({
|
|
title: '设置成功',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
this.setData({
|
|
showWifi: false
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '设置失败,错误码:' + callback2.status,
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
});
|
|
})
|
|
})
|
|
}
|
|
},
|
|
onChangeWifi(event) {
|
|
// event.detail 为当前输入的值
|
|
this.setData({
|
|
wifiName: event.detail
|
|
})
|
|
},
|
|
onChangeWifi1(event) {
|
|
// event.detail 为当前输入的值
|
|
this.setData({
|
|
wifiPassword: event.detail
|
|
})
|
|
},
|
|
setWifi() {
|
|
this.setData({
|
|
showWifi: true
|
|
});
|
|
},
|
|
onCloseWifi() {
|
|
this.setData({
|
|
showWifi: false
|
|
});
|
|
},
|
|
|
|
|
|
onChangeIP(event) {
|
|
// event.detail 为当前输入的值
|
|
this.setData({
|
|
IPName: event.detail
|
|
})
|
|
},
|
|
onChangeIP1(event) {
|
|
// event.detail 为当前输入的值
|
|
this.setData({
|
|
IPport: event.detail
|
|
})
|
|
},
|
|
setIP() {
|
|
this.setData({
|
|
showIP: true
|
|
});
|
|
},
|
|
onCloseIP() {
|
|
this.setData({
|
|
showIP: false
|
|
});
|
|
},
|
|
onCloseRoom() {
|
|
this.setData({
|
|
showRoom: false
|
|
});
|
|
},
|
|
// 获取用户
|
|
getuser(roomId) {
|
|
var data = {
|
|
q: JSON.stringify({
|
|
id: roomId
|
|
}),
|
|
orderBy: "createTime",
|
|
orderType: 'desc'
|
|
}
|
|
WXAPI.getSiteTenant(data).then(res => {
|
|
if (res.success) {
|
|
this.setData({
|
|
userInfo: res.data.list[0]
|
|
})
|
|
}
|
|
})
|
|
},
|
|
// 删除用户
|
|
deleteUser() {
|
|
|
|
},
|
|
// 添加指纹
|
|
addFingerPrints() {
|
|
if (this.userInfo == '') {
|
|
wx.showToast({
|
|
title: '请添加用户',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
} else {
|
|
var userInfo = JSON.parse(this.data.userInfo.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)
|
|
})
|
|
})
|
|
}
|
|
},
|
|
ShowRoomMathods() {
|
|
this.setData({
|
|
showRoom: true
|
|
})
|
|
},
|
|
sendSetKey() {
|
|
wx.showModal({
|
|
title: '下发五组密钥前,请先获取锁端私钥,是否下发五组密钥',
|
|
success: (result) => {
|
|
if (result.confirm) {
|
|
var selectRoomList = this.data.selectRoomList
|
|
if (this.data.privateKey == '') {
|
|
wx.showModal({
|
|
title: '请获取锁端私钥,才能下发五组密钥',
|
|
})
|
|
return
|
|
}
|
|
wx.showLoading({
|
|
title: '下发中',
|
|
mask: true
|
|
})
|
|
var that = this
|
|
var dataOne = {
|
|
code: "zg/auth/romeFiveAuthByName",
|
|
data: {
|
|
"firstAuthName": selectRoomList[0],
|
|
"secondAuthName": selectRoomList[1],
|
|
"threeAuthName": selectRoomList[2],
|
|
"fourAuthName": selectRoomList[3],
|
|
"roomAuth": selectRoomList[4],
|
|
}
|
|
}
|
|
WXAPI.sendCommand(dataOne).then(resOne => {
|
|
if (resOne.code == 200) {
|
|
let FiveAuthList = resOne.data
|
|
var currtime = moment().format("X")
|
|
var writeTime = parseInt(currtime).toString(16).toUpperCase()
|
|
ICINLocker.getSignKey(that.data.cgInfo.lockerId, that.data.cgInfo.superId, that.data.cgInfo.superId, (callbackSignKey) => {
|
|
ICINLocker.getCommonKey(that.data.cgInfo.lockerId, that.data.cgInfo.superId, that.data.cgInfo.superId, callbackSignKey.signKey, (callback) => {
|
|
console.log(callback)
|
|
if (callback.status == "00") {
|
|
ICINLocker.addFiveKeys(that.data.cgInfo.lockerId, writeTime, "01", that.data.privateKey, "01", FiveAuthList.firstAuth, "01", FiveAuthList.secondAuth, "01", FiveAuthList.threeAuth, "01", FiveAuthList.fourAuth, callback.commonKey, (callback1) => {
|
|
console.log(callback1, '下发五组密钥返回')
|
|
if (callback1.completeFlag == "01" && callback1.status == "00") {
|
|
wx.showModal({
|
|
title: '下发成功',
|
|
})
|
|
var datathreeTwo = {
|
|
code: "zg/auth/reportOfflineCardPrivateKey",
|
|
data: {
|
|
roomId: resOne.data.homeId,
|
|
privateKey: that.data.privateKey,
|
|
}
|
|
}
|
|
WXAPI.sendCommand(datathreeTwo).then(res1 => {
|
|
if (res1.code == 200) {}
|
|
})
|
|
this.setData({
|
|
showRoom: false
|
|
})
|
|
} else {
|
|
wx.showModal({
|
|
title: '下发失败',
|
|
})
|
|
// wx.showToast({
|
|
// title: '下发失败',
|
|
// duration:2000,
|
|
// icon:"none"
|
|
// })
|
|
}
|
|
});
|
|
}
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}
|
|
}
|
|
})
|
|
setTimeout(() => {
|
|
wx.hideLoading()
|
|
}, 10000)
|
|
},
|
|
// 蓝牙开门
|
|
openTheDoor() {
|
|
if (this.userInfo == '') {
|
|
wx.showToast({
|
|
title: '请添加用户',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
} else {
|
|
ICINLocker.getSignKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId,
|
|
(callback) => {
|
|
console.log(callback)
|
|
var signKey = callback.signKey
|
|
ICINLocker.getCommonKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, signKey, (callback1) => {
|
|
console.log(callback1)
|
|
var commonKey = callback1.commonKey
|
|
ICINLocker.openTheDoor(this.data.cgInfo.lockerId, this.data.cgInfo.superId, signKey, this.data.cgInfo.superId, '', '01', commonKey, (callback2) => {
|
|
console.log(callback2.status)
|
|
var data = {
|
|
code: "zg/bleUnlockRecord",
|
|
data: {
|
|
lockerId: this.data.cgInfo.lockerId,
|
|
lockerUserId: this.data.cgInfo.superId
|
|
}
|
|
}
|
|
WXAPI.sendCommand(data).then(res => {
|
|
console.log(res)
|
|
})
|
|
setTimeout(() => {
|
|
this.synchronizationTime()
|
|
}, 1000)
|
|
})
|
|
})
|
|
})
|
|
}
|
|
},
|
|
//连接蓝牙
|
|
concatFun() {
|
|
var deviceNum = this.data.deviceNum
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '连接中',
|
|
mask: true
|
|
})
|
|
wx.removeStorageSync("connectedDeviceId")
|
|
ICINLocker.scanDevices(deviceNum)
|
|
.then((res) => {
|
|
if (res.status == 0) {
|
|
//成功找到蓝牙情况下进行锁连接
|
|
ICINLocker.connect(res.deviceId, false) // 此处 deviceId 存起来,当断开连接时使用
|
|
.then((res) => {
|
|
if (res.status == 0) {
|
|
wx.showToast({
|
|
title: res.statusReason,
|
|
duration: 2000,
|
|
icon: "none"
|
|
})
|
|
wx.hideLoading()
|
|
} else {
|
|
wx.showToast({
|
|
title: res.statusReason,
|
|
duration: 2000,
|
|
icon: "none"
|
|
})
|
|
console.log(222, res)
|
|
wx.hideLoading()
|
|
//此处处理返回值不为成功(0)的情况
|
|
}
|
|
}).catch((res) => {
|
|
this.concatFun()
|
|
// 此处处理未能连接成功问题
|
|
})
|
|
}
|
|
})
|
|
.catch((res) => {
|
|
//此处处理未能连接到蓝牙的问题
|
|
})
|
|
},
|
|
resetLock1() {
|
|
wx.showModal({
|
|
title: '是否确认重置锁',
|
|
success: (result) => {
|
|
if (result.confirm) {
|
|
ICINLocker.getSignKey('ICIN_16b017e8f6cc', 'AE822FD', 'AE822FD',
|
|
(callback) => {
|
|
console.log(callback, '111')
|
|
var signKey = callback.signKey
|
|
ICINLocker.getCommonKey('ICIN_16b017e8f6cc', 'AE822FD', 'AE822FD', signKey, (callback1) => {
|
|
console.log(callback1)
|
|
ICINLocker.resetLock('ICIN_16b017e8f6cc', 'AE822FD', '', signKey, callback1.commonKey, (callback2) => {
|
|
console.log(callback2)
|
|
if (callback2.status = '00') {
|
|
var data1 = {
|
|
device: this.data.deviceNum
|
|
}
|
|
// WXAPI.deleteZGDevice(data1).then(res => {
|
|
|
|
// })
|
|
this.unbindRoom()
|
|
}
|
|
});
|
|
})
|
|
})
|
|
}
|
|
},
|
|
fail: (res) => {
|
|
|
|
},
|
|
})
|
|
},
|
|
// 重置
|
|
resetLock() {
|
|
wx.showModal({
|
|
title: '是否确认重置锁',
|
|
success: (result) => {
|
|
if (result.confirm) {
|
|
wx.showLoading({
|
|
title: '重置中',
|
|
mask: true
|
|
})
|
|
ICINLocker.getSignKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId,
|
|
(callback) => {
|
|
if (callback.status == '00') {
|
|
var signKey = callback.signKey
|
|
ICINLocker.getCommonKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, signKey, (callback1) => {
|
|
ICINLocker.resetLock(this.data.cgInfo.lockerId, this.data.cgInfo.superId, '', signKey, callback1.commonKey, (callback2) => {
|
|
if (callback2.status = '00') {
|
|
wx.showToast({
|
|
title: '重置成功',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
this.unbindRoom()
|
|
} else {
|
|
wx.hideLoading()
|
|
wx.showToast({
|
|
title: '重置失败',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
});
|
|
})
|
|
} else {
|
|
wx.hideLoading()
|
|
wx.showToast({
|
|
title: '重置失败',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
}
|
|
},
|
|
fail: (res) => {
|
|
|
|
},
|
|
})
|
|
},
|
|
// 解绑房间
|
|
unbindRoomMethods() {
|
|
wx.showModal({
|
|
title: '是否确认解绑',
|
|
success: (result) => {
|
|
if (result.confirm) {
|
|
var data = [{
|
|
siteId: this.data.deviceInfo.roomId,
|
|
deviceId: this.data.deviceInfo.id,
|
|
}]
|
|
WXAPI.unbindDeviceSite(data).then(res => {
|
|
var data2 = {
|
|
code: "zg/bleResetDevice",
|
|
data: {
|
|
lockerId: this.data.deviceInfo.deviceNum
|
|
}
|
|
}
|
|
WXAPI.sendCommand(data2).then(res1 => {
|
|
console.log(res1, 'res1------')
|
|
if (res1.success) {
|
|
var data1 = {
|
|
lockerId: this.data.deviceInfo.deviceNum,
|
|
imei: this.data.deviceInfo.imei,
|
|
order: 5102,
|
|
cardName: this.data.adminuserinfo.username,
|
|
roomName: this.data.deviceInfo.roomName
|
|
}
|
|
WXAPI.deleteZGDevice(data1).then(res => {
|
|
// console.log(res, '删除设备')
|
|
if (res.success) {
|
|
wx.showToast({
|
|
title: '解绑成功',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
var deviceInfo = this.data.deviceInfo
|
|
deviceInfo['roomId'] = ''
|
|
deviceInfo['roomName'] = ''
|
|
this.setData({
|
|
deviceInfo,
|
|
resgiterdevice: false
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '删除失败',
|
|
icon: "none",
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
var data3 = {
|
|
q: JSON.stringify({
|
|
id: this.data.deviceInfo.roomId
|
|
})
|
|
}
|
|
WXAPI.getSiteTenant(data3).then(res2 => {
|
|
console.log(res2, 'res22222')
|
|
if (res2.success) {
|
|
var ids = []
|
|
res2.data.list.map(li => {
|
|
var obj = {
|
|
siteId: this.data.deviceInfo.roomId,
|
|
cardId: li.cardId,
|
|
}
|
|
ids.push(obj)
|
|
})
|
|
WXAPI.unbindCard(ids).then(res3 => {
|
|
if (res3.success) {
|
|
wx.showToast({
|
|
title: '退租成功',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '退租失败',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '退租失败',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
// 解绑房间
|
|
unbindRoom() {
|
|
var data = [{
|
|
siteId: this.data.deviceInfo.roomId,
|
|
deviceId: this.data.deviceInfo.id,
|
|
}]
|
|
WXAPI.unbindDeviceSite(data).then(res => {
|
|
var data2 = {
|
|
code: "zg/bleResetDevice",
|
|
data: {
|
|
lockerId: this.data.deviceInfo.deviceNum
|
|
}
|
|
}
|
|
WXAPI.sendCommand(data2).then(res1 => {
|
|
console.log(res1, 'res1------')
|
|
if (res1.success) {
|
|
var data1 = {
|
|
lockerId: this.data.deviceInfo.deviceNum,
|
|
imei: this.data.deviceInfo.imei,
|
|
order: 5102,
|
|
cardName: this.data.adminuserinfo.username,
|
|
roomName: this.data.deviceInfo.roomName,
|
|
result: 1
|
|
}
|
|
WXAPI.deleteZGDevice(data1).then(res => {
|
|
// console.log(res, '删除设备')
|
|
if (res.success) {
|
|
wx.showToast({
|
|
title: '解绑成功',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
var deviceInfo = this.data.deviceInfo
|
|
deviceInfo['roomId'] = ''
|
|
deviceInfo['roomName'] = ''
|
|
this.setData({
|
|
deviceInfo,
|
|
resgiterdevice: false
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '删除失败',
|
|
icon: "none",
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
var data3 = {
|
|
q: JSON.stringify({
|
|
id: this.data.deviceInfo.roomId
|
|
})
|
|
}
|
|
WXAPI.getSiteTenant(data3).then(res2 => {
|
|
console.log(res2, 'res22222')
|
|
if (res2.success) {
|
|
var ids = []
|
|
res2.data.list.map(li => {
|
|
var obj = {
|
|
siteId: this.data.deviceInfo.roomId,
|
|
cardId: li.cardId,
|
|
}
|
|
ids.push(obj)
|
|
})
|
|
WXAPI.unbindCard(ids).then(res3 => {
|
|
if (res3.success) {
|
|
wx.showToast({
|
|
title: '退租成功',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '退租失败',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '退租失败',
|
|
duration: 2000,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
})
|
|
},
|
|
randomString(len, charSet) {
|
|
charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
var randomString = '';
|
|
for (var i = 0; i < len; i++) {
|
|
var randomPoz = Math.floor(Math.random() * charSet.length);
|
|
randomString += charSet.substring(randomPoz, randomPoz + 1);
|
|
}
|
|
return randomString;
|
|
},
|
|
// 设置声音
|
|
setVoice() {
|
|
this.setData({
|
|
show1: true
|
|
});
|
|
},
|
|
// 关闭设置音量
|
|
onClose1() {
|
|
this.setData({
|
|
show2: false
|
|
});
|
|
},
|
|
// 选择设置音量
|
|
onSelect1(event) {
|
|
var volume = ''
|
|
if (event.detail.name == '静音') {
|
|
volume = '00'
|
|
} else if (event.detail.name == '低音') {
|
|
volume = '01'
|
|
} else if (event.detail.name == '高音') {
|
|
volume = '02'
|
|
}
|
|
this.setData({
|
|
volume: volume
|
|
})
|
|
wx.showLoading({
|
|
title: "正在设置...",
|
|
mask: true
|
|
});
|
|
this.setVolume(volume)
|
|
},
|
|
// 设置音量
|
|
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'
|
|
})
|
|
}
|
|
});
|
|
},
|
|
reportOfflineCardPrivateKeyMethods(str, signKey, commonKey, IMEI, IMSI) {
|
|
var that = this
|
|
var dataTwo = {
|
|
code: "zg/auth/romeFiveAuthByName",
|
|
data: {
|
|
"firstAuthName": that.data.selectRoomList[0],
|
|
"secondAuthName": that.data.selectRoomList[1],
|
|
"threeAuthName": that.data.selectRoomList[2],
|
|
"fourAuthName": that.data.selectRoomList[3],
|
|
"roomAuth": that.data.selectRoomList[4],
|
|
}
|
|
}
|
|
WXAPI.sendCommand(dataTwo).then(resTwo => {
|
|
var datathreeOne = {
|
|
code: "zg/customer/compleateLocker",
|
|
data: {
|
|
romeId: resTwo.data.homeId,
|
|
lockerId: this.data.deviceNum,
|
|
superAdminId: str,
|
|
superAdminKey: str,
|
|
authCode: signKey,
|
|
communicationKey: commonKey,
|
|
commentType: that.data.type,
|
|
imei: IMEI,
|
|
imsi: IMSI
|
|
}
|
|
}
|
|
WXAPI.sendCommand(datathreeOne).then(resOne => {
|
|
|
|
})
|
|
})
|
|
},
|
|
// 添加管理员
|
|
addAdmin() {
|
|
var that = this
|
|
var str1 = JSON.stringify(util.gettimestamp1())
|
|
var devicenum = this.data.deviceNum
|
|
var md51 = md5(devicenum);
|
|
console.log(md51)
|
|
// var sjnum=this.randomString(7,md51)
|
|
// var str = sjnum.toUpperCase()
|
|
wx.showLoading({
|
|
title: '注册中',
|
|
mask: true
|
|
})
|
|
var str = md51.substr(md51.length - 7, md51.length).toUpperCase()
|
|
console.log(str, this.data.deviceNum)
|
|
ICINLocker.getSignKey(this.data.deviceNum, str, str,
|
|
(callback) => {
|
|
this.data.signKey = callback.signKey
|
|
var signKey = callback.signKey
|
|
console.log(signKey)
|
|
ICINLocker.getCommonKey(this.data.deviceNum, str, str, callback.signKey, (callback) => {
|
|
this.data.commonKey = callback.commonKey
|
|
var commonKey = callback.commonKey
|
|
ICINLocker.readLockerInfo(this.data.deviceNum, str, (callback) => {
|
|
if (that.data.type == '0') {
|
|
ICINLocker.setIpOfNb("103.120.227.76", "9090", commonKey, callback2 => {
|
|
ICINLocker.addUserToLock(this.data.deviceNum, str, str, str, 'FF', signKey, '', commonKey, '00000000', 'FFFFFFFF', (callback1) => {
|
|
if (callback1.status == '00') {
|
|
var IMEI = callback.nbIMEI.substr(0, 15);
|
|
var IMSI = callback.nvIMSI.substr(0, 15);
|
|
var data = {
|
|
lockerId: this.data.deviceNum,
|
|
imei: IMEI,
|
|
imsi: IMSI,
|
|
// customerCode: "d39eaa7fc1f34190869608259133d2fb",
|
|
lockerSuperAdminId: str,
|
|
authKey: this.data.signKey.toUpperCase(),
|
|
commonKey: this.data.commonKey,
|
|
type: this.data.type,
|
|
enterpriseId: this.data.adminuserinfo.enterpriseId,
|
|
order: 5101,
|
|
status: 1,
|
|
cardName: this.data.adminuserinfo.username + '-蓝牙注册锁',
|
|
roomName: this.data.selectRoomList.join("/")
|
|
};
|
|
if (that.data.selectRadio == 1 || that.data.selectRadio == 3) {
|
|
that.reportOfflineCardPrivateKeyMethods(str, signKey, commonKey, IMEI, IMSI)
|
|
}
|
|
setTimeout(() => {
|
|
if (!that.data.resgiterdevice) {
|
|
var datastr = {
|
|
data: {
|
|
manufactureId: that.data.selectindex == 2 ? 201 : that.data.selectindex == 3 ? 221 : '',
|
|
lockerId: data.lockerId,
|
|
imei: data.imei,
|
|
imsi: data.imsi,
|
|
// customerCode:data.customerCode,
|
|
lockerSuperAdminId: data.lockerSuperAdminId,
|
|
authKey: data.authKey,
|
|
commonKey: data.commonKey,
|
|
type: data.type,
|
|
order: 5101,
|
|
status: 1,
|
|
cardName: data.cardName,
|
|
roomName: data.roomName
|
|
},
|
|
code: "/v1/zg/registerDevice",
|
|
enterpriseId: data.enterpriseId,
|
|
key: data.lockerId
|
|
}
|
|
WXAPI.registerDeviceAll(datastr).then(res => {
|
|
console.log(res, '注册设备')
|
|
if (res.success) {
|
|
that.setData({
|
|
onlyResgiter: true
|
|
})
|
|
wx.showToast({
|
|
title: res.message,
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
var data1 = {
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
q: JSON.stringify({
|
|
deviceNum: this.data.deviceNum,
|
|
// lockType:1,
|
|
types: [1, 21],
|
|
})
|
|
}
|
|
var data2 = [{
|
|
siteId: that.data.selectKey,
|
|
deviceId: res.data.id,
|
|
}]
|
|
var data3 = {
|
|
code: "zg/bleRegisterInfo",
|
|
data: {
|
|
lockerId: this.data.deviceNum
|
|
}
|
|
}
|
|
WXAPI.sendCommand(data3).then(res1 => {
|
|
console.log(res1, '蓝牙设备')
|
|
if (res1.success) {
|
|
this.setData({
|
|
cgInfo: res1.data
|
|
})
|
|
} else {
|
|
|
|
}
|
|
})
|
|
if (that.data.selectRadio == 1 || that.data.selectRadio == 3) {
|
|
WXAPI.bindDeviceSite(data2).then(res2 => {
|
|
console.log(res2, '绑定设备数据')
|
|
if (res2.success) {
|
|
wx.showToast({
|
|
title: '操作成功',
|
|
duration: 2000,
|
|
icon: "none"
|
|
})
|
|
this.getuser(that.data.selectKey)
|
|
WXAPI.getDeviceItems(data1).then(res3 => {
|
|
console.log(res, '获取设备')
|
|
wx.hideLoading()
|
|
this.setData({
|
|
deviceInfo: res3.data.list[0],
|
|
show: false,
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: '平台注册失败',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
var data1 = {
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
q: JSON.stringify({
|
|
deviceNum: this.data.deviceNum,
|
|
// lockType:1,
|
|
types: [1, 21],
|
|
})
|
|
}
|
|
var data2 = [{
|
|
siteId: that.data.selectKey,
|
|
deviceId: that.data.deviceInfo.id,
|
|
}]
|
|
var data3 = {
|
|
code: "zg/bleRegisterInfo",
|
|
data: {
|
|
lockerId: this.data.deviceNum
|
|
}
|
|
}
|
|
WXAPI.sendCommand(data3).then(res1 => {
|
|
if (res1.success) {
|
|
this.setData({
|
|
cgInfo: res1.data
|
|
})
|
|
} else {
|
|
|
|
}
|
|
})
|
|
if (that.data.selectRadio == 1 || that.data.selectRadio == 3) {
|
|
WXAPI.bindDeviceSite(data2).then(res2 => {
|
|
console.log(res2, '绑定设备数据')
|
|
if (res2.success) {
|
|
wx.showToast({
|
|
title: '操作成功',
|
|
duration: 2000,
|
|
icon: "none"
|
|
})
|
|
this.getuser(that.data.selectKey)
|
|
WXAPI.getDeviceItems(data1).then(res3 => {
|
|
wx.hideLoading()
|
|
this.setData({
|
|
deviceInfo: res3.data.list[0],
|
|
show: false
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}, 1000)
|
|
} else {
|
|
wx.showToast({
|
|
title: '门锁注册失败',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
})
|
|
} else {
|
|
ICINLocker.addUserToLock(this.data.deviceNum, str, str, str, 'FF', signKey, '', commonKey, '00000000', 'FFFFFFFF', (callback1) => {
|
|
if (callback1.status == '00') {
|
|
console.log(callback, '锁信息')
|
|
var IMEI = callback.nbIMEI.substr(0, 15);
|
|
var IMSI = callback.nvIMSI.substr(0, 15);
|
|
var data = {
|
|
lockerId: this.data.deviceNum,
|
|
imei: IMEI,
|
|
imsi: IMSI,
|
|
// customerCode: "d39eaa7fc1f34190869608259133d2fb",
|
|
lockerSuperAdminId: str,
|
|
authKey: this.data.signKey.toUpperCase(),
|
|
commonKey: this.data.commonKey,
|
|
enterpriseId: this.data.adminuserinfo.enterpriseId,
|
|
type: this.data.type,
|
|
order: 5101,
|
|
roomName: this.data.selectRoomList.join("/")
|
|
};
|
|
if (that.data.selectRadio == 1 || that.data.selectRadio == 3) {
|
|
that.reportOfflineCardPrivateKeyMethods(str, signKey, commonKey, IMEI, IMSI)
|
|
}
|
|
setTimeout(() => {
|
|
if (!that.data.resgiterdevice) {
|
|
var datastr = {
|
|
data: {
|
|
manufactureId: that.data.selectindex == 2 ? 201 : that.data.selectindex == 3 ? 221 : '',
|
|
lockerId: data.lockerId,
|
|
imei: data.imei,
|
|
imsi: data.imsi,
|
|
// customerCode:data.customerCode,
|
|
lockerSuperAdminId: data.lockerSuperAdminId,
|
|
authKey: data.authKey,
|
|
commonKey: data.commonKey,
|
|
type: data.type,
|
|
order: 5101,
|
|
cardName: data.cardName,
|
|
roomName: data.roomName
|
|
},
|
|
code: "/v1/zg/registerDevice",
|
|
enterpriseId: data.enterpriseId,
|
|
key: data.lockerId
|
|
}
|
|
console.log(datastr, 'datastrdatastr631')
|
|
WXAPI.registerDeviceAll(datastr).then(res => {
|
|
console.log(res, '注册设备')
|
|
if (res.success) {
|
|
that.setData({
|
|
onlyResgiter: true
|
|
})
|
|
wx.showToast({
|
|
title: res.message,
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
var data1 = {
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
q: JSON.stringify({
|
|
deviceNum: this.data.deviceNum,
|
|
// lockType:1,
|
|
types: [1, 21],
|
|
})
|
|
}
|
|
var data2 = [{
|
|
siteId: that.data.selectKey,
|
|
deviceId: res.data.id,
|
|
}]
|
|
var data3 = {
|
|
code: "zg/bleRegisterInfo",
|
|
data: {
|
|
lockerId: this.data.deviceNum
|
|
}
|
|
}
|
|
WXAPI.sendCommand(data3).then(res1 => {
|
|
if (res1.success) {
|
|
this.setData({
|
|
cgInfo: res1.data
|
|
})
|
|
} else {
|
|
|
|
}
|
|
})
|
|
if (that.data.selectRadio == 1 || that.data.selectRadio == 3) {
|
|
WXAPI.bindDeviceSite(data2).then(res2 => {
|
|
console.log(res2, '绑定设备数据')
|
|
if (res2.success) {
|
|
wx.showToast({
|
|
title: '操作成功',
|
|
duration: 2000,
|
|
icon: "none"
|
|
})
|
|
this.getuser(that.data.selectKey)
|
|
WXAPI.getDeviceItems(data1).then(res3 => {
|
|
wx.hideLoading()
|
|
this.setData({
|
|
deviceInfo: res3.data.list[0],
|
|
show: false
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: '平台注册失败',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
var data1 = {
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
q: JSON.stringify({
|
|
deviceNum: this.data.deviceNum,
|
|
// lockType:1,
|
|
types: [1, 21],
|
|
})
|
|
}
|
|
var data2 = [{
|
|
siteId: that.data.selectKey,
|
|
deviceId: that.data.deviceInfo.id,
|
|
}]
|
|
var data3 = {
|
|
code: "zg/bleRegisterInfo",
|
|
data: {
|
|
lockerId: this.data.deviceNum
|
|
}
|
|
}
|
|
WXAPI.sendCommand(data3).then(res1 => {
|
|
if (res1.success) {
|
|
this.setData({
|
|
cgInfo: res1.data
|
|
})
|
|
} else {
|
|
|
|
}
|
|
})
|
|
if (that.data.selectRadio == 1 || that.data.selectRadio == 3) {
|
|
WXAPI.bindDeviceSite(data2).then(res2 => {
|
|
console.log(res2, '绑定设备数据')
|
|
if (res2.success) {
|
|
wx.showToast({
|
|
title: '操作成功',
|
|
duration: 2000,
|
|
icon: "none"
|
|
})
|
|
this.getuser(that.data.selectKey)
|
|
WXAPI.getDeviceItems(data1).then(res3 => {
|
|
wx.hideLoading()
|
|
this.setData({
|
|
deviceInfo: res3.data.list[0],
|
|
show: false
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}, 1000)
|
|
} else {
|
|
wx.showToast({
|
|
title: '门锁注册失败',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
}
|
|
})
|
|
|
|
})
|
|
})
|
|
},
|
|
// 绑定房间
|
|
bindRoomMethods() {
|
|
this.setData({
|
|
show: true
|
|
})
|
|
},
|
|
// resgiterDeviceMethods(){
|
|
// let deviceInfo = this.data.deviceInfo
|
|
// let userInfo = wx.getStorageSync('userInfo')
|
|
// if(deviceInfo.imei){
|
|
// var datastr={
|
|
// data: {
|
|
// deviceNum: deviceInfo.deviceNum,
|
|
// imei: deviceInfo.imei,
|
|
// imsi: deviceInfo.imei,
|
|
// order: 5101,
|
|
// platformId: 1,
|
|
// manufactureId: 1201,
|
|
// },
|
|
// code: "/v1/isp/registerDevice",
|
|
// enterpriseId: userInfo.enterpriseId,
|
|
// key: deviceInfo.deviceNum
|
|
// }
|
|
// WXAPI.registerDeviceAll(datastr).then(res => {
|
|
// if(res.success && res.data.success){
|
|
// this.getdevice()
|
|
// wx.showToast({
|
|
// title: '注册成功',
|
|
// duration:2000,
|
|
// icon:'none'
|
|
// })
|
|
// }else{
|
|
// if(res.success){
|
|
// wx.showToast({
|
|
// title: `注册失败:${res.data.msg}`,
|
|
// duration:2000,
|
|
// icon:'none'
|
|
// })
|
|
// }else{
|
|
// wx.showToast({
|
|
// title: `注册失败:${res.message}`,
|
|
// duration:2000,
|
|
// icon:'none'
|
|
// })
|
|
// }
|
|
// }
|
|
// })
|
|
// }else if(this.data.selectindex == 4) {
|
|
// let data = {
|
|
// code: 'lwj/registerDevice',
|
|
|
|
// }
|
|
// WXAPI.sendCommand(data).then(res => {
|
|
|
|
// })
|
|
// }else{
|
|
// wx.showToast({
|
|
// title: '请先查询IMEI',
|
|
// duration:2000,
|
|
// icon:'none'
|
|
// })
|
|
// }
|
|
// },
|
|
|
|
// 注册到平台
|
|
resgiterDeviceMethods1() {
|
|
if (this.data.platformId == 0) {
|
|
return wx.showToast({
|
|
title: '请先选择运营商',
|
|
icon: "none",
|
|
duration: 2000
|
|
})
|
|
}
|
|
if (this.data.selectRadio1 == '1201') {
|
|
this.resgWfiDevice()
|
|
} else if (this.data.selectRadio1 == '1221') {
|
|
|
|
} else if (this.data.selectRadio1 == '1231') {
|
|
|
|
} else if (this.data.selectRadio1 == '1241') {
|
|
this.resgWfiDevice()
|
|
}
|
|
},
|
|
// Wifi人脸锁注册
|
|
resgWfiDevice() {
|
|
wx.showLoading({
|
|
title: '注册中...',
|
|
icon: 'none'
|
|
})
|
|
var that = this
|
|
var lockMac = this.data.lock.mac
|
|
var superAdminIdlist = this.data.lock.mac.slice(this.data.lock.mac.length - 11, this.data.lock.mac.length).split(":").join("")
|
|
var superAdmin = []
|
|
var superAdminId
|
|
var deviceimei
|
|
console.log(that.data.lock);
|
|
if (that.data.selectRadio1 == 1201) {
|
|
deviceimei = that.data.lock.imei
|
|
} else if (that.data.selectRadio1 == 1241) {
|
|
if (that.data.deviceNum.length <= 15) {
|
|
deviceimei = that.data.deviceNum
|
|
} else {
|
|
deviceimei = that.data.deviceNum.slice(that.data.deviceNum.length - 15, that.data.deviceNum.length)
|
|
}
|
|
}
|
|
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)
|
|
}
|
|
}
|
|
superAdminId = superAdmin.join('').slice(superAdmin.length - 8, superAdmin.length)
|
|
console.log(lockMac, superAdminIdlist, superAdminId);
|
|
// let superAdmin = []
|
|
// var superAdminIdlist = lock.mac.slice(lock.mac.length - 11, lock.mac.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("123123123123", basecode, superAdminId, deviceimei);
|
|
let data = {
|
|
code: 'lwj/registerDevice',
|
|
data: {
|
|
deviceNum: this.data.deviceNum,
|
|
imei: deviceimei,
|
|
imsi: deviceimei,
|
|
platformId: this.data.platformId,
|
|
manufactureId: this.data.selectRadio1
|
|
}
|
|
}
|
|
console.log(data);
|
|
WXAPI.sendCommand(data).then(res => {
|
|
console.log(res, data, basecode);
|
|
if (res.success) {
|
|
let data1 = {
|
|
code: 'lwj/registerSupperAdmin',
|
|
data: {
|
|
lockerId: that.data.deviceNum,
|
|
lockerSuperAdminId: basecode,
|
|
bluetoothMac: lockMac
|
|
}
|
|
}
|
|
WXAPI.sendCommand(data1).then(res1 => {
|
|
console.log(res1);
|
|
if (res1.success) {
|
|
wx.hideLoading()
|
|
wx.showToast({
|
|
title: '注册成功',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
this.setData({
|
|
showreg: false,
|
|
resgiterdevice: true
|
|
})
|
|
} else {
|
|
wx.hideLoading()
|
|
wx.showToast({
|
|
title: '注册失败',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
this.setData({
|
|
showreg: false
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
wx.hideLoading()
|
|
wx.showToast({
|
|
title: '注册失败',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
},
|
|
changemanId() {
|
|
// var data = {
|
|
// q: JSON.stringify({
|
|
// // lockType:1,
|
|
// types: [41],
|
|
// })
|
|
// }
|
|
// WXAPI.getDeviceItems(data).then(res => {
|
|
// console.log(res);
|
|
// let deviceNumlist = res.data.list.filter(li => {
|
|
// return li.deviceNum == this.data.deviceNum
|
|
// })
|
|
// console.log(deviceNumlist);
|
|
// if (deviceNumlist[0]) {
|
|
// wx.showToast({
|
|
// title: '该设备已注册在平台上',
|
|
// icon: 'none',
|
|
// duration: 2000
|
|
// })
|
|
// } else {
|
|
this.setData({
|
|
showreg: true
|
|
})
|
|
// }
|
|
// })
|
|
},
|
|
onClosereg() {
|
|
this.setData({
|
|
showreg: false
|
|
})
|
|
},
|
|
registerSelectRoom() {
|
|
var _this = this
|
|
if (this.data.selectKey) {
|
|
wx.showModal({
|
|
title: '',
|
|
content: '是否绑定',
|
|
success(res) {
|
|
if (res.confirm) {
|
|
if (_this.data.selectindex == 4) {
|
|
var data2 = [{
|
|
siteId: _this.data.selectKey,
|
|
deviceId: _this.data.deviceInfo.id,
|
|
}]
|
|
WXAPI.bindDeviceSite(data2).then(res2 => {
|
|
if (res2.success) {
|
|
_this.getdevice()
|
|
}
|
|
})
|
|
} else {
|
|
var name = util.findIndexArray(_this.data.dataList, _this.data.selectKey, [])
|
|
_this.setData({
|
|
selectKey: _this.data.selectKey,
|
|
show: false,
|
|
selectRoomList: name
|
|
})
|
|
var data = {
|
|
pageNum: 1,
|
|
pageSize: 1,
|
|
q: JSON.stringify({
|
|
roomIds: [_this.data.selectKey],
|
|
// lockType:1,
|
|
types: [1, 21],
|
|
})
|
|
}
|
|
WXAPI.getDeviceItems(data).then(res => {
|
|
if (res.data.list.length == 0) {
|
|
_this.addAdmin()
|
|
} else {
|
|
wx.showToast({
|
|
title: '该房间已绑定',
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
}
|
|
} else if (res.cancel) {
|
|
_this.setData({
|
|
selectKey: _this.data.selectKey,
|
|
show: false
|
|
})
|
|
}
|
|
}
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '请选择房间',
|
|
icon: 'none'
|
|
})
|
|
}
|
|
},
|
|
handleSelect(e) {
|
|
var _this = this
|
|
if (e.detail.tips) {
|
|
wx.showToast({
|
|
title: '请选择房间',
|
|
icon: 'none'
|
|
})
|
|
} else {
|
|
wx.showModal({
|
|
title: '',
|
|
content: '是否绑定',
|
|
success(res) {
|
|
if (res.confirm) {
|
|
if (_this.data.selectindex == 4) {
|
|
var data2 = [{
|
|
siteId: e.detail.item.id,
|
|
deviceId: _this.data.deviceInfo.id,
|
|
}]
|
|
WXAPI.bindDeviceSite(data2).then(res2 => {
|
|
console.log(data2);
|
|
if (res2.success) {
|
|
_this.getdevice()
|
|
wx.showToast({
|
|
title: '绑定成功',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '绑定失败',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
var name = util.findIndexArray(_this.data.dataList, e.detail.item.id, [])
|
|
_this.setData({
|
|
selectKey: e.detail.item.id,
|
|
show: false,
|
|
selectRoomList: name
|
|
})
|
|
var data = {
|
|
pageNum: 1,
|
|
pageSize: 1,
|
|
q: JSON.stringify({
|
|
roomIds: [e.detail.item.id],
|
|
// lockType:1,
|
|
types: [1, 21],
|
|
})
|
|
}
|
|
WXAPI.getDeviceItems(data).then(res => {
|
|
if (res.data.list.length == 0) {
|
|
_this.addAdmin()
|
|
} else {
|
|
wx.showToast({
|
|
title: '该房间已绑定',
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
}
|
|
} else if (res.cancel) {
|
|
_this.setData({
|
|
selectKey: e.detail.item.id,
|
|
show: false
|
|
})
|
|
}
|
|
}
|
|
})
|
|
}
|
|
},
|
|
// 配网
|
|
changeshow2() {
|
|
this.setData({
|
|
show2: true
|
|
})
|
|
},
|
|
onChange(event) {
|
|
this.setData({
|
|
WifiName: event.detail
|
|
})
|
|
},
|
|
onChange1(event) {
|
|
this.setData({
|
|
WifiPwd: event.detail
|
|
})
|
|
},
|
|
onConfigurewifi() {
|
|
// if (isConnected) {
|
|
var that = this
|
|
// that.wifitimer = setTimeout(() => {
|
|
// wx.closeBLEConnection({
|
|
// deviceId: lockDevice.deviceId,
|
|
// success(res) {
|
|
|
|
// },
|
|
// fail: res => {
|
|
// console.log("1", res);
|
|
// }
|
|
// })
|
|
// wx.showToast({
|
|
// title: '配网失败,请重试',
|
|
// duration: 2000
|
|
// })
|
|
// }, 6000)
|
|
// wx.showLoading({
|
|
// title: '配置网络中...',
|
|
// })
|
|
var bytes = plugin.configureWifi(lockDevice.name, lockMac, that.data.WifiName, that.data.WifiPwd)
|
|
that.sendBytes(bytes)
|
|
this.setData({
|
|
show2: false
|
|
})
|
|
// }else{
|
|
// this.initBluetooth()
|
|
// }
|
|
},
|
|
// 添加人脸
|
|
addFaceprint() {
|
|
wx.navigateTo({
|
|
url: '/pagesA/selectFace/selectFace',
|
|
})
|
|
},
|
|
// 删除人脸
|
|
delFaceprint() {
|
|
|
|
},
|
|
// 获取设备
|
|
getdevice() {
|
|
var q = {
|
|
deviceNum: this.data.deviceInfo.deviceNum,
|
|
// lockType:1,
|
|
types: [1, 21],
|
|
};
|
|
var data = {
|
|
q: JSON.stringify(q),
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
};
|
|
WXAPI.getDeviceItems(data).then(res => {
|
|
var data = res.data.list
|
|
this.setData({
|
|
deviceInfo: data[0],
|
|
show: false
|
|
})
|
|
})
|
|
},
|
|
bindroom() {
|
|
if (this.data.selectKey) {
|
|
this.registerSelectRoom()
|
|
} else {
|
|
this.setData({
|
|
show: true
|
|
});
|
|
}
|
|
},
|
|
// 添加用户
|
|
adduser() {
|
|
var userInfo = wx.getStorageSync('userInfo')
|
|
var str = md5(userInfo.phone)
|
|
var usrID = str.substr(str.length - 7, str.length).toUpperCase()
|
|
console.log(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, this.data.cgInfo.authKey, '----')
|
|
ICINLocker.getSignKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, (callback) => {
|
|
var signKey = callback.signKey
|
|
console.log(signKey, 'signKey', callback)
|
|
ICINLocker.getCommonKey(this.data.cgInfo.lockerId, this.data.cgInfo.superId, this.data.cgInfo.superId, callback.signKey, (callback1) => {
|
|
var commonKey = callback1.commonKey
|
|
console.log(commonKey, 'commonKey', callback1)
|
|
ICINLocker.addUserToLock(this.data.cgInfo.lockerId, this.data.cgInfo.superId, usrID, this.data.cgInfo.superId, '00', signKey, '', commonKey, '00000000', 'FFFFFFFF', (callback) => {
|
|
if (callback.status == '00') {
|
|
var infostr = {
|
|
userTelephone: userInfo.phone,
|
|
userPassword: usrID,
|
|
};
|
|
var data1 = {
|
|
cardId: userInfo.phone,
|
|
cardState: 1,
|
|
info: JSON.stringify(infostr),
|
|
name: '施工用户',
|
|
number: userInfo.phone,
|
|
phone: userInfo.phone,
|
|
sex: 1,
|
|
type: 0
|
|
}
|
|
WXAPI.addCard(data1).then(res => {
|
|
if (res.success) {
|
|
wx.showToast({
|
|
title: '添加成功',
|
|
icon: 'none'
|
|
})
|
|
var data2 = [{
|
|
cardId: res.data,
|
|
siteId: this.data.deviceInfo.roomId,
|
|
}]
|
|
WXAPI.bindCard(data2).then(res2 => {
|
|
if (res2.success) {
|
|
wx.showToast({
|
|
title: '绑定成功',
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}
|
|
})
|
|
})
|
|
})
|
|
},
|
|
// 读取门锁状态
|
|
readLockStatus() {
|
|
wx.showLoading({
|
|
title: '读取中',
|
|
mask: true
|
|
})
|
|
var cgInfo = this.data.cgInfo
|
|
ICINLocker.getSignKey(cgInfo.lockerId, cgInfo.superId, cgInfo.superId, (callback) => {
|
|
var signKey = callback.signKey
|
|
console.log(signKey, 'signKey')
|
|
ICINLocker.getCommonKey(cgInfo.lockerId, cgInfo.superId, cgInfo.superId, signKey, (callback1) => {
|
|
ICINLocker.readLockerInfo(cgInfo.lockerId, cgInfo.superId, (callback) => {
|
|
console.log(callback)
|
|
this.setData({
|
|
lockStatus: callback
|
|
})
|
|
wx.hideLoading()
|
|
})
|
|
})
|
|
})
|
|
setTimeout(() => {
|
|
wx.hideLoading()
|
|
}, 5000)
|
|
// ICINLocker.readLockerInfo(this.data.cgInfo.lockerId, this.data.cgInfo.superId, (callback) => {
|
|
// this.setData({
|
|
// lockStatus: callback
|
|
// })
|
|
// })
|
|
|
|
},
|
|
onClose() {
|
|
this.setData({
|
|
show: false,
|
|
show2: false
|
|
});
|
|
},
|
|
onClose1() {
|
|
this.setData({
|
|
sheetshow: false
|
|
})
|
|
},
|
|
// 获取房间
|
|
getRoom() {
|
|
var _this = this
|
|
WXAPI.getTree('').then(res => {
|
|
var list = (res.data.sort((pre, cur) => pre.id - cur.id))
|
|
var newArr = util.uniqueArray(list, "id");
|
|
this.list = newArr
|
|
var setting = {
|
|
data: {
|
|
simpleData: {
|
|
idKey: 'id',
|
|
pIdKey: 'pid'
|
|
},
|
|
key: {
|
|
children: 'children'
|
|
}
|
|
}
|
|
}
|
|
var dataList = this.transformTozTreeFormat(setting, newArr)
|
|
this.setData({
|
|
dataList: dataList
|
|
})
|
|
})
|
|
},
|
|
transformTozTreeFormat(setting, sNodes) {
|
|
var i, l,
|
|
key = setting.data.simpleData.idKey,
|
|
parentKey = setting.data.simpleData.pIdKey,
|
|
childKey = setting.data.key.children
|
|
if (!key || key == "" || !sNodes) return [];
|
|
var r = [];
|
|
var tmpMap = [];
|
|
for (i = 0, l = sNodes.length; i < l; i++) {
|
|
tmpMap[sNodes[i][key]] = sNodes[i];
|
|
}
|
|
for (i = 0, l = sNodes.length; i < l; i++) {
|
|
if (tmpMap[sNodes[i][parentKey]] && sNodes[i][key] != sNodes[i][parentKey]) {
|
|
if (!tmpMap[sNodes[i][parentKey]][childKey])
|
|
tmpMap[sNodes[i][parentKey]][childKey] = [];
|
|
tmpMap[sNodes[i][parentKey]][childKey].push(sNodes[i]);
|
|
} else {
|
|
r.push(sNodes[i]);
|
|
}
|
|
}
|
|
return r;
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady: function () {
|
|
var that = this
|
|
if (that.data.selectindex == 4) {
|
|
that.initBluetooth()
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide: function () {},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload: function () {
|
|
if (this.data.selectindex == 4) {
|
|
if (isConnected) {
|
|
wx.closeBLEConnection({
|
|
deviceId: connectedDeviceId,
|
|
success: function (res) {
|
|
isConnected = false
|
|
},
|
|
})
|
|
}
|
|
} else {
|
|
ICINLocker.disConnect(app.globalData.blueDeviceId);
|
|
app.globalData.zgBlueStatus = false
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh: function () {
|
|
wx.stopPullDownRefresh()
|
|
},
|
|
bindLock: function () {
|
|
var that = this
|
|
taskId = 11
|
|
that.initBluetooth()
|
|
},
|
|
configurewifj() {
|
|
var that = this
|
|
taskId = 121
|
|
that.initBluetooth()
|
|
},
|
|
unbindLock: function () {
|
|
var that = this
|
|
taskId = 12
|
|
that.initBluetooth()
|
|
},
|
|
|
|
queryBindState: function () {
|
|
var that = this
|
|
taskId = 21
|
|
that.initBluetooth()
|
|
},
|
|
|
|
queryBattery: function () {
|
|
var that = this
|
|
taskId = 22
|
|
that.initBluetooth()
|
|
},
|
|
|
|
queryNbImei: function () {
|
|
var that = this
|
|
taskId = 31
|
|
that.initBluetooth()
|
|
},
|
|
|
|
login: function () {
|
|
var that = this
|
|
taskId = 32
|
|
that.initBluetooth()
|
|
},
|
|
|
|
openLock: function () {
|
|
var that = this
|
|
taskId = 41
|
|
that.initBluetooth()
|
|
},
|
|
|
|
syncClock: function () {
|
|
var that = this
|
|
taskId = 42
|
|
that.initBluetooth()
|
|
},
|
|
|
|
addPincode: function () {
|
|
var that = this
|
|
taskId = 51
|
|
that.initBluetooth()
|
|
},
|
|
|
|
delPincode: function () {
|
|
var that = this
|
|
taskId = 52
|
|
that.initBluetooth()
|
|
},
|
|
|
|
addRfCard: function () {
|
|
var that = this
|
|
taskId = 61
|
|
that.initBluetooth()
|
|
},
|
|
|
|
delRfCard: function () {
|
|
var that = this
|
|
taskId = 62
|
|
that.initBluetooth()
|
|
},
|
|
|
|
addFingerprint: function () {
|
|
var that = this
|
|
taskId = 71
|
|
that.initBluetooth()
|
|
},
|
|
|
|
delFingerprint: function () {
|
|
var that = this
|
|
taskId = 72
|
|
that.initBluetooth()
|
|
},
|
|
|
|
changeAdminPincode: function () {
|
|
var that = this
|
|
taskId = 81
|
|
that.initBluetooth()
|
|
},
|
|
|
|
queryLockSlotState: function () {
|
|
var that = this
|
|
taskId = 91
|
|
that.initBluetooth()
|
|
},
|
|
|
|
queryLockUnlockState: function () {
|
|
var that = this
|
|
taskId = 92
|
|
that.initBluetooth()
|
|
},
|
|
|
|
changeLockUnlockState: function () {
|
|
var that = this
|
|
taskId = 101
|
|
that.initBluetooth()
|
|
},
|
|
|
|
changeLockMutedState: function () {
|
|
var that = this
|
|
taskId = 102
|
|
that.initBluetooth()
|
|
},
|
|
|
|
changeLockNbState: function () {
|
|
var that = this
|
|
taskId = 111
|
|
that.initBluetooth()
|
|
},
|
|
|
|
genOfflinePincode: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '生成离线密码中',
|
|
})
|
|
var startTime = util1.getLocalTime(8)
|
|
var endTime = new Date(startTime.getTime() + 5 * 60 * 1000) //有效期5分钟
|
|
plugin.genOfflinePincode(lockDevice.name, lockMac, basecode, 0, startTime, endTime)
|
|
.then(function (data) {
|
|
console.debug('data', data)
|
|
wx.hideLoading()
|
|
if (data.code == 200) {
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: `生成离线密码${data.data},有效期至${util1.formatTime(endTime)}!`,
|
|
showCancel: false
|
|
})
|
|
} else {
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: data.data,
|
|
showCancel: false
|
|
})
|
|
}
|
|
})
|
|
},
|
|
|
|
onQueryBindState: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '查询中',
|
|
})
|
|
|
|
var bytes = plugin.queryLockState(lockDevice.name)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onQueryBattery: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '查询中',
|
|
})
|
|
|
|
var bytes = plugin.queryLockBattery(lockDevice.name)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onQueryNbImei: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '查询中',
|
|
})
|
|
|
|
var bytes = plugin.queryNbImei(lockDevice.name)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onBindLock: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '绑定中',
|
|
})
|
|
|
|
var bytes = plugin.sendBindLock(lockDevice.name, lockId, lockManagerId, basecode)
|
|
console.debug('bytes----', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onUnbindLock: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '解绑中',
|
|
})
|
|
|
|
var bytes = plugin.sendUnbindLock(lockDevice.name, lockId, lockManagerId, basecode)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onOpenLock: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: that.data.isJack ? '上电中' : '解锁中',
|
|
})
|
|
|
|
var bytes = plugin.sendOpenLockP1(lockDevice.name, basecode)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onLogin: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '登录中',
|
|
})
|
|
|
|
var bytes = plugin.login1(lockDevice.name, basecode)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onSyncClock: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '同步时钟中',
|
|
})
|
|
console.log(lockDevice.name, basecode, util1.getLocalTime(8), '0000')
|
|
var bytes = plugin.syncClock(lockDevice.name, basecode, util1.getLocalTime(8))
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onAddPincode: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '添加密码中',
|
|
})
|
|
var startTime = util1.getLocalTime(8)
|
|
var endTime = new Date(startTime.getTime() + 30 * 24 * 60 * 60 * 1000) //有效期5分钟
|
|
pincode = util1.randomPrime6()
|
|
pincodeIndex = Math.floor(Math.random() * 100)
|
|
console.log(lockDevice.name, basecode, pincode, pincodeIndex, startTime, endTime, 'lockDevice.name, basecode, pincode, pincodeIndex, startTime, endTime')
|
|
var bytes = plugin.addPincode(lockDevice.name, basecode, pincode, pincodeIndex, startTime, endTime)
|
|
console.log('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)
|
|
},
|
|
|
|
onAddRfCard: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '添加房卡中',
|
|
})
|
|
var startTime = util1.getLocalTime(8)
|
|
var endTime = new Date(startTime.getTime() + 5 * 60 * 1000) //有效期5分钟
|
|
rfCardIndex = Math.floor(Math.random() * 100)
|
|
var bytes = plugin.addRfCard(lockDevice.name, basecode, rfCardId, rfCardIndex, startTime, endTime)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onDelRfCard: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '删除房卡中',
|
|
})
|
|
var bytes = plugin.delRfCard(lockDevice.name, basecode, rfCardId, rfCardIndex)
|
|
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分钟
|
|
fingerprintIndex = Math.floor(Math.random() * 100)
|
|
var bytes = plugin.addFingerprint(lockDevice.name, basecode, fingerprintIndex, startTime, endTime)
|
|
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)
|
|
},
|
|
|
|
onChangeAdminPincode: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '修改管理密码中',
|
|
})
|
|
var bytes = plugin.changeAdminPincode(lockDevice.name, lockMac, 12345678, 87654321)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onQueryLockSlotState: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '查询门锁方舌状态',
|
|
})
|
|
var bytes = plugin.queryLockSlotState(lockDevice.name)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onQueryLockUnlockState: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '查询门锁开关状态',
|
|
})
|
|
var bytes = plugin.queryLockUnlockState(lockDevice.name)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onChangeLockUnlockState: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: that.data.isUnloked ? '退出常开模式' : '进入常开模式',
|
|
})
|
|
var bytes = plugin.setLockUnlockState(lockDevice.name, !that.data.isUnloked)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onChangeLockMutedState: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: that.data.isMuted ? '退出静音模式' : '进入静音模式',
|
|
})
|
|
var bytes = plugin.setLockMuteState(lockDevice.name, !that.data.isMuted)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
onChangeLockNbState: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: that.data.isNbEnable ? '禁用NB功能' : '打开NB功能',
|
|
})
|
|
var bytes = plugin.setNbFun(lockDevice.name, !that.data.isNbEnable)
|
|
console.debug('bytes', bytes)
|
|
that.sendBytes(bytes)
|
|
},
|
|
|
|
doWork: function () {
|
|
var that = this
|
|
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.onOpenLock()
|
|
break
|
|
}
|
|
case 42: {
|
|
that.onSyncClock()
|
|
break
|
|
}
|
|
case 51: {
|
|
that.onAddPincode()
|
|
break
|
|
}
|
|
case 52: {
|
|
that.onDelPincode()
|
|
break
|
|
}
|
|
case 61: {
|
|
if (lockModel > 70) {
|
|
that.onAddRfCard()
|
|
} 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()
|
|
break
|
|
}
|
|
case 121: {
|
|
this.onConfigurewifi()
|
|
}
|
|
default: {
|
|
|
|
}
|
|
}
|
|
},
|
|
|
|
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 == name) {
|
|
isConnected = true
|
|
}
|
|
})
|
|
that.setData({
|
|
isConnected: isConnected
|
|
})
|
|
console.log(isInitReady, 'isConnected', isConnected)
|
|
if (isConnected) {
|
|
if (isInitReady) {
|
|
let lock = that.data.lock
|
|
let superAdmin = []
|
|
var superAdminIdlist = lock.mac.slice(lock.mac.length - 11, lock.mac.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")
|
|
setTimeout(() => {
|
|
that.doWork()
|
|
}, 500)
|
|
} else {
|
|
that.setupConnection()
|
|
}
|
|
} else {
|
|
that.connectTo()
|
|
}
|
|
},
|
|
})
|
|
},
|
|
|
|
connectTo: function () {
|
|
var that = this
|
|
wx.showLoading({
|
|
title: '连接中',
|
|
})
|
|
wx.createBLEConnection({
|
|
deviceId: lockDevice.deviceId,
|
|
timeout: config.ble.connectTimeOut,
|
|
success: function (res) {
|
|
console.debug('connectTo', res)
|
|
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
|
|
}
|
|
}
|
|
}
|
|
})
|
|
},
|
|
|
|
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.showLoading({
|
|
title: '连接成功',
|
|
})
|
|
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) {
|
|
rfCardId = 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
|
|
that.data.deviceInfo.imei = data.data.imei
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: `此NB设备IMEI为${data.data.imei}`,
|
|
showCancel: false,
|
|
success: function (res) {
|
|
let lock = that.data.lock
|
|
lock.imei = data.data.imei
|
|
that.setData({
|
|
lock
|
|
})
|
|
}
|
|
})
|
|
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) {
|
|
// var dataStr = {
|
|
// code: "lwj/registerSupperAdmin",
|
|
// data: {
|
|
// lockerId: that.data.deviceNum,
|
|
// lockerSuperAdminId: basecode,
|
|
// bluetoothMac: lockMac,
|
|
// }
|
|
// }
|
|
// WXAPI.sendCommand(dataStr).then((res2) => {
|
|
|
|
// })
|
|
// 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 {
|
|
var data = [{
|
|
siteId: that.data.lock.roomId,
|
|
deviceId: that.data.lock.id,
|
|
}]
|
|
WXAPI.unbindDeviceSite(data).then(res => {
|
|
if (res.success) {
|
|
let lock = that.data.lock
|
|
lock.roomName = ''
|
|
lock.id = ''
|
|
lock.roomId = ''
|
|
that.setData({
|
|
lock
|
|
})
|
|
}
|
|
})
|
|
wx.showToast({
|
|
title: '解绑成功!',
|
|
})
|
|
that.unbindRoom()
|
|
}
|
|
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: "ble/bleUnlockRecord",
|
|
data: {
|
|
deviceNum: that.data.deviceNum,
|
|
roomId: that.data.lock.roomId,
|
|
roomName: that.data.lock.roomName,
|
|
cardName: that.data.adminuserinfo.username,
|
|
productId: 1201,
|
|
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': {
|
|
wx.hideLoading()
|
|
if (data.code != 200) {
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: '添加密码失败!' + data.data.msg,
|
|
showCancel: false,
|
|
success: function (res) {}
|
|
})
|
|
break
|
|
}
|
|
taskId = 0
|
|
that.setData({
|
|
isPincodeAdd: true
|
|
})
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: `添加密码${pincode}成功!`,
|
|
showCancel: false
|
|
})
|
|
break
|
|
}
|
|
|
|
case 'delPincode': {
|
|
wx.hideLoading()
|
|
if (data.code != 200) {
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: '删除密码失败!',
|
|
showCancel: false,
|
|
success: function (res) {}
|
|
})
|
|
break
|
|
}
|
|
taskId = 0
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: `删除密码${pincode}成功!`,
|
|
showCancel: false,
|
|
})
|
|
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) {
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: '添加房卡失败!' + data.data.msg,
|
|
showCancel: false,
|
|
success: function (res) {}
|
|
})
|
|
break
|
|
}
|
|
taskId = 0
|
|
that.setData({
|
|
isRfCardAdd: true
|
|
})
|
|
if (lockModel > 70) {
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: `添加房卡成功,序号${rfCardIndex}!`,
|
|
showCancel: false
|
|
})
|
|
} else {
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: `添加房卡成功,卡号${rfCardId}!`,
|
|
showCancel: false
|
|
})
|
|
}
|
|
break
|
|
}
|
|
|
|
case 'delRfCard': {
|
|
wx.hideLoading()
|
|
if (data.code != 200) {
|
|
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,
|
|
})
|
|
}
|
|
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) {}
|
|
})
|
|
break
|
|
}
|
|
taskId = 0
|
|
that.setData({
|
|
isFingerprintAdd: true
|
|
})
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: `添加指纹成功,序号${fingerprintIndex}!`,
|
|
showCancel: false
|
|
})
|
|
break
|
|
}
|
|
|
|
case 'delFingerprint': {
|
|
wx.hideLoading()
|
|
if (data.code != 200) {
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: '删除指纹失败!',
|
|
showCancel: false,
|
|
success: function (res) {}
|
|
})
|
|
break
|
|
}
|
|
taskId = 0
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: `删除指纹成功,序号${fingerprintIndex}!`,
|
|
showCancel: false,
|
|
})
|
|
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 'configurewifi': {
|
|
if (data.code == 300) {
|
|
wx.hideLoading()
|
|
clearTimeout(that.wifitimer)
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: '配网失败,请重新尝试',
|
|
showCancel: false,
|
|
success: function (res) {}
|
|
})
|
|
}
|
|
if (data.code == 200) {
|
|
wx.hideLoading()
|
|
clearTimeout(that.wifitimer)
|
|
that.show2 = false
|
|
wx.showToast({
|
|
title: '配网成功',
|
|
})
|
|
}
|
|
break;
|
|
}
|
|
|
|
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()
|
|
}, 500)
|
|
},
|
|
})
|
|
},
|
|
})
|
|
},
|
|
})
|
|
},
|
|
|
|
sendBytes(bytes) {
|
|
var that = this
|
|
setTimeout(function () {
|
|
wx.writeBLECharacteristicValue({
|
|
deviceId: lockDevice.deviceId,
|
|
serviceId: config.uuid.serviceUuid.toUpperCase(),
|
|
characteristicId: config.uuid.writeUuid.toUpperCase(),
|
|
value: bytes,
|
|
success: function (res) {
|
|
|
|
},
|
|
})
|
|
}, 50)
|
|
},
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage: function () {
|
|
|
|
}
|
|
})
|