// pages/selectPersonnel/selectPersonnel.js
|
|
const app = getApp()
|
|
const WXAPI = require('../../utils/request')
|
|
import ICINLocker from "../../utils/ICINPakage/ICINLocker"
|
|
var util = require('../../utils/util');
|
|
var methods = require('../../utils/methods');
|
|
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 + " ";
|
|
clock += '00:00:00';
|
|
return (clock);
|
|
}
|
|
|
|
function CurentTime1() {
|
|
var now = new Date();
|
|
var year = now.getFullYear() + 1; //年
|
|
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 + " ";
|
|
clock += '23:59:59';
|
|
return (clock);
|
|
}
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
datetimerange: [CurentTime(), CurentTime1()],
|
|
endtime: CurentTime1(),
|
|
starttime: CurentTime(),
|
|
searchValue:"人员",
|
|
pageSize:20,
|
|
pageNum:1,
|
|
personList:[],
|
|
deviceinfo:{},
|
|
cgInfo:{},
|
|
show: false,
|
|
phone: '',
|
|
name: '',
|
|
deviceId:'',
|
|
personInfo:{},
|
|
pullUpStatus:true
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
var deviceinfo = wx.getStorageSync('deviceinfo')
|
|
var cgInfo = wx.getStorageSync('cgInfo')
|
|
this.setData({
|
|
deviceinfo: deviceinfo,
|
|
cgInfo: cgInfo
|
|
})
|
|
this.getPerson()
|
|
},
|
|
|
|
bindDateChange: function (e) {
|
|
var str = e.detail.value + " 00:00:00"
|
|
this.data.datetimerange[0] = str
|
|
this.setData({
|
|
starttime: str,
|
|
minDate1: str
|
|
})
|
|
},
|
|
bindDateChange1: function (e) {
|
|
var str = e.detail.value + " 23:59:59"
|
|
this.data.datetimerange[1] = str
|
|
this.setData({
|
|
endtime: str
|
|
})
|
|
},
|
|
// 点击人员
|
|
clickOnPeople(e){
|
|
var info=e.target.dataset.item
|
|
info['content']=JSON.parse(info.info)
|
|
this.setData({
|
|
personInfo:info,
|
|
show:true
|
|
})
|
|
},
|
|
getPerson(){
|
|
var data={
|
|
q:JSON.stringify({}),
|
|
pageSize:this.data.pageSize,
|
|
pageNum:this.data.pageNum
|
|
}
|
|
WXAPI.getlistNum(data).then(res=>{
|
|
if(res.success){
|
|
if(res.data.list<this.data.pageSize){
|
|
this.setData({
|
|
pullUpStatus:false,
|
|
personList: res.data.list
|
|
})
|
|
}else{
|
|
this.setData({
|
|
pullUpStatus:true,
|
|
personList: res.data.list
|
|
})
|
|
}
|
|
}else{
|
|
wx.showToast({
|
|
title: res.msg,
|
|
duration:2000,
|
|
mask:true,
|
|
icon:'none'
|
|
})
|
|
}
|
|
})
|
|
},
|
|
// 关闭添加人员弹窗
|
|
onClose() {
|
|
this.setData({
|
|
show: false
|
|
});
|
|
},
|
|
// 获取人员
|
|
onChange(event) {
|
|
this.setData({
|
|
searchValue: event.detail
|
|
})
|
|
},
|
|
pullUpMethods() {
|
|
var data2 = {
|
|
q: JSON.stringify({
|
|
name: this.data.searchValue
|
|
}),
|
|
pageSize:this.data.pageSize,
|
|
pageNum:this.data.pageNum
|
|
}
|
|
WXAPI.getlistNum(data2).then(res1 => {
|
|
if (res1.data.list.length > 0) {
|
|
var pullUpStatus=true
|
|
if(res1.data.list<this.data.pageSize){
|
|
pullUpStatus=false
|
|
}else{
|
|
pullUpStatus=false
|
|
}
|
|
var list=this.data.personList.concat(res1.data.list)
|
|
this.setData({
|
|
pullUpStatus:pullUpStatus,
|
|
personList: list
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: "未发现该人员",
|
|
duration: 2000,
|
|
mask:true,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
},
|
|
onClick() {
|
|
var data2 = {
|
|
q: JSON.stringify({
|
|
name: this.data.searchValue
|
|
}),
|
|
pageSize:this.data.pageSize,
|
|
pageNum:1
|
|
}
|
|
WXAPI.getlistNum(data2).then(res1 => {
|
|
if (res1.data.list.length > 0) {
|
|
var pullUpStatus=true
|
|
if(res1.data.list<this.data.pageSize){
|
|
pullUpStatus=false
|
|
}else{
|
|
pullUpStatus=false
|
|
}
|
|
this.setData({
|
|
pullUpStatus:pullUpStatus,
|
|
personList: res1.data.list
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: "未发现该人员",
|
|
duration: 2000,
|
|
mask:true,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
},
|
|
addperson(e) {
|
|
var deviceinfo = this.data.deviceinfo
|
|
if (deviceinfo.manufactureId == 201||deviceinfo.manufactureId == 221) {
|
|
if (app.globalData.zgBlueStatus) {
|
|
this.adduser()
|
|
} else {
|
|
this.goBlue()
|
|
}
|
|
} else if (deviceinfo.manufactureId == 101) {
|
|
if (app.globalData.bleStatus == '蓝牙已连接') {
|
|
this.adduser()
|
|
} else {
|
|
this.startconnect()
|
|
}
|
|
}
|
|
},
|
|
goBlue() {
|
|
var that = this
|
|
var cgInfo = wx.getStorageSync('cgInfo')
|
|
wx.showLoading({
|
|
title: '连接中',
|
|
mask:true
|
|
})
|
|
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({
|
|
deviceId: deviceId
|
|
})
|
|
app.globalData.zgBlueStatus = true
|
|
wx.hideLoading()
|
|
wx.showToast({
|
|
title: '连接成功',
|
|
icon: "none",
|
|
mask:true,
|
|
duration: 2000
|
|
})
|
|
this.adduser()
|
|
} 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: "连接中",
|
|
mask:true
|
|
})
|
|
var deviceinfo = this.data.deviceinfo
|
|
const ble = new BLE(this.data.deviceinfo.deviceNum, emitter)
|
|
app.globalData.ble = ble
|
|
this.watchBLE()
|
|
app.globalData.ble.init()
|
|
// }
|
|
},
|
|
watchBLE() {
|
|
var that = this
|
|
if (app.globalData.ble) {
|
|
app.globalData.ble.listen(res => {
|
|
if (res.type == 'connect') {
|
|
if (res.data == "未打开适配器") {
|
|
wx.hideLoading()
|
|
wx.showModal({
|
|
title: "提示",
|
|
content: "请检查手机蓝牙和定位功能是否打开?",
|
|
showCancel: false,
|
|
confirmText: "确定",
|
|
success(res) {}
|
|
});
|
|
} else {
|
|
if (res.data == '蓝牙已连接') {
|
|
app.globalData.bleStatus = res.data
|
|
this.adduser()
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|
|
},
|
|
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,
|
|
icon: 'none',
|
|
mask:true,
|
|
})
|
|
return
|
|
}
|
|
if (this.data.personInfo.content.userTelephone == '' || this.data.personInfo.name == '') {
|
|
wx.showToast({
|
|
title: '请填写完整信息',
|
|
duration: 2000,
|
|
mask:true,
|
|
icon: 'none'
|
|
})
|
|
}else if(this.data.personInfo.content.userTelephone.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 userPassword = this.data.personInfo.content.userPassword
|
|
var data = {
|
|
managerTelephone: "18270949468",
|
|
managerPassword: "202108",
|
|
userTelephone: this.data.personInfo.content.userTelephone,
|
|
password: userPassword,
|
|
userPassword: userPassword,
|
|
startTime: time1,
|
|
endTime: time2
|
|
}
|
|
var timestamp= moment().format("x")
|
|
console.log(data,'-----')
|
|
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) {
|
|
var data2 = [{
|
|
cardId: _this.data.personInfo.id,
|
|
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.personInfo.content.userTelephone,
|
|
userPassword: userPassword,
|
|
userStartTime: time1,
|
|
userEndTime: time2,
|
|
password: userPassword,
|
|
passwordStartTime: time1,
|
|
passwordEndTime: time2,
|
|
operateMode: 1,
|
|
order: 6226,
|
|
roomName:_this.data.deviceinfo.roomName,
|
|
cardName:'蓝牙'+_this.data.personInfo.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
|
|
})
|
|
WXAPI.sendCommand(data3).then(res6 => {
|
|
if(res6.success){
|
|
var data4 = {
|
|
result: 1,
|
|
serial: res6.data.serialNumber
|
|
}
|
|
setTimeout(()=>{
|
|
WXAPI.updatePush(data4).then(res4 => {
|
|
|
|
})
|
|
},1000)
|
|
}
|
|
})
|
|
_this.setData({
|
|
show: false
|
|
})
|
|
wx.navigateBack({
|
|
delta: 1
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}
|
|
if (res.data == "蓝牙功能暂不支持") {
|
|
wx.showLoading({
|
|
title: '重连中',
|
|
mask:true
|
|
})
|
|
_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 usrID = this.data.personInfo.content.userId
|
|
wx.showLoading({
|
|
title: '正在添加',
|
|
mask:true
|
|
})
|
|
let info={
|
|
usrID:usrID,
|
|
startTime:startTime,
|
|
endTime:endTime
|
|
}
|
|
methods.bluetoothOperation_ZH(this.data.cgInfo,info,1).then(result=>{
|
|
if (result.status == '00') {
|
|
var dataPasswod = {
|
|
lockerId: this.data.deviceinfo.deviceNum,
|
|
imei: this.data.deviceinfo.imei,
|
|
lockerUserId: usrID,
|
|
keyId: usrID,
|
|
role: 0,
|
|
order: 6226,
|
|
action: 1,
|
|
roomName:this.data.deviceinfo.roomName,
|
|
cardName:'蓝牙'+this.data.personInfo.name,
|
|
type: 1,
|
|
result: 1
|
|
}
|
|
var data2 = [{
|
|
cardId: this.data.personInfo.id,
|
|
siteId: this.data.deviceinfo.roomId,
|
|
startTime: time1,
|
|
endTime: time2
|
|
}]
|
|
WXAPI.bindCard(data2).then(res2 => {
|
|
if (res2.success) {
|
|
WXAPI.ZGduserOperation(dataPasswod).then(res6 => {
|
|
console.log(res6)
|
|
if (res6.success) {
|
|
var data3 = {
|
|
result: 1,
|
|
serial: res6.data.serialNumber
|
|
}
|
|
setTimeout(()=>{
|
|
WXAPI.updatePush(data3).then(res4 => {
|
|
|
|
})
|
|
},1000)
|
|
wx.hideLoading()
|
|
wx.showToast({
|
|
title: '添加成功',
|
|
icon: 'none',
|
|
mask:true,
|
|
duration: 2000
|
|
})
|
|
} else {
|
|
wx.hideLoading()
|
|
wx.showToast({
|
|
title: '添加失败',
|
|
icon: 'none',
|
|
mask:true,
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
this.setData({
|
|
show: false
|
|
})
|
|
wx.showToast({
|
|
title: '绑定成功',
|
|
icon: 'none',
|
|
mask:true,
|
|
})
|
|
wx.navigateBack({
|
|
delta: 1
|
|
})
|
|
} else {
|
|
wx.hideLoading()
|
|
wx.showToast({
|
|
title: '添加失败',
|
|
mask:true,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
wx.hideLoading()
|
|
wx.showToast({
|
|
title: '添加失败',
|
|
duration: 2000,
|
|
mask:true,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
})
|
|
}
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
if(this.data.pullUpStatus){
|
|
var pageNum=this.data.pageNum+1
|
|
this.setData({
|
|
pageNum:pageNum
|
|
})
|
|
this.pullUpMethods()
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage: function () {
|
|
|
|
}
|
|
})
|