火箭军大屏html静态页面
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.

786 lines
28 KiB

2 years ago
2 years ago
  1. // var ajaxUrl = 'http://192.168.99.107:7070'
  2. // var ajaxUrl = 'http://192.168.99.67:7070'
  3. var ajaxUrl = 'http://192.168.1.100:7070'
  4. var storeroomId = 'D6490DA3D4261E8C26D0E3'
  5. var currentIndex = 0
  6. //获取当前时间
  7. var timer = null
  8. timer = setInterval(() => {
  9. var nowDate = getCurrentTime()
  10. $('.current-date').html(nowDate)
  11. }, 1000)
  12. var swiper = new Swiper('.swiper-container', {
  13. autoplay: {
  14. delay: 3000, // 自动切换时间间隔
  15. },
  16. pagination: {
  17. el: '.swiper-pagination', // 分页器容器
  18. clickable: true, // 点击分页器切换
  19. bulletClass : 'my-bullet',//需设置.my-bullet样式
  20. }
  21. });
  22. swiper.on('slideChange', function () {
  23. currentIndex = swiper.activeIndex;
  24. if (currentIndex === 0) {
  25. $('.banner-top-name').html('5F 全景图')
  26. storeroomId = 'D6490DA3D4261E8C26D0E3'
  27. FetchInitDisplayconfig()
  28. } else if (currentIndex === 1) {
  29. $('.banner-top-name').html('5F 档案库')
  30. storeroomId = 'D6490DA3D4261E8C26D0E3'
  31. } else if (currentIndex === 2) {
  32. $('.banner-top-name').html('5F 整理室')
  33. storeroomId = 'D6490DA3D4261E8C26D0E3'
  34. } else if (currentIndex === 3) {
  35. $('.banner-top-name').html('5F 阅览室')
  36. storeroomId = 'D6490DA3D4261E8C26D0E3'
  37. } else if (currentIndex === 4) {
  38. $('.banner-top-name').html('7F 全景图')
  39. storeroomId = '1B2DADD8499058954C0CAC'
  40. FetchInitDisplayconfig()
  41. } else if (currentIndex === 5) {
  42. $('.banner-top-name').html('7F 现行文件室 / 信息技术室')
  43. storeroomId = '1B2DADD8499058954C0CAC'
  44. FetchInitDisplayconfig()
  45. } else if (currentIndex === 6) {
  46. $('.banner-top-name').html('7F 待销文件室')
  47. storeroomId = 'D4C395BFB0A2E7C96C65A0'
  48. FetchInitDisplayconfig()
  49. }
  50. });
  51. var echartsTimer = null
  52. // 定时请求第三方数据,更新页面数据
  53. echartsTimer = setInterval(() => {
  54. FetchThisDayYearBorrowNum()
  55. FetchArchivesNum()
  56. FetchFileAnjuanNum()
  57. FetchDevice()
  58. }, 1000 * 30)
  59. FetchArchivesNum()
  60. FetchFileAnjuanNum()
  61. FetchDevice()
  62. FetchThisDayYearBorrowNum()
  63. FetchInitSecurityDoorLog()
  64. FetchAlarmInfo()
  65. var allDisplayConfigData;
  66. var allDeviceIds = [];
  67. var displayConfigData;
  68. var url;
  69. var topDisplayData = {
  70. DAK_DIV_TOP_001: {
  71. show: false,
  72. curValue: '',
  73. unit: '',
  74. curstatus: 0
  75. },
  76. DAK_DIV_TOP_002: {
  77. show: false,
  78. curValue: '',
  79. unit: '',
  80. curstatus: 0
  81. },
  82. DAK_DIV_TOP_003: {
  83. show: false,
  84. curValue: '',
  85. unit: '',
  86. curstatus: 0
  87. },
  88. DAK_DIV_TOP_004: {
  89. show: false,
  90. curValue: '',
  91. unit: '',
  92. curstatus: 0
  93. },
  94. DAK_DIV_TOP_005: {
  95. show: false,
  96. curValue: '',
  97. unit: '',
  98. curstatus: 0
  99. },
  100. DAK_DIV_TOP_006: {
  101. show: false,
  102. curValue: '',
  103. unit: '',
  104. curstatus: 0
  105. },
  106. // 7F 现行文件室 / 信息技术室
  107. DXW_DIV_TOP_001: {
  108. show: false,
  109. curValue: '',
  110. unit: '',
  111. curstatus: 0
  112. },
  113. DXW_DIV_TOP_002: {
  114. show: false,
  115. curValue: '',
  116. unit: '',
  117. curstatus: 0
  118. },
  119. DXW_DIV_TOP_003: {
  120. show: false,
  121. curValue: '',
  122. unit: '',
  123. curstatus: 0
  124. },
  125. DXW_DIV_TOP_004: {
  126. show: false,
  127. curValue: '',
  128. unit: '',
  129. curstatus: 0
  130. },
  131. DXW_DIV_TOP_005: {
  132. show: false,
  133. curValue: '',
  134. unit: '',
  135. curstatus: 0
  136. },
  137. DXW_DIV_TOP_006: {
  138. show: false,
  139. curValue: '',
  140. unit: '',
  141. curstatus: 0
  142. },
  143. // 7F 待销文件室
  144. XXW_DIV_TOP_001: {
  145. show: false,
  146. curValue: '',
  147. unit: '',
  148. curstatus: 0
  149. },
  150. XXW_DIV_TOP_002: {
  151. show: false,
  152. curValue: '',
  153. unit: '',
  154. curstatus: 0
  155. },
  156. XXW_DIV_TOP_003: {
  157. show: false,
  158. curValue: '',
  159. unit: '',
  160. curstatus: 0
  161. },
  162. XXW_DIV_TOP_004: {
  163. show: false,
  164. curValue: '',
  165. unit: '',
  166. curstatus: 0
  167. },
  168. XXW_DIV_TOP_005: {
  169. show: false,
  170. curValue: '',
  171. unit: '',
  172. curstatus: 0
  173. },
  174. XXW_DIV_TOP_006: {
  175. show: false,
  176. curValue: '',
  177. unit: '',
  178. curstatus: 0
  179. }
  180. }
  181. var waterLeakage = {
  182. waterLeakageStatus1: false,
  183. waterLeakageStatus2: false,
  184. waterLeakageStatus3: false,
  185. waterLeakageStatus4: false,
  186. waterLeakageText4: ''
  187. }
  188. FetchInitDisplayconfig()
  189. function FetchInitDisplayconfig() {
  190. $.ajax({
  191. url: ajaxUrl + '/api/displayconfig/list',
  192. type: 'GET',
  193. data: {
  194. storeroomId: storeroomId
  195. },
  196. success: function (res) {
  197. if (res.code === 200) {
  198. allDisplayConfigData = res.data
  199. allDeviceIds = []
  200. if (currentIndex == 4 || currentIndex == 5 || currentIndex == 6) {
  201. allDisplayConfigData.forEach(item => {
  202. if (item.isDisplay && item.bindState && item.deviceInfo && (item.divPosition.includes('OAO') || item.divPosition.includes('TOP'))) {
  203. allDeviceIds.push(item.deviceInfo.deviceId)
  204. if (!url) {
  205. url = 'http://' + item.deviceInfo.deviceIp + ':' + item.deviceInfo.devicePort
  206. }
  207. }
  208. })
  209. displayConfigData = allDisplayConfigData.filter((item) => { return item.isDisplay && item.bindState && item.deviceInfo && (item.divPosition.includes('OAO') || item.divPosition.includes('TOP')) })
  210. } else {
  211. allDisplayConfigData.forEach(item => {
  212. if (item.isDisplay && item.bindState && item.deviceInfo && (item.divPosition.includes('OAO') || item.divPosition.includes('TOP') || item.divPosition.includes('LS'))) {
  213. allDeviceIds.push(item.deviceInfo.deviceId)
  214. if (!url) {
  215. url = 'http://' + item.deviceInfo.deviceIp + ':' + item.deviceInfo.devicePort
  216. }
  217. }
  218. })
  219. displayConfigData = allDisplayConfigData.filter((item) => { return item.isDisplay && item.bindState && item.deviceInfo && (item.divPosition.includes('OAO') || item.divPosition.includes('TOP') || item.divPosition.includes('LS')) })
  220. }
  221. getRealTimeData()
  222. }
  223. },
  224. error: function (err) {
  225. console.log(err);
  226. }
  227. });
  228. }
  229. function getRealTimeData() {
  230. if (allDeviceIds.length > 0) {
  231. $.ajax({
  232. url: ajaxUrl + '/api/thirdapi/getrealtimedata',
  233. type: 'POST',
  234. traditional: true,
  235. data: JSON.stringify({
  236. "ids": allDeviceIds,
  237. "url": url
  238. }),
  239. dataType: 'json',
  240. contentType: 'application/json',
  241. success: function (res) {
  242. if (res.code === 200) {
  243. displayConfigData.forEach(element => {
  244. if (element.divPosition.includes('TOP') && element.deviceSpecParams[0]) {
  245. // 获取页面div显示的数据
  246. var result = res.data.find((item) => {
  247. return item.property_id === element.deviceSpecParams[0].paramId && item.device_id === element.deviceInfo.deviceId
  248. })
  249. if (result) {
  250. topDisplayData[element.divPosition] = {
  251. show: true,
  252. curValue: result.curvalue,
  253. unit: result.unit,
  254. curstatus: result.curstatus
  255. };
  256. if(currentIndex == 0 || currentIndex == 1 || currentIndex == 2 || currentIndex == 3){
  257. var str = '<li class="top003">'
  258. +'<i class="env-svg-item env-svg1"></i>'
  259. +' <div class="msg-txt">'
  260. +'<span class="msg-list-num">'+topDisplayData.DAK_DIV_TOP_003.curValue+'</span>'
  261. +'<p class="msg-list-unit">CO2 '+topDisplayData.DAK_DIV_TOP_003.unit +'</p>'
  262. +'</div>'
  263. +'</li>'
  264. +'<li class="top004">'
  265. +'<i class="env-svg-item env-svg2"></i>'
  266. +'<div class="msg-txt">'
  267. +'<span class="msg-list-num">'+topDisplayData.DAK_DIV_TOP_004.curValue+'</span>'
  268. +'<p class="msg-list-unit">VOC '+topDisplayData.DAK_DIV_TOP_004.unit+'</p>'
  269. +'</div>'
  270. +'</li>'
  271. +'<li class="msg-pm top005">'
  272. +' <i class="env-svg-item env-svg3"></i>'
  273. +'<div class="msg-txt">'
  274. +'<span class="msg-list-num">'+topDisplayData.DAK_DIV_TOP_005.curValue+'</span>'
  275. +'<p class="msg-list-unit">PM2.5 '+topDisplayData.DAK_DIV_TOP_005.unit+'</p>'
  276. +'</div>'
  277. +' </li>'
  278. +'<li class="msg-pm top006">'
  279. +'<i class="env-svg-item env-svg4"></i>'
  280. +' <div class="msg-txt">'
  281. +'<span class="msg-list-num">'+topDisplayData.DAK_DIV_TOP_006.curValue+'</span>'
  282. +'<p class="msg-list-unit">PM10 '+topDisplayData.DAK_DIV_TOP_006.unit+'</p>'
  283. +'</div>'
  284. +'</li>'
  285. }else if(currentIndex == 4 || currentIndex == 5){
  286. var str = '<li class="top003">'
  287. +'<i class="env-svg-item env-svg1"></i>'
  288. +' <div class="msg-txt">'
  289. +'<span class="msg-list-num">'+topDisplayData.DXW_DIV_TOP_003.curValue+'</span>'
  290. +'<p class="msg-list-unit">CO2 '+topDisplayData.DXW_DIV_TOP_003.unit +'</p>'
  291. +'</div>'
  292. +'</li>'
  293. +'<li class="top004">'
  294. +'<i class="env-svg-item env-svg2"></i>'
  295. +'<div class="msg-txt">'
  296. +'<span class="msg-list-num">'+topDisplayData.DXW_DIV_TOP_004.curValue+'</span>'
  297. +'<p class="msg-list-unit">VOC '+topDisplayData.DXW_DIV_TOP_004.unit+'</p>'
  298. +'</div>'
  299. +'</li>'
  300. +'<li class="msg-pm top005">'
  301. +' <i class="env-svg-item env-svg3"></i>'
  302. +'<div class="msg-txt">'
  303. +'<span class="msg-list-num">'+topDisplayData.DXW_DIV_TOP_005.curValue+'</span>'
  304. +'<p class="msg-list-unit">PM2.5 '+topDisplayData.DXW_DIV_TOP_005.unit+'</p>'
  305. +'</div>'
  306. +' </li>'
  307. +'<li class="msg-pm top006">'
  308. +'<i class="env-svg-item env-svg4"></i>'
  309. +' <div class="msg-txt">'
  310. +'<span class="msg-list-num">'+topDisplayData.DXW_DIV_TOP_006.curValue+'</span>'
  311. +'<p class="msg-list-unit">PM10 '+topDisplayData.DXW_DIV_TOP_006.unit+'</p>'
  312. +'</div>'
  313. +'</li>'
  314. }else if(currentIndex == 6){
  315. var str = '<li class="top003">'
  316. +'<i class="env-svg-item env-svg1"></i>'
  317. +' <div class="msg-txt">'
  318. +'<span class="msg-list-num">'+topDisplayData.XXW_DIV_TOP_003.curValue+'</span>'
  319. +'<p class="msg-list-unit">CO2 '+topDisplayData.XXW_DIV_TOP_003.unit +'</p>'
  320. +'</div>'
  321. +'</li>'
  322. +'<li class="top004">'
  323. +'<i class="env-svg-item env-svg2"></i>'
  324. +'<div class="msg-txt">'
  325. +'<span class="msg-list-num">'+topDisplayData.XXW_DIV_TOP_004.curValue+'</span>'
  326. +'<p class="msg-list-unit">VOC '+topDisplayData.XXW_DIV_TOP_004.unit+'</p>'
  327. +'</div>'
  328. +'</li>'
  329. +'<li class="msg-pm top005">'
  330. +' <i class="env-svg-item env-svg3"></i>'
  331. +'<div class="msg-txt">'
  332. +'<span class="msg-list-num">'+topDisplayData.XXW_DIV_TOP_005.curValue+'</span>'
  333. +'<p class="msg-list-unit">PM2.5 '+topDisplayData.XXW_DIV_TOP_005.unit+'</p>'
  334. +'</div>'
  335. +' </li>'
  336. +'<li class="msg-pm top006">'
  337. +'<i class="env-svg-item env-svg4"></i>'
  338. +' <div class="msg-txt">'
  339. +'<span class="msg-list-num">'+topDisplayData.XXW_DIV_TOP_006.curValue+'</span>'
  340. +'<p class="msg-list-unit">PM10 '+topDisplayData.XXW_DIV_TOP_006.unit+'</p>'
  341. +'</div>'
  342. +'</li>'
  343. }
  344. $('.left-top-env').html(str)
  345. if(topDisplayData.DAK_DIV_TOP_003.curstatus > 0 || topDisplayData.DXW_DIV_TOP_003.curstatus > 0 || topDisplayData.XXW_DIV_TOP_003.curstatus > 0){
  346. $('.top003').addClass('li-warn');
  347. }
  348. if(topDisplayData.DAK_DIV_TOP_004.curstatus > 0 || topDisplayData.DXW_DIV_TOP_004.curstatus > 0 || topDisplayData.XXW_DIV_TOP_004.curstatus > 0){
  349. $('.top004').addClass('li-warn');
  350. }
  351. if(topDisplayData.DAK_DIV_TOP_005.curstatus > 0 || topDisplayData.DXW_DIV_TOP_005.curstatus > 0 || topDisplayData.XXW_DIV_TOP_005.curstatus > 0){
  352. $('.top005').addClass('li-warn');
  353. }
  354. if(topDisplayData.DAK_DIV_TOP_006.curstatus > 0 || topDisplayData.DXW_DIV_TOP_006.curstatus > 0 || topDisplayData.XXW_DIV_TOP_006.curstatus > 0){
  355. $('.top006').addClass('li-warn');
  356. }
  357. if(currentIndex == 0 || currentIndex == 1 || currentIndex == 2 || currentIndex == 3 ){
  358. var strMiddle = '<li class="top001">'
  359. +'<i class="env-svg-item env-svg5"></i>'
  360. +'<div class="msg-txt">'
  361. +'<span class="msg-list-num">'+topDisplayData.DAK_DIV_TOP_001.curValue+'</span>'
  362. +'<p class="msg-list-unit">温度 '+topDisplayData.DAK_DIV_TOP_001.unit+'</p>'
  363. +'</div>'
  364. +'</li>'
  365. +'<li class="top002">'
  366. +'<i class="env-svg-item env-svg6"></i>'
  367. +'<div class="msg-txt">'
  368. +'<span class="msg-list-num">'+topDisplayData.DAK_DIV_TOP_002.curValue+'</span>'
  369. +'<p class="msg-list-unit">湿度 '+topDisplayData.DAK_DIV_TOP_002.unit+'</p>'
  370. +'</div>'
  371. +'</li>'
  372. }else if(currentIndex == 4 || currentIndex == 5){
  373. var strMiddle = '<li class="top001">'
  374. +'<i class="env-svg-item env-svg5"></i>'
  375. +'<div class="msg-txt">'
  376. +'<span class="msg-list-num">'+topDisplayData.XXW_DIV_TOP_001.curValue+'</span>'
  377. +'<p class="msg-list-unit">温度 '+topDisplayData.XXW_DIV_TOP_001.unit+'</p>'
  378. +'</div>'
  379. +'</li>'
  380. +'<li class="top002">'
  381. +'<i class="env-svg-item env-svg6"></i>'
  382. +'<div class="msg-txt">'
  383. +'<span class="msg-list-num">'+topDisplayData.XXW_DIV_TOP_002.curValue+'</span>'
  384. +'<p class="msg-list-unit">湿度 '+topDisplayData.XXW_DIV_TOP_002.unit+'</p>'
  385. +'</div>'
  386. +'</li>'
  387. }else if(currentIndex == 6){
  388. var strMiddle = '<li class="top001">'
  389. +'<i class="env-svg-item env-svg5"></i>'
  390. +'<div class="msg-txt">'
  391. +'<span class="msg-list-num">'+topDisplayData.DXW_DIV_TOP_001.curValue+'</span>'
  392. +'<p class="msg-list-unit">温度 '+topDisplayData.DXW_DIV_TOP_001.unit+'</p>'
  393. +'</div>'
  394. +'</li>'
  395. +'<li class="top002">'
  396. +'<i class="env-svg-item env-svg6"></i>'
  397. +'<div class="msg-txt">'
  398. +'<span class="msg-list-num">'+topDisplayData.DXW_DIV_TOP_002.curValue+'</span>'
  399. +'<p class="msg-list-unit">湿度 '+topDisplayData.DXW_DIV_TOP_002.unit+'</p>'
  400. +'</div>'
  401. +'</li>'
  402. }
  403. $('.middle-env').html(strMiddle)
  404. if(topDisplayData.DAK_DIV_TOP_001.curstatus > 0 || topDisplayData.XXW_DIV_TOP_001.curstatus > 0 || topDisplayData.DXW_DIV_TOP_001.curstatus > 0){
  405. $('.top001').addClass('li-warn');
  406. }
  407. if(topDisplayData.DAK_DIV_TOP_002.curstatus > 0 || topDisplayData.XXW_DIV_TOP_002.curstatus > 0 || topDisplayData.DXW_DIV_TOP_002.curstatus > 0){
  408. $('.top002').addClass('li-warn');
  409. }
  410. } else {
  411. this.$set(this.topDisplayData, element.divPosition, {
  412. show: false
  413. })
  414. }
  415. } else if (element.divPosition.includes('OAO')) {
  416. // 获取3D弹窗显示的数据
  417. // var wenduParamId = element.deviceSpecParams.find((item) => { return item.paramName === '温度' })?.paramId
  418. // var siduParamId = element.deviceSpecParams.find((item) => { return item.paramName === '湿度' })?.paramId
  419. // var wendu = {}
  420. // var sidu = {}
  421. // if (wenduParamId) {
  422. // wendu = res.data.find((item) => {
  423. // return item.property_id === wenduParamId && item.device_id === element.deviceInfo.deviceId
  424. // })
  425. // }
  426. // if (siduParamId) {
  427. // sidu = res.data.find((item) => {
  428. // return item.property_id === siduParamId && item.device_id === element.deviceInfo.deviceId
  429. // })
  430. // }
  431. } else {
  432. var waterLeakageParamId1 = null;
  433. for (var i = 0; i < element.deviceSpecParams.length; i++) {
  434. if (element.deviceSpecParams[i].paramName === '维护报警') {
  435. waterLeakageParamId1 = element.deviceSpecParams[i].paramId;
  436. break;
  437. }
  438. }
  439. var waterLeakageParamId2 = null;
  440. for (var i = 0; i < element.deviceSpecParams.length; i++) {
  441. if (element.deviceSpecParams[i].paramName === '漏水报警') {
  442. waterLeakageParamId2 = element.deviceSpecParams[i].paramId;
  443. break;
  444. }
  445. }
  446. var waterLeakageParamId3 = null;
  447. for (var i = 0; i < element.deviceSpecParams.length; i++) {
  448. if (element.deviceSpecParams[i].paramName === '感应线断裂') {
  449. waterLeakageParamId3 = element.deviceSpecParams[i].paramId;
  450. break;
  451. }
  452. }
  453. var waterLeakage4;
  454. for (var i = 0; i < element.deviceSpecParams.length; i++) {
  455. if (element.deviceSpecParams[i].paramName === '漏水位置') {
  456. waterLeakage4 = element.deviceSpecParams[i];
  457. break;
  458. }
  459. }
  460. if (waterLeakage4) {
  461. waterLeakage.waterLeakageText4 = waterLeakage4.unit
  462. }
  463. var waterLeakageParamId4;
  464. if(waterLeakage4 !== null && typeof waterLeakage4 !== 'undefined'){
  465. waterLeakageParamId4 = waterLeakage4.paramId;
  466. }
  467. if (waterLeakageParamId1) {
  468. var waterLeakageStatus1 = null;
  469. for (var i = 0; i < res.data.length; i++) {
  470. if (res.data[i].property_id === waterLeakageParamId1 && res.data[i].device_id === element.deviceInfo.deviceId) {
  471. waterLeakageStatus1 = res.data[i].curstatus > 0;
  472. break;
  473. }
  474. }
  475. waterLeakage.waterLeakageStatus1 = waterLeakageStatus1;
  476. }
  477. if (waterLeakageParamId2) {
  478. var foundItem = res.data.find((item) => {
  479. return item.property_id === waterLeakageParamId2 && item.device_id === element.deviceInfo.deviceId;
  480. });
  481. if (foundItem) {
  482. var waterLeakageStatus2 = foundItem.curstatus > 0;
  483. waterLeakage.waterLeakageStatus2 = waterLeakageStatus2;
  484. }
  485. }
  486. if (waterLeakageParamId3) {
  487. var foundItem = res.data.find((item) => {
  488. return item.property_id === waterLeakageParamId3 && item.device_id === element.deviceInfo.deviceId;
  489. });
  490. if (foundItem) {
  491. var waterLeakageStatus3 = foundItem.curstatus > 0;
  492. waterLeakage.waterLeakageStatus3 = waterLeakageStatus3;
  493. }
  494. }
  495. if (waterLeakageParamId4) {
  496. var waterLeakageValue4 = res.data.find((item) => {
  497. return item.property_id === waterLeakageParamId4 && item.device_id === element.deviceInfo.deviceId
  498. })
  499. waterLeakage['waterLeakageStatus4'] = waterLeakageValue4 && waterLeakageValue4.curstatus > 0;
  500. if (waterLeakageValue4 && waterLeakageValue4.curvalue) {
  501. waterLeakage.waterLeakageText4 = waterLeakageValue4.curvalue + ' ' + waterLeakage.waterLeakageText4;
  502. } else {
  503. waterLeakage.waterLeakageText4 = '';
  504. }
  505. }
  506. if(waterLeakage.waterLeakageStatus1){
  507. $('.leakage-item001').addClass('leakage-warn');
  508. }
  509. if(waterLeakage.waterLeakageStatus2){
  510. $('.leakage-item002').addClass('leakage-warn');
  511. }
  512. if(waterLeakage.waterLeakageStatus3){
  513. $('.leakage-item003').addClass('leakage-warn');
  514. }
  515. if(waterLeakage.waterLeakageStatus4){
  516. $('.leakage-item004').addClass('leakage-warn');
  517. }
  518. $('.lsLocation').html(waterLeakage.waterLeakageText4)
  519. }
  520. })
  521. }
  522. },
  523. error: function (err) {
  524. console.log(err);
  525. }
  526. });
  527. }
  528. }
  529. var tableData = []
  530. var tableData2 = []
  531. var displayNum;
  532. var scrollTimer = null
  533. // table滚动
  534. function tableRefScroll () {
  535. clearInterval(scrollTimer) // 清除定时器
  536. const table = document.getElementById('scrollTable') // 获取DOM元素
  537. const table2 = document.getElementById('scrollTable2') // 获取DOM元素
  538. var wrapperHeight = table.offsetHeight
  539. var wrapperHeight2 = table2.offsetHeight
  540. // 组件一页能完整展示的数据条数
  541. displayNum = Math.floor(wrapperHeight / 40)
  542. displayNum2 = Math.floor(wrapperHeight2 / 40)
  543. if (tableData.length > displayNum) {
  544. const bodyWrapper = table // 获取表格中承载数据的div元素
  545. addTableRefScroll(bodyWrapper, table, displayNum)
  546. // 鼠标移入
  547. bodyWrapper.onmouseover = () => {
  548. clearInterval(scrollTimer)
  549. }
  550. // 鼠标移出
  551. bodyWrapper.onmouseout = () => {
  552. addTableRefScroll(bodyWrapper, table, displayNum)
  553. }
  554. } else if (tableData2.length > displayNum2) {
  555. const bodyWrapper2 = table2 // 获取表格中承载数据的div元素
  556. addTableRefScroll(bodyWrapper2, table2, displayNum2)
  557. // 鼠标移入
  558. bodyWrapper2.onmouseover = () => {
  559. clearInterval(scrollTimer)
  560. }
  561. // 鼠标移出
  562. bodyWrapper2.onmouseout = () => {
  563. addTableRefScroll(bodyWrapper2, table2, displayNum2)
  564. }
  565. } else {
  566. scrollTimer = setInterval(() => {
  567. FetchInitSecurityDoorLog()
  568. FetchAlarmInfo()
  569. }, 1000 * 3 * tableData.length)
  570. }
  571. }
  572. function addTableRefScroll (bodyWrapper, table, displayNum) {
  573. if (displayNum && displayNum > 0) {
  574. scrollTimer = setInterval(() => {
  575. if (bodyWrapper.scrollTop + table.offsetHeight >= tableData.length * 40) {
  576. bodyWrapper.scrollTop = 0
  577. FetchInitSecurityDoorLog()
  578. FetchAlarmInfo()
  579. } else {
  580. bodyWrapper.scrollTop += displayNum * 40
  581. }
  582. }, 1000 * 3 * displayNum)
  583. }
  584. }
  585. function FetchInitSecurityDoorLog () {
  586. $.ajax({
  587. url: ajaxUrl + '/api/securitydoor/initSecurityDoorLog1',
  588. type: 'GET',
  589. data: {
  590. page: 0,
  591. size: 30
  592. },
  593. success: function (res) {
  594. if (res.code === 200) {
  595. var result = res.data.content
  596. if (result && result.length > 0) {
  597. tableData.splice(0, result.length, ...result)
  598. for (var i = 0; i < result.length; i++) {
  599. var tempHtml;
  600. if(result[i].inOrOut == 0){
  601. tempHtml += "<tr><td>" + parseTime(result[i].createTime) + "</td><td>" + result[i].doorName + "</td><td class='right-td'><span>" + result[i].userName + "_进门_"+ result[i].action +"</span></td></tr>";
  602. }else{
  603. tempHtml += "<tr><td>" + parseTime(result[i].createTime) + "</td><td>" + result[i].doorName + "</td><td class='right-td'><span class='out-door'>" + result[i].userName + "_出门_"+ result[i].action +"</span></td></tr>";
  604. }
  605. $("#fTbody").append(tempHtml);
  606. }
  607. tableRefScroll()
  608. }
  609. }
  610. },
  611. error: function (err) {
  612. console.log(err);
  613. }
  614. });
  615. }
  616. function FetchAlarmInfo () {
  617. $.ajax({
  618. url: ajaxUrl + '/api/alarm/info',
  619. type: 'GET',
  620. data: {
  621. storeroomId: null
  622. },
  623. success: function (res) {
  624. if (res.code === 200) {
  625. var result = res.data.content
  626. if (result && result.length > 0) {
  627. tableData2.splice(0, result.length, ...result)
  628. for (var i = 0; i < result.length; i++) {
  629. var tempHtml;
  630. tempHtml += "<tr><td>" + parseTime(result[i].createTime) + "</td><td>" + result[i].roomName + "</td><td>" + result[i].alarmMsg + "</td></tr>";
  631. $("#fTbody2").append(tempHtml);
  632. }
  633. tableRefScroll()
  634. }
  635. }
  636. },
  637. error: function (err) {
  638. console.log(err);
  639. }
  640. });
  641. }
  642. function FetchArchivesNum () {
  643. // 获取档案总数
  644. $.ajax({
  645. url: ajaxUrl + '/api/archives/getArchivesNum',
  646. type: 'GET',
  647. data: {},
  648. success: function (res) {
  649. if (res.code === 200) {
  650. $('#archivesNum .timer').countTo({ from: 0, to: res.data });
  651. }
  652. },
  653. error: function (err) {
  654. console.log(err);
  655. }
  656. });
  657. }
  658. function FetchFileAnjuanNum () {
  659. // 档案类别数量统计 文件总数,案卷总数
  660. $.ajax({
  661. url: ajaxUrl + '/api/archives/initArchivesTypeNum',
  662. type: 'GET',
  663. data: {},
  664. success: function (res) {
  665. if (res.code === 200) {
  666. $('#filesNum .timer').countTo({ from: 0, to: res.data.filesNum });
  667. $('#anjuanNum .timer').countTo({ from: 0, to: res.data.archivesNum });
  668. }
  669. },
  670. error: function (err) {
  671. console.log(err);
  672. }
  673. });
  674. }
  675. function FetchDevice () {
  676. var devNumAll;
  677. var lineNum;
  678. // 设备总数,在线设备数,离线设备数
  679. $.ajax({
  680. url: ajaxUrl + '/api/device/list',
  681. type: 'GET',
  682. data: {
  683. page: 0,
  684. size: 10
  685. },
  686. success: function (res) {
  687. if (res.code === 200) {
  688. $('#deviceTotal .timer').countTo({ from: 0, to: res.data.totalElements });
  689. devNumAll = res.data.totalElements
  690. }
  691. },
  692. error: function (err) {
  693. console.log(err);
  694. }
  695. });
  696. // 在线设备数
  697. $.ajax({
  698. url: ajaxUrl + '/api/device/num',
  699. type: 'GET',
  700. data: {},
  701. success: function (res) {
  702. if (res.code === 200) {
  703. $('#lineDevNum .timer').countTo({ from: 0, to: res.data });
  704. lineNum = res.data
  705. offlineDeviceNum = devNumAll - lineNum
  706. $('#offlineDevice .timer').countTo({ from: 0, to: offlineDeviceNum });
  707. }
  708. },
  709. error: function (err) {
  710. console.log(err);
  711. }
  712. });
  713. }
  714. function FetchThisDayYearBorrowNum () {
  715. $.ajax({
  716. url: ajaxUrl + '/api/borrow/thisDayYearBorrowNum',
  717. type: 'GET',
  718. data: {},
  719. success: function (res) {
  720. if (res.code === 200) {
  721. var mynroll1 = res.data.dayBorrow;
  722. var r1 = new DigitRoll({
  723. container: '#tnum1',
  724. width: 7
  725. });
  726. r1.roll(mynroll1);
  727. var mynroll2 = res.data.dayReturn;
  728. var r2 = new DigitRoll({
  729. container: '#tnum2',
  730. width: 7
  731. });
  732. r2.roll(mynroll2);
  733. var mynroll3 = res.data.monthBorrow;
  734. var r3 = new DigitRoll({
  735. container: '#tnum3',
  736. width: 7
  737. });
  738. r3.roll(mynroll3);
  739. var mynroll4 = res.data.monthReturn;
  740. var r4 = new DigitRoll({
  741. container: '#tnum4',
  742. width: 7
  743. });
  744. r4.roll(mynroll4);
  745. }
  746. },
  747. error: function (err) {
  748. console.log(err);
  749. }
  750. });
  751. }