sugar_tccd_detail.html 70 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710
  1. {% load staticfiles %}
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8" />
  6. <link href="{% static '/lib/bootstrap-3.3.7/css/bootstrap.css' %}" rel="stylesheet">
  7. <link rel="stylesheet" href="{% static '/lib/font-awesome/4.5.0/css/font-awesome.css' %}">
  8. <link rel="stylesheet" href="{% static '/lib/css/ace.min.css' %}" />
  9. <link rel="stylesheet" href="{% static '/lib/css/ace-skins.min.css' %}">
  10. <link rel="stylesheet" href="{% static '/lib/css/ace-rtl.min.css' %}">
  11. <link rel="stylesheet" href="{% static '/lib/layui/css/layui.css' %}">
  12. <link rel="stylesheet" href="{% static '/lib/css/jquery-ui.css' %}" />
  13. <link rel="stylesheet" href="{% static '/css/loading.css' %}?versions=0.5.0" />
  14. <style type="text/css">
  15. body {
  16. overflow: hidden;
  17. background: #fff;
  18. }
  19. /* 返回 */
  20. .headerPlace {
  21. font-size: 22px;
  22. color: #418fbb;
  23. cursor: pointer;
  24. }
  25. .headerPlace img {
  26. vertical-align: middle;
  27. margin-right: 10px;
  28. margin-top: -4px;
  29. }
  30. /* 设备信息 */
  31. .userinfo .fa {
  32. font-size: 18px;
  33. color: #26b3ff;
  34. margin: 0px 5px;
  35. }
  36. .ui-slider .ui-slider-handle {
  37. width: 1.4em;
  38. height: 1.4em;
  39. border-radius: 50%;
  40. }
  41. .ui-slider {
  42. background: #fff;
  43. }
  44. .userinfoTitle {
  45. margin-right: 30px;
  46. font-size: 16px;
  47. }
  48. /* 右侧操作按钮 */
  49. .refresh {
  50. text-align: right;
  51. }
  52. .refresh button {
  53. padding: 2px 5px;
  54. border-radius: 5px;
  55. }
  56. /* 设备信息条 */
  57. .equipBorder {
  58. border: 1px solid #e8e8e8;
  59. box-shadow: 0px 0px 13px 0px #d9d9d9;
  60. margin: 10px 0;
  61. border-radius: 5px;
  62. }
  63. .equipInfo .equipItem {
  64. display: flex;
  65. align-items: center;
  66. justify-content: center;
  67. }
  68. .equipInfo .equipItem:after {
  69. position: absolute;
  70. content: "";
  71. right: 0;
  72. height: 30px;
  73. border-right: 1px solid #cdcdcd;
  74. }
  75. .haloParent {
  76. position: relative;
  77. width: 100px;
  78. height: 100px;
  79. }
  80. .equipInfo .txt {
  81. text-align: center;
  82. font-size: 16px;
  83. }
  84. .equipInfo .txt p {
  85. color: #b6b6b6;
  86. letter-spacing: 1px;
  87. }
  88. .halo {
  89. width: 100px;
  90. height: 100px;
  91. border-radius: 50%;
  92. }
  93. .solidCircle {
  94. position: absolute;
  95. left: 50%;
  96. top: 50%;
  97. margin-top: -25px;
  98. margin-left: -25px;
  99. width: 50px;
  100. height: 50px;
  101. /* background: blue; */
  102. text-align: center;
  103. line-height: 50px;
  104. border-radius: 50%;
  105. }
  106. .halo1 {
  107. animation: anihalo1 2s 3s infinite;
  108. }
  109. .solidCircle1 {
  110. background: #ec6b6b;
  111. }
  112. @keyframes anihalo1 {
  113. 0% {
  114. background: #f8b2b2;
  115. transform: scale(.3);
  116. opacity: 0
  117. }
  118. 20% {
  119. background: #ec6b6b;
  120. transform: scale(.5);
  121. opacity: .5
  122. }
  123. 100% {
  124. background: #ec6b6b;
  125. transform: scale(.8);
  126. opacity: 0
  127. }
  128. }
  129. .halo2 {
  130. animation: anihalo2 2s 3s infinite;
  131. }
  132. .solidCircle2 {
  133. background: #6baeec;
  134. }
  135. @keyframes anihalo2 {
  136. 0% {
  137. background: #9ecaf3;
  138. transform: scale(.3);
  139. opacity: 0
  140. }
  141. 20% {
  142. background: #6baeec;
  143. transform: scale(.5);
  144. opacity: .5
  145. }
  146. 100% {
  147. background: #6baeec;
  148. transform: scale(.8);
  149. opacity: 0
  150. }
  151. }
  152. .halo3 {
  153. animation: anihalo3 2s 3s infinite;
  154. }
  155. .solidCircle3 {
  156. background: #f4bb0e;
  157. }
  158. @keyframes anihalo3 {
  159. 0% {
  160. background: #fce49e;
  161. transform: scale(.3);
  162. opacity: 0
  163. }
  164. 20% {
  165. background: #f4bb0e;
  166. transform: scale(.5);
  167. opacity: .5
  168. }
  169. 100% {
  170. background: #f4bb0e;
  171. transform: scale(.8);
  172. opacity: 0
  173. }
  174. }
  175. .halo4 {
  176. animation: anihalo4 2s 3s infinite;
  177. }
  178. .solidCircle4 {
  179. background: #4ddc75;
  180. }
  181. @keyframes anihalo4 {
  182. 0% {
  183. background: #9ee4b2;
  184. transform: scale(.3);
  185. opacity: 0
  186. }
  187. 20% {
  188. background: #4ddc75;
  189. transform: scale(.5);
  190. opacity: .5
  191. }
  192. 100% {
  193. background: #4ddc75;
  194. transform: scale(.8);
  195. opacity: 0
  196. }
  197. }
  198. .halo5 {
  199. animation: anihalo5 2s 3s infinite;
  200. }
  201. .solidCircle5 {
  202. background: #c279d4;
  203. }
  204. @keyframes anihalo5 {
  205. 0% {
  206. background: #d5b4df;
  207. transform: scale(.3);
  208. opacity: 0
  209. }
  210. 20% {
  211. background: #c279d4;
  212. transform: scale(.5);
  213. opacity: .5
  214. }
  215. 100% {
  216. background: #c279d4;
  217. transform: scale(.8);
  218. opacity: 0
  219. }
  220. }
  221. .halo6 {
  222. animation: anihalo6 2s 3s infinite;
  223. }
  224. .solidCircle6 {
  225. background: #ff7e00;
  226. }
  227. @keyframes anihalo6 {
  228. 0% {
  229. background: #f1caa2;
  230. transform: scale(.3);
  231. opacity: 0
  232. }
  233. 20% {
  234. background: #ff7e00;
  235. transform: scale(.5);
  236. opacity: .5
  237. }
  238. 100% {
  239. background: #ff7e00;
  240. transform: scale(.8);
  241. opacity: 0
  242. }
  243. }
  244. /* 设备内容 左图+右数据*/
  245. /* left */
  246. .paddingLeft {
  247. padding-right: 0;
  248. margin: 0 0 0 17px;
  249. width: 97%;
  250. }
  251. .equipImg {
  252. /* height: 408px; */
  253. /* height: 529px; */
  254. /* height: 600px; */
  255. height: 695px;
  256. /* margin: -112px 0 0 0; */
  257. /* background: #d9d9d9 url(./static/img/sexEquip2.png) no-repeat center; */
  258. background: #d9d9d9 url(./static/img/sugarEquip.jpg) no-repeat center;
  259. background-size: auto 100%;
  260. }
  261. /* right */
  262. .paddingRight {
  263. padding-left: 0;
  264. }
  265. /* .equipRightData { */
  266. /* display: flex;
  267. justify-content: space-around;
  268. align-items: center; */
  269. /* } */
  270. .equipRightData>div {
  271. text-align: center;
  272. }
  273. /* -----------svg环形图----------- */
  274. .chart {
  275. position: relative;
  276. display: inline-block;
  277. width: 120px;
  278. height: 120px;
  279. margin-top: 11px;
  280. margin-bottom: 11px;
  281. text-align: center;
  282. }
  283. .chart canvas {
  284. position: absolute;
  285. top: 0;
  286. left: 0;
  287. }
  288. .percent {
  289. display: block;
  290. line-height: 30px;
  291. z-index: 2;
  292. margin-top: 25%;
  293. }
  294. /* .percent:after {
  295. content: '';
  296. margin-left: 0.1em;
  297. font-size: .8em;
  298. } */
  299. .percent1 {
  300. display: block;
  301. line-height: 30px;
  302. z-index: 2;
  303. }
  304. /* -----------结束----------- */
  305. .equipPara {
  306. display: flex;
  307. justify-content: center;
  308. align-items: center;
  309. padding: 13px 0;
  310. }
  311. .equipPara>img {
  312. width: 57px;
  313. }
  314. .equipPara>div {
  315. min-width: 90px;
  316. line-height: 24px;
  317. font-size: 16px;
  318. padding-left: 20px;
  319. }
  320. .equipPara>div p:nth-child(2) {
  321. color: #b6b6b6;
  322. }
  323. /* 控制类 */
  324. input[type=checkbox].ace.ace-switch.ace-switch-5+.lbl::before {
  325. content: "开\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a关";
  326. }
  327. .timeCtrl {
  328. width: 25%;
  329. }
  330. .ctrlTitle {
  331. border-left: 3px solid #26b3ff;
  332. padding-left: 10px;
  333. font-size: 16px;
  334. font-weight: 700;
  335. margin: 25px 0;
  336. }
  337. /* 滑块 */
  338. .SliderBox {
  339. display: flex;
  340. align-items: center;
  341. width: 100%;
  342. }
  343. .SliderBox span {
  344. width: 100px;
  345. text-align: center;
  346. }
  347. .collocateBtn {
  348. margin: 20px;
  349. text-align: right;
  350. }
  351. @media screen and (max-width: 990px) {
  352. .col-xs-12.paddingLeft {
  353. padding-right: 15px;
  354. }
  355. .col-xs-12.paddingRight {
  356. padding-left: 15px;
  357. }
  358. .equipImg {
  359. height: 284px;
  360. }
  361. }
  362. .layui-form-label {
  363. /* width: 80px;
  364. display: inline-block;
  365. float: inherit;*/
  366. padding: 10px 0;
  367. }
  368. /* 查看历史记录 */
  369. .intoBtn {
  370. margin-bottom: 20px;
  371. text-align: center;
  372. }
  373. .condition {
  374. /* width: 76%; */
  375. /* float: right; */
  376. }
  377. .conditionList {
  378. margin: 21px 0 0 0;
  379. }
  380. .recordBox {
  381. /* height: 388px; */
  382. height: 327px;
  383. }
  384. .ceshi {
  385. padding: 25px 0 0 25px;
  386. }
  387. /* 开关 */
  388. .backStyle {
  389. /* background: #fff; */
  390. /* box-shadow: 0 0 40px #eee; */
  391. /* padding: 32px 20px; */
  392. }
  393. .typeResult {
  394. font-size: 18px;
  395. line-height: 30px;
  396. }
  397. .tempTitel,
  398. .switchbox {
  399. display: inline-block;
  400. vertical-align: middle;
  401. margin: 0 0 0 75px;
  402. }
  403. .switchBj {
  404. width: 74px;
  405. height: 30px;
  406. background: #c8c8c8;
  407. border-radius: 20px;
  408. position: relative;
  409. cursor: pointer;
  410. }
  411. .switchBj:after {
  412. position: absolute;
  413. content: '关';
  414. left: 9px;
  415. line-height: 30px;
  416. color: #fff;
  417. }
  418. .switchBj:before {
  419. position: absolute;
  420. content: '开';
  421. left: 45px;
  422. line-height: 30px;
  423. color: #fff;
  424. }
  425. .switchBj span {
  426. display: inline-block;
  427. width: 26px;
  428. height: 26px;
  429. background: #fff;
  430. border-radius: 50%;
  431. box-shadow: 1px 1px 4px #515151;
  432. position: absolute;
  433. left: 45px;
  434. top: 2px;
  435. }
  436. #coldSw {
  437. display: none;
  438. }
  439. .sendfileBox {
  440. display: flex;
  441. margin: 12.3px 0 0 0;
  442. }
  443. .ctrlTitleA {
  444. /* font-size: 18px; */
  445. text-align: right;
  446. width: 225px;
  447. height: 43.5px;
  448. line-height: 43.5px;
  449. }
  450. .ctrlTitleB {
  451. width: 110px;
  452. }
  453. /* 记录调试 */
  454. .recordBoxA {
  455. margin: 0;
  456. width: 100%;
  457. }
  458. .debuggingBox {
  459. display: flex;
  460. /* justify-content: space-around; */
  461. margin: 0 0 0 62px;
  462. }
  463. .debuggingBoxA {
  464. display: flex;
  465. justify-content: space-around;
  466. margin: 0 55px 0 55px;
  467. }
  468. .btnOff {
  469. /* padding: 8px 20px 8px 20px; */
  470. padding: 5px 45px 5px 45px;
  471. }
  472. .btn-historyData {
  473. margin-left: 16px;
  474. }
  475. /* 确定取消按钮 */
  476. .clearfixA {
  477. width: 64%;
  478. }
  479. /* 环境温湿度 */
  480. .ahatBox {
  481. height: 210px;
  482. }
  483. .ceshiBoxData {
  484. margin: 45px 0 0 0;
  485. }
  486. </style>
  487. </head>
  488. <body>
  489. <div class="content">
  490. <div class="page-header">
  491. <span class="headerPlace" onclick="back()">
  492. <img src="{% static '/img/gobackIcon.png' %}" alt="">返回
  493. </span>
  494. </div>
  495. <div class="userinfocover">
  496. <div class="row ">
  497. <div class="col-xs-12 col-sm-8 userinfo">
  498. <i class="fa fa-user-o" aria-hidden="true"></i>
  499. 设备ID:
  500. <span class="userinfoTitle" id="equip_id"></span>
  501. 设备名称:
  502. <span class="userinfoTitle" id="equip_name"></span>
  503. 上报时间:
  504. <span class="userinfoTitle" id="upl_time"></span>
  505. 信号:
  506. <span class="userinfoTitle" id="csq"></span>
  507. 位置:
  508. <span class="userinfoTitle" id="curr_area"></span>
  509. </div>
  510. <div class="col-xs-12 col-sm-4 refresh">
  511. <button class="btn btn-sm btn-info" onclick='sendexamineSIM()'>
  512. <i class="ace-icon fa fa-search align-top bigger-125 icon-on-right"></i>
  513. SIM卡查询
  514. </button>
  515. <!-- <button type="button" class="btn btn-sm btn-success" onclick="reloadPage()">刷新</button> -->
  516. <!-- <button type="button" class="btn btn-sm btn-primary" id="debugBtn" onclick="debugFun()">调试</button> -->
  517. {% if role == "superuser" or role == "staff" %}
  518. <button type="button" class="btn btn-sm btn-primary" id="operationBtn"
  519. onclick="operation()">操作</button>
  520. {% endif %}
  521. </div>
  522. </div>
  523. <!-- 用户调试权限 -->
  524. <!-- <div id="debugHandleBtns" style="display:none">
  525. <div style="padding: 20px; background-color: #F2F2F2;" id="">
  526. <div class="layui-row layui-col-space15">
  527. <div class="layui-col-md12">
  528. <div class="layui-card">
  529. <div class="layui-card-body">
  530. <div style="margin-bottom: 10px;">
  531. <button type="button" class="btn btn-sm btn-danger"
  532. onclick="popupFrame('开启设备',7)">开启</button>
  533. <button type="button" class="btn btn-sm btn-danger"
  534. onclick="popupFrame('关闭设备',8)">关闭</button>
  535. <button type="button" class="btn btn-sm btn-danger"
  536. onclick="popupFrame('重启',1)">重启</button>
  537. </div>
  538. </div>
  539. </div>
  540. </div>
  541. </div>
  542. </div>
  543. </div> -->
  544. <!-- 管理员操作权限 -->
  545. <div id="handleBtns" style="display:none">
  546. <div style="padding: 20px; background-color: #F2F2F2;" id="">
  547. <div class="layui-row layui-col-space15">
  548. <div class="layui-col-md12">
  549. <div class="layui-card">
  550. <!-- <div class="layui-card-header">强制操作</div> -->
  551. <div class="layui-card-body">
  552. <div style="margin-bottom: 10px;">
  553. <button type="button" class="btn btn-sm btn-danger"
  554. onclick="popupFrame('重启',1)">重启</button>
  555. <button type="button" class="btn btn-sm btn-danger"
  556. onclick="popupFrame('升级',2)">升级</button>
  557. <button type="button" class="btn btn-sm btn-danger"
  558. onclick="popupFrame('拍照',4)">拍照</button>
  559. </div>
  560. <div>
  561. <button type="button" class="btn btn-sm btn-danger"
  562. onclick="popupFrame('禁用',9)">禁用</button>
  563. </div>
  564. </div>
  565. </div>
  566. </div>
  567. </div>
  568. </div>
  569. </div>
  570. <div class="row">
  571. <!-- 设备图 -->
  572. <div class=" col-xs-12 col-md-4">
  573. <div class="equipBorder equipImg"></div>
  574. </div>
  575. <!-- 状态 -->
  576. <div class="col-xs-8 col-md-8">
  577. <div class="equipBorder">
  578. <div class="row equipInfo">
  579. <div class="col-xs-6 col-md-4 col-lg-4 conditionList">
  580. <div class="equipItem">
  581. <div class="haloParent">
  582. <div class="halo halo1"></div>
  583. <div class="solidCircle solidCircle1">
  584. <img class="haloIcon" src="{% static '/img/sex_trap/sexStatus1.png' %}"
  585. alt="">
  586. </div>
  587. </div>
  588. <div class="txt">
  589. <span class="typeResult" id="equip_ds">开</span>
  590. <p class="typeResult">设备类型</p>
  591. </div>
  592. </div>
  593. </div>
  594. <div class="col-xs-6 col-md-4 col-lg-4 conditionList">
  595. <div class="equipItem">
  596. <div class="haloParent">
  597. <div class="halo halo6"></div>
  598. <div class="solidCircle solidCircle6">
  599. <!-- <img class="haloIcon" src="{% static '/img/status/sexStatus7.png' %}" -->
  600. <img class="haloIcon" src="{% static '/img/sex_trap/sexStatus7.png' %}"
  601. alt="">
  602. </div>
  603. </div>
  604. <div class="txt">
  605. <span class="typeResult" id="equip_bs">正常</span>
  606. <p class="typeResult">电池状态</p>
  607. </div>
  608. </div>
  609. </div>
  610. <div class="col-xs-6 col-md-4 col-lg-4 conditionList">
  611. <div class="equipItem">
  612. <div class="haloParent">
  613. <div class="halo halo5"></div>
  614. <div class="solidCircle solidCircle5">
  615. <!-- <img class="haloIcon" src="{% static '/img/haloIcon4.png' %}" alt=""> -->
  616. <img class="haloIcon" src="{% static '/img/haloIcon4.png' %}" alt="">
  617. </div>
  618. </div>
  619. <div class="txt">
  620. <span class="typeResult" id="equip_dver">正常</span>
  621. <p class="typeResult">软件版本</p>
  622. </div>
  623. </div>
  624. </div>
  625. </div>
  626. </div>
  627. </div>
  628. <div class="col-xs-8 col-md-4">
  629. <div class="equipBorder ahatBox">
  630. <div class="row equipInfo ceshi">
  631. <div class="col-xs-6 col-md-4">
  632. <span class="chart chart2" data-percent="">
  633. <span class="percent">3</span>
  634. <span class="percent1">电压(V)</span>
  635. </span>
  636. </div>
  637. <div class="col-xs-6 col-md-4">
  638. <span class="chart chart3" data-percent="">
  639. <span class="percent">3</span>
  640. <span class="percent1">环境温度(°C)</span>
  641. </span>
  642. </div>
  643. <div class="col-xs-6 col-md-4">
  644. <span class="chart chart4" data-percent="">
  645. <span class="percent">3</span>
  646. <span class="percent1">环境湿度(RH)</span>
  647. </span>
  648. </div>
  649. </div>
  650. </div>
  651. <!-- 调试和记录 -->
  652. <div class="col-xs-12 col-sm-2 paddingLeft paddingRight recordBoxA">
  653. <div class="equipBorder recordBox">
  654. <div style="padding:10px 15px;min-height: 240px;">
  655. <!-- 调试 -->
  656. <div class="ctrlTitle">
  657. 调试
  658. </div>
  659. <div class="debuggingBoxA">
  660. <div class="intoBtn">
  661. <button type="button" class="btn btn-white btn-primary btnOff"
  662. onclick="popupFrame('重启',1)">重启</button>
  663. </div>
  664. <div class="intoBtn">
  665. <button type="button" class="btn btn-white btn-primary btnOff"
  666. onclick="popupFrame('拍照',4)">拍照</button>
  667. </div>
  668. <div class="intoBtn">
  669. <button type="button" class="btn btn-white btn-primary btnOff"
  670. onclick="reloadPage()">刷新</button>
  671. </div>
  672. </div>
  673. <!-- 记录 -->
  674. <div class="ctrlTitle">
  675. 记录
  676. </div>
  677. <div class="debuggingBox">
  678. <div class="intoBtn">
  679. <button type="button" class="btn btn-white btn-primary"
  680. onclick="openNewPage(1)">查看历史图片</button>
  681. </div>
  682. <div class="intoBtn">
  683. <button type="button" class="btn btn-white btn-primary btn-historyData"
  684. onclick="openNewPage(2)">查看历史数据</button>
  685. </div>
  686. </div>
  687. </div>
  688. </div>
  689. </div>
  690. </div>
  691. <!-- 控制区域 -->
  692. <div class="col-xs-12 col-md-4 paddingRight">
  693. <div class="col-xs-12 col-sm-9 paddingLeft paddingRight">
  694. <div style="text-align:right;position: absolute;right: 30px;top: 33px">
  695. <button type="button" class="btn btn-sm btn-success"
  696. onclick="dtlconfigurationSwitch()">获取最新配置</button>
  697. </div>
  698. <div class="equipBorder" style="display: flex;">
  699. <div style="padding:10px 15px;min-height: 240px;">
  700. <div class="ceshiBoxData">
  701. <!-- 数据上传时间间隔 -->
  702. <div class="sendfileBox">
  703. <div class="ctrlTitleA">
  704. 数据上传时间间隔(分钟)
  705. </div>
  706. <div class="SliderBox">
  707. <span class="initVal">1</span>
  708. <div class="slider" id="dtlDropTime-slider"></div>
  709. <span class="sliderVal" id="dtlDropTime">1</span>
  710. </div>
  711. </div>
  712. <!-- 收集时间 -->
  713. <div class="sendfileBox">
  714. <div class="ctrlTitleA">
  715. 收集时间(分钟)
  716. </div>
  717. <div class="SliderBox">
  718. <span class="initVal">1</span>
  719. <div class="slider" id="takePhotoTime-slider"></div>
  720. <span class="sliderVal" id="takePhotoTime">1</span>
  721. </div>
  722. </div>
  723. <div class="sendfileBox">
  724. <div class="ctrlTitleA">
  725. 糖醋液挥发时间(分钟)
  726. </div>
  727. <div class="SliderBox">
  728. <span class="initVal">1</span>
  729. <div class="slider" id="sugarTime-slider"></div>
  730. <span class="sliderVal" id="sugarTime">1</span>
  731. </div>
  732. </div>
  733. <div class="sendfileBox">
  734. <div class="ctrlTitleA">
  735. 加液排水轮询时间(天)
  736. </div>
  737. <div class="SliderBox">
  738. <span class="initVal">1</span>
  739. <div class="slider" id="waterTime-slider"></div>
  740. <span class="sliderVal" id="waterTime">1</span>
  741. </div>
  742. </div>
  743. <div class="sendfileBox">
  744. <div class="ctrlTitleA">
  745. 水泵打开(秒)
  746. </div>
  747. <div class="SliderBox">
  748. <span class="initVal">1</span>
  749. <div class="slider" id="waterPumpTime-slider"></div>
  750. <span class="sliderVal" id="waterPumpTime">1</span>
  751. </div>
  752. </div>
  753. <div class="sendfileBox">
  754. <div class="ctrlTitleA">
  755. 电磁阀打开(秒)
  756. </div>
  757. <div class="SliderBox">
  758. <span class="initVal">1</span>
  759. <div class="slider" id="solenoidTime-slider"></div>
  760. <span class="sliderVal" id="solenoidTime">1</span>
  761. </div>
  762. </div>
  763. <!-- 定时时间 -->
  764. <div class="sendfileBox">
  765. <div class="ctrlTitleA">
  766. 定时工作时间
  767. </div>
  768. <div class="SliderBox">
  769. <form class="layui-form" action="" lay-filter="selectObj">
  770. <div class="layui-form-item">
  771. <label class="layui-form-label">开始时间</label>
  772. <div class="layui-input-block">
  773. <select name="takePhotoTime" lay-verify="" lay-search>
  774. <option value="0">0点</option>
  775. <option value="1">1点</option>
  776. <option value="2">2点</option>
  777. <option value="3">3点</option>
  778. <option value="4">4点</option>
  779. <option value="5">5点</option>
  780. <option value="6">6点</option>
  781. <option value="7">7点</option>
  782. <option value="8">8点</option>
  783. <option value="9">9点</option>
  784. <option value="10">10点</option>
  785. <option value="11">11点</option>
  786. <option value="12">12点</option>
  787. <option value="13">13点</option>
  788. <option value="14">14点</option>
  789. <option value="15">15点</option>
  790. <option value="16">16点</option>
  791. <option value="17">17点</option>
  792. <option value="18">18点</option>
  793. <option value="19">19点</option>
  794. <option value="20">20点</option>
  795. <option value="21">21点</option>
  796. <option value="22">22点</option>
  797. <option value="23">23点</option>
  798. </select>
  799. </div>
  800. </div>
  801. <div class="layui-form-item">
  802. <label class="layui-form-label">结束时间</label>
  803. <div class="layui-input-block">
  804. <select name="takePhotoInterval" lay-verify="" lay-search>
  805. <!-- <option value="1">1</option>
  806. <option value="2">2</option>
  807. <option value="3">3</option>
  808. <option value="4">4</option>
  809. <option value="6">6</option>
  810. <option value="8">8</option>
  811. <option value="12">12</option>
  812. <option value="24">24</option> -->
  813. <option value="0">0点</option>
  814. <option value="1">1点</option>
  815. <option value="2">2点</option>
  816. <option value="3">3点</option>
  817. <option value="4">4点</option>
  818. <option value="5">5点</option>
  819. <option value="6">6点</option>
  820. <option value="7">7点</option>
  821. <option value="8">8点</option>
  822. <option value="9">9点</option>
  823. <option value="10">10点</option>
  824. <option value="11">11点</option>
  825. <option value="12">12点</option>
  826. <option value="13">13点</option>
  827. <option value="14">14点</option>
  828. <option value="15">15点</option>
  829. <option value="16">16点</option>
  830. <option value="17">17点</option>
  831. <option value="18">18点</option>
  832. <option value="19">19点</option>
  833. <option value="20">20点</option>
  834. <option value="21">21点</option>
  835. <option value="22">22点</option>
  836. <option value="23">23点</option>
  837. </select>
  838. </div>
  839. </div>
  840. </form>
  841. </div>
  842. </div>
  843. <div class="clearfixA">
  844. <div class="" style="text-align:right">
  845. <button class="btn btn-sm btn-info" onclick="confirmed()" type="button">
  846. 确定
  847. </button>
  848. &nbsp; &nbsp; &nbsp;
  849. <button class="btn btn-sm" onclick="cancelConfig()" type="reset">
  850. 取消
  851. </button>
  852. </div>
  853. </div>
  854. </div>
  855. </div>
  856. </div>
  857. </div>
  858. </div>
  859. </div>
  860. </div>
  861. <script src="{% static '/lib/js/jquery-2.1.4.min.js' %}"></script>
  862. <script src="{% static '/lib/bootstrap-3.3.7/js/bootstrap.js' %}"></script>
  863. <script src="{% static '/lib/layui/layui.all.js' %}"></script>
  864. <script type="text/javascript"
  865. src="http://api.map.baidu.com/api?v=2.0&ak=TcRPmrsiZUqdUBWoELrUArRkCRC36KMx"></script>
  866. <script src="{% static '/js/common.js' %}?versions=0.5.0"></script>
  867. <script src="{% static '/lib/js/jquery-ui.min.js' %}"></script>
  868. <script src="{% static '/lib/js/jquery.ui.touch-punch.min.js' %}"></script>
  869. <script src="{% static '/lib/js/coordOffset.js' %}"></script>
  870. <script src="{% static '/lib/js/jquery.easy-pie-chart.js' %}"></script>
  871. <script type="text/javascript">
  872. $.ajaxSetup({
  873. data: {
  874. csrfmiddlewaretoken: '{{ csrf_token }}'
  875. },
  876. });
  877. $(window).resize(function () {
  878. scrollBar()
  879. });
  880. // 调试
  881. function debugFun() {
  882. //页面层
  883. popupIndex = layer.open({
  884. type: 1,
  885. title: '调试',
  886. offset: '100px',
  887. shadeClose: true,
  888. area: "300px",
  889. content: $('#debugHandleBtns').html()
  890. });
  891. }
  892. //operation配置弹框
  893. function operation() {
  894. //页面层
  895. popupIndex = layer.open({
  896. type: 1,
  897. title: '控制',
  898. offset: '100px',
  899. shadeClose: true,
  900. area: "300px",
  901. content: $('#handleBtns').html()
  902. });
  903. }
  904. $(function () {
  905. currpage = getQueryString('currpage') || 1;
  906. equipName = getQueryString('equipName') || '';
  907. equipId = getQueryString('equipId') || '';
  908. id = getQueryString('id') || '';
  909. $('.chart2').easyPieChart({
  910. barColor: '#5d9f2c',
  911. lineWidth: 5,
  912. size: 120,
  913. // size: 95,
  914. onStep: function (from, to, percent) {
  915. }
  916. });
  917. $('.chart3').easyPieChart({
  918. barColor: '#f4bb0e',
  919. lineWidth: 5,
  920. size: 120,
  921. // size: 95,
  922. onStep: function (from, to, percent) {
  923. }
  924. });
  925. $('.chart4').easyPieChart({
  926. barColor: '#6baeec',
  927. lineWidth: 5,
  928. size: 120,
  929. // size: 95,
  930. onStep: function (from, to, percent) {
  931. }
  932. });
  933. scrollBar()
  934. getData()
  935. });
  936. // 获取详情数据
  937. // var datTime, turnTime, iccid; //数据上传,卷粘虫板
  938. var dtlDropTime, takePhotoTime, sugarTime, waterTime, waterPumpTime, solenoidTime, beginTime, endTime, imei, iccid, id;
  939. function getData() {
  940. $.ajax({
  941. url: 'tccb_detail',
  942. type: 'post',
  943. data: {
  944. id: id,
  945. },
  946. dataType: 'json',
  947. success: function (data) {
  948. // renderTable(processingData(data));
  949. // renderPage(page,data)
  950. renderHtml(data);
  951. var status = eval('(' + data.status + ')');
  952. var paramconf = eval('(' + data.paramconf + ')');
  953. dtlDropTime = paramconf.datt; //数据时间间隔
  954. takePhotoTime = paramconf.collt; //收集时间
  955. sugarTime = paramconf.htim; //糖醋液发挥时间
  956. waterTime = paramconf.jp; //加液排水轮询时间
  957. waterPumpTime = paramconf.pump_sec; //水泵打开
  958. solenoidTime = paramconf.shake_sec; //电磁阀打开
  959. beginTime = paramconf.st; //定时工作时间-开始时间
  960. endTime = paramconf.et; //定时工作时间-结束时间
  961. iccid = status.iccid;
  962. imei = status.imei;
  963. },
  964. error: function (type) {
  965. console.log(type);
  966. }
  967. })
  968. }
  969. // 获取位置
  970. var geoc = new BMap.Geocoder();
  971. // 渲染界面
  972. function renderHtml(data) {
  973. // console.log(data.paramconf.ext)
  974. // console.log(JSON.parse(data.paramconf))
  975. var status = eval('(' + data.status + ')');
  976. $('#equip_id').html(id);
  977. $('#equip_name').html(data.equip_name || '--');
  978. $('#upl_time').html(data.upl_time);
  979. // $('#curr_area').html(id);
  980. $('#devNum').html(status.dev_num || '--');
  981. $('#csq').html(status.csq);
  982. $('#equip_ds').html(status.dtype == 3 ? '糖醋测报' : '');
  983. $('#equip_ws').html(status.ws ? '工作' : '待机');
  984. if (status.cs == 0) {
  985. $('#equip_cs').html('正常');
  986. } else if (status.cs == 1) {
  987. $('#equip_cs').html('光控');
  988. } else if (status.cs == 2) {
  989. $('#equip_cs').html('充电');
  990. }
  991. if (status.bs != '') {
  992. if (status.vbatstatus == 0) {
  993. $('#equip_bs').html('正常');
  994. } else if (status.vbatstatus == 1) {
  995. $('#equip_bs').html('电量过低');
  996. }
  997. } else {
  998. $('#equip_bs').html('--');
  999. }
  1000. $('#equip_cpuTmp').html((parseInt(status.cpu_tmp) / 1000).toFixed(2));
  1001. $('#equip_dver').html(status.dver);
  1002. if (status.at) {
  1003. var at = parseInt(status.at / 120 * 100); //环境温度 最大值120
  1004. $('.chart3').data('easyPieChart').update(at / 10);
  1005. $('.chart3').find('.percent').html(status.at / 10);
  1006. } else {
  1007. $('.chart3').find('.percent').html('--');
  1008. }
  1009. if (status.ah) {
  1010. var ah = parseInt(status.ah / 99 * 100); //环境湿度 最大值99
  1011. $('.chart4').data('easyPieChart').update(ah / 10);
  1012. $('.chart4').find('.percent').html(status.ah / 10);
  1013. } else {
  1014. $('.chart4').find('.percent').html('--');
  1015. }
  1016. $('.chart2').find('.percent').html(status.vbat);
  1017. if (status.lng > 999) {
  1018. var lng = Math.floor(status.lng / 100) + ((status.lng % 100) / 60);
  1019. var lat = Math.floor(status.lat / 100) + ((status.lat % 100) / 60);
  1020. } else {
  1021. var lng = Number(status.lng);
  1022. var lat = Number(status.lat);
  1023. }
  1024. var lng1 = wgs84togcj02(lng, lat);
  1025. var lng2 = gcj02tobd09(lng1[0], lng1[1]);
  1026. var pt = new BMap.Point(lng2[0], lng2[1]);
  1027. geoc.getLocation(pt, function (rs) {
  1028. var addComp = rs.addressComponents;
  1029. $('#curr_area').html(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);
  1030. });
  1031. //下发数据渲染
  1032. // var BBB = JSON.stringify(data.paramconf)
  1033. // var AAA = JSON.parse(BBB)
  1034. // console.log(AAA)
  1035. if (data.paramconf != null) {
  1036. var paramconf = eval("(" + data.paramconf + ")");
  1037. // var paramconf = JSON.parse(data.paramconf) //转换下发数据
  1038. }
  1039. $("#dtlDropTime-slider").slider('value', paramconf.datt); //数据上传时间间隔
  1040. $('#dtlDropTime').html(paramconf.datt);
  1041. $("#takePhotoTime-slider").slider('value', paramconf.collt); //收集时间
  1042. $('#takePhotoTime').html(paramconf.collt);
  1043. $("#sugarTime-slider").slider('value', paramconf.htim); //糖醋液挥发时间
  1044. $('#sugarTime').html(paramconf.htim);
  1045. $("#waterTime-slider").slider('value', paramconf.jp); //加液排水轮询时间
  1046. $('#waterTime').html(paramconf.jp);
  1047. $("#waterPumpTime-slider").slider('value', paramconf.pump_sec); //水泵时间
  1048. $('#waterPumpTime').html(paramconf.pump_sec);
  1049. $("#solenoidTime-slider").slider('value', paramconf.shake_sec); //电磁阀打开
  1050. $('#solenoidTime').html(paramconf.shake_sec);
  1051. layui.use('form', function () {
  1052. var form = layui.form;
  1053. //给表单赋值
  1054. form.val("selectObj", { // form标签 lay-filter="" 对应的值
  1055. "takePhotoTime": parseInt(paramconf.st) // "name": "value"
  1056. , "takePhotoInterval": parseInt(paramconf.et)
  1057. });
  1058. });
  1059. }
  1060. function getQueryString(name) {
  1061. let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  1062. let url = window.location.href.split('?')[1].match(reg);
  1063. // console.log(url)
  1064. if (url != null) {
  1065. return decodeURI(url[2]) //decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码。
  1066. } else {
  1067. return null
  1068. }
  1069. }
  1070. function back() {
  1071. console.log(equipId)
  1072. console.log(equipName)
  1073. console.log(currpage)
  1074. // var url = 'status_view?equipId=' + equipId + '&equipName=' + equipName + '&currpage=' + currpage;
  1075. var url = 'tccb_view?equipId=' + equipId + '&equipName=' + equipName + '&currpage=' + currpage;
  1076. location.href = url;
  1077. }
  1078. // 数据上传时间间隔
  1079. $("#dtlDropTime-slider").css('width', '85%').slider({
  1080. value: 1,
  1081. range: "min",
  1082. min: 5,
  1083. max: 60,
  1084. step: 1,
  1085. slide: function (event, ui) {
  1086. var val = parseInt(ui.value);
  1087. $('#dtlDropTime').html(val);
  1088. },
  1089. stop: function (event, ui) {
  1090. dtlDropTime = ui.value
  1091. }
  1092. });
  1093. // $( "#dtlDropTime-slider" ).slider( "disable" );
  1094. // 收集时间
  1095. $("#takePhotoTime-slider").css('width', '85%').slider({
  1096. value: 1,
  1097. range: "min",
  1098. min: 1,
  1099. max: 60,
  1100. step: 1,
  1101. slide: function (event, ui) {
  1102. var val = parseInt(ui.value);
  1103. $('#takePhotoTime').html(val);
  1104. },
  1105. stop: function (event, ui) {
  1106. takePhotoTime = ui.value
  1107. }
  1108. });
  1109. //糖醋液挥发时间
  1110. $("#sugarTime-slider").css('width', '85%').slider({
  1111. value: 1,
  1112. range: "min",
  1113. min: 1,
  1114. max: 60,
  1115. step: 1,
  1116. slide: function (event, ui) {
  1117. var val = parseInt(ui.value);
  1118. $('#sugarTime').html(val);
  1119. },
  1120. stop: function (event, ui) {
  1121. sugarTime = ui.value
  1122. }
  1123. });
  1124. //加液排水轮询时间
  1125. $("#waterTime-slider").css('width', '85%').slider({
  1126. value: 1,
  1127. range: "min",
  1128. min: 1,
  1129. max: 7,
  1130. step: 1,
  1131. slide: function (event, ui) {
  1132. var val = parseInt(ui.value);
  1133. $('#waterTime').html(val);
  1134. },
  1135. stop: function (event, ui) {
  1136. waterTime = ui.value
  1137. }
  1138. });
  1139. //水泵时间
  1140. $("#waterPumpTime-slider").css('width', '85%').slider({
  1141. value: 10,
  1142. range: "min",
  1143. min: 10,
  1144. max: 300,
  1145. step: 10,
  1146. slide: function (event, ui) {
  1147. var val = parseInt(ui.value);
  1148. $('#waterPumpTime').html(val);
  1149. },
  1150. stop: function (event, ui) {
  1151. waterPumpTime = ui.value
  1152. }
  1153. });
  1154. //电磁阀打开
  1155. $("#solenoidTime-slider").css('width', '85%').slider({
  1156. value: 10,
  1157. range: "min",
  1158. min: 10,
  1159. max: 300,
  1160. step: 10,
  1161. slide: function (event, ui) {
  1162. var val = parseInt(ui.value);
  1163. $('#solenoidTime').html(val);
  1164. },
  1165. stop: function (event, ui) {
  1166. solenoidTime = ui.value
  1167. }
  1168. });
  1169. //定时时间
  1170. layui.use('form', function () {
  1171. var form = layui.form;
  1172. form.on('select', function (data) {
  1173. var select1 = $(data.elem.form).find('select')[0];
  1174. var select2 = $(data.elem.form).find('select')[1];
  1175. var data = {
  1176. ext: 'photoset',
  1177. pic_t: $(select1).val(),
  1178. pic_f: $(select2).val(),
  1179. }
  1180. beginTime = $(select1).val()
  1181. endTime = $(select2).val()
  1182. });
  1183. });
  1184. //下发确定事件
  1185. function confirmed() {
  1186. layer.confirm('是否将修改的数据上传?', { icon: 3, title: '提示' }, function (index) {
  1187. $.ajax({
  1188. url: 'tccb_mqtt',
  1189. type: 'post',
  1190. data: {
  1191. e_id: id,
  1192. ext: 'paramconf',
  1193. st: beginTime,
  1194. et: endTime,
  1195. collt: takePhotoTime,
  1196. htim: sugarTime,
  1197. datt: dtlDropTime,
  1198. pump_sec: waterPumpTime,
  1199. shake_sec: solenoidTime,
  1200. },
  1201. dataType: 'json',
  1202. beforeSend: function (XMLHttpRequest) {
  1203. //注意,layer.msg默认3秒自动关闭,如果数据加载耗时比较长,需要设置time
  1204. loadingFlag = layer.msg('请求中,请稍候……', { icon: 16, shade: 0.01, shadeClose: false, time: 60000 });
  1205. },
  1206. success: function (data) {
  1207. console.log(data)
  1208. if (data == 0) {
  1209. layer.msg('下发成功!!', { icon: 1, shade: 0.01, shadeClose: false, time: 1000 })
  1210. } else {
  1211. layer.msg('下发失败!');
  1212. }
  1213. },
  1214. error: function (type) {
  1215. layer.msg('下发失败!');
  1216. }
  1217. })
  1218. layer.close(index);
  1219. }, function (index, layero) {
  1220. getData()
  1221. });
  1222. }
  1223. //下发取消事件
  1224. function cancelConfig() {
  1225. getData()
  1226. }
  1227. //获取下发最新数据
  1228. function dtlconfigurationSwitch() {
  1229. $.ajax({
  1230. url: 'tccb_mqtt',
  1231. type: 'post',
  1232. data: {
  1233. e_id: id,
  1234. ext: 'param',
  1235. },
  1236. dataType: 'json',
  1237. success: function (data) {
  1238. if (data == 0) {
  1239. layer.msg('请求中,请稍候……', { icon: 16, shade: 0.01, shadeClose: false, time: 60000 });
  1240. setTimeout(function () {
  1241. layer.msg('已获取最新数据!!', { icon: 1, shade: 0.01, shadeClose: false, time: 1000 })
  1242. $.ajax({
  1243. url: 'tccb_detail',
  1244. type: 'post',
  1245. data: {
  1246. id: id,
  1247. },
  1248. dataType: 'json',
  1249. success: function (data) {
  1250. var status = eval('(' + data.status + ')');
  1251. var paramconf = eval('(' + data.paramconf + ')');
  1252. dtlDropTime = paramconf.datt; //数据时间间隔
  1253. takePhotoTime = paramconf.collt; //收集时间
  1254. sugarTime = paramconf.htim; //糖醋液发挥时间
  1255. waterTime = paramconf.jp; //加液排水轮询时间
  1256. waterPumpTime = paramconf.pump_sec; //水泵打开
  1257. solenoidTime = paramconf.shake_sec; //电磁阀打开
  1258. beginTime = paramconf.st; //定时工作时间-开始时间
  1259. endTime = paramconf.et; //定时工作时间-结束时间
  1260. iccid = status.iccid;
  1261. iccid = status.imei;
  1262. $("#dtlDropTime-slider").slider('value', paramconf.datt); //数据上传时间间隔
  1263. $('#dtlDropTime').html(paramconf.datt);
  1264. $("#takePhotoTime-slider").slider('value', paramconf.collt); //收集时间
  1265. $('#takePhotoTime').html(paramconf.collt);
  1266. $("#sugarTime-slider").slider('value', paramconf.htim); //糖醋液挥发时间
  1267. $('#sugarTime').html(paramconf.htim);
  1268. $("#waterTime-slider").slider('value', paramconf.jp); //加液排水轮询时间
  1269. $('#waterTime').html(paramconf.jp);
  1270. $("#waterPumpTime-slider").slider('value', paramconf.pump_sec); //水泵时间
  1271. $('#waterPumpTime').html(paramconf.pump_sec);
  1272. $("#solenoidTime-slider").slider('value', paramconf.shake_sec); //电磁阀打开
  1273. $('#solenoidTime').html(paramconf.shake_sec);
  1274. layui.use('form', function () {
  1275. var form = layui.form;
  1276. //给表单赋值
  1277. form.val("selectObj", { // form标签 lay-filter="" 对应的值
  1278. "takePhotoTime": parseInt(paramconf.st) // "name": "value"
  1279. , "takePhotoInterval": parseInt(paramconf.et)
  1280. });
  1281. });
  1282. },
  1283. error: function (type) {
  1284. console.log(type);
  1285. }
  1286. })
  1287. // if (data.paramconf != null) {
  1288. // var paramconf = eval("(" + data.paramconf + ")");
  1289. // // var paramconf = JSON.parse(data.paramconf) //转换下发数据
  1290. // }
  1291. // $("#dtlDropTime-slider").slider('value', paramconf.datt); //数据上传时间间隔
  1292. // $('#dtlDropTime').html(paramconf.datt);
  1293. // $("#takePhotoTime-slider").slider('value', paramconf.collt); //收集时间
  1294. // $('#takePhotoTime').html(paramconf.collt);
  1295. // $("#sugarTime-slider").slider('value', paramconf.htim); //糖醋液挥发时间
  1296. // $('#sugarTime').html(paramconf.htim);
  1297. // $("#waterTime-slider").slider('value', paramconf.jp); //加液排水轮询时间
  1298. // $('#waterTime').html(paramconf.jp);
  1299. // $("#waterPumpTime-slider").slider('value', paramconf.pump_sec); //水泵时间
  1300. // $('#waterPumpTime').html(paramconf.pump_sec);
  1301. // $("#solenoidTime-slider").slider('value', paramconf.shake_sec); //电磁阀打开
  1302. // $('#solenoidTime').html(paramconf.shake_sec);
  1303. // layui.use('form', function () {
  1304. // var form = layui.form;
  1305. // //给表单赋值
  1306. // form.val("selectObj", { // form标签 lay-filter="" 对应的值
  1307. // "takePhotoTime": parseInt(paramconf.st) // "name": "value"
  1308. // , "takePhotoInterval": parseInt(paramconf.et)
  1309. // });
  1310. // });
  1311. }, 3000)
  1312. } else {
  1313. layer.msg('获取失败!');
  1314. }
  1315. },
  1316. error: function (type) {
  1317. layer.msg('获取失败!');
  1318. }
  1319. })
  1320. }
  1321. function popupFrame(txt, flag) {
  1322. layui.use('layer', function () {
  1323. var layer = layui.layer;
  1324. layer.confirm('是否' + txt + '?', { icon: 3, offset: '100px', title: '提示' }, function (index) {
  1325. if (flag == 1) {
  1326. var data = {
  1327. ext: 'reboot',
  1328. }
  1329. var fun = function () { };
  1330. } else if (flag == 2) {
  1331. var data = {
  1332. ext: 'update',
  1333. }
  1334. var fun = function () { };
  1335. } else if (flag == 3) {
  1336. var data = {
  1337. ext: 'mqttconf',
  1338. }
  1339. var fun = function () {
  1340. var index = layer.load(2, { time: 3 * 1000 });
  1341. setTimeout(function () {
  1342. $.ajax({
  1343. url: 'tccb_mqtt',
  1344. type: 'post',
  1345. data: {
  1346. e_id: id
  1347. },
  1348. dataType: 'json',
  1349. success: function (data) {
  1350. layer.open({
  1351. type: 1
  1352. , title: false //不显示标题栏
  1353. , closeBtn: false
  1354. , area: '400px;'
  1355. , shade: 0.8
  1356. , id: 'LAY_layuipro' //设定一个id,防止重复弹出
  1357. , btn: ['确定']
  1358. , btnAlign: 'c'
  1359. , moveType: 1 //拖拽模式,0或者1
  1360. , content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">ip:' + data.ip + '<br />port:' + data.port + '<br />sub:' + data.sub + '<br />pub:' + data.pub + '<br />lastwill:' + data.lastwill + '<br />keepalive:' + data.keepalive + '<br />username:' + data.username + '<br />stamp:' + data.stamp + '</div>'
  1361. });
  1362. },
  1363. error: function (type) {
  1364. console.log(type)
  1365. }
  1366. })
  1367. }, 3000)
  1368. };
  1369. } else if (flag == 4) {
  1370. var data = {
  1371. ext: 'takephoto',
  1372. }
  1373. var fun = function () { };
  1374. } else if (flag == 5) {
  1375. var data = {
  1376. ext: 'turn',
  1377. }
  1378. var fun = function () { };
  1379. } else if (flag == 6) {
  1380. var data = {
  1381. ext: 'repower',
  1382. }
  1383. var fun = function () { };
  1384. } else if (flag == 7) {
  1385. var data = {
  1386. ext: 'ds1',
  1387. }
  1388. var fun = function () { };
  1389. } else if (flag == 8) {
  1390. var data = {
  1391. ext: 'ds0',
  1392. }
  1393. var fun = function () { };
  1394. } else if (flag == 9) {
  1395. var data = {
  1396. ext: 'boot',
  1397. }
  1398. var fun = function () { };
  1399. }
  1400. sendCtrlFun(data, fun)
  1401. layer.close(index);
  1402. });
  1403. })
  1404. }
  1405. function sendCtrlFun(data, callback) {
  1406. data.e_id = id;
  1407. $.ajax({
  1408. url: 'tccb_mqtt',
  1409. type: 'post',
  1410. data: data,
  1411. beforeSend: function (XMLHttpRequest) {
  1412. //注意,layer.msg默认3秒自动关闭,如果数据加载耗时比较长,需要设置time
  1413. loadingFlag = layer.msg('请求中,请稍候……', { icon: 16, shade: 0.01, shadeClose: false, time: 60000 });
  1414. },
  1415. success: function (data) {
  1416. if (data == 0) {
  1417. callback();
  1418. layer.msg('下发成功!!', { icon: 1, shade: 0.01, shadeClose: false, time: 1000 })
  1419. } else {
  1420. layer.msg('下发失败!');
  1421. }
  1422. },
  1423. error: function (type) {
  1424. console.log(type)
  1425. layer.msg('下发失败!');
  1426. }
  1427. })
  1428. }
  1429. function reloadPage() {
  1430. var data = {
  1431. ext: 'status',
  1432. }
  1433. var fun = function () {
  1434. var index = layer.load(2, { time: 3 * 1000 });
  1435. setTimeout(function () {
  1436. getData()
  1437. }, 3000)
  1438. };
  1439. sendCtrlFun(data, fun)
  1440. }
  1441. // sim卡查询
  1442. function sendexamineSIM() {
  1443. examineSIM(iccid)
  1444. }
  1445. function examineSIM(iccid) {
  1446. $.ajax({
  1447. url: 'siminfo',
  1448. type: 'post',
  1449. dataType: 'json',
  1450. data: {
  1451. simid: iccid,
  1452. },
  1453. beforeSend: function (XMLHttpRequest) {
  1454. //注意,layer.msg默认3秒自动关闭,如果数据加载耗时比较长,需要设置time
  1455. loadingFlag = layer.msg('请求中,请稍候……', { icon: 16, shade: 0.01, shadeClose: false, time: 60000 });
  1456. },
  1457. success: function (data) {
  1458. console.log(data)
  1459. var dat = data.data;
  1460. if (data.code == 0) {
  1461. var status;
  1462. if (dat.account_status == "0") {
  1463. status = "未知";
  1464. } else if (dat.account_status == "1") {
  1465. status = "测试期";
  1466. } else if (dat.account_status == "2") {
  1467. status = "沉默期";
  1468. } else if (dat.account_status == "3") {
  1469. status = "使用中";
  1470. } else if (dat.account_status == "4") {
  1471. status = "停机";
  1472. } else if (dat.account_status == "5") {
  1473. status = "停机保号";
  1474. } else if (dat.account_status == "6") {
  1475. status = "预销号";
  1476. } else if (dat.account_status == "7") {
  1477. status = "销号";
  1478. }
  1479. var usage;
  1480. if (dat.iccid) {
  1481. usage = dat.data_usage;
  1482. } else {
  1483. usage.innerHTML = '--';
  1484. }
  1485. var balance;
  1486. if (dat.iccid) {
  1487. balance = dat.data_balance;
  1488. } else {
  1489. balance = '--';
  1490. }
  1491. var time;
  1492. if (dat.iccid) {
  1493. var timestamp4 = new Date(dat.expiry_date * 1000);//直接用 new Date(时间戳) 格式转化获得当前时间
  1494. time = timestamp4.toLocaleDateString().replace(/\//g, "-") + " " + timestamp4.toTimeString().substr(0, 8);
  1495. } else {
  1496. time = '--';
  1497. }
  1498. layer.close(loadingFlag);
  1499. layer.open({
  1500. type: 1
  1501. , title: false //不显示标题栏
  1502. , closeBtn: false
  1503. , area: '300px;'
  1504. , shade: 0.8
  1505. , offset: '100px'
  1506. , id: 'LAY_layuipro' //设定一个id,防止重复弹出
  1507. , btn: ['我知道了']
  1508. , btnAlign: 'c'
  1509. , moveType: 1 //拖拽模式,0或者1
  1510. , content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">SIM卡查询结果<br>ICCID:' + iccid + '<br><br>状态:' + status + '<br>套餐:' + dat.data_plan + 'Mb<br>已用流量:' + usage + 'Mb<br>剩余流量:' + balance + 'Mb<br>到期时间:' + time + '</div>'
  1511. , success: function (layero) {
  1512. }
  1513. });
  1514. } else {
  1515. layer.msg('查询失败!');
  1516. }
  1517. }
  1518. })
  1519. }
  1520. function openNewPage(falg) {
  1521. if (falg == 1) {
  1522. window.location.href = 'tccb_photo?id=' + id + '&currpage=' + currpage + '&equipName=' + equipName + '&equipId=' + equipId
  1523. }
  1524. if (falg == 2) {
  1525. window.location.href = 'tccb_data?id=' + id + '&currpage=' + currpage + '&equipName=' + equipName + '&equipId=' + equipId
  1526. }
  1527. }
  1528. </script>
  1529. </body>
  1530. </html>