equipmanage_bzy.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531
  1. $('#timing').on('change', function () {
  2. if ($(this).val() == 0) {
  3. $('.lightPattern').show();
  4. $('.timePattern').hide();
  5. } else {
  6. $('.lightPattern').hide();
  7. $('.timePattern').show();
  8. }
  9. })
  10. // 时间插件初始化
  11. layui.use('laydate', function () {
  12. var laydate = layui.laydate;
  13. //执行一个laydate实例
  14. laydate.render({
  15. elem: '#timSelectBox' //指定元素
  16. , type: 'time'
  17. , format: 'H'
  18. , btns: ['clear', 'confirm']
  19. , min: '19:00:00' // 最小日期
  20. , ready: function (date) {
  21. $('.laydate-time-text').html('起始时间');
  22. }
  23. , done: function (value, date) {
  24. $('#begin').val(value)
  25. }
  26. });
  27. //执行一个laydate实例
  28. laydate.render({
  29. elem: '#timSelectBox2' //指定元素
  30. , type: 'time'
  31. , format: 'H'
  32. , btns: ['clear', 'confirm']
  33. , ready: function (date) {
  34. $('.laydate-time-text').html('结束时间');
  35. }
  36. , max: '05:00:00'
  37. , done: function (value, date) {
  38. $('#end').val(value)
  39. }
  40. });
  41. });
  42. function Fill_null_Table(table_id) {
  43. var table = document.getElementById(table_id).children[1];
  44. var row = table.insertRow(table.rows.length);
  45. var c1 = row.insertCell(0);
  46. c1.setAttribute('colspan', '16');
  47. c1.setAttribute('class', 'nullData');
  48. c1.innerHTML = "暂无数据";
  49. scrollBar();
  50. }
  51. function Fill_Table(table_id, dat) {
  52. //js循环读取json数据
  53. var table = document.getElementById(table_id).children[1];
  54. for (var i = 0; i < dat.length; i++) {
  55. var row = table.insertRow(table.rows.length);
  56. //JSON字符串转换JSON对象
  57. var stat = eval('(' + dat[i].bzy_status + ')');
  58. var c1 = row.insertCell(0);
  59. c1.innerHTML = stat.imei;
  60. c1.setAttribute('class', 'id')
  61. var c2 = row.insertCell(1);
  62. if (dat[i].equip_name == "") c2.innerHTML = "无";
  63. else c2.innerHTML = dat[i].equip_name;
  64. var c3 = row.insertCell(2);
  65. if (dat[i].is_online == 1) c3.innerHTML = '<img src="static/img/onLine.png" alt="">';
  66. else if (dat[i].is_online == 0) c3.innerHTML = '<img src="static/img/offLine.png" title=离线时间:'+dat[i].off_time.replace(' ',' ')+' alt="">';
  67. else c3.innerHTML = "--";
  68. var c4 = row.insertCell(3);
  69. if (stat.on_off == 0) c4.innerHTML = '关';
  70. else c4.innerHTML = '开';
  71. var c5 = row.insertCell(4);
  72. if (stat.bat_sta == 0) c5.innerHTML = '<img src="static/img/vbat1.png" alt="">';
  73. else c5.innerHTML = '<img src="static/img/vbat2.png" title="电量过低" alt="">';
  74. var c6 = row.insertCell(5);
  75. if (stat.usb_sta == 0) c6.innerHTML = '<img src="static/img/usb_sta1.png" alt="">';
  76. else c6.innerHTML = '<img src="static/img/usb_sta2.png" title="异常" alt="">';
  77. // var c6 = row.insertCell(5);
  78. // if (stat.rps == 0) c6.innerHTML = '<img src="static/img/green.png" title="正常" alt="">';
  79. // else c6.innerHTML = '<img src="static/img/red.png" title="雨控" alt="">';
  80. var c7 = row.insertCell(6);
  81. c7.innerHTML = stat.v_bat;
  82. var c8 = row.insertCell(7);
  83. c8.innerHTML = stat.pre_temp;
  84. var c9 = row.insertCell(8);
  85. c9.innerHTML = stat.csq;
  86. var c10 = row.insertCell(9);
  87. c10.innerHTML = stat.dver;
  88. var c11 = row.insertCell(10);
  89. c11.innerHTML = dat[i].upl_time;
  90. var c12 = row.insertCell(11);
  91. // c12.innerHTML = '<a class="btn btn-sm btn-primary" href="equipmanage_bzy_detail?id='+stat.imei+'">详情</button>';
  92. c12.innerHTML = '<button class="btn btn-sm btn-primary" onclick="openDetialPage(\'equipmanage_bzy_detail?id='+stat.imei+'\')">详情</button>';
  93. }
  94. scrollBar();
  95. }
  96. // 分页初始化
  97. layui.use('laypage', function () {
  98. var laypage = layui.laypage;
  99. laypage.render({
  100. elem: 'page' //注意,这里的 test1 是 ID,不用加 # 号
  101. // , count: 30
  102. , count: $('#totalPage').val()
  103. , theme: '#428BCA'
  104. , layout: ['prev', 'page', 'next', 'skip']
  105. , jump: function (obj, first) {
  106. $.ajax({
  107. url: "equipmanage_bzy",
  108. type: 'post',
  109. data: {
  110. req: "dat",
  111. page: obj.curr
  112. },
  113. beforeSend: function () {
  114. $('#loadingParent').show();
  115. },
  116. complete: function () {
  117. $('#loadingParent').hide();
  118. },
  119. success: function (data) {
  120. var msg = $.parseJSON(data);
  121. if (msg.length > 0) {
  122. Fill_Table('datatable', msg);
  123. $('#page').parent().show();
  124. } else {
  125. Fill_null_Table('datatable', msg);
  126. $('#page').parent().hide();
  127. }
  128. // if ($('.content').height() > 750) {
  129. // $('#iframe-main', parent.document).css('height', $('.content').height() + 20)
  130. // } else {
  131. // $('#iframe-main', parent.document).css('height', '750px')
  132. // }
  133. }
  134. })
  135. if (!first) {
  136. $("#datatable tr:not(:first)").remove();
  137. }
  138. }
  139. });
  140. });
  141. // 配置按钮
  142. function configurationSwitch(obj) {
  143. var id = obj.parents('tr').find('.id').html();
  144. $.ajax({
  145. type: "post",
  146. url: 'cbd_mqtt',
  147. data: {
  148. "req": "read",//读取
  149. "topicid": id,
  150. "kind": "paramconf"//读取下位机状态
  151. },
  152. dataType: "json",
  153. beforeSend: function () {
  154. $('#loadingParent').show();
  155. },
  156. complete: function () {
  157. setTimeout(function () {
  158. $('#loadingParent').hide();
  159. }, 3000)
  160. },
  161. success: function (data) {
  162. if (data == "0") {
  163. layer.msg("发送成功!", { time: 2000 })
  164. setTimeout(function () {
  165. $.ajax({
  166. url: "equipmanage_bzy",
  167. type: 'post',
  168. data: {
  169. id: id,
  170. req: "paramconf",
  171. },
  172. success: function (data) {
  173. var dat = $.parseJSON(data);
  174. var para = eval("(" + dat.paramconf + ")");
  175. if (para != '' && para != null) {
  176. // 定时模式
  177. $('#timing').val(para.ts);
  178. if (para.ts == 0) {
  179. $('.lightPattern').show();
  180. $('.timePattern').hide();
  181. } else {
  182. $('.lightPattern').hide();
  183. $('.timePattern').show();
  184. }
  185. // 滑块
  186. $("#timingLength-slider").slider('value', para.tt);
  187. $('#timingLength').html(para.tt);
  188. $("#dropTime-slider").slider('value', para.collt);
  189. $('#dropTime').html(para.collt);
  190. $("#calefactionTime-slider").slider('value', para.htim);
  191. $('#calefactionTime').html(para.htim);
  192. $("#calefactionTemperature-slider").slider('value', para.hst);
  193. $('#calefactionTemperature').html(para.hst);
  194. $("#highLimit-slider").slider('value', para.tph);
  195. $('#highLimit').html(para.tph);
  196. $("#lowLimit-slider").slider('value', para.tpl);
  197. $('#lowLimit').html(para.tpl);
  198. $("#dataUpTime-slider").slider('value', para.datt);
  199. $('#dataUpTime').html(para.datt);
  200. // 时间
  201. if ($('#timing').val() == 1) {
  202. $('#timSelectBox').val(Math.floor(para.st));
  203. $('#timSelectBox2').val(Math.floor(para.et));
  204. $('#begin').val(Math.floor(para.st));
  205. $('#end').val(Math.floor(para.et));
  206. }
  207. $('#imgHvga').val(para.imgres);
  208. } else {
  209. // 定时模式
  210. $('#timing').val(0);
  211. $('.lightPattern').show();
  212. $('.timePattern').hide();
  213. // 滑块
  214. $("#timingLength-slider").slider('value',1);
  215. $('#timingLength').html(1);
  216. $("#dropTime-slider").slider('value', 5);
  217. $('#dropTime').html(5);
  218. $("#calefactionTime-slider").slider('value', 5);
  219. $('#calefactionTime').html(5);
  220. $("#calefactionTemperature-slider").slider('value', 75);
  221. $('#calefactionTemperature').html(75);
  222. $("#highLimit-slider").slider('value', 50);
  223. $('#highLimit').html(50);
  224. $("#lowLimit-slider").slider('value', 1);
  225. $('#lowLimit').html(1);
  226. $("#dataUpTime-slider").slider('value', 10);
  227. $('#dataUpTime').html(10);
  228. $('#begin').val(0);
  229. $('#end').val(0);
  230. $('#imgHvga').val(0);
  231. }
  232. var parent = obj.parents('tr');
  233. $('#sppbId').html(parent.find('td').eq(0).html());//名称
  234. $('#hideId').val(parent.find('td').eq(0).html());
  235. $('#myModal').modal('toggle');
  236. // moveBar();
  237. }
  238. })
  239. }, 3000)
  240. } else {
  241. layer.msg("发送失败!")
  242. }
  243. }
  244. })
  245. $(window).resize(function () {
  246. // moveBar()
  247. });
  248. }
  249. function defaultShow(val) {
  250. if (val == 0) {
  251. $('#ttime').hide();
  252. $('#thour').show();
  253. $('#timSelectBox').val(0);
  254. $('#timSelectBox2').val(0);
  255. $('#begin').val(0);
  256. $('#end').val(0);
  257. } else {
  258. $('#ttime').show();
  259. $('#thour').hide();
  260. $('input[name="timingLength"]').val('1');
  261. $('input[name="timingLength"]').next().find('.TimeBall').css('left', 0);
  262. $('input[name="timingLength"]').next().find('.TheColorBar').css('width', 0);
  263. }
  264. }
  265. // 配置中的拉杆
  266. function moveBar() {
  267. var initX = $('.TheBar').eq(2).offset().left;
  268. $('.TimeBall').on('mousedown', function () {
  269. $(this).addClass('TimeBallMove');
  270. var parent = $(this).parents('.configurationDetial');
  271. var minLen = parent.find('.initVal').val(); //从多少开始
  272. var stepVal = parent.find('.initVal').data('step');
  273. if (stepVal) {
  274. var ratioNumber = 5; //10/单位 10
  275. } else {
  276. var ratioNumber = parent.find('.BarFinishTime').html() - minLen; //中间多少段 125-75
  277. stepVal = 1;//1/单位
  278. }
  279. $(document).on('mousemove', function (e) {
  280. var maxDistance = 400;
  281. var minDistance = 0;
  282. var moveDistance = e.clientX - initX
  283. if (moveDistance >= minDistance && moveDistance <= maxDistance) {
  284. parent.find('.TimeBall').css({
  285. left: e.clientX - initX
  286. })
  287. parent.find('.TheColorBar').css({
  288. width: moveDistance
  289. })
  290. // var ratioNumber = parent.find('.BarFinishTime').html()-minLen; //多少单位 125-75
  291. parent.find('.BarBeginTime').val(Math.round(moveDistance / (maxDistance / ratioNumber)) * stepVal + parseInt(minLen)); //先算出一段多长 再算移动几段 乘一段距离 再加上起始值
  292. }
  293. })
  294. })
  295. $(document).on('mouseup', function (e) {
  296. $(document).off('mousemove');
  297. $('.TimeBall').off('mousemove');
  298. $('.TimeBall').removeClass('TimeBallMove');
  299. })
  300. }
  301. //保存
  302. function saveOperation() {
  303. var data = {
  304. req:'set',
  305. id:$('#hideId').val(),
  306. timing:$('#timing').val(),
  307. timingLength:$('#timingLength').html(),
  308. begin:$('#begin').val(),
  309. end:$('#end').val(),
  310. dropTime:$('#dropTime').html(),
  311. calefactionTime:$('#calefactionTime').html(),
  312. calefactionTemperature:$('#calefactionTemperature').html(),
  313. highLimit:$('#highLimit').html(),
  314. lowLimit:$('#lowLimit').html(),
  315. dataUpTime:$('#dataUpTime').html(),
  316. imgHvga:$('#imgHvga').val()
  317. }
  318. if ($('#timing').val() == 1) {
  319. if ($('#begin').val() && $('#end').val()) {
  320. saveOperationAjax('cbd_mqtt', data)
  321. } else {
  322. layer.msg("请将时控时间填写完整!");
  323. }
  324. } else {
  325. saveOperationAjax('cbd_mqtt', data);
  326. }
  327. }
  328. function saveOperationAjax(url, data) {
  329. $.ajax({
  330. url: url,
  331. type: 'post',
  332. data: data,
  333. beforeSend: function () {
  334. $('#loadingParent').show();
  335. },
  336. complete: function () {
  337. setTimeout(function () {
  338. $('#loadingParent').hide();
  339. }, 3000)
  340. },
  341. success: function (data) {
  342. if (data == "0") {
  343. setTimeout(function () {
  344. layer.msg("配置成功!");
  345. $('#myModal').modal('hide');
  346. }, 3000)
  347. }
  348. }
  349. })
  350. }
  351. //刷新:下发查询:
  352. function reloadPage(obj) {
  353. var id = obj.parents('tr').find('.id').html();
  354. $.ajax({
  355. type: "post",
  356. url: 'cbd_mqtt',
  357. data: {
  358. "req": "read",//读取
  359. "topicid": id,
  360. "kind": "status"//读取下位机状态
  361. },
  362. dataType: "json",
  363. beforeSend: function () {
  364. $('#loadingParent').show();
  365. },
  366. complete: function () {
  367. setTimeout(function () {
  368. $('#loadingParent').hide();
  369. }, 3000)
  370. },
  371. success: function (data) {
  372. if (data == "0") {
  373. layer.msg("发送成功!")
  374. setTimeout(function () {
  375. var ename = $('#ename').val();
  376. var eId = $('#eId').val();
  377. var page = $('.layui-laypage-curr em').eq(1).html();
  378. var data = {
  379. req: "filter",
  380. ename: ename,
  381. f_id: eId,
  382. page: page
  383. };
  384. $.post("equipmanage_bzy", data, function (data) {
  385. $("#datatable tr:not(:first)").html("");
  386. var msg = $.parseJSON(data);
  387. if (msg.dat.length > 0) {
  388. Fill_Table('datatable', msg.dat);
  389. $('#page').parent().show();
  390. } else {
  391. Fill_null_Table('datatable', msg.dat);
  392. $('#page').parent().hide();
  393. }
  394. });
  395. }, 3000)
  396. } else {
  397. layer.msg("发送失败!")
  398. }
  399. }
  400. })
  401. }
  402. // 详情
  403. function detailPage(obj){
  404. var id = obj.parents('tr').find('.id').html();
  405. }
  406. //筛选
  407. function sub_filter() {
  408. var ename = $('#ename').val();
  409. var eId = $('#eId').val();
  410. $("#datatable tr:not(:first)").html("");
  411. $.ajax({
  412. url: 'equipmanage_bzy',
  413. type: 'post',
  414. data: {
  415. req: "filter",
  416. ename: ename,
  417. page: 1,
  418. f_id: eId
  419. },
  420. success: function (data) {
  421. var msg = $.parseJSON(data);
  422. if (msg.dat.length > 0) {
  423. Fill_Table('datatable', msg.dat);
  424. $('#page').parent().show();
  425. } else {
  426. Fill_null_Table('datatable', msg.dat);
  427. $('#page').parent().hide();
  428. }
  429. var datas = {
  430. req: "filter",
  431. ename: ename,
  432. f_id: eId
  433. };
  434. initSearchPage(msg.nums, 'equipmanage_bzy', datas);
  435. // if ($('.content').height() > 750) {
  436. // $('#iframe-main', parent.document).css('height', $('.content').height() + 20)
  437. // } else {
  438. // $('#iframe-main', parent.document).css('height', '750px')
  439. // }
  440. }
  441. })
  442. }
  443. //搜索分页
  444. function initSearchPage(page, url, datas) {
  445. layui.use('laypage', function () {
  446. var laypage = layui.laypage;
  447. laypage.render({
  448. elem: 'page' //注意,这里的 test1 是 ID,不用加 # 号
  449. // , count: 30
  450. , count: page
  451. , theme: '#428BCA'
  452. , layout: ['prev', 'page', 'next', 'skip']
  453. , jump: function (obj, first) {
  454. datas.page = obj.curr;
  455. if (!first) {
  456. $.ajax({
  457. url: url,
  458. type: 'post',
  459. data: datas,
  460. success: function (data) {
  461. $("#datatable tr:not(:first)").html("");
  462. var msg = $.parseJSON(data);
  463. if (msg.dat.length > 0) {
  464. Fill_Table('datatable', msg.dat)
  465. } else {
  466. Fill_null_Table('datatable', msg.dat)
  467. }
  468. // if ($('.content').height() > 750) {
  469. // $('#iframe-main', parent.document).css('height', $('.content').height() + 20)
  470. // } else {
  471. // $('#iframe-main', parent.document).css('height', '750px')
  472. // }
  473. }
  474. })
  475. }
  476. }
  477. });
  478. });
  479. }