configuration_cbd.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>Hello MUI</title>
  5. <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
  6. <meta name="apple-mobile-web-app-capable" content="yes">
  7. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  8. <!--标准mui.css-->
  9. <link rel="stylesheet" href="../css/mui.min.css">
  10. <link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
  11. <link rel="stylesheet" href="../css/common.css">
  12. <link rel="stylesheet" href="../css/iconfont.css">
  13. <link rel="stylesheet" href="../css/rangeslider.css">
  14. <link rel="stylesheet" type="text/css" href="../css/mui.poppicker.css" />
  15. <link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />
  16. <!--App自定义的css-->
  17. <style type="text/css">
  18. .mui-table-view-cell.mui-active {
  19. background-color: #fff;
  20. }
  21. .mui-input-range .mui-tooltip {
  22. display: none;
  23. }
  24. .mui-radio input[type=radio] {
  25. top: -2px;
  26. }
  27. .equipOption {
  28. color: #21B2E7 !important;
  29. margin-bottom: 15px;
  30. }
  31. .mui-checkbox input[type=checkbox]:before,
  32. .mui-radio input[type=radio]:before {
  33. font-size: 22px;
  34. }
  35. /*提交按钮*/
  36. .equipTitle {
  37. color: #21b2e7;
  38. font-size: 14px;
  39. }
  40. .mui-table-view-cell p {
  41. color: #333;
  42. font-size: 16px;
  43. margin-top: 4px;
  44. }
  45. /*单选按钮*/
  46. .mui-radio label {
  47. padding-right: 37px;
  48. }
  49. /*滑块*/
  50. .sliderDiv {
  51. width: 80%;
  52. display: inline-block;
  53. }
  54. .rangeslider--horizontal {
  55. height: 12px;
  56. }
  57. .rangeslider__fill {
  58. background: #7ed7ff;
  59. }
  60. .rangeslider__handle {
  61. width: 20px;
  62. height: 20px;
  63. }
  64. .rangeslider--horizontal .rangeslider__handle {
  65. top: -5px;
  66. }
  67. .rangeslider__handle:after {
  68. width: 8px;
  69. height: 8px;
  70. }
  71. .equipOptionInitVal {
  72. display: inline-block;
  73. width: 15px;
  74. text-align: right;
  75. }
  76. /*开始结束时间选择*/
  77. .timeItem {
  78. border: 1px solid #e6e6e6;
  79. margin-bottom: 5px;
  80. line-height: 30px;
  81. border-radius: 5px;
  82. margin-top: 5px;
  83. }
  84. .timeItem>button {
  85. border: none;
  86. background: #e6e6e6;
  87. margin-right: 10px;
  88. }
  89. </style>
  90. </head>
  91. <body>
  92. <header class="mui-bar mui-bar-nav">
  93. <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
  94. <h1 class="mui-title" id="title"></h1>
  95. <a class="headRightIcon fa fa-cloud-upload mui-pull-right" onclick="sendData()">提交</a>
  96. </header>
  97. <div class="mui-content">
  98. <ul class="mui-table-view">
  99. <li class="mui-table-view-cell " id="worktypebox">
  100. <p class="equipOption">工作模式:</p>
  101. <div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
  102. <label>节能</label>
  103. <input name="worktype" type="radio" value="0" id="worktype0">
  104. </div>
  105. <div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
  106. <label>常规</label>
  107. <input name="worktype" type="radio" value="1" id="worktype1">
  108. </div>
  109. <div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
  110. <label>加强</label>
  111. <input name="worktype" type="radio" value="2" id="worktype2">
  112. </div>
  113. </li>
  114. <li class="mui-table-view-cell">
  115. <p class="equipOption">定时模式:</p>
  116. <div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
  117. <label>光控</label>
  118. <input name="type" type="radio" value="0" checked="checked" id="dimming">
  119. </div>
  120. <div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
  121. <label>时控</label>
  122. <input name="type" type="radio" value="1" id="timeControl">
  123. </div>
  124. </li>
  125. <li class="mui-table-view-cell" id="lightPattern">
  126. <p class="equipOption">定时时长:</p>
  127. <span class="equipOptionInitVal">1</span>
  128. <div class="sliderDiv">
  129. <input type="range" min="1" max="10" step="1" data-rangeslider>
  130. </div>
  131. <span id="timingLength">1</span>
  132. </li>
  133. <li class="mui-table-view-cell mui-hidden" id="timePattern">
  134. <p class="equipOption">开始结束时间:</p>
  135. <div>
  136. <div class="timeItem">
  137. <button id='pickTimeBtn' type="button" class="mui-btn">开始时间</button><span id="begin"></span>
  138. </div>
  139. <div class="timeItem">
  140. <button id='pickTimeBtn2' type="button" class="mui-btn">结束时间</button><span id="end"></span>
  141. </div>
  142. </div>
  143. </li>
  144. <li class="mui-table-view-cell">
  145. <p class="equipOption">落虫时间:</p>
  146. <span class="equipOptionInitVal">5</span>
  147. <div class="sliderDiv">
  148. <input type="range" min="5" max="20" step="1" data-rangeslider>
  149. </div>
  150. <span id="dropTime">5</span>
  151. </li>
  152. <li class="mui-table-view-cell">
  153. <p class="equipOption">加热时间:</p>
  154. <span class="equipOptionInitVal">5</span>
  155. <div class="sliderDiv">
  156. <input type="range" min="5" max="20" step="1" data-rangeslider>
  157. </div>
  158. <span id="calefactionTime">5</span>
  159. </li>
  160. <li class="mui-table-view-cell">
  161. <p class="equipOption">加热温度:</p>
  162. <span class="equipOptionInitVal">75</span>
  163. <div class="sliderDiv">
  164. <input type="range" min="75" max="120" step="1" data-rangeslider>
  165. </div>
  166. <span id="calefactionTemperature">75</span>
  167. </li>
  168. <li class="mui-table-view-cell">
  169. <p class="equipOption">高温保护阈值:</p>
  170. <span class="equipOptionInitVal">50</span>
  171. <div class="sliderDiv">
  172. <input type="range" min="50" max="70" step="1" data-rangeslider>
  173. </div>
  174. <span id="highLimit">50</span>
  175. </li>
  176. <li class="mui-table-view-cell">
  177. <p class="equipOption">低温保护阈值:</p>
  178. <span class="equipOptionInitVal">1</span>
  179. <div class="sliderDiv">
  180. <input type="range" min="1" max="10" step="1" data-rangeslider>
  181. </div>
  182. <span id="lowLimit">1</span>
  183. </li>
  184. <li class="mui-table-view-cell">
  185. <p class="equipOption">数据上传时间间隔:</p>
  186. <span class="equipOptionInitVal">10</span>
  187. <div class="sliderDiv">
  188. <input type="range" min="10" max="60" step="10" data-rangeslider>
  189. </div>
  190. <span id="dataUpTime">10</span>
  191. </li>
  192. <li class="mui-table-view-cell">
  193. <p class="equipOption">图片分辨率:</p>
  194. <div class="mui-radio" style="width: 28%;float: left;">
  195. <label>高</label>
  196. <input name="imgHvga" type="radio" value="0" id="highHvga" checked="checked">
  197. </div>
  198. <div class="mui-radio" style="width: 28%;float: left;">
  199. <label>中</label>
  200. <input name="imgHvga" type="radio" value="1" id="middleHvga">
  201. </div>
  202. <div class="mui-radio" style="width: 28%;float: left;">
  203. <label>低</label>
  204. <input name="imgHvga" type="radio" value="2" id="lowHvga">
  205. </div>
  206. </li>
  207. </ul>
  208. </div>
  209. </body>
  210. <script src="../js/mui.min.js"></script>
  211. <script src="../js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script>
  212. <script src="../js/rangeslider.js"></script>
  213. <script src="../js/mui.picker.min.js" type="text/javascript" charset="utf-8"></script>
  214. <script src="../js/common.js"></script>
  215. <script>
  216. mui.init();
  217. mui.plusReady(function() {
  218. var self = plus.webview.currentWebview();
  219. var equipId = self.equipId;
  220. document.getElementById("title").innerHTML = equipId;
  221. mui.ajax('http://192.168.1.11:8000/cbd_mqtt', {
  222. data: {
  223. "req": "read", //读取
  224. "topicid": JSON.stringify(equipId),
  225. "kind": "paramconf" //读取下位机状态
  226. },
  227. dataType: 'json', //服务器返回json格式数据
  228. type: 'post', //HTTP请求类型
  229. timeout: 10000, //超时时间设置为10秒;
  230. beforeSend: function() {
  231. plus.nativeUI.showWaiting('请求中...');
  232. },
  233. complete: function() {
  234. plus.nativeUI.closeWaiting();
  235. },
  236. success: function(data) {
  237. if(data == "0") {
  238. mui.toast("发送成功!");
  239. mui.ajax('http://192.168.1.11:8000/equipmanage_cbd', {
  240. data: {
  241. id: equipId,
  242. req: "paramconf"
  243. },
  244. dataType: 'json', //服务器返回json格式数据
  245. type: 'post', //HTTP请求类型
  246. timeout: 10000, //超时时间设置为10秒;
  247. beforeSend: function() {
  248. plus.nativeUI.showWaiting('请求中...');
  249. },
  250. complete: function() {
  251. plus.nativeUI.closeWaiting();
  252. },
  253. success: function(data) {
  254. console.log(JSON.stringify(data))
  255. var dat = eval("(" + data.paramconf + ")");
  256. if(dat != '' && dat != null) {
  257. if(dat.ts == 0) {
  258. $('#dimming').attr("checked", "checked");
  259. $("#timeControl").removeAttr("checked");
  260. document.getElementById("lightPattern").classList.remove("mui-hidden");
  261. document.getElementById("timePattern").classList.add("mui-hidden");
  262. } else {
  263. $('#timeControl').attr("checked", "checked");
  264. $("#dimming").removeAttr("checked");
  265. document.getElementById("lightPattern").classList.add("mui-hidden");
  266. document.getElementById("timePattern").classList.remove("mui-hidden");
  267. }
  268. mui('#timingLength')[0].innerHTML = dat.tt;
  269. $('#timingLength').prev().find('input').val(dat.tt).change();
  270. mui('#begin')[0].innerHTML = dat.st;
  271. $('#begin').html(dat.st);
  272. mui('#end')[0].innerHTML = dat.et;
  273. $('#end').html(dat.et);
  274. mui('#dropTime')[0].innerHTML = dat.collt;
  275. $('#dropTime').prev().find('input').val(dat.collt).change();
  276. mui('#calefactionTime')[0].innerHTML = dat.htim;
  277. $('#calefactionTime').prev().find('input').val(dat.htim).change();
  278. mui('#calefactionTemperature')[0].innerHTML = dat.hst;
  279. $('#calefactionTemperature').prev().find('input').val(dat.hst).change();
  280. mui('#highLimit')[0].innerHTML = dat.tph;
  281. $('#highLimit').prev().find('input').val(dat.tph).change();
  282. mui('#lowLimit')[0].innerHTML = dat.tpl;
  283. $('#lowLimit').prev().find('input').val(dat.tpl).change();
  284. mui('#dataUpTime')[0].innerHTML = dat.datt;
  285. $('#dataUpTime').prev().find('input').val(dat.datt).change();
  286. mui('.mui-table-view-cell input[name="imgHvga"]:checked')[0].value = dat.imgres;
  287. if(dat.imgres == 0) {
  288. $('#highHvga').attr("checked", "checked");
  289. $("#middleHvga").removeAttr("checked");
  290. $("#lowHvga").removeAttr("checked");
  291. } else if(dat.imgres == 1) {
  292. $('#highHvga').removeAttr("checked");
  293. $("#middleHvga").attr("checked", "checked");
  294. $("#lowHvga").removeAttr("checked");
  295. } else {
  296. $('#highHvga').removeAttr("checked");
  297. $("#middleHvga").removeAttr("checked");
  298. $("#lowHvga").attr("checked", "checked");
  299. }
  300. } else {
  301. //slider回显
  302. $('input[type="range"]').val(1).change();
  303. }
  304. },
  305. error: function(xhr, type, errorThrown) {
  306. }
  307. });
  308. }
  309. },
  310. error: function(xhr, type, errorThrown) {
  311. }
  312. });
  313. })
  314. //slider初始化
  315. $('input[type="range"]').rangeslider({
  316. polyfill: false
  317. });
  318. //获取slider
  319. var $document = $(document);
  320. var selector = '[data-rangeslider]';
  321. var $inputRange = $(selector);
  322. // 获取slider值
  323. $document.on('input', selector, function(e) {
  324. valueOutput(e.target);
  325. });
  326. // 将对应值写入对应文本框
  327. function valueOutput(element) {
  328. var value = element.value;
  329. var output = element.parentNode.nextElementSibling;
  330. output.innerHTML = value;
  331. }
  332. //自定义时间值
  333. var picker;
  334. function PopPicker() {
  335. picker = new mui.PopPicker();
  336. picker.setData([{
  337. value: "0",
  338. text: "0"
  339. }, {
  340. value: "1",
  341. text: "1"
  342. }, {
  343. value: "2",
  344. text: "2"
  345. }, {
  346. value: "3",
  347. text: "3"
  348. }, {
  349. value: "4",
  350. text: "4"
  351. }, {
  352. value: "5",
  353. text: "5"
  354. }, {
  355. value: "6",
  356. text: "6"
  357. }, {
  358. value: "7",
  359. text: "7"
  360. }, {
  361. value: "8",
  362. text: "8"
  363. }, {
  364. value: "9",
  365. text: "9"
  366. }, {
  367. value: "10",
  368. text: "10"
  369. }, {
  370. value: "11",
  371. text: "11"
  372. }, {
  373. value: "12",
  374. text: "12"
  375. }, {
  376. value: "13",
  377. text: "13"
  378. }, {
  379. value: "14",
  380. text: "14"
  381. }, {
  382. value: "15",
  383. text: "15"
  384. }, {
  385. value: "16",
  386. text: "16"
  387. }, {
  388. value: "17",
  389. text: "17"
  390. }, {
  391. value: "18",
  392. text: "18"
  393. }, {
  394. value: "19",
  395. text: "19"
  396. }, {
  397. value: "20",
  398. text: "20"
  399. }, {
  400. value: "21",
  401. text: "21"
  402. }, {
  403. value: "22",
  404. text: "22"
  405. }, {
  406. value: "23",
  407. text: "23"
  408. }, ])
  409. }
  410. //开始时间选择器
  411. document.getElementById("pickTimeBtn").addEventListener('tap', function() {
  412. PopPicker()
  413. picker.show(function(getSelectedItems) {
  414. document.getElementById('begin').innerHTML = getSelectedItems[0].value;
  415. })
  416. });
  417. //结束时间选择器
  418. document.getElementById("pickTimeBtn2").addEventListener('tap', function() {
  419. PopPicker()
  420. picker.show(function(getSelectedItems) {
  421. document.getElementById('end').innerHTML = getSelectedItems[0].value;
  422. })
  423. });
  424. //时控光控对应操作显示
  425. mui('.mui-table-view-cell').on('change', 'input[name="type"]', function() {
  426. if(this.value == 0) {
  427. document.getElementById("lightPattern").classList.remove("mui-hidden");
  428. document.getElementById("timePattern").classList.add("mui-hidden");
  429. } else {
  430. document.getElementById("lightPattern").classList.add("mui-hidden");
  431. document.getElementById("timePattern").classList.remove("mui-hidden");
  432. }
  433. })
  434. //提交数据
  435. function sendData() {
  436. var id = document.getElementById("title").innerHTML,
  437. timing = mui('.mui-table-view-cell input[name="type"]:checked')[0].value,
  438. timingLength = mui('#timingLength')[0].innerHTML,
  439. begin = mui('#begin')[0].innerHTML,
  440. end = mui('#end')[0].innerHTML,
  441. dropTime = mui('#dropTime')[0].innerHTML,
  442. calefactionTime = mui('#calefactionTime')[0].innerHTML,
  443. calefactionTemperature = mui('#calefactionTemperature')[0].innerHTML,
  444. highLimit = mui('#highLimit')[0].innerHTML,
  445. lowLimit = mui('#lowLimit')[0].innerHTML,
  446. dataUpTime = mui('#dataUpTime')[0].innerHTML,
  447. imgHvga = mui('.mui-table-view-cell input[name="imgHvga"]:checked')[0].value;
  448. mui.ajax('http://192.168.1.11:8000/cbd_mqtt', {
  449. data: {
  450. req: 'set',
  451. id: id,
  452. timing: timing,
  453. timingLength: timingLength,
  454. begin: begin,
  455. end: end,
  456. dropTime: dropTime,
  457. calefactionTime: calefactionTime,
  458. calefactionTemperature: calefactionTemperature,
  459. highLimit: highLimit,
  460. lowLimit: lowLimit,
  461. dataUpTime: dataUpTime,
  462. imgHvga: imgHvga
  463. },
  464. dataType: 'json', //服务器返回json格式数据
  465. type: 'post', //HTTP请求类型
  466. timeout: 10000, //超时时间设置为10秒;
  467. beforeSend: function() {
  468. plus.nativeUI.showWaiting('请求中...');
  469. },
  470. complete: function() {
  471. plus.nativeUI.closeWaiting();
  472. },
  473. success: function(data) {
  474. mui.toast('配置成功!')
  475. },
  476. error: function(xhr, type, errorThrown) {
  477. mui.toast('配置失败!')
  478. }
  479. });
  480. }
  481. //工作模式对应操作显示
  482. mui('.mui-table-view-cell').on('change', 'input[name="worktype"]', function() {
  483. var type = this.value;
  484. mui.confirm('切换工作模式','是否确定',['取消','确定'],function(e){
  485. if (e.index == 1) {
  486. $.ajax({
  487. type: "post",
  488. url: 'http://192.168.1.11:8000/cbd_mqtt',
  489. data: {
  490. "req": "ctrl",//控制
  491. "topicid": document.getElementById("title").innerHTML,
  492. "cmd": 'workmode',//升级 update
  493. "type": type
  494. },
  495. dataType: "json",
  496. beforeSend: function() {
  497. plus.nativeUI.showWaiting('请求中...');
  498. },
  499. complete: function() {
  500. setTimeout(function () {
  501. plus.nativeUI.closeWaiting();
  502. }, 3000)
  503. },
  504. success: function (data) {
  505. setTimeout(function () {
  506. if(data == 0){
  507. mui.toast('下发成功')
  508. }
  509. }, 3000)
  510. }
  511. })
  512. }
  513. },'div')
  514. })
  515. </script>
  516. </html>