|
|
- // index.js
- // 获取应用实例
- const app = getApp()
- var util = require('../../utils/util');
- import ICINLocker from "../../utils/ICINPakage/ICINLocker"
- const WXAPI = require('../../utils/request')
- // 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 {
- ztreeToElementTree,
- IntToBytesLittleEndian,
- BytesToIntBigEndian,
- uniqueArray
- } from "../../utils/util"
- import moment from "../../utils/moment"
- Page({
- data: {
- show: false,
- signKey: '',
- commonKey: '',
- list: [],
- searchValue: '',
- userInfo: {},
- pageNum: 1,
- pageSize: 20,
- stoppull: false,
- zNodes: [],
- index: 0,
- array: [],
- index1: 0,
- array1: [],
- ces: 0,
- ces1: '',
- ces2: '',
- dataList: [],
- selectKey: '', //选中的节点id
- selectRoomName: '选择房间',
- pid:'',
- treeList:[],
- allDevice:[],
- devices_list:[],
- searching:''
- },
- onLoad() {
- this.getAllDevice()
- var userInfo = wx.getStorageSync('userInfo')
- this.setData({
- userInfo,
- })
- wx.getStorage({
- key: "token",
- success: (res) => {
- // this.getIntegration()
- if (userInfo.type >= 3) {
- this.getRoomList()
- this.getRoom1()
- } else if (userInfo.type < 3) {
- this.getTree()
- }
- },
- fail: (res) => {
- wx.redirectTo({
- url: "/pages/login/login"
- })
- }
- })
- },
- getCgInfo(deviceNum){
- return new Promise((resolve, reject)=>{
- var data3 = {
- code: "zg/bleRegisterInfo",
- data: {
- lockerId: deviceNum
- }
- }
- WXAPI.sendCommand(data3).then(res1 => {
- if(res1.success){
- resolve(res1)
- }else{
- reject(res1)
- }
- })
- })
- },
- // 获取所有设备
- getAllDevice(){
- var data1={
- pageNum: 0,
- pageSize: 0,
- }
- WXAPI.getDeviceItems(data1).then(res => {
- if(res.success){
- this.setData({
- allDevice:res.data.list
- })
- }
- })
- },
- handleSelect(e) {
- wx.showToast({
- title: `已选择${e.detail.item.name}`,
- icon: 'none',
- duration: 1000
- })
- wx.setStorageSync('selectKey', e.detail.item.id)
- wx.setStorageSync('selectRoomName', e.detail.item.name)
- wx.setStorageSync('pid', e.detail.item.id)
- this.setData({
- selectKey: e.detail.item.id,
- selectRoomName: e.detail.item.name,
- pid:e.detail.item.id,
- show: false
- })
- this.getRoom2(e.detail.item.id)
- },
- bindroom() {
- this.setData({
- show: true
- });
- },
- onClose() {
- this.setData({
- show: false
- });
- },
- zh() {
- var time = moment().format("x")
- var str = this.toBin(time)
- console.log(str)
- var ces1 = IntToBytesLittleEndian(time, 6)
- var ces2 = BytesToIntBigEndian(ces1)
- this.setData({
- ces: time,
- ces1: ces1,
- ces2: ces2,
- })
- },
- toBin(str) {
- var arr = [];
- var remainder, i, str2, num, char;
- while (str.length > 0) {
- str2 = "";
- remainder = 0;
- for (i = 0; i < str.length; i++) { // str2 = str组成的十进制数 / 2
- num = str.charCodeAt(i) - 0x30; // num to String
- num = remainder * 10 + num;
- char = Math.floor(num / 2).toString();
- // 忽略最高为的0 , 即最高为如果是 0 则不放入 str2
- if (!(char === "0" && str2 === "")) {
- str2 += char;
- }
- remainder = num % 2;
- }
- str = str2;
- arr.push(remainder); // 保存余数
- }
- return arr.reverse().join('');
- },
- bindPickerChange: function (e) {
- console.log('picker发送选择改变,携带值为', e.detail.value)
- var array1 = [],
- children = []
- if (this.data.zNodes[e.detail.value].children) {
- children = this.data.zNodes[e.detail.value].children
- children.map(li => {
- array1.push(li.name)
- })
- }
- this.getRoom2(this.data.zNodes[e.detail.value].id)
- this.setData({
- index: e.detail.value,
- array1: array1
- })
- },
- bindPickerChange1: function (e) {
- console.log('picker发送选择改变,携带值为', e.detail.value)
- this.getRoom2(this.data.zNodes[this.data.index].children[e.detail.value].id)
- this.setData({
- index1: e.detail.value,
- })
- },
- getRoomList(){
- var data = {
- pageNum: 0,
- pageSize: 0
- };
- WXAPI.getSiteList(data).then(res => {
- var newArr = util.uniqueArray(res.data.list.list, "id");
- this.setData({
- treeList:newArr
- })
- })
- },
- getTree() {
- var _this = this
- WXAPI.getTree('').then(res => {
- var list=res.data.sort((pre, cur)=>pre.id - cur.id)
- var newArr = util.uniqueArray(list, "id");
- var setting = {
- data: {
- simpleData: {
- idKey: 'id',
- pIdKey: 'pid'
- },
- key: {
- children: 'children'
- }
- }
- }
- var dataList = this.transformTozTreeFormat(setting, newArr)
- var selectKey = wx.getStorageSync('selectKey') || ''
- var selectRoomName = wx.getStorageSync('selectRoomName') || dataList[0].name
- var pid = wx.getStorageSync('pid') || dataList[0].pid
- this.setData({
- dataList: dataList,
- // pid:dataList[0].pid,
- treeList:newArr,
- // selectRoomName:dataList[0].name,
- selectKey,selectRoomName,pid
- })
- this.getRoom()
- })
- },
- onChange(event) {
- this.setData({
- searchValue: event.detail
- })
- },
- godetail(e) {
- console.log(e)
- var IMEI = e.currentTarget.dataset.item
- // if (this.data.userInfo.type != 3) {
- if (IMEI.imei) {
- var q = {
- roomId: IMEI.id,
- // lockType:1,
- types:[1,21, 41],
- }
- var data1 = {
- q: JSON.stringify(q)
- }
- WXAPI.getDeviceItems(data1).then(res => {
- console.log(res);
- if (res.data.list.length > 0) {
- // wx.setStorage({
- // key: "deviceinfo",
- // data: res.data.list[0]
- // })
- wx.setStorageSync('deviceinfo', res.data.list[0])
- wx.navigateTo({
- url: "/pages/roomDetail/roomDetail"
- })
- } else {
- wx.showToast({
- title: "未发现此门锁信息",
- duration: 2000,
- icon: 'none'
- })
- }
- })
- } else {
- wx.showToast({
- title: "还未绑定门锁",
- duration: 2000,
- icon: 'none'
- })
- }
- // } else if (this.data.userInfo.type == 3) {
- // wx.setStorage({
- // key: "deviceinfo",
- // data: this.data.list[0]
- // })
- // wx.navigateTo({
- // url: "/pages/roomDetail/roomDetail"
- // })
- // }
- },
- // 搜索
- onClick(e) {
- var userInfo = this.data.userInfo
- this.setData({
- pageNum: 1,
- pid: '',
- list: []
- })
- wx.getStorage({
- key: "token",
- success: (res) => {
- if (userInfo.type != 3) {
- this.getRoom()
- } else if (userInfo.type == 3) {
- this.getRoom1()
- }
- },
- fail: (res) => {
- wx.redirectTo({
- url: "/pages/login/login"
- })
- }
- })
- },
- // 获取用户信息
- getuserInfo() {
- WXAPI.getuserInfo('').then(res => {
- this.setData({
- userInfo: res.data,
- });
- wx.setStorageSync("userInfo", res.data)
- })
- },
- findIndexArray(data,id,indexArray){
- let arr = Array.from(indexArray);
- for(let i=0,len=data.length;i<len;i++){
- arr.push(data[i].name);
- if(data[i].id===id){
- return arr
- }
- let children=data[i].children;
- if(children&&children.length){
- let result=this.findIndexArray(children,id,arr);
- if(result) return result
- }
- arr.pop()
- }
- return false
- },
- // 获取房间
- getRoom2(id) {
- var q = {
- ancestor: id,
- isRoom:1
- };
- console.log(q)
- var data = {
- q: JSON.stringify(q),
- pageNum: 1,
- pageSize: 20
- };
- WXAPI.getSiteList(data).then(res => {
- var stoppull = false
- if (res.data.list.list.length < 20) {
- stoppull = true
- }
- res.data.list.list.map(li=>{
- var name = this.findIndexArray(this.data.dataList, li.id, [])
- var path = ''
- if (name) {
- path = name.reverse().join('/')
- }
- li['path'] = path
- var device=this.data.allDevice.filter(item=>item.roomId==li.id)[0]
- if(device){
- li.deviceNum=device.deviceNum
- li['battery']=device.battery
- li['rssi']=device.rssi
- li['isOnline']=device.isOnline
- li['manufactureId']=device.manufactureId
- }else{
- li['battery']=''
- li['rssi']=''
- li['isOnline']=''
- li['manufactureId']=''
- }
- })
- var alllist = res.data.list.list
- this.setData({
- list: alllist,
- stoppull,
- pageNum: 1
- })
- })
- },
- // 获取房间
- getRoom() {
- var q = {
- ancestor: this.data.pid,
- isRoom:1,
- name:this.data.searchValue
- };
- var data = {
- q: JSON.stringify(q),
- pageNum: this.data.pageNum,
- pageSize: this.data.pageSize
- };
- WXAPI.getSiteList(data).then(res => {
- var stoppull = false
- if (res.data.list.list.length < 20) {
- stoppull = true
- }
- res.data.list.list.map(li=>{
- var name = this.findIndexArray(this.data.dataList, li.id, [])
- var path = ''
- if (name) {
- path = name.reverse().join('/')
- }
- li['path'] = path
- var device=this.data.allDevice.filter(item=>item.roomId==li.id)[0]
- if(device){
- li.deviceNum=device.deviceNum
- li['battery']=device.battery
- li['rssi']=device.rssi
- li['isOnline']=device.isOnline
- li['manufactureId']=device.manufactureId
- }else{
- li['battery']=''
- li['rssi']=''
- li['isOnline']=''
- li['manufactureId']=''
- }
- })
- var alllist = this.data.list.concat(res.data.list.list)
- this.setData({
- list: alllist,
- stoppull
- })
- })
- },
- 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;
- },
- // 获取房间列表
- getRoom1() {
- var q = {
- number: this.data.userInfo.username,
- isRoom:1,
- name:this.data.searchValue
- };
- var data = {
- q: JSON.stringify(q),
- pageNum: 0,
- pageSize: 0
- };
- WXAPI.getlistNum(data).then(res => {
- if(res.success){
- var person=res.data.list[0]
- var query={}
- wx.setStorageSync('info', person)
- WXAPI.onlyTenant(query).then(res2=>{
- var dataList=res2.data.list.filter(item=> item.cardId==person.id)
- let list=[]
- dataList.map(li=>{
- var obj=this.data.treeList.filter(it=>it.id===li.roomId)[0]
- if(obj){
- list.push(obj)
- }
- var device=this.data.allDevice.filter(item=>item.roomId==li.id)[0]
- if(device){
- li.deviceNum=device.deviceNum
- li['battery']=device.battery
- li['rssi']=device.rssi
- li['isOnline']=device.isOnline
- li['manufactureId']=device.manufactureId
- }else{
- li['battery']=''
- li['rssi']=''
- li['isOnline']=''
- li['manufactureId']=''
- }
- })
- this.setData({
- list:list
- })
- })
- }else{
- wx.showToast({
- icon: "none",
- duration: 2000,
- title: "未找到该人员"
- })
- }
- })
- },
- qrcodefun() {
- var that = this
- wx.scanCode({
- success(res) {
- var deviceNum = ''
- if (res.result.indexOf('&') != -1) {
- deviceNum = res.result.split('&')[0]
- } else if(res.result.indexOf('WSL') != -1){
- deviceNum = res.result
- }else if (res.result.indexOf('_')) {
- deviceNum = "ICIN_" + res.result.split('_')[0]
- }
- console.log(res.result.indexOf('WSL'))
- var q = {
- deviceNum: deviceNum,
- // lockType:1,
- types:[1,21],
- };
- var data = {
- q: JSON.stringify(q),
- pageNum: 1,
- pageSize: 10,
- };
- WXAPI.getDeviceItems(data).then(res => {
- var len = res.data.list
- if (len.length > 0) {
- wx.setStorage({
- key: "deviceinfo",
- data: res.data.list[0]
- })
- wx.navigateTo({
- url: "/pages/roomDetail/roomDetail?open=true"
- })
- } else {
- wx.showToast({
- icon: "none",
- duration: 2000,
- title: "未在平台找到此设备!"
- })
- }
- })
- }
- })
- },
- onPullDownRefresh() {
- this.setData({
- list:[]
- })
- this.onLoad()
- setTimeout(()=>{
- wx.stopPullDownRefresh()
- },500)
- // this.setData({
- // pageNum: 1,
- // list: [],
- // stoppull: false
- // })
- // wx.getStorage({
- // key: "token",
- // success: (res) => {
- // wx.stopPullDownRefresh()
- // if (this.data.userInfo.type > 3) {
- // this.getRoom()
- // } else if (this.data.userInfo.type <= 3) {
- // this.getRoom1()
- // }
- // },
- // fail: (res) => {
- // wx.stopPullDownRefresh()
- // wx.redirectTo({
- // url: "/pages/login/login"
- // })
- // }
- // })
- },
- onReachBottom() {
- var userInfo = this.data.userInfo
- if (!this.data.stoppull) {
- wx.getStorage({
- key: "token",
- success: (res) => {
- var num = this.data.pageNum + 1
- this.setData({
- pageNum: num
- })
- if (userInfo.type != 3) {
- this.getRoom()
- } else if (userInfo.type == 3) {
- this.getRoom1()
- }
- },
- fail: (res) => {
- wx.redirectTo({
- url: "/pages/login/login"
- })
- }
- })
- } else {
- wx.showToast({
- title: '暂无更多数据',
- duration: 2000,
- icon: 'none'
- })
- }
- },
- closeblue() {
- wx.showLoading({
- title: "正在停止...",
- mask: true
- });
- app.globalData.ble.close()
- setTimeout(() => {
- wx.hideLoading()
- }, 1000);
- app.globalData.bleStatus = false
- },
- onShow: function () {
- wx.hideLoading()
- if (app.globalData.zgBlueStatus) {
- ICINLocker.disConnect(app.globalData.blueDeviceId);
- }
- if(app.globalData.bleStatus){
- this.closeblue()
- }
- },
- getUserProfile(e) {},
- getUserInfo(e) {
- // 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
- this.setData({
- userInfo: e.detail.userInfo,
- hasUserInfo: true
- })
- },
- onShareAppMessage() {}
- })
|