OilReprotPh.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  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" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  14. <!--引入 element-ui 的样式,-->
  15. <link rel="stylesheet" href="../../css/element.css">
  16. <link rel="stylesheet" href="../../css/style.css">
  17. <link rel="stylesheet" id="linkSource" href="../../css/base.css">
  18. <script src="../../js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
  19. <script src="../../js/yz/init.js"></script>
  20. <script>
  21. checkLogin();
  22. </script>
  23. </head>
  24. <style type="text/css">
  25. *{
  26. margin: 0;
  27. padding: 0;
  28. box-sizing: border-box;
  29. }
  30. body{
  31. height: 100vh;
  32. overflow-y: auto;
  33. overflow-x: hidden;
  34. background-color: #040d32;
  35. }
  36. .topBox .icon-cha{
  37. position: absolute;
  38. right: 10px;
  39. bottom: 8px;
  40. font-size: 20px;
  41. z-index: 4446;
  42. transform: rotate(45deg);
  43. }
  44. button{
  45. border-radius: 4px;
  46. padding: 0 10px;
  47. height: 32px;
  48. line-height: 32px;
  49. font-size: 13px;
  50. color: #fff;
  51. background-color: #ff0000;
  52. }
  53. ._unit{
  54. font-size: 11px;
  55. }
  56. ._li{
  57. padding: 10px;
  58. background-color:#1b2a46;
  59. margin: 5px;
  60. border-radius: 3px;
  61. color: rgba(255,255,255,0.6);
  62. }
  63. .table_fat{
  64. height: calc(100% - 60px);
  65. overflow-y: auto;
  66. font-size: 13px;
  67. }
  68. ._Sort{
  69. position: absolute;
  70. right: -410px;
  71. width:180px;
  72. padding: 5px;
  73. border-radius: 4px;
  74. color: #8b8b8b;
  75. list-style: none;
  76. background-color: #fff;
  77. }
  78. ._Sort li{
  79. position: relative;
  80. font-size: 12px;
  81. padding: 8px;
  82. border-bottom: 1px solid #e2e2e2;
  83. }
  84. ._Sort li.act::after{
  85. content: "";
  86. position: absolute;
  87. top:8px;
  88. right:14px;
  89. width: 6px;
  90. height: 12px;
  91. transform: rotate(45deg);
  92. border-right: 2px solid #d60000;
  93. border-bottom: 2px solid #d60000;
  94. }
  95. ._Sort li:last-child{
  96. border: none;
  97. }
  98. </style>
  99. <body>
  100. <div class="topParen">
  101. <div class="topBox">
  102. <div style="margin: 0 45px;">
  103. <div class="search_">
  104. <input type="text" name="search" placeholder="船舶名称">
  105. <i class="iconfont icon-sousuo" style="top: 0;"></i>
  106. </div>
  107. </div>
  108. <i class="iconfont icon-cha" onclick="javascript:top.location.href='./AddReprot.html';"></i>
  109. <i class="iconfont icon-left" onclick="javascript:history.back(-1);"></i>
  110. </div>
  111. <div class="bg-theme-son flex align-center justify-between padding-sm margin-top-xs">
  112. <div class="flex align-center">
  113. <i class="iconfont icon-left" style="font-size: 14px;" onclick="changeDate(-1);"></i>
  114. <span id="_time" class="margin-lr-sm">yyyy年mm月</span>
  115. <i class="iconfont icon-right" style="font-size: 18px;" onclick="changeDate(1);"></i>
  116. </div>
  117. <div style="position: relative;">
  118. <div class="cl_sort">排序 <span class="iconfont icon-xiaoyuanjiaojiangxu"></span></div>
  119. <ul class="_Sort">
  120. <li data-nu="1">上/本月统计</li>
  121. <li data-nu="2">调入/调出统计统计</li>
  122. <li data-nu="3">领入统计</li>
  123. <li data-nu="4">实际耗油量统计</li>
  124. </ul>
  125. </div>
  126. </div>
  127. <div class="table_fat">
  128. </div>
  129. </div>
  130. <script>
  131. var nowTime = null,nowNum = 0;
  132. var dataObj = [{
  133. "id":"12",
  134. "iboatname":"巴8",
  135. "endurance":"41.08",
  136. "date":"2021-05-20 15:23:44",
  137. "residuenum":"598.50",
  138. "residueprice":"3494.22",
  139. "callsnum":"0.00",
  140. "callsprice":"0.00",
  141. "transfersnum":"0.00",
  142. "transfersprice":"0.00",
  143. "depositnum":"2907.00",
  144. "depositprice":"15916.81",
  145. "deposittax":"2069.19",
  146. "taxrate":"0.115",
  147. "totalprice":"17986.00",
  148. "actualnum":"2804.4",
  149. "unitprice":"5.54",
  150. "actualprice":"15528.83",
  151. "busmileage":"0.00",
  152. "travelmileage":"515.52",
  153. "allnum":"701.1",
  154. "allprice":"3882.21",
  155. "remark":"无"
  156. }];
  157. $(document).ready(function(){
  158. nowTime = getTime(new Date())[0];
  159. setHtml(dataObj,0);
  160. })
  161. function setHtml(_obj,_num){
  162. nowNum = _num;
  163. let _str = "";
  164. if(_obj.length){
  165. if(_num == 0){
  166. for(var i=0;i<_obj.length;i++){
  167. _str += `<div class="_li">
  168. <div class="br_b flex justify-between padding-bottom-xs text-white">
  169. <div>${_obj[i].iboatname}</div>
  170. <div class="text-gray">${_obj[i].date}</div>
  171. </div>
  172. <div class="flex" style="margin: 10px 0 5px;">
  173. <div class="flex-sub">航时:${_obj[i].endurance} <span class="_unit">H</span></div>
  174. <div class="flex-sub">本月数量:${_obj[i].allnum} <span class="_unit">L</span></div>
  175. </div>
  176. <div class="flex">
  177. <div class="flex-sub">本月耗油:${_obj[i].actualnum} <span class="_unit">L</span></div>
  178. <div class="flex-sub">本月金额:${_obj[i].allprice} <span class="_unit">元</span></div>
  179. </div>
  180. </div>`;
  181. }
  182. }else if(_num == 1){
  183. let obj = _obj.sort(function sortNumber(a,b){return b.residuenum - a.residuenum})
  184. for(var i=0;i<obj.length;i++){
  185. _str += `<div class="_li">
  186. <div class="br_b flex justify-between padding-bottom-xs text-white">
  187. <div>${obj[i].iboatname}</div>
  188. <div class="text-gray">${obj[i].date}</div>
  189. </div>
  190. <div class="flex" style="margin: 10px 0 5px;">
  191. <div class="flex-sub">上月结存数量:${obj[i].residuenum} <span class="_unit">H</span></div>
  192. <div class="flex-sub">本月结存数量:${obj[i].allnum} <span class="_unit">L</span></div>
  193. </div>
  194. <div class="flex">
  195. <div class="flex-sub">上月结存金额:${obj[i].residueprice} <span class="_unit">L</span></div>
  196. <div class="flex-sub">本月结存金额:${obj[i].allprice} <span class="_unit">元</span></div>
  197. </div>
  198. <div class="flex" style="margin: 10px 0 5px;">
  199. <div class="flex-sub">航时:${obj[i].endurance} <span class="_unit">H</span></div>
  200. </div>
  201. </div>`;
  202. }
  203. }else if(_num == 2){
  204. let obj = _obj.sort(function sortNumber(a,b){return b.callsnum - a.callsnum})
  205. for(var i=0;i<obj.length;i++){
  206. _str += `<div class="_li">
  207. <div class="br_b flex justify-between padding-bottom-xs text-white">
  208. <div>${obj[i].iboatname}</div>
  209. <div class="text-gray">${obj[i].date}</div>
  210. </div>
  211. <div class="flex" style="margin: 10px 0 5px;">
  212. <div class="flex-sub">调出数量:${obj[i].callsnum} <span class="_unit">H</span></div>
  213. <div class="flex-sub">调出金额:${obj[i].callsprice} <span class="_unit">L</span></div>
  214. </div>
  215. <div class="flex">
  216. <div class="flex-sub">调入数量:${obj[i].transfersnum} <span class="_unit">L</span></div>
  217. <div class="flex-sub">调入金额:${obj[i].transfersprice} <span class="_unit">元</span></div>
  218. </div>
  219. <div class="flex" style="margin: 10px 0 5px;">
  220. <div class="flex-sub">航时:${obj[i].endurance} <span class="_unit">H</span></div>
  221. </div>
  222. </div>`;
  223. }
  224. }else if(_num == 3){
  225. let obj = _obj.sort(function sortNumber(a,b){return b.depositnum - a.depositnum})
  226. for(var i=0;i<obj.length;i++){
  227. _str += `<div class="_li">
  228. <div class="br_b flex justify-between padding-bottom-xs text-white">
  229. <div>${obj[i].iboatname}</div>
  230. <div class="text-gray">${obj[i].date}</div>
  231. </div>
  232. <div class="flex" style="margin: 10px 0 5px;">
  233. <div class="flex-sub">航时:${obj[i].endurance} <span class="_unit">H</span></div>
  234. <div class="flex-sub">金额合计:${obj[i].totalprice} <span class="_unit">H</span></div>
  235. </div>
  236. <div class="flex">
  237. <div class="flex-sub">数量:${obj[i].depositnum} <span class="_unit">H</span></div>
  238. <div class="flex-sub">税额:${obj[i].deposittax} <span class="_unit">L</span></div>
  239. </div>
  240. <div class="flex" style="margin: 10px 0 5px;">
  241. <div class="flex-sub">不含税金额:${obj[i].depositprice} <span class="_unit">L</span></div>
  242. <div class="flex-sub">税率:${obj[i].taxrate} <span class="_unit">元</span></div>
  243. </div>
  244. </div>`;
  245. }
  246. }else if(_num == 4){
  247. let obj = _obj.sort(function sortNumber(a,b){return b.actualnum - a.actualnum})
  248. for(var i=0;i<obj.length;i++){
  249. _str += `<div class="_li">
  250. <div class="br_b flex justify-between padding-bottom-xs text-white">
  251. <div>${obj[i].iboatname}</div>
  252. <div class="text-gray">${obj[i].date}</div>
  253. </div>
  254. <div class="flex" style="margin: 10px 0 5px;">
  255. <div class="flex-sub">实际数量:${obj[i].actualnum} <span class="_unit">H</span></div>
  256. <div class="flex-sub">不含税金额:${obj[i].actualprice} <span class="_unit">L</span></div>
  257. </div>
  258. <div class="flex">
  259. <div class="flex-sub">实际单价:${obj[i].unitprice} <span class="_unit">L</span></div>
  260. <div class="flex-sub">航行里数:${obj[i].busmileage} <span class="_unit">元</span></div>
  261. </div>
  262. <div class="flex" style="margin: 10px 0 5px;">
  263. <div class="flex-sub">航时:${obj[i].endurance} <span class="_unit">H</span></div>
  264. </div>
  265. </div>`;
  266. }
  267. }
  268. }else{
  269. _str += '<div class="text-center padding-lg">暂无数据</div>';
  270. }
  271. $(".table_fat").html(_str)
  272. }
  273. $(document).on("click","._li",function(){
  274. top.location.href="./ReprotDet.html";
  275. })
  276. $(".search_ [name='search']").on("input","",function(){
  277. let _newArr = [];
  278. let _key = $(this).val();
  279. for(var i=0;i<dataObj.length;i++){
  280. if(dataObj[i].iboatname.indexOf(_key) != -1){
  281. _newArr.push(dataObj[i]);
  282. }
  283. }
  284. setHtml(_newArr,nowNum);
  285. })
  286. function changeDate(num){
  287. let _day = $("#_time").text();
  288. if(_day.indexOf("yyyy") != -1){
  289. let _acb = nowTime.split("-");
  290. $("#_time").text(_acb[0] +"年"+ _acb[1] +"月");
  291. }else{
  292. changeMon(num,_day.replace("年","-").replace("月","-"));
  293. }
  294. }
  295. function changeMon(d,time){
  296. var arr = time.split('-');
  297. var year = arr[0];
  298. var month = arr[1];
  299. var year2 = year;
  300. var month2 = parseInt(month) + d;
  301. if (d == 1) {
  302. if (month2 == 13) {
  303. year2 = parseInt(year2) + 1;
  304. month2 = 1;
  305. }
  306. } else {
  307. if (month2 == 0) {
  308. year2 = parseInt(year2) - 1;
  309. month2 = 12;
  310. }
  311. }
  312. if (month2 < 10) {
  313. month2 = '0' + month2;
  314. }
  315. if ((year2 + '-' + month2) > nowTime) {
  316. ShowLoading("不能再往下翻啦!",1);
  317. return;
  318. } else {
  319. $("#_time").text(year2 +"年"+ month2 +"月");
  320. }
  321. }
  322. $(".cl_sort").on("click","",function(){
  323. if($(".cl_sort .iconfont").hasClass("icon-xiaoyuanjiaojiangxu")){
  324. $("._Sort").css({"right":"10px","transition":"right 0.3s linear"});
  325. $(".cl_sort .iconfont").removeClass("icon-xiaoyuanjiaojiangxu").addClass("icon-xiaoyuanjiaoshengxu");
  326. }else{
  327. $(".cl_sort .iconfont").removeClass("icon-xiaoyuanjiaoshengxu").addClass("icon-xiaoyuanjiaojiangxu");
  328. $("._Sort").css({"right":"-410px","transition":"right 0.3s linear"});
  329. }
  330. })
  331. $(document).on("click","._Sort li",function(){
  332. setHtml(dataObj,parseInt($(this).data("nu")));
  333. $(".cl_sort .iconfont").removeClass("icon-xiaoyuanjiaoshengxu").addClass("icon-xiaoyuanjiaojiangxu");
  334. $("._Sort").css({"right":"-410px","transition":"right 0.3s linear"});
  335. $(this).addClass("act").siblings().removeClass("act");
  336. })
  337. </script>
  338. </body>
  339. </html>