You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

1248 lines
43 KiB

// pages/personManger/personManger.js
const app = getApp()
const WXAPI = require('../../utils/request')
import ICINLocker from "../../utils/ICINPakage/ICINLocker"
var methods = require('../../utils/methods.js');
var md5 = require('../../utils/md5.js');
var bleall = require('../../utils/bleall');
import {
BLE
} from "../../utils/btls/ble";
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(',');
}
import moment from "../../utils/moment"
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);
}
Page({
/**
* 页面的初始数据
*/
data: {
datetimerange: [CurentTime(), CurentTime1()],
endtime: '',
starttime: '',
personList: [],
searchValue: '',
deviceinfo: [],
roomId: [],
current: '',
index: '',
show: false,
phone: '',
name: '',
cgInfo: {},
number:"",
minDate: '',
minDate1: ''
},
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 + " 00:00:00"
this.data.datetimerange[1] = str
this.setData({
endtime: str
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
console.log(moment().format("x"))
var deviceinfo = wx.getStorageSync('deviceinfo')
var cgInfo = wx.getStorageSync('cgInfo')
let starttime = moment().format('YYYY-MM-DD HH:mm:ss')
let endtime = moment().add(365,'days').format('YYYY-MM-DD HH:mm:ss')
if(deviceinfo.roomId){
this.getSiteTenant(deviceinfo.roomId)
}
this.setData({
deviceinfo: deviceinfo,
roomId: deviceinfo.roomId,
cgInfo: cgInfo,
starttime,
endtime,
minDate: starttime,
minDate1: endtime
})
},
onChange1(event) {
// event.detail 为当前输入的值
console.log(event.detail);
this.setData({
name: event.detail
})
},
onChange3(event) {
this.setData({
number: event.detail
})
},
onChange2(event) {
// event.detail 为当前输入的值
console.log(event.detail);
var str = event.detail
if (str.length > 11) {
wx.showToast({
title: '手机号为11位数字,请输入正确手机号',
duration: 2000,
mask:true,
icon: 'none'
})
str = str.substr(1, 11)
this.setData({
phone: str
})
} else {
this.setData({
phone: event.detail
})
}
},
// 添加用户
adduser() {
var _this = this
wx.showLoading({
title: '正在添加',
mask:true
})
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
if(passwordStartTime>passwordEndTime){
wx.showToast({
title: '开始时间不能大于结束时间',
duration: 2000,
mask:true,
icon: 'none'
})
return
}
if (this.data.phone == '') {
wx.showToast({
title: '请填写手机号',
duration: 2000,
mask:true,
icon: 'none'
})
}else if(this.data.name == ''){
wx.showToast({
title: '请填写名称',
duration: 2000,
mask:true,
icon: 'none'
})
}else if(this.data.number == ''){
wx.showToast({
title: '请填写学号',
duration: 2000,
mask:true,
icon: 'none'
})
}else if(this.data.phone.length !=11){
wx.showToast({
title: '手机号格式错误',
duration: 2000,
mask:true,
icon: 'none'
})
} else {
var userInfo = wx.getStorageSync('userInfo')
var deviceinfo = this.data.deviceinfo
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 userPassword = JSON.stringify(this.data.phone).substring(this.data.phone.length - 6, this.data.phone.length)
var data = {
managerTelephone: "18270949468",
managerPassword: "202108",
userTelephone: this.data.phone,
password: userPassword,
userPassword: userPassword,
startTime: time1,
endTime: time2
}
var str = md5(this.data.phone)
var usrID = userPassword//str.substr(str.length - 7, str.length).toUpperCase()
var timestamp= moment().format("x")
bleall.startFp1_63(data.managerTelephone, data.managerPassword, data.userTelephone,
data.userPassword, data.password, data.startTime, data.endTime, 1,timestamp,
function (res) {
console.log(res)
if (res.success) {
bleall.startFp1_63(data.managerTelephone, data.managerPassword, data.userTelephone,
data.userPassword, data.password,
data.startTime, data.endTime, 4,timestamp,
function (res1) {
if (res1.success) {
let loginKey = WXAPI.setCode("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXKHkNKieiGOTjXZJ0lFBjhRCa\nZTaAebTIfB9nnnVmNVIp//yCfyFXSlxbAj58CQwCVhwy109ROYf3BcsQNMZz7Djo\n8a5V0JThNye4ihxLiYLawLRjb2y2/IhzV0/JZiFtaM83xUt0tbqTKxD00Up7dy8c\n9OXc0h//0uQSraf6JwIDAQAB", userPassword)
var infostr = {
userTelephone: _this.data.phone,
userPassword: userPassword,
loginKey:loginKey,
userId: usrID,
keyId: usrID,
pass:true
};
var data1 = {
cardId: _this.data.number,
cardState: 1,
info: JSON.stringify(infostr),
name: _this.data.name,
number: _this.data.number,
phone: _this.data.phone,
sex: 1,
type: 0,
};
WXAPI.addCard(data1).then(res => {
if (res.success) {
var data2 = [{
cardId: res.data,
siteId: _this.data.deviceinfo.roomId,
startTime: time3,
endTime: time4
}]
WXAPI.bindCard(data2).then(res2 => {
var data3 = {
code: "ble/operateUserInfo",
data: {
deviceNum: _this.data.deviceinfo.deviceNum,
imei: _this.data.deviceinfo.imei,
userTelephone: _this.data.phone,
userPassword: userPassword,
userStartTime: time1,
userEndTime: time2,
password: userPassword,
passwordStartTime: time1,
passwordEndTime: time2,
operateMode: 1,
order: 6226,
roomName:_this.data.deviceinfo.roomName,
cardName:'蓝牙'+_this.data.name,
timestamp: timestamp,
managerTelephone: '18270949468',
managerPassword: '202108',
passwordLength: 10,
permission: 4294967295,
times: 255,
recycleTime: "65535",
}
}
wx.hideLoading()
wx.showToast({
title: '添加成功',
icon: 'none',
mask:true,
duration: 2000
})
// wx.setStorageSync('minDate', data.startTime)
// wx.setStorageSync('minDate1', data.endTime)
WXAPI.sendCommand(data3).then(res6 => {
if(res6.success){
var data4 = {
result: 1,
serial: res6.data.serialNumber
}
setTimeout(()=>{
WXAPI.updatePush(data4).then(res4 => {
})
},1000)
}
// var result='',serial=''
// WXAPI.editStatusBySerial('',`/v1/device/editStatus/bySerial/${result}/${serial}`).then(res2=>{
// })
})
_this.setData({
show: false
})
_this.getSiteTenant(_this.data.roomId)
})
}else{
wx.hideLoading()
wx.showToast({
title: '添加失败',
duration:2000,
icon:'none'
})
}
})
}else{
wx.hideLoading()
wx.showToast({
title: '添加失败',
duration:2000,
icon:'none'
})
}
})
}
if (res.data == "蓝牙功能暂不支持") {
wx.showLoading({
title: '重连中',
})
_this.startconnect()
}
})
} else if (deviceinfo.manufactureId == 201||deviceinfo.manufactureId == 221) {
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 startTime = passwordStartTime.toString(16).toUpperCase()
var endTime = passwordEndTime.toString(16).toUpperCase()
var str = md5(this.data.phone)
var usrID = str.substr(str.length - 7, str.length).toUpperCase()
var userPassword = JSON.stringify(this.data.phone).substring(this.data.phone.length - 6, this.data.phone.length)
wx.showLoading({
title: '正在添加',
})
let info={
usrID:userPassword,
startTime:startTime,
endTime:endTime
}
methods.bluetoothOperation_ZH(this.data.cgInfo,info,1).then(result=>{
console.log("373",result);
if (result.status == '00') {
var dataPasswod = {
lockerId: this.data.deviceinfo.deviceNum,
imei: this.data.deviceinfo.imei,
lockerUserId: userPassword,
keyId: userPassword,
role: 0,
order: 6226,
action: 1,
roomName:this.data.deviceinfo.roomName,
cardName:'蓝牙'+this.data.name,
type: 1,
result: 1
}
let loginKey = WXAPI.setCode("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXKHkNKieiGOTjXZJ0lFBjhRCa\nZTaAebTIfB9nnnVmNVIp//yCfyFXSlxbAj58CQwCVhwy109ROYf3BcsQNMZz7Djo\n8a5V0JThNye4ihxLiYLawLRjb2y2/IhzV0/JZiFtaM83xUt0tbqTKxD00Up7dy8c\n9OXc0h//0uQSraf6JwIDAQAB", userPassword)
var infostr = {
userTelephone: _this.data.phone,
userPassword: userPassword,
loginKey:loginKey,
userId: userPassword,
keyId: userPassword,
pass:true
};
var data1 = {
cardId: this.data.number,
cardState: 1,
info: JSON.stringify(infostr),
name: this.data.name,
number: this.data.number,
phone: this.data.phone,
enterpriseId: userInfo.enterpriseId,
sex: 1,
type: 0
}
WXAPI.addCard(data1).then(res => {
if (res.success) {
var data2 = [{
cardId: res.data,
siteId: this.data.deviceinfo.roomId,
startTime: time1,
endTime: time2
}]
this.setData({
name:'',
phone:'',
number:''
})
WXAPI.bindCard(data2).then(res2 => {
if (res2.success) {
WXAPI.ZGduserOperation(dataPasswod).then(res6 => {
console.log(res6)
if (res6.success) {
wx.hideLoading()
this.setData({
name:'',
phone:'',
number:''
})
wx.showToast({
title: '添加成功',
icon: 'none',
mask:true,
duration: 2000
})
// wx.setStorageSync('minDate', data.startTime)
// wx.setStorageSync('minDate1', data.endTime)
} else {
wx.hideLoading()
wx.showToast({
title: '添加失败',
icon: 'none',
mask:true,
duration: 2000
})
}
})
this.getSiteTenant(this.data.roomId)
this.setData({
show: false
})
wx.showToast({
title: '绑定成功',
mask:true,
icon: 'none',
})
} else {
wx.hideLoading()
wx.showToast({
title: '添加失败',
mask:true,
icon: 'none'
})
}
})
} else {
wx.hideLoading()
wx.showToast({
title: '添加失败',
mask:true,
icon: 'none'
})
}
})
} else {
wx.hideLoading()
wx.showToast({
title: '添加失败',
mask:true,
duration: 2000,
icon: 'none'
})
}
})
}else if(deviceinfo.manufactureId == 1201 || deviceinfo.manufactureId == 1241){
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 userPassword = JSON.stringify(this.data.phone).substring(this.data.phone.length - 6, this.data.phone.length)
var data = {
userTelephone: this.data.phone,
password: userPassword,
userPassword: userPassword,
startTime: time1,
endTime: time2
}
let loginKey = WXAPI.setCode("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXKHkNKieiGOTjXZJ0lFBjhRCa\nZTaAebTIfB9nnnVmNVIp//yCfyFXSlxbAj58CQwCVhwy109ROYf3BcsQNMZz7Djo\n8a5V0JThNye4ihxLiYLawLRjb2y2/IhzV0/JZiFtaM83xUt0tbqTKxD00Up7dy8c\n9OXc0h//0uQSraf6JwIDAQAB", userPassword)
var infostr = {
userTelephone: _this.data.phone,
userPassword: userPassword,
loginKey:loginKey,
userId: userPassword,
keyId: userPassword,
pass:true
};
var data1 = {
cardId: _this.data.number,
cardState: 1,
info: JSON.stringify(infostr),
name: _this.data.name,
number: _this.data.number,
phone: _this.data.phone,
sex: 1,
type: 0,
};
WXAPI.addCard(data1).then(res => {
if (res.success) {
var data2 = [{
cardId: res.data,
siteId: _this.data.deviceinfo.roomId,
startTime: time3,
endTime: time4
}]
WXAPI.bindCard(data2).then(res2 => {
if(res2.success){
_this.setData({
show: false
})
wx.showToast({
title: '人员绑定成功',
icon: 'none',
duration: 2000
})
// wx.setStorageSync('minDate', data.startTime)
// wx.setStorageSync('minDate1', data.endTime)
_this.getSiteTenant(_this.data.roomId)
}else{
wx.hideLoading()
wx.showToast({
title: '人员绑定失败',
duration:2000,
icon:'none'
})
}
})
}else{
wx.hideLoading()
wx.showToast({
title: '添加失败',
duration:2000,
icon:'none'
})
}
})
}
}
},
// 关闭添加人员弹窗
onClose() {
this.setData({
show: false
});
},
// 获取入住人员
getSiteTenant(roomId) {
var data2 = {
q: JSON.stringify({
id: roomId
}),
orderBy: "createTime",
orderType: 'desc'
}
WXAPI.getSiteTenant(data2).then(res1 => {
if (res1.data.list.length > 0) {
let starttime = moment().format('YYYY-MM-DD HH:mm:ss')
let endtime = moment().add(30,'days').format('YYYY-MM-DD HH:mm:ss')
// wx.setStorageSync('minDate',starttime)
// wx.setStorageSync('minDate1',endtime)
this.setData({
personList: res1.data.list,
roomId: roomId,
starttime,
endtime,
// minDate,minDate1
})
} else {
this.setData({
personList: []
})
wx.showToast({
title: "还未下发人员,请先下发人员",
mask:true,
duration: 2000,
icon: 'none'
})
}
})
},
onChange(event) {
this.setData({
searchValue: event.detail
})
},
onClick(e) {
var data2 = {
q: JSON.stringify({
id: this.data.roomId,
name: this.data.searchValue
}),
orderBy: "createTime",
orderType: 'desc'
}
WXAPI.getSiteTenant(data2).then(res1 => {
if (res1.data.list.length > 0) {
let minDate = res1.data.list[0].startTime
let minDate1 = res1.data.list[0].endTime
let starttime = moment(minDate).format('YYYY-MM-DD HH:mm:ss')
let endtime = moment(minDate1).format('YYYY-MM-DD HH:mm:ss')
// wx.setStorageSync('minDate',starttime)
// wx.setStorageSync('minDate1',endtime)
this.setData({
personList: res1.data.list,
starttime,
endtime,
// minDate,minDate1
})
} else {
wx.showToast({
title: "未发现该人员",
mask:true,
duration: 2000,
icon: 'none'
})
}
})
},
//选择已存在人员
personnelCheckin(){
wx.navigateTo({
url: '/pages/selectPersonnel/selectPersonnel',
})
},
// 添加人员
addperson(e) {
var deviceinfo = this.data.deviceinfo
var current = e.currentTarget.dataset.current
this.setData({
current: current
})
if (deviceinfo.manufactureId == 201||deviceinfo.manufactureId == 221) {
if (app.globalData.zgBlueStatus) {
this.setData({
show: true
})
} else {
this.goBlue()
}
} else if (deviceinfo.manufactureId == 101) {
if (app.globalData.bleStatus == '蓝牙已连接') {
this.setData({
show: true
})
} else {
this.startconnect()
}
}else if (deviceinfo.manufactureId == 1201) {
this.setData({
show: true
})
}else if (deviceinfo.manufactureId == 1241) {
this.setData({
show: true
})
}
},
addperson1(e) {
wx.showLoading({
title: '加载中...',
})
var deviceinfo = this.data.deviceinfo
var that = this
var cgInfo = wx.getStorageSync('cgInfo')
var current = e.currentTarget.dataset.current
var index = e.currentTarget.dataset.index
var personLi = that.data.personList[index]
wx.setStorageSync('personLi', that.data.personList[index])
this.setData({
current: current,
index: index
})
// wx.navigateTo({
// url: '/pages/addperson/addperson?current=' + current,
// })
// return
if (deviceinfo.manufactureId == 201||deviceinfo.manufactureId == 221) {
if (app.globalData.zgBlueStatus) {
if (current == 1) {
wx.hideLoading()
wx.navigateTo({
url: '/pages/addperson/addperson?current=' + current,
})
} else if (current == 2) {
wx.hideLoading()
wx.showModal({
title: '是否删除',
success(res) {
if (res.confirm) {
wx.showLoading({
title: '加载中...',
})
var info = JSON.parse(that.data.personList[that.data.index].info)
var personLi = that.data.personList[that.data.index]
ICINLocker.getSignKey(cgInfo.lockerId, cgInfo.superId, cgInfo.superId,
(callback) => {
if(callback.status=='00'){
var signKey = callback.signKey
ICINLocker.getCommonKey(cgInfo.lockerId, cgInfo.superId, cgInfo.superId, signKey, (callback1) => {
if(callback1.status=='00'){
var commonKey = callback1.commonKey
ICINLocker.deleteUser(cgInfo.lockerId, cgInfo.superId, info.userId, cgInfo.superId, '', signKey, commonKey, (callback2) => {
if (callback2.status == '00') {
var data = {
lockerId: deviceinfo.deviceNum,
imei: deviceinfo.imei,
lockerUserId: info.userId,
keyId: info.userId,
role: '00',
action: 2,
order: 6203,
type: 3,
result: 1,
cardName:personLi.name,
roomName:deviceinfo.roomName
};
WXAPI.ZGduserOperation(data).then(res => {
if(res.code==200){
var data3 = {
result: 1,
serial: res.data.serialNumber
}
setTimeout(()=>{
WXAPI.updatePush(data3).then(res4 => {
})
},1000)
}else{
var data3 = {
result: 702,
serial: res.data.serialNumber
}
setTimeout(()=>{
WXAPI.updatePush(data3).then(res4 => {
})
},1000)
}
})
var str = [{
cardId: personLi.cardId,
siteId: that.data.deviceinfo.roomId,
}]
WXAPI.unbindCard(str).then(res => {
if (res.success) {
that.getSiteTenant(that.data.roomId)
}
})
wx.hideLoading()
} else {
wx.hideLoading()
wx.showToast({
title: '删除失败',
duration: 2000,
mask:true,
icon: 'none'
})
}
})
}else{
wx.hideLoading()
wx.showToast({
title: '连接失败',
duration: 2000,
mask:true,
icon: 'none'
})
}
})
}else{
wx.hideLoading()
wx.showToast({
title: '连接失败',
duration: 2000,
mask:true,
icon: 'none'
})
}
})
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
}
} else {
wx.hideLoading()
this.goBlue()
}
} else if (deviceinfo.manufactureId == 101) {
wx.hideLoading()
if (app.globalData.bleStatus == '蓝牙已连接') {
if (current == 1) {
wx.navigateTo({
url: '/pages/addperson/addperson?current=' + current,
})
} else if (current == 2) {
wx.hideLoading()
wx.showModal({
title: '是否删除',
success(res) {
if (res.confirm) {
wx.showLoading({
title: '加载中...',
})
var info = JSON.parse(that.data.personList[that.data.index].info)
var personLi = that.data.personList[that.data.index]
var data1 = {
managerTelephone: "18270949468",
managerPassword: '202108',
userTelephone: info.userTelephone,
userPassword: info.userPassword,
password: info.userPassword,
startTime: "20210813010101",
endTime: "20680813010101"
}
var timestamp= moment().format("x")
bleall.startFp1_63(data1.managerTelephone, data1.managerPassword, data1.userTelephone,
data1.userPassword, data1.password, data1.startTime, data1.endTime, 3,timestamp,
function (res) {
if (res.success) {
var data3 = {
code: "ble/operateUserInfo",
data: {
deviceNum: that.data.deviceinfo.deviceNum,
imei: that.data.deviceinfo.imei,
userTelephone: info.userTelephone,
userPassword: info.userPassword,
password: info.userPassword,
userStartTime: '20210813010101',
userEndTime: '20680813010101',
passwordStartTime: '20210813010101',
passwordEndTime: '20680813010101',
operateMode: 3,
order: 6203,
timestamp:timestamp,
roomName:deviceinfo.roomName,
cardName:'蓝牙'+personLi.name,
managerTelephone: '18270949468',
managerPassword: '202108',
passwordLength: 10,
permission: 4294967295,
times: 255,
recycleTime: "65535",
}
}
WXAPI.sendCommand(data3).then(res => {
console.log(res)
if(res.success){
var data4 = {
result: 1,
serial: res.data.serialNumber
}
setTimeout(()=>{
WXAPI.updatePush(data4).then(res4 => {
})
},1000)
var str = [{
cardId: personLi.cardId,
siteId: that.data.deviceinfo.roomId,
}]
WXAPI.unbindCard(str).then(res => {
if (res.success) {
that.getSiteTenant(that.data.roomId)
}
})
}
})
}
if (res.data == "蓝牙功能暂不支持") {
wx.showLoading({
title: '重连中',
})
that.startconnect()
}
})
}
}
})
}
} else {
this.startconnect()
}
}else if(deviceinfo.manufactureId == 1201 || deviceinfo.manufactureId == 1241){
if (current == 1) {
wx.navigateTo({
url: '/pages/addperson/addperson?current=' + current,
})
} else if (current == 2) {
wx.hideLoading()
wx.showModal({
title: '是否删除',
success(res) {
if (res.confirm) {
var str = [{
cardId: personLi.cardId,
siteId: that.data.deviceinfo.roomId,
}]
WXAPI.unbindCard(str).then(res => {
if (res.success) {
that.getSiteTenant(that.data.roomId)
}
})
}
}
})
}else if(current == 3){
wx.navigateTo({
url: '/pagesA/facepeople/facepeople',
})
}
}
},
goBlue() {
var that = this
var cgInfo = wx.getStorageSync('cgInfo')
wx.showLoading({
title: '连接蓝牙中',
})
ICINLocker.scanDevices(this.data.deviceinfo.deviceNum)
.then((res) => {
console.log(res)
if (res.status == 0) {
var deviceId = res.deviceId
//成功找到蓝牙情况下进行锁连接
app.globalData.blueDeviceId = res.deviceId
ICINLocker.connect(res.deviceId) // 此处 deviceId 存起来,当断开连接时使用
.then((res) => {
if (res.status === 0) {
clearInterval(that.data.timer)
this.setData({
bleStatus: '蓝牙已连接',
deviceId: deviceId
})
app.globalData.zgBlueStatus = true
wx.hideLoading()
wx.showToast({
title: '连接成功',
mask:true,
icon: "none",
duration: 2000
})
if (that.data.current === 0) {
this.setData({
show: true
})
} else if (that.data.current == 1) {
wx.navigateTo({
url: '/pages/addperson/addperson?current=' + that.data.current,
})
} else if (that.data.current == 2) {
var info = JSON.parse(that.data.personList[that.data.index].info)
var personLi = that.data.personList[that.data.index]
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, (callback) => {
var commonKey = callback.commonKey
console.log(commonKey, 'commonKey')
ICINLocker.deleteUser(cgInfo.lockerId, cgInfo.superId, info.userId, cgInfo.superId, '', signKey, commonKey, (callback) => {
console.log(callback, "删除人员")
if (callback.status == '00') {
var str = [{
cardId: personLi.cardId,
siteId: that.data.deviceinfo.roomId,
}]
console.log(str, 'str')
WXAPI.unbindCard(str).then(res => {
if (res.success) {
that.getSiteTenant(that.data.roomId)
}
})
} else {
wx.showToast({
title: '删除失败',
mask:true,
duration: 2000,
icon: 'none'
})
}
})
})
})
}
} else {
wx.hideLoading()
var msg = ''
switch (res.errCode) {
case 10001:
msg = '调用失败,请打开蓝牙!';
break;
}
wx.showToast({
title: msg,
duration: 2000,
mask:true,
icon: 'none'
})
//此处处理返回值不为成功(0)的情况
}
}).catch((res) => {
wx.hideLoading()
console.log(res, '失败')
// 此处处理未能连接成功问题
})
}
})
.catch((res) => {
//此处处理未能连接到蓝牙的问题
if (res.status == 1) {
if (res.statusReason.errCode == 10001) {
wx.hideLoading()
wx.showModal({
title: "提示",
content: "请检查手机蓝牙和定位功能是否打开?",
showCancel: false,
confirmText: "确定",
success(res) {}
});
} else {
if (!app.globalData.zgBlueStatus) {
that.goBlue()
} else {
wx.hideLoading()
}
}
}
})
},
startconnect() {
//if(checkWechatVersion())
// {
wx.showLoading({
title: "连接蓝牙中"
})
var deviceinfo = this.data.deviceinfo
const ble = new BLE(this.data.deviceinfo.deviceNum, emitter)
app.globalData.ble = ble
this.watchBLE()
app.globalData.ble.init()
// }
},
watchBLE() {
var that = this
if (app.globalData.ble) {
app.globalData.ble.listen(res => {
if (res.type == 'connect') {
if (res.data == "未打开适配器") {
wx.hideLoading()
wx.showModal({
title: "提示",
content: "请检查手机蓝牙和定位功能是否打开?",
showCancel: false,
confirmText: "确定",
success(res) {}
});
} else {
if (res.data == '蓝牙已连接') {
app.globalData.bleStatus = res.data
if (that.data.current == 0) {
this.setData({
show: true
})
} else if (that.data.current == 1) {
wx.navigateTo({
url: '/pages/addperson/addperson?current=' + that.data.current,
})
} else if (that.data.current == 2) {
wx.showModal({
title: '是否删除',
success(res) {
if (res.confirm) {
wx.showLoading({
title: '加载中...',
})
var info = JSON.parse(that.data.personList[that.data.index].info)
var personLi = that.data.personList[that.data.index]
var data1 = {
managerTelephone: "18270949468",
managerPassword: '202108',
userTelephone: info.userTelephone,
userPassword: info.userPassword,
password: info.userPassword,
startTime: "20210813010101",
endTime: "20680813010101"
}
var timestamp= moment().format("x")
bleall.startFp1_63(data1.managerTelephone, data1.managerPassword, data1.userTelephone,
data1.userPassword, data1.password, data1.startTime, data1.endTime, 3,timestamp,
function (res) {
if (res.success) {
var data3 = {
code: "ble/operateUserInfo",
data: {
deviceNum: that.data.deviceinfo.deviceNum,
imei: that.data.deviceinfo.imei,
userTelephone: info.userTelephone,
userPassword: info.userPassword,
password: info.userPassword,
userStartTime: '20210813010101',
userEndTime: '20680813010101',
passwordStartTime: '20210813010101',
passwordEndTime: '20680813010101',
operateMode: 3,
order: 6203,
timestamp: timestamp,
managerTelephone: '18270949468',
managerPassword: '202108',
passwordLength: 10,
permission: 4294967295,
times: 255,
recycleTime: "65535",
}
}
WXAPI.sendCommand(data3).then(res => {
})
var str = [{
cardId: personLi.cardId,
siteId: that.data.deviceinfo.roomId,
}]
WXAPI.unbindCard(str).then(res => {
if (res.success) {
that.getSiteTenant(that.data.roomId)
}
})
}
if (res.data == "蓝牙功能暂不支持") {
wx.showLoading({
title: '重连中',
})
that.startconnect()
}
})
}
}
})
}
}
}
}
})
}
},
//普通用户获取 signk
getUserSignKey(data, callback) {
// ICINLocker.getUserSignKey(data.lockId, data.superAdminId, data.usrId, data.keyId, data.authUserSignKeyOrAuthKey, data.accessType, (callback1) => {
// console.log(callback1)
// callback(callback1)
// })
ICINLocker.getSignKey(data.lockId, data.usrId, data.keyId, (callback1) => {
console.log(callback1)
callback(callback1)
})
},
// 协商通讯密钥
getCommonKey(data, callback) {
ICINLocker.getCommonKey(data.lockId, data.usrId, data.keyId, data.userSignKey, (callback2) => {
console.log(callback2)
callback(callback2)
})
},
// 删除用户
ZGdeleteUser(data, callback) {
ICINLocker.deleteUser(data.lockId, data.superAdminId, data.usrId, data.keyId, data.delUserToken, data.signkey, data.commonKey, (callback1) => {
console.log(callback1)
callback(callback1)
});
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
var deviceinfo = wx.getStorageSync('deviceinfo')
// this.getSiteTenant(deviceinfo.roomId)
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})