main.tpl 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770
  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="zh">
  4. <meta charset="UTF-8">
  5. <link rel="stylesheet" href="../../lib/app/css/app.min.css">
  6. <link rel="stylesheet" href="../../lib/webo/css/ui.css">
  7. <link rel="stylesheet" href="../../lib/simple-line-icons/css/simple-line-icons.css">
  8. <link rel="stylesheet" href="../../lib/font-awesome/css/font-awesome.min.css">
  9. <style>
  10. .panel-heading {
  11. border: none;
  12. background-color: transparent !important;
  13. color: #FFFFFF !important;
  14. }
  15. .panel {
  16. background-color: transparent !important;
  17. border-color: #147890 !important;
  18. }
  19. table {
  20. color: #FFFFFF !important;
  21. }
  22. .table > tbody > tr > td {
  23. padding-left: 2px;
  24. padding-right: 2px;
  25. padding-top:4px;
  26. !important;
  27. border: none !important;
  28. }
  29. input {
  30. background-color: transparent !important;
  31. border-color: #147890 !important;
  32. color: #f0f0f0 !important;
  33. }
  34. html {
  35. overflow-y: auto;
  36. overflow-x: hidden
  37. }
  38. .img-status{
  39. height: 100%;
  40. width: 100%;
  41. max-height: 65px;
  42. max-width: 65px;
  43. }
  44. .fa {
  45. margin-top: -20px
  46. }
  47. .form-control{
  48. padding-left: 4px;
  49. padding-right: 4px;
  50. }
  51. .text-right{
  52. padding-right: 4px !important;
  53. }
  54. .btn-status{
  55. height: 60px;
  56. width: 100%;
  57. max-width: 110px;
  58. padding: 2px;
  59. padding-top:17px;
  60. }
  61. .btn-io{
  62. padding:4px;
  63. }
  64. </style>
  65. </head>
  66. <body style="background-color: #2E3342">
  67. <div class="wrapper bg-white b-b wb-show-on-top" id="title">
  68. <a class="h3 v-bottom" href="/">华力智慧电源</a>
  69. </div>
  70. <div class="row wrapper">
  71. <div class="col-md-8 col-sm8">
  72. <a class="btn btn-default btn-back wb-hide-on-top wb-hide-topmodal"><i class="icon icon-arrow-left m-r-xs"></i>返回</a>
  73. <a class="btn btn-primary" href="/genset/status?sn={{.DeviceId}}">实时</a>
  74. <a class="btn btn-default" href="/genset/history/uilist/{{.DeviceId}}">历史</a>
  75. <a class="btn btn-default" href="/gis/gis/path?sid={{.DeviceId}}">轨迹</a>
  76. <a class="btn btn-default" href="/genset/detail/uilist/{{.DeviceId}}">详情</a>
  77. {{if ne "role_false" .CtxRole}}
  78. <a class="btn btn-default" href="/ViewStatus?sn={{.DeviceId}}">信息</a>
  79. {{end}}
  80. <!--<a class="btn btn-default" href="/genset/ui/video?sid={{.DeviceId}}">视频监控</a>-->
  81. </div>
  82. <div class="col-md-4 col-sm4 v-middle">
  83. <span class="m-t-xs center">状态:</span><span id="status" class="webo-c-stat m-t-xs"></span>
  84. </div>
  85. </div>
  86. <div class="container-fluid">
  87. <div class="row" id="mainRow">
  88. <div class="col-md-6 col-lg-4 text-center" id="colGen">
  89. <div class="panel panel-default">
  90. <div class="panel-heading text-center v-middle"><span class="">发电机</span></div>
  91. <div class="panel-body no-padder" style="height: 350px">
  92. <table class="table">
  93. <tr>
  94. <td width="20%" class="text-right v-middle">模式</td>
  95. <td width="20%"><input class="w-full form-control " id="gsModel" value="" readonly></td>
  96. <td width="20%" class="text-right v-middle">状态</td>
  97. <td width="20%"><input class="w-full form-control " id="gsstatus" value="" readonly></td>
  98. </tr>
  99. <tr>
  100. <td width="20%" class="text-right v-middle">I/O</td>
  101. <td width="20%"><input class="w-full form-control " id="fioStatus" value="" readonly></td>
  102. <td width="20%" class="text-right v-middle">频率</td>
  103. <td width="20%"><input class="w-full form-control " name="fqcy" value="" readonly></td>
  104. <td width="20%" class="text-left v-middle">HZ</td>
  105. </tr>
  106. <tr>
  107. <td width="20%" class="text-right"></td>
  108. <td width="20%" class="text-center"> L1</td>
  109. <td width="20%" class="text-center"> L2</td>
  110. <td width="20%" class="text-center"> L3</td>
  111. <td width="20%" class="text-left"></td>
  112. </tr>
  113. <tr>
  114. <td width="20%" class="text-right v-middle">UL-L</td>
  115. <td width="20%"><input class="w-full form-control " name="l12" value="" readonly></td>
  116. <td width="20%"><input class="w-full form-control " name="l23" value="" readonly></td>
  117. <td width="20%"><input class="w-full form-control " name="l31" value="" readonly></td>
  118. <td width="20%" class="text-left v-middle">V</td>
  119. </tr>
  120. <tr>
  121. <td width="20%" class="text-right v-middle">UL-N</td>
  122. <td width="20%"><input class="w-full form-control " name="l1n" value="" readonly></td>
  123. <td width="20%"><input class="w-full form-control " name="l2n" value="" readonly></td>
  124. <td width="20%"><input class="w-full form-control " name="l3n" value="" readonly></td>
  125. <td width="20%" class="text-left v-middle">V</td>
  126. </tr>
  127. <tr>
  128. <td width="20%" class="text-right v-middle">电流</td>
  129. <td width="20%"><input class="w-full form-control " name="al1" value="" readonly></td>
  130. <td width="20%"><input class="w-full form-control " name="al2" value="" readonly></td>
  131. <td width="20%"><input class="w-full form-control " name="al3" value="" readonly></td>
  132. <td width="20%" class="text-left v-middle">A</td>
  133. </tr>
  134. <tr>
  135. <td width="20%" class="text-left"></td>
  136. <td width="20%" class="text-left"></td>
  137. </tr>
  138. </table>
  139. </div>
  140. </div>
  141. </div>
  142. <div class="col-md-6 col-lg-4 text-center" id="colMain">
  143. <div class="panel panel-default">
  144. <div class="panel-heading v-middle"><span class="text-nowrap">{{.DeviceName}}[ID:{{.DeviceId}}]</span>
  145. </div>
  146. <div class="panel-body no-padder" id="mainChart" style="height:350px;">
  147. </div>
  148. </div>
  149. </div>
  150. <div class="col-md-6 col-lg-4 text-center" id="colEng">
  151. <div class="panel panel-default">
  152. <div class="panel-heading v-middle"><span class="">发动机</span></div>
  153. <div class="panel-body no-padder" style="height: 350px">
  154. <table class="table">
  155. <tr>
  156. <td width="30%" class="text-right bottom v-middle v-middle">发动机转速</td>
  157. <td width="50%"><input class="w-full form-control " name="rpm" value="" readonly></td>
  158. <td width="20%" class="text-left v-middle">r/min</td>
  159. </tr>
  160. <tr>
  161. <td width="30%" class="text-right bottom v-middle v-middle">发动机温度</td>
  162. <td width="50%"><input class="w-full form-control " name="etemp" value="" readonly></td>
  163. <td width="20%" class="text-left v-middle">℃</td>
  164. </tr>
  165. <tr>
  166. <td width="30%" class="text-right v-middle">机油压力</td>
  167. <td width="50%"><input class="w-full form-control " name="opress" value=" " readonly></td>
  168. <td width="20%" class="text-left v-middle">bar</td>
  169. </tr>
  170. <tr>
  171. <td width="30%" class="text-right v-middle">燃油位</td>
  172. <td width="50%"><input class="w-full form-control " name="flevel" value="" readonly></td>
  173. <td width="20%" class="text-left v-middle">%</td>
  174. </tr>
  175. <tr>
  176. <td width="30%" class="text-right v-middle">电池电压</td>
  177. <td width="50%"><input class="w-full form-control " id="vbat" name="vbat" value="" readonly>
  178. </td>
  179. <td width="20%" class="text-left v-middle">V</td>
  180. </tr>
  181. <tr>
  182. <td width="30%" class="text-right v-middle">充电机电压</td>
  183. <td width="50%"><input class="w-full form-control " name="vbyc" value="" readonly></td>
  184. <td width="20%" class="text-left v-middle">V</td>
  185. </tr>
  186. </table>
  187. </div>
  188. </div>
  189. </div>
  190. <div class="col-md-6 col-lg-4 text-center" id="colGs">
  191. <div class="panel panel-default ">
  192. <div class="panel-heading text-center v-middle"><span class="">机组信息</span></div>
  193. <div class="panel-body no-padder" style="height:350px;">
  194. <table class="table">
  195. <tr>
  196. <td width="30%" class="text-right v-middle">机组运行时间</td>
  197. <td width="50%"><input class="w-full form-control " name="gsrntm" value="" readonly></td>
  198. <td width="20%" class="text-left v-middle">时</td>
  199. </tr>
  200. <tr>
  201. <td width="30%" class="text-right v-middle">累计开机次数</td>
  202. <td width="50%"><input class="w-full form-control " name="bttm" value="" readonly></td>
  203. <td width="20%" class="text-left v-middle"></td>
  204. </tr>
  205. <tr>
  206. <td width="30%" class="text-right v-middle">维护倒计时</td>
  207. <td width="50%"><input class="w-full form-control " name="mtctdwn" value="" readonly></td>
  208. <td width="20%" class="text-left v-middle">时</td>
  209. </tr>
  210. <tr>
  211. <td width="30%" class="text-right v-middle">累计电能</td>
  212. <td width="50%"><input class="w-full form-control " name="sumengy" value="" readonly></td>
  213. <td width="20%" class="text-left v-middle">KWh</td>
  214. </tr>
  215. <tr>
  216. <td width="30%" class="text-right v-middle"></td>
  217. <td width="30%" class="text-right v-middle"></td>
  218. <td width="20%" class="text-left v-middle"></td>
  219. </tr>
  220. </table>
  221. </div>
  222. </div>
  223. </div>
  224. <div class="col-md-6 col-lg-4 text-center" id="colStatus">
  225. <div class="panel panel-default">
  226. <div class="panel-heading text-center v-middle"><span class="">状态</span></div>
  227. <div class="panel-body no-padder" style="height:350px;">
  228. <table class="table" style="margin-bottom: 10px">
  229. <tr>
  230. <td width="20%"><img src="/static/images/mains.png" class="img-rounded v-bottom img-status"></td>
  231. <td width="20%">
  232. <div><a class="btn btn-io btn-info gsenableBtn ">I/O</a></div>
  233. <div><img src="/static/images/on-off.png" class="img-rounded v-bottom img-status"></div>
  234. </td>
  235. <td width="20%"><img src="/static/images/load.png" class="img-rounded v-bottom img-status"></td>
  236. <td width="20%">
  237. <div><a class="btn btn-io btn-info msenableBtn v-middle">I/O</a></div>
  238. <div><img src="/static/images/on-off.png" class="img-rounded v-bottom img-status"></div>
  239. </td>
  240. <td width="20%"><img src="/static/images/generator.png" class="img-rounded v-bottom img-status"></td>
  241. </tr>
  242. <tr>
  243. <td width="20%"><a id="mled" class="fa fa-circle text-danger v-top"></a></td>
  244. <td width="20%"><a id="mio" class="fa fa-circle text-danger v-top"></a></td>
  245. <td width="20%"></td>
  246. <td width="20%"><a id="gsio" class="fa fa-circle text-danger v-top"></a></td>
  247. <td width="20%"><a id="gsled" class="fa fa-circle text-danger v-top"></a></td>
  248. </tr>
  249. <tr>
  250. <td width="20%"><a id="stop" class="fa fa-circle-o text-success v-bottom "></a></td>
  251. <td width="20%"><a id="manual" class="fa fa-circle-o text-success v-bottom "></a></td>
  252. <td width="20%"><a id="auto" class="fa fa-circle-o text-success v-bottom "></a></td>
  253. <td width="20%"><a id="test" class="fa fa-circle-o text-success v-bottom "></a></td>
  254. <td width="20%"><a id="start" class="fa fa-circle-o text-success v-bottom "></a></td>
  255. </tr>
  256. <tr>
  257. <td width="20%" style="padding-left: 4px;"><a class="btn btn-status btn-danger stopBtn btn-operate">停止</a></td>
  258. <td width="20%"><a class="btn btn-status btn-success manualBtn btn-operate">手动</a></td>
  259. <td width="20%"><a class="btn btn-status btn-success autoBtn btn-operate">自动</a></td>
  260. <td width="20%"><a class="btn btn-status btn-success testBtn btn-operate">测试</a></td>
  261. <td width="20%" style="padding-right: 4px;"><a class="btn btn-status btn-success startBtn btn-operate">启动</a></td>
  262. </tr>
  263. </table>
  264. <div style="height: 20px;">
  265. <div id="delay_alert"><span style="color: #a94442; height: 15px;"></span></div>
  266. </div>
  267. <div class="m-sm">
  268. <input class="form-control " name="warn" value="" readonly
  269. style="height: 60px;width:100%;text-align: center;border-color: #CC0000">
  270. </div>
  271. </div>
  272. </div>
  273. </div>
  274. <div class="col-md-6 col-lg-4 text-center" id="colMPw">
  275. <div class="panel panel-default">
  276. <div class="panel-heading v-middle"><span class="">市电</span></div>
  277. <div class="panel-body no-padder" style="height: 350px">
  278. <table class="table">
  279. <tr>
  280. <td width="20%" class="text-right v-middle">状态</td>
  281. <td width="20%"><input class="w-full form-control " id="mstat" value="" readonly></td>
  282. <td width="20%" class="text-right v-middle">I/O</td>
  283. <td width="20%"><input class="w-full form-control " id="mioStatus" value="" readonly></td>
  284. <td width="20%" class="text-left"></td>
  285. </tr>
  286. <tr>
  287. <td width="20%" class="text-right"></td>
  288. <td width="20%" class="text-center"> L1</td>
  289. <td width="20%" class="text-center"> L2</td>
  290. <td width="20%" class="text-center"> L3</td>
  291. <td width="20%" class="text-left"></td>
  292. </tr>
  293. <tr>
  294. <td width="20%" class="text-right v-middle">UL-L</td>
  295. <td width="20%"><input class="w-full form-control " name="ml12" value="" readonly></td>
  296. <td width="20%"><input class="w-full form-control " name="ml23" value="" readonly></td>
  297. <td width="20%"><input class="w-full form-control " name="ml31" value="" readonly></td>
  298. <td width="20%" class="text-left v-middle">V</td>
  299. </tr>
  300. <tr>
  301. <td width="20%" class="text-right v-middle">UL-N</td>
  302. <td width="20%"><input class="w-full form-control " name="ml1n" value="" readonly></td>
  303. <td width="20%"><input class="w-full form-control " name="ml2n" value="" readonly></td>
  304. <td width="20%"><input class="w-full form-control " name="ml3n" value="" readonly></td>
  305. <td width="20%" class="text-left v-middle">V</td>
  306. </tr>
  307. <tr>
  308. <td width="20%" class="text-right v-middle">频率</td>
  309. <td width="20%"><input class="w-full form-control " name="mfqcy" value="" readonly></td>
  310. <td width="20%" class="text-left v-middle">HZ</td>
  311. <td width="20%" class="text-left"></td>
  312. <td width="20%" class="text-left"></td>
  313. </tr>
  314. </table>
  315. </div>
  316. </div>
  317. </div>
  318. </div>
  319. </div>
  320. <script src="../../lib/app/js/app.src.js"></script>
  321. <script src="../../lib/webo/js/ui.js"></script>
  322. <script src="../../lib/echart/echarts.min.js"></script>
  323. <script src="../../lib/webo/js/gauge.js"></script>
  324. <script src="http://api.map.baidu.com/api?v=2.0&ak=55Rsk2ZW0d6xqrr8XfYT8QHB"></script>
  325. <script>
  326. var singleMap
  327. function showResponse(resp) {
  328. if (resp.ret == "success") {
  329. HideTopModal()
  330. refreshContent()
  331. } else {
  332. if (resp.ret == "duplicated_value") {
  333. showError("保存失败! 重复的" + resp.result + "。")
  334. } else {
  335. showError("保存失败!")
  336. }
  337. }
  338. }
  339. var refreshContent
  340. function setInputValue(data) {
  341. // console.log("input", $("input"))
  342. // $("#status").text(data["status"])
  343. $("#gsstatus").val(getStatus(data["gsstat"]))
  344. $("input").each(function () {
  345. $input = $(this)
  346. // console.log($input, $input.attr("name"), data)
  347. key = $input.attr("name")
  348. if (key in data) {
  349. $input.val(data[key])
  350. } else {
  351. }
  352. })
  353. }
  354. function refreshData() {
  355. $.post("/genset/status/params",
  356. {
  357. sn: "{{.DeviceId}}"
  358. },
  359. function (data, status) {
  360. if (data == "need_login") {
  361. window.location.href = "/login"
  362. clearInterval(refreshTimerId)
  363. return
  364. }
  365. if (data.status == "online") {
  366. $("#status").html("就绪")
  367. } else if (data.status == "running") {
  368. $("#status").html("运行")
  369. } else if (data.status == "alarm") {
  370. $("#status").html("告警")
  371. } else {
  372. $("#status").html("待机")
  373. }
  374. ioSatus(data)
  375. btnLed(data)
  376. statusLed(data)
  377. setInputValueMstat(data)
  378. setInputValue(data)
  379. setGaugeValue(data)
  380. })
  381. }
  382. function showMap(x, y) {
  383. singleMap = new BMap.Map("positionContent"); // 创建地图实例
  384. singleMap.addControl(new BMap.NavigationControl());
  385. singleMap.addControl(new BMap.ScaleControl());
  386. singleMap.addControl(new BMap.OverviewMapControl());
  387. singleMap.addControl(new BMap.MapTypeControl());
  388. }
  389. function setLocation(x, y) {
  390. var point = new BMap.Point(x, y); // 创建点坐标
  391. var convertor = new BMap.Convertor();
  392. var pointArr = [];
  393. pointArr.push(point);
  394. convertor.translate(pointArr, 1, 5, function (data) {
  395. if (data.status === 0) {
  396. singleMap.centerAndZoom(data.points[0], 15);
  397. var marker = new BMap.Marker(data.points[0]); // 创建标注
  398. singleMap.addOverlay(marker);
  399. singleMap.panTo(data.points[0], 15)
  400. }
  401. })
  402. }
  403. var statusMap = {
  404. 0: "待机",
  405. 1: "预热",
  406. 2: "燃油输出",
  407. 3: "起动",
  408. 4: "起动间隔",
  409. 5: "安全延时",
  410. 6: "开机怠速",
  411. 7: "高速暖机",
  412. 8: "等待帯载",
  413. 9: "正常运行",
  414. 10: "高速散热",
  415. 11: "停机怠速",
  416. 12: "得电停机",
  417. 13: "等待停稳",
  418. 14: "过停稳",
  419. 15: "停机失败",
  420. // 科迈
  421. 19: "起始",
  422. 20: "未预备",
  423. 21: "预起动",
  424. 22: "起动中",
  425. 23: "间歇",
  426. 24: "起动中",
  427. 25: "运行中",
  428. 26: "已合闸",
  429. 27: "停机",
  430. 28: "停机",
  431. 29: "候命中",
  432. 30: "冷却中",
  433. 31: "应急手动",
  434. 32: "ManIdle",
  435. 33: "市电合闸",
  436. 34: "市电故障",
  437. 35: "市电故障",
  438. 36: "岛运行",
  439. 37: "市电回复",
  440. 38: "断路全分",
  441. 39: "不计时",
  442. 40: "MCB 合闸",
  443. 41: "恢复延时",
  444. 42: "市并时间",
  445. 43: "怠速运行",
  446. 44: "最低稳时",
  447. 45: "最高稳时",
  448. 46: "后冷却泵",
  449. 47: "GCB开",
  450. 48: "停机阀",
  451. 49: "起动延时",
  452. 50: "(1Ph)",
  453. 51: "(3PD)",
  454. 52 : "(3PY)",
  455. 53: "MRS 模式"
  456. }
  457. function getStatus(code) {
  458. // console.log("code", code, statusMap)
  459. if (code in statusMap) {
  460. return statusMap[code]
  461. }
  462. // console.log(statusMap[code])
  463. return "未联网"
  464. }
  465. var mstatMap = {
  466. 0: "正常",
  467. 1: "正常延时",
  468. 2: "异常",
  469. 3: "异常延时",
  470. 4: "起动间隔",
  471. }
  472. function getMstatus(code) {
  473. // console.log("code", code, mstatMap)
  474. if (code in mstatMap) {
  475. return mstatMap[code]
  476. }
  477. // console.log(mstatMap[code])
  478. return "未联网"
  479. }
  480. function statusLed(data){
  481. switch (data.gsstat)
  482. {
  483. case 0:
  484. $("#gsled").removeClass("fa fa-circle text-danger v-top").addClass("fa fa-circle-o text-success v-top");
  485. break;
  486. case 9:case 10:case 11:case 13:case 15:
  487. $("#gsled").removeClass("fa fa-circle text-danger v-top").addClass("fa fa-circle text-success v-top");
  488. break;
  489. default:
  490. $("#gsled").addClass("fa fa-circle text-danger v-top");
  491. }
  492. if(data.pwload == 1){
  493. $("#gsio").removeClass("fa fa-circle text-danger v-top").addClass("fa fa-circle text-success v-top")
  494. }else {
  495. $("#gsio").removeClass("fa fa-circle text-success v-top").addClass("fa fa-circle text-danger v-top")
  496. }
  497. if(data.cynormal == 1){
  498. $("#mled").removeClass("fa fa-circle text-danger v-top").addClass("fa fa-circle text-success v-top")
  499. }else {
  500. $("#mled").removeClass("fa fa-circle text-success v-top").addClass("fa fa-circle text-danger v-top")
  501. }
  502. if(data.mload == 1){
  503. $("#mio").removeClass("fa fa-circle text-danger v-top").addClass("fa fa-circle text-success v-top")
  504. }else {
  505. $("#mio").removeClass("fa fa-circle text-success v-top").addClass("fa fa-circle text-danger v-top")
  506. }
  507. }
  508. function ioSatus(data){
  509. switch (data.pwload)
  510. {
  511. case 0:
  512. $("#fioStatus").val("分闸");
  513. break;
  514. case 1:
  515. $("#fioStatus").val("合闸");
  516. break;
  517. default :$("#fioStatus").val("")
  518. }
  519. switch (data.mload)
  520. {
  521. case 0:
  522. $("#mioStatus").val("分闸");
  523. break;
  524. case 1:
  525. $("#mioStatus").val("合闸");
  526. break;
  527. default :$("#mioStatus").val("")
  528. }
  529. }
  530. function btnLed(data) {
  531. if(data.testmde == 1){
  532. $("#test").removeClass("fa fa-circle-o text-success v-bottom").addClass("fa fa-circle text-success v-bottom")
  533. $("#gsModel").val("测试")
  534. }else {
  535. $("#test").removeClass("fa fa-circle text-success v-bottom").addClass("fa fa-circle-o text-success v-bottom")
  536. }
  537. if(data.automde == 1){
  538. $("#auto").removeClass("fa fa-circle-o text-success v-bottom").addClass("fa fa-circle text-success v-bottom")
  539. $("#gsModel").val("自动")
  540. }else {
  541. $("#auto").removeClass("fa fa-circle text-success v-bottom").addClass("fa fa-circle-o text-success v-bottom")
  542. }
  543. if(data.fqcy == 0){
  544. $("#stop").removeClass("fa fa-circle-o text-success v-bottom").addClass("fa fa-circle text-success v-bottom")
  545. $("#gsModel").val("停止")
  546. }else {
  547. $("#stop").removeClass("fa fa-circle text-success v-bottom").addClass("fa fa-circle-o text-success v-bottom")
  548. }
  549. if(data.maamde == 1){
  550. $("#manual").removeClass("fa fa-circle-o text-success v-bottom").addClass("fa fa-circle text-success v-bottom")
  551. $("#gsModel").val("手动")
  552. }else {
  553. $("#manual").removeClass("fa fa-circle text-success v-bottom").addClass("fa fa-circle-o text-success v-bottom")
  554. }
  555. if(data.fqcy > 0){
  556. $("#start").removeClass("fa fa-circle-o text-success v-bottom").addClass("fa fa-circle text-success v-bottom")
  557. $("#gsModel").val("启动")
  558. }else {
  559. $("#start").removeClass("fa fa-circle text-success v-bottom").addClass("fa fa-circle-o text-success v-bottom")
  560. }
  561. }
  562. function setInputValueMstat(data) {
  563. // console.log("input", $("input"))
  564. // $("#status").text(data["status"])
  565. $("#mstat").val(getMstatus(data["mstat"]))
  566. $("input").each(function () {
  567. $input = $(this)
  568. // console.log($input, $input.attr("name"), data)
  569. key = $input.attr("name")
  570. if (key in data) {
  571. $input.val(data[key])
  572. } else {
  573. }
  574. })
  575. }
  576. var $mainRow = $("#mainRow")
  577. var $colMain = $("#colMain")
  578. var $colStatus = $("#colStatus")
  579. var $colGen = $("#colGen")
  580. var $colEng = $("#colEng")
  581. var $colMPw = $("#colMPw")
  582. var $colGs = $("#colGs")
  583. function layout1Col() {
  584. cols = [$colMain, $colStatus, $colGen, $colEng, $colMPw, $colGs]
  585. for (i in cols) {
  586. $mainRow.append(cols[i])
  587. cols[i].removeClass("no-padder")
  588. }
  589. }
  590. function layout3Col() {
  591. cols = [$colGen, $colMain, $colEng, $colGs, $colStatus, $colMPw]
  592. for (i in cols) {
  593. $mainRow.append(cols[i])
  594. cols[i].removeClass("no-padder")
  595. }
  596. $colMain.addClass("no-padder")
  597. $colStatus.addClass("no-padder")
  598. }
  599. function layout2Col() {
  600. cols = [$colMain, $colGen, $colStatus, $colEng, $colMPw, $colGs]
  601. for (i in cols) {
  602. $mainRow.append(cols[i])
  603. cols[i].removeClass("no-padder")
  604. }
  605. $colGen.addClass("no-padder")
  606. $colEng.addClass("no-padder")
  607. $colGs.addClass("no-padder")
  608. }
  609. function layout() {
  610. initGauge(document.getElementById("mainChart"))
  611. setGaugeSize();
  612. setGaugeRatePower({{.RatePower}})
  613. if ($(document).height() > $(document).width()
  614. || $(document).width() < 991) {
  615. layout1Col()
  616. return
  617. }
  618. if ($(document).width() > 1199) {
  619. layout3Col()
  620. return
  621. }
  622. layout2Col()
  623. }
  624. $(function () {
  625. {{if eq .CtxRole "role_frimadmin" "role_admin" "role_sysadmin" }}
  626. $(".stopBtn").on("click", function () {
  627. $(".stopBtn").text("停止")
  628. $.post("/genset/status/operate", {
  629. sn: "{{.DeviceId}}",
  630. operate: "stop"
  631. },
  632. function (data, status) {
  633. })
  634. })
  635. $(".manualBtn").on("click", function () {
  636. $(".manualBtn").text("手动")
  637. $.post("/genset/status/operate", {
  638. sn: "{{.DeviceId}}",
  639. operate: "manual"
  640. },
  641. function (data, status) {
  642. })
  643. })
  644. $(".autoBtn").on("click", function () {
  645. $(".autoBtn").text("自动")
  646. $.post("/genset/status/operate", {
  647. sn: "{{.DeviceId}}",
  648. operate: "auto"
  649. },
  650. function (data, status) {
  651. })
  652. })
  653. $(".testBtn").on("click", function () {
  654. $(".testBtn").text("测试")
  655. $.post("/genset/status/operate", {
  656. sn: "{{.DeviceId}}",
  657. operate: "test"
  658. },
  659. function (data, status) {
  660. })
  661. })
  662. $(".startBtn").on("click", function () {
  663. $(".startBtn").text("启动")
  664. $.post("/genset/status/operate", {
  665. sn: "{{.DeviceId}}",
  666. operate: "manual"
  667. },
  668. function (data, status) {
  669. })
  670. setTimeout(function () {
  671. $.post("/genset/status/operate", {
  672. sn: "{{.DeviceId}}",
  673. operate: "start"
  674. },
  675. function (data, status) {
  676. })
  677. }, 4000)
  678. })
  679. $(".gsenableBtn").on("click", function () {
  680. $(".gsenableBtn").text("I/O")
  681. $.post("/genset/status/operate", {
  682. sn: "{{.DeviceId}}",
  683. operate: "gsenable"
  684. },
  685. function (data, status) {
  686. })
  687. })
  688. $(".gsdisableBtn").on("click", function () {
  689. $(".gsdisableBtn").text("I/O")
  690. $.post("/genset/status/operate", {
  691. sn: "{{.DeviceId}}",
  692. operate: "gsdisabler"
  693. },
  694. function (data, status) {
  695. })
  696. })
  697. $(".msenableBtn").on("click", function () {
  698. $(".msenableBtn").text("I/O")
  699. $.post("/genset/status/operate", {
  700. sn: "{{.DeviceId}}",
  701. operate: "msenable"
  702. },
  703. function (data, status) {
  704. })
  705. })
  706. $(".msdisableBtn").on("click", function () {
  707. $(".msdisableBtn").text("I/O")
  708. $.post("/genset/status/operate", {
  709. sn: "{{.DeviceId}}",
  710. operate: "msdisable"
  711. },
  712. function (data, status) {
  713. })
  714. })
  715. $("#initSampleBtn").on("click", function () {
  716. $.post("/genset/status/operate", {
  717. sn: "{{.DeviceId}}",
  718. operate: "initsample"
  719. },
  720. function (data, status) {
  721. })
  722. })
  723. $("#deleteSampleBtn").on("click", function () {
  724. $.post("/genset/status/operate", {
  725. sn: "{{.DeviceId}}",
  726. operate: "deletesample"
  727. },
  728. function (data, status) {
  729. })
  730. })
  731. {{else}}
  732. $(".btn-operate").off().on("click", function () {
  733. DelayAlert.show("需要管理员权限!")
  734. });
  735. {{end}}
  736. layout()
  737. $(window).resize(function () {
  738. layout()
  739. });
  740. refreshData()
  741. DelayAlert.init({selector:"#delay_alert"});
  742. // 定时刷新数据
  743. refreshTimerId = setInterval(refreshData, 5000);
  744. })
  745. $(function () {
  746. $(".wb-hide-topmodal").click(function () {
  747. HideTopModal({url:"/ui/list/genset"});
  748. })
  749. })
  750. </script>
  751. </body>
  752. </html>