CargoRe.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>集控室管理</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
  8. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  9. <meta http-equiv="pragma" content="no-cache">
  10. <meta http-equiv="Cache" content="no-cache">
  11. <meta http-equiv="cache-control" content="no-cache, must-revalidate">
  12. <meta http-equiv="expires" content="0">
  13. <meta name="viewport"
  14. content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  15. <link rel="stylesheet" href="../layui/css/layui.css" media="all">
  16. <link rel="stylesheet" href="../css/element.css">
  17. <link rel="stylesheet" href="../css/style.css">
  18. <link rel="stylesheet" href="../css/base.css">
  19. <script src="../layui/layui.js" type="text/javascript" charset="utf-8"></script>
  20. <script src="../js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
  21. <script src="../js/echarts.min.js" type="text/javascript" charset="utf-8"></script>
  22. <script type="text/javascript">
  23. document.write('<script src="../js/yz/init.js?id='+(new Date().getTime())+'" type="text/javascript" charset="utf-8"><\/script>');
  24. document.write('<script src="../js/yz/shipLi.js?id='+(new Date().getTime())+'" type="text/javascript" charset="utf-8"><\/script>');
  25. document.write('<script src="../js/yz/ajax.js?id='+(new Date().getTime())+'" type="text/javascript" charset="utf-8"><\/script>');
  26. document.write('<script src="../js/yz/configuration.js?id='+(new Date().getTime())+'" type="text/javascript" charset="utf-8"><\/script>');
  27. </script>
  28. </head>
  29. <script>
  30. checkLogin();
  31. </script>
  32. <style type="text/css">
  33. * {
  34. margin: 0;
  35. padding: 0;
  36. box-sizing: border-box;
  37. }
  38. body {
  39. height: 100vh;
  40. color: #fff;
  41. overflow: auto;
  42. background-color: #040d32;
  43. }
  44. ._day{
  45. height: 28px;
  46. font-size: 14px;
  47. line-height: 28px;
  48. width: 60px;
  49. cursor: pointer;
  50. border-radius: 4px;
  51. text-align: center;
  52. background-color: #5793f3;
  53. }
  54. .layui-nav .layui-nav-item{
  55. cursor: pointer;
  56. line-height: 45px;
  57. }
  58. .layui-nav .layui-nav-item .layui-nav-child{
  59. top:50px;
  60. }
  61. .layui-nav .layui-nav-item .layui-nav-child dd{
  62. cursor: pointer;
  63. }
  64. .layui-nav .layui-this:after{
  65. background-color: #5793f3;
  66. }
  67. </style>
  68. <body>
  69. <div style="height:60px;padding:7.5px;">
  70. <ul class="layui-nav yz-tab" style="background-color: #082041;">
  71. <li class="layui-nav-item layui-this">
  72. <a><span style="font-size: 15px;">左液货舱</span><span class="layui-nav-more"></span></a>
  73. <dl class="layui-nav-child">
  74. <dd data-open="onePost"><a>液位</a></dd>
  75. <dd data-open="twoPost"><a>压力</a></dd>
  76. <dd data-open="nintPost" style="display: none;"><a>容量</a></dd>
  77. <dd data-open="thrPost"><a>上部温度</a></dd>
  78. <dd data-open="forPost"><a>中部温度</a></dd>
  79. <dd data-open="fivPost"><a>底部温度</a></dd>
  80. </dl>
  81. </li>
  82. <li class="layui-nav-item">
  83. <a><span style="font-size: 15px;">右液货舱</span><span class="layui-nav-more"></span></a>
  84. <dl class="layui-nav-child">
  85. <dd data-open="sixPost"><a>液位</a></dd>
  86. <dd data-open="sevPost"><a>压力</a></dd>
  87. <dd data-open="tentPost" style="display: none;"><a>容量</a></dd>
  88. <dd data-open="eigPost"><a>上部温度</a></dd>
  89. <dd data-open="ninPost"><a>中部温度</a></dd>
  90. <dd data-open="tenPost"><a>底部温度</a></dd>
  91. </dl>
  92. </li>
  93. <li class="layui-nav-item yBeng">
  94. <a><span style="font-size: 15px;" class="wyGui">货油泵</span><span class="layui-nav-more"></span></a>
  95. <dl class="layui-nav-child">
  96. <dd data-open="onetPost"><a>前轴温度</a></dd>
  97. <dd data-open="twotPost"><a>后轴温度</a></dd>
  98. <dd data-open="thrtPost"><a>泵壳温度</a></dd>
  99. <dd data-open="fortPost"><a>舱壁轴填料函温度</a></dd>
  100. </dl>
  101. </li>
  102. <li class="layui-nav-item ydBeng">
  103. <a><span style="font-size: 15px;">压载泵、淡水舱</span><span class="layui-nav-more"></span></a>
  104. <dl class="layui-nav-child">
  105. <dd data-open="onetPost"><a>左液位</a></dd>
  106. <dd data-open="twotPost"><a>右液位</a></dd>
  107. <dd data-open="thrtPost"><a>左容量</a></dd>
  108. <dd data-open="fortPost"><a>右容量</a></dd>
  109. </dl>
  110. </li>
  111. <li class="layui-nav-item">
  112. <a>
  113. <span class="zgTxt" style="font-size: 15px;">总管压力</span>
  114. <span class="layui-nav-more"></span>
  115. </a>
  116. <dl class="layui-nav-child">
  117. <dd data-open="fiftPost"><a class="zgTxt">总管压力</a></dd>
  118. </dl>
  119. </li>
  120. <li class="layui-nav-item yBeng">
  121. <a><span style="font-size: 15px;" class="ogsTxt">可燃气体</span><span class="layui-nav-more"></span></a>
  122. <dl class="layui-nav-child">
  123. <dd data-open="sixtPost"><a class="ogsTxt">可燃气体</a></dd>
  124. </dl>
  125. </li>
  126. <li class="layui-nav-item" id="pumpIO">
  127. <a><span class="jCy" style="font-size: 15px;">泵进出口压力</span><span class="layui-nav-more"></span></a>
  128. <dl class="layui-nav-child">
  129. <dd data-open="sevtPost"><a>进口压力</a></dd>
  130. <dd data-open="eigtPost"><a>出口压力</a></dd>
  131. </dl>
  132. </li>
  133. </ul>
  134. </div>
  135. <div class="search_ flex justify-center align-center">
  136. <div class="_day" data-num="-1">前一天</div>
  137. <input type="date" class="startDate text-center margin-lr" style="width: 140px;padding: 0;"/>
  138. <div class="_day" data-num="1">后一天</div>
  139. </div>
  140. <div class="yz_clm15" style="height: calc(100% - 95px);">
  141. <div class="yz_clm4 reportli">
  142. <div class="Sense">
  143. <div class="yz_title">1#左液货舱压力</div>
  144. <div id="myChart1" style="height: calc(100% - 30px);">
  145. </div>
  146. </div>
  147. </div>
  148. <div class="yz_clm4 reportli">
  149. <div class="Sense">
  150. <div class="yz_title">2#左液货舱压力</div>
  151. <div id="myChart2" style="height: calc(100% - 30px);">
  152. </div>
  153. </div>
  154. </div>
  155. <div class="yz_clm4 reportli">
  156. <div class="Sense">
  157. <div class="yz_title">3#左液货舱压力</div>
  158. <div id="myChart3" style="height: calc(100% - 30px);">
  159. </div>
  160. </div>
  161. </div>
  162. <div class="yz_clm4 reportli">
  163. <div class="Sense">
  164. <div class="yz_title">4#左液货舱压力</div>
  165. <div id="myChart4" style="height: calc(100% - 30px);">
  166. </div>
  167. </div>
  168. </div>
  169. <div class="yz_clm4 reportli">
  170. <div class="Sense">
  171. <div class="yz_title">5#左液货舱压力</div>
  172. <div id="myChart5" style="height: calc(100% - 30px);">
  173. </div>
  174. </div>
  175. </div>
  176. <div class="yz_clm4 reportli">
  177. <div class="Sense">
  178. <div class="yz_title">左污液舱压力</div>
  179. <div id="myChart6" style="height: calc(100% - 30px);">
  180. </div>
  181. </div>
  182. </div>
  183. <div class="yz_clm4 reportli" style="display: none;">
  184. <div class="Sense">
  185. <div class="yz_title"></div>
  186. <div id="myChart7" style="height: calc(100% - 30px);">
  187. </div>
  188. </div>
  189. </div>
  190. <div class="yz_clm4 reportli" style="display: none;">
  191. <div class="Sense">
  192. <div class="yz_title"></div>
  193. <div id="myChart8" style="height: calc(100% - 30px);">
  194. </div>
  195. </div>
  196. </div>
  197. </div>
  198. </body>
  199. <script>
  200. var _Tok = JSON.parse(localStorage.getItem("_yz_TT")).yzTok;
  201. var _ship = localStorage.getItem("shipSn"),_shipMmsi = undefined;
  202. var _XAxis = [],_myChart = [],nowCar = "onePost",nowTime = null;
  203. var _ChartU = ["myChart1","myChart2","myChart3","myChart4","myChart5","myChart6","myChart7","myChart8"];
  204. var _eCchart = {},_eChartTxt = {};
  205. layui.use(['layer', 'form','element'], function(){
  206. var layer = layui.layer,
  207. element = layui.element,
  208. $ = layui.jquery;
  209. })
  210. window.addEventListener('message',(data)=>{
  211. initFn();
  212. })
  213. $(document).ready(function() {
  214. initFn();
  215. });
  216. function initFn(){
  217. _ship = localStorage.getItem("shipSn");
  218. let _shipdata = ShipData();
  219. _shipMmsi = _shipdata.filter(item => item.sn == _ship)[0].mmsi;
  220. let _Config = Config((_ship == "381001400"||_ship == "480000618"?"381001400":"382001400"),_ship)["Cargo"];
  221. _eCchart = _Config["eCchart"];
  222. _eChartTxt = _Config["eChartTxt"];
  223. let _sta = _Config["eCchartSta"];
  224. $("#pumpIO").css("display",_sta[7]);
  225. $(".yz-tab dd[data-open='nintPost']").css("display",_sta[0]);
  226. $(".yz-tab dd[data-open='tentPost']").css("display",_sta[0]);
  227. $(".yz-tab dd[data-open='nintPost']").css("display",_sta[0]);
  228. $(".yz-tab dd[data-open='tentPost']").css("display",_sta[0]);
  229. $(".yz-tab dd[data-open='twotPost']").css("display",_sta[9]);
  230. $(".yz-tab dd[data-open='thrtPost']").css("display",_sta[9]);
  231. $(".yz-tab dd[data-open='fortPost']").css("display",_sta[9]);
  232. $(".yz-tab .yBeng").css("display",_sta[1]);
  233. $(".yz-tab .ydBeng").css("display",_sta[6]);
  234. $(".yz-tab .zgTxt").text(_sta[2]);
  235. $(".yz-tab .jCy").text(_sta[3]);
  236. $(".yz-tab .ogsTxt").text(_sta[8]);
  237. $(".yz-tab .wyGui").text(_sta[10]);
  238. $(".yz-tab dd[data-open='onetPost'] a").text(_sta[11]);
  239. $(".yz-tab dd[data-open='sevtPost'] a").text(_sta[4]);
  240. $(".yz-tab dd[data-open='eigtPost'] a").text(_sta[5]);
  241. _myChart = [];
  242. nowCar = "onePost";
  243. $(".yz-tab li").removeClass("layui-this").eq(0).addClass("layui-this");
  244. $(".yz-tab li dd").removeClass("layui-this");
  245. $(".yz-tab dd[data-open='onePost']").addClass("layui-this");
  246. $(".startDate").val(getTime(new Date())[0]);
  247. setXAxis();
  248. setEcharts(nowCar);
  249. }
  250. function setEcharts(_key){
  251. var _sta = 0;
  252. yzkj.load("load1");
  253. setTimeout(()=>{
  254. let _obj = _eCchart[_key];
  255. nowTime = $(".startDate").val().replace(/\//g, '-');
  256. $(".reportli").css("display","block");
  257. if(_obj.length == 8){
  258. $(".reportli").removeClass("yz_clm4").addClass("yz_clm3");
  259. }else if(_obj.length == 7){
  260. $(".reportli").removeClass("yz_clm4").addClass("yz_clm3");
  261. $(".reportli").eq(7).css("display","none");
  262. }else if(_obj.length < 7){
  263. $(".reportli").removeClass("yz_clm3").addClass("yz_clm4");
  264. $(".reportli").eq(6).css("display","none");
  265. $(".reportli").eq(7).css("display","none");
  266. if(_obj.length == 5){
  267. $(".reportli").eq(5).css("display","none");
  268. }else if(_obj.length == 4){
  269. $(".reportli").eq(4).css("display","none");
  270. $(".reportli").eq(5).css("display","none");
  271. }
  272. }
  273. for(var i=0;i<_obj.length;i++){
  274. let _acb = _obj[i],_ind = i;
  275. $(".reportli .yz_title").eq(i).text(_eChartTxt[_key][i]);
  276. if(_shipMmsi==undefined){
  277. reportAjax({
  278. "_url":_acb[0],
  279. "_time": nowTime,
  280. "sn": _ship,
  281. // "sn":380001104,
  282. "callback":function(res){
  283. _sta += 1;
  284. setData({
  285. "_data":res,
  286. "_i":_ind,
  287. "_unit":_acb[1],
  288. "_ft":(_sta == _obj.length)?true:false,
  289. "range":_acb[2],
  290. "key": _acb[0]
  291. });
  292. }
  293. })
  294. }else{
  295. if(i == _obj.length - 1){
  296. yzkj.closeLoad("load1");
  297. }
  298. _myChart[_ind].setOption(setoption1([],_XAxis,_acb[1],_acb[2]));
  299. _myChart[_ind].resize();
  300. }
  301. }
  302. },100)
  303. }
  304. var reduceStr = { "528": 7.44,"529": 7.449,"530": 7.38,"531": 7.359,"532": 7.371,"533": 7.382,
  305. "534": 7.378,"535": 7.374,"536": 7.369,"537": 7.38,"538": 7.339,"539": 7.333 };
  306. function setData(_obj){
  307. let _newD = [];
  308. for(var i=0;i<6*24;i++){
  309. let _tim = getTime(new Date(new Date(nowTime+" 00:00:00").getTime() + (i*60*1000*10)));
  310. if(reduceStr[_obj.key] != undefined&&(_obj._data[_tim[0]+_tim[2]]) != undefined){
  311. _newD.push((parseFloat(reduceStr[_obj.key]) - parseFloat(_obj._data[_tim[0]+_tim[2]])).toFixed(2) || 0);
  312. }else{
  313. _newD.push(_obj._data[_tim[0]+_tim[2]] || 0);
  314. }
  315. }
  316. _myChart[_obj._i].setOption(setoption1(_newD,_XAxis,_obj._unit,_obj.range));
  317. _myChart[_obj._i].resize();
  318. if(_obj._ft){
  319. yzkj.closeLoad("load1");
  320. }
  321. }
  322. $(window).resize(function(){
  323. for(var i=0;i<_myChart.length;i++){
  324. _myChart[i].resize();
  325. }
  326. })
  327. $(".startDate").on("change","",function(e){
  328. setEcharts(nowCar);
  329. })
  330. $(".layui-nav-child").on("click","dd",function(){
  331. let _id = $(this).data("open");
  332. nowCar = _id;
  333. setEcharts(nowCar);
  334. $(this).parent().parent().addClass("layui-this").siblings().removeClass("layui-this");
  335. })
  336. $(".search_ ._day").on("click","",function(){
  337. let _id = parseInt($(this).data("num"));
  338. let _key = $(".startDate").val().replace(/\//g, '-');
  339. let _a = dayChange(_key,_id);
  340. if(_a != undefined){
  341. $(".startDate").val(getTime(dayChange(_key,_id))[0]);
  342. setEcharts(nowCar);
  343. }
  344. })
  345. </script>
  346. </html>