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.
 

639 lines
18 KiB

// 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 () {
}
})