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.

478 lines
12 KiB

1 year ago
  1. // pages/openLockLog/openLockLog.js
  2. const app = getApp()
  3. const WXAPI = require('../../utils/request')
  4. var util = require('../../utils/util');
  5. import moment from "../../utils/moment"
  6. Page({
  7. /**
  8. * 页面的初始数据
  9. */
  10. data: {
  11. locklogList: [],
  12. locklogListOne:[],
  13. locklogListTwo:[],
  14. pageNum: 1,
  15. pageNumOne:1,
  16. pageNumTwo:1,
  17. pageSize: 10,
  18. roomId: '',
  19. cardId:'',
  20. stoppull: false,
  21. active:0,
  22. openType:0,
  23. bottomroolTwo:true,
  24. bottomroolOne:true
  25. },
  26. /**
  27. * 生命周期函数--监听页面加载
  28. */
  29. onLoad: function (options) {
  30. if (options.roomId && !options.cardId) {
  31. this.data.roomId = options.roomId
  32. this.getopenlocklog(options.roomId)
  33. }else{
  34. this.data.roomId = options.roomId
  35. this.data.cardId = options.cardId
  36. this.minGetopenlocklog()
  37. }
  38. },
  39. onChange(event){
  40. this.setData({
  41. active:event.detail.name
  42. })
  43. if(this.data.cardId){
  44. this.minGetopenlocklog()
  45. }else{
  46. if(event.detail.name==0){
  47. this.getopenlocklog(this.data.roomId)
  48. }else if(event.detail.name==1){
  49. this.getopenlocklogOne(this.data.roomId)
  50. }else if(event.detail.name==2){
  51. this.getopenlocklogTwo(this.data.roomId)
  52. }
  53. }
  54. },
  55. timestampToTime(cjsj) {
  56. if (cjsj.toString().length == 10) {
  57. cjsj = cjsj * 1000
  58. }
  59. var date = new Date(cjsj); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
  60. var Y = date.getFullYear() + "-";
  61. var M =
  62. (date.getMonth() + 1 < 10 ?
  63. "0" + (date.getMonth() + 1) :
  64. date.getMonth() + 1) + "-";
  65. var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
  66. var h = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
  67. var m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":";
  68. var s = (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds());
  69. return Y + M + D + h + m + s;
  70. },
  71. getopenlocklogTwo(roomId){
  72. let operUrl="",q={}
  73. var carname=wx.getStorageSync('username')
  74. var deviceinfo=wx.getStorageSync('deviceinfo')
  75. operUrl="/v1/device/isp/openLock"
  76. q= util.searchParaProcess({
  77. operUrl:operUrl,
  78. roomIds:[this.data.roomId],
  79. request:[carname],
  80. })
  81. var dataq = {
  82. pageNum: this.data.pageNumTwo,
  83. pageSize: 30,
  84. orderType: "desc",
  85. orderBy:"createAt",
  86. q: q
  87. };
  88. WXAPI.getOperateList(dataq).then(res=>{
  89. if(res.success){
  90. var data = [];
  91. if(res.data.total<30){
  92. this.setData({
  93. bottomroolTwo:false
  94. })
  95. }
  96. res.data.list.map((li, index) => {
  97. var operRequ=JSON.parse(li.operRequ).param[0]
  98. let path="",compli=""
  99. if(operRequ.hasOwnProperty("data")){
  100. path=deviceinfo.roomName
  101. li.roomName = path?path:operRequ.data.roomName?operRequ.data.roomName:'';
  102. li.roomId = operRequ.data.roomId;
  103. li.name=operRequ.data.cardName
  104. li.deviceNum=operRequ.data.lockerId?operRequ.data.lockerId:operRequ.data.deviceNum;
  105. }else{
  106. li.roomName = operRequ.roomName
  107. li.name=operRequ.cardName
  108. li.deviceNum=operRequ.deviceNum || operRequ.imei
  109. }
  110. li.openType="远程开锁"
  111. li.openTime = moment(li.createAt).format("YYYY-MM-DD HH:mm:ss");
  112. });
  113. var locklogListTwo=this.data.locklogListTwo.concat(res.data.list)
  114. this.setData({
  115. locklogListTwo:locklogListTwo
  116. })
  117. }
  118. })
  119. },
  120. getopenlocklogOne(roomId){
  121. let operUrl="",q={}
  122. var carname=wx.getStorageSync('username')
  123. operUrl="/v1/device/send/bleCommand"
  124. q= util.searchParaProcess({
  125. operRequ: "bleUnlockRecord",
  126. // operUrl:operUrl,
  127. roomIds:[this.data.roomId],
  128. request:[carname],
  129. })
  130. var dataq = {
  131. pageNum: this.data.pageNumOne,
  132. pageSize: 30,
  133. orderType: "desc",
  134. orderBy:"createAt",
  135. q: q
  136. };
  137. WXAPI.getOperateList(dataq).then(res=>{
  138. if(res.success){
  139. if(res.data.total<30){
  140. this.setData({
  141. bottomroolOne:false
  142. })
  143. }
  144. var data = [];
  145. res.data.list.map((li, index) => {
  146. var operRequ=JSON.parse(li.operRequ).param[0]
  147. let path="",compli=""
  148. if(operRequ.hasOwnProperty("data")){
  149. path=wx.getStorageSync('deviceinfo').roomName
  150. li.roomName = path?path:operRequ.data.roomName?operRequ.data.roomName:'';
  151. li.roomId = operRequ.data.roomId;
  152. li.name=operRequ.data.cardName
  153. li.deviceNum=operRequ.data.lockerId?operRequ.data.lockerId:operRequ.data.deviceNum;
  154. }else{
  155. li.roomName = operRequ.roomName
  156. li.name=operRequ.cardName
  157. li.deviceNum=operRequ.deviceNum || operRequ.imei
  158. }
  159. li.openType="蓝牙开锁"
  160. li.openTime = moment(li.createAt).format("YYYY-MM-DD HH:mm:ss");
  161. });
  162. var locklogListOne=this.data.locklogListOne.concat(res.data.list)
  163. this.setData({
  164. locklogListOne:locklogListOne
  165. })
  166. }
  167. })
  168. },
  169. // 租客获取开锁记录
  170. minGetopenlocklog(){
  171. var q = {
  172. // roomId: this.data.roomId,
  173. cardId:this.data.cardId
  174. }
  175. var data1 = {
  176. param:{
  177. pageNum: this.data.pageNum,
  178. pageSize: this.data.pageSize,
  179. orderBy:"open_time desc",
  180. q: JSON.stringify(q)
  181. },
  182. signature:wx.getStorageSync('signature')
  183. }
  184. let deviceinfo = wx.getStorageSync('deviceinfo')
  185. let data2={
  186. param:{
  187. pageNum: 1,
  188. pageSize:10,
  189. orderType: "desc",
  190. orderBy:"createAt",
  191. q: JSON.stringify({
  192. operateName:deviceinfo.name,
  193. roomId:deviceinfo.roomId
  194. })
  195. },
  196. signature:wx.getStorageSync('signature')
  197. }
  198. WXAPI.getBleUnlockRecord(data2).then(res2=>{
  199. if(res2.success){
  200. this.setData({
  201. locklogListOne:res2.data.list
  202. })
  203. }
  204. })
  205. WXAPI.minGetOpenLocks(data1).then(res=>{
  206. if (res.success) {
  207. if (res.data.list.length<10) {
  208. this.data.stoppull = true
  209. this.data.pageNum = 1
  210. wx.showToast({
  211. title: '暂无更多数据!',
  212. duration:2000,
  213. icon:'none'
  214. })
  215. }
  216. res.data.list.map((li, index) => {
  217. var str = ""
  218. switch (li.openType) {
  219. case 1:
  220. str = "指纹开锁";
  221. break;
  222. case 2:
  223. str = "数字键盘开锁";
  224. break;
  225. case 3:
  226. str = "NFC开锁";
  227. break;
  228. case 4:
  229. str = "机械钥匙开锁";
  230. break;
  231. case 5:
  232. str = "蓝牙开锁";
  233. break;
  234. case 6:
  235. str = "NB开锁";
  236. break;
  237. case 7:
  238. str = "身份证";
  239. break;
  240. case 8:
  241. str = "单机密码开锁";
  242. break;
  243. case 9:
  244. str = "人脸开锁";
  245. break;
  246. default:
  247. break;
  248. }
  249. li.openTime = this.timestampToTime(li.openTime)
  250. li.openType = str
  251. })
  252. var locklogList=this.data.locklogList.concat(res.data.list)
  253. console.log(locklogList)
  254. this.setData({
  255. locklogList:locklogList
  256. })
  257. }
  258. })
  259. },
  260. getopenlocklog(roomId) {
  261. var q = {
  262. roomId: roomId
  263. }
  264. var data1 = {
  265. pageNum: this.data.pageNum,
  266. pageSize: this.data.pageSize,
  267. orderBy:"open_time desc",
  268. q: JSON.stringify(q)
  269. }
  270. WXAPI.getOpenRecord(data1).then(res=>{
  271. if (res.success) {
  272. if (res.data.length<10) {
  273. this.data.stoppull = true
  274. }
  275. res.data.list.map((li, index) => {
  276. var str = ""
  277. switch (li.openType) {
  278. case 1:
  279. str = "指纹开锁";
  280. break;
  281. case 2:
  282. str = "数字键盘开锁";
  283. break;
  284. case 3:
  285. str = "NFC开锁";
  286. break;
  287. case 4:
  288. str = "机械钥匙开锁";
  289. break;
  290. case 5:
  291. str = "蓝牙开锁";
  292. break;
  293. case 6:
  294. str = "NB开锁";
  295. break;
  296. case 7:
  297. str = "身份证";
  298. break;
  299. case 8:
  300. str = "单机密码开锁";
  301. break;
  302. case 9:
  303. str = "人脸开锁";
  304. break;
  305. default:
  306. break;
  307. }
  308. li.openTime = this.timestampToTime(li.openTime)
  309. li.openType = str
  310. })
  311. var locklogList=this.data.locklogList.concat(res.data.list)
  312. console.log(locklogList)
  313. this.setData({
  314. locklogList:locklogList
  315. })
  316. }
  317. })
  318. },
  319. getopenlocklog1() {
  320. var data1 = {
  321. pageNum: this.data.pageNum,
  322. pageSize: this.data.pageSize,
  323. orderBy: "open_time desc",
  324. q: JSON.stringify({
  325. roomId: this.data.roomId
  326. }),
  327. };
  328. WXAPI.getOpenRecord(data1).then(res=>{
  329. if (res.success) {
  330. if (res.data.list.length<10) {
  331. this.data.stoppull = true
  332. }
  333. res.data.list.map((li, index) => {
  334. var str = ""
  335. switch (li.openType) {
  336. case 1:
  337. str = "指纹开锁";
  338. break;
  339. case 2:
  340. str = "数字键盘开锁";
  341. break;
  342. case 3:
  343. str = "NFC开锁";
  344. break;
  345. case 4:
  346. str = "机械钥匙开锁";
  347. break;
  348. case 5:
  349. str = "蓝牙开锁";
  350. break;
  351. case 6:
  352. str = "NB开锁";
  353. break;
  354. case 7:
  355. str = "身份证";
  356. break;
  357. case 8:
  358. str = "单机密码开锁";
  359. break;
  360. case 9:
  361. str = "人脸开锁";
  362. break;
  363. default:
  364. break;
  365. }
  366. li.openTime = this.timestampToTime(li.openTime)
  367. li.openType = str
  368. })
  369. var array = []
  370. var locklogList = array.concat(this.data.locklogList, res.data.list)
  371. this.setData({
  372. locklogList
  373. })
  374. }
  375. })
  376. },
  377. /**
  378. * 生命周期函数--监听页面初次渲染完成
  379. */
  380. onReady: function () {
  381. },
  382. /**
  383. * 生命周期函数--监听页面显示
  384. */
  385. onShow: function () {
  386. },
  387. /**
  388. * 生命周期函数--监听页面隐藏
  389. */
  390. onHide: function () {
  391. },
  392. /**
  393. * 生命周期函数--监听页面卸载
  394. */
  395. onUnload: function () {
  396. },
  397. /**
  398. * 页面相关事件处理函数--监听用户下拉动作
  399. */
  400. onPullDownRefresh: function () {
  401. },
  402. /**
  403. * 页面上拉触底事件的处理函数
  404. */
  405. onReachBottom: function () {
  406. if(this.data.cardId){
  407. // this.getopenlocklogOne()
  408. let pageNum = this.data.pageNum+1
  409. this.setData({
  410. pageNum
  411. })
  412. this.minGetopenlocklog()
  413. }else{
  414. if(this.data.active==0){
  415. if (!this.data.stoppull) {
  416. this.data.pageNum = this.data.pageNum + 1
  417. this.getopenlocklog1()
  418. setTimeout(() => {
  419. wx.stopPullDownRefresh()
  420. })
  421. } else {
  422. wx.showToast({
  423. title: "暂无更多数据!",
  424. icon: "none",
  425. duration: 2000
  426. })
  427. }
  428. }else if(this.data.active==1){
  429. if (!this.data.bottomroolOne) {
  430. this.data.pageNumOne = this.data.pageNumOne + 1
  431. this.getopenlocklogOne(this.data.roomId)
  432. setTimeout(() => {
  433. wx.stopPullDownRefresh()
  434. })
  435. } else {
  436. wx.showToast({
  437. title: "暂无更多数据!",
  438. icon: "none",
  439. duration: 2000
  440. })
  441. }
  442. }else if(this.data.active==2){
  443. if (!this.data.bottomroolTwo) {
  444. this.data.pageNumTwo = this.data.pageNumTwo + 1
  445. this.getopenlocklogTwo(this.data.roomId)
  446. setTimeout(() => {
  447. wx.stopPullDownRefresh()
  448. })
  449. } else {
  450. wx.showToast({
  451. title: "暂无更多数据!",
  452. icon: "none",
  453. duration: 2000
  454. })
  455. }
  456. }
  457. }
  458. },
  459. /**
  460. * 用户点击右上角分享
  461. */
  462. onShareAppMessage: function () {
  463. }
  464. })