// 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 { if (res1.data.list.length > 0) { var pullUpStatus=true if(res1.data.list { if (res1.data.list.length > 0) { var pullUpStatus=true if(res1.data.list { 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 () { } })