金豪看板
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

584 lines
25 KiB

2 years ago
  1. <!DOCTYPE html>
  2. <html style="height:100%">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>执行看板</title>
  8. <link rel="stylesheet" href="~/Content/Cust069/css/index.css">
  9. <link rel="stylesheet" href="~/Content/Cust069/fonts/icomoon.css">
  10. <script src="~/Content/Cust069/js/jquery.min.js"></script>
  11. <script src="~/Content/js/echarts/echarts5.3.3.min.js"></script>
  12. <script src="~/Content/Cust069/js/index.js"></script>
  13. <script src="~/Content/Cust069/js/china.js"></script>
  14. <script src="~/Content/Cust069/js/mymap.js"></script>
  15. <style>
  16. .mainbox {
  17. width:100%;
  18. }
  19. .logoclass {
  20. height: 2rem;
  21. padding-top: 0.5rem;
  22. float:right;
  23. }
  24. body {
  25. background-image:url(../../../../../Content/Cust003/images/bg2.jpg);
  26. }
  27. /*logo标题*/
  28. .TopNamelogo {
  29. vertical-align: middle;
  30. text-align: left;
  31. font-size: 24px;
  32. font-weight: 700;
  33. color: white;
  34. }
  35. .TopName {
  36. vertical-align: middle;
  37. text-align: center;
  38. font-size: 30px;
  39. font-weight: 700;
  40. color: white;
  41. }
  42. .TopNameTime {
  43. vertical-align: middle;
  44. text-align: right;
  45. font-size: 20px;
  46. font-weight: 700;
  47. margin-right:3rem;
  48. color: white;
  49. }
  50. .header {
  51. height:5rem;
  52. position:absolute;
  53. padding-top:1rem;
  54. /*padding-left: 3rem;*/
  55. width:100%;
  56. }
  57. .header tbody, .header tr {
  58. width:100%;
  59. }
  60. .monitor .head {
  61. background: rgb(0 76 103);
  62. }
  63. .CustDiv1 div span:nth-child(1),.CustDiv1 div div span:nth-child(1) {
  64. width: 20% !important;
  65. }
  66. .CustDiv1 div span:nth-child(2),.CustDiv1 div div span:nth-child(2) {
  67. width: 28% !important;
  68. }
  69. .CustDiv1 div span:nth-child(3),.CustDiv1 div div span:nth-child(3) {
  70. width: 11% !important;
  71. }
  72. .CustDiv1 div span:nth-child(4),.CustDiv1 div div span:nth-child(4) {
  73. width: 11% !important;
  74. }
  75. .CustDiv1 div span:nth-child(5),.CustDiv1 div div span:nth-child(5) {
  76. width: 19% !important;
  77. }
  78. .CustDiv1 div span:nth-child(6),.CustDiv1 div div span:nth-child(6) {
  79. width: 11% !important;
  80. }
  81. .CustDiv2 div span:nth-child(1),.CustDiv2 div div span:nth-child(1) {
  82. width: 22% !important;
  83. }
  84. .CustDiv2 div span:nth-child(2),.CustDiv2 div div span:nth-child(2) {
  85. width: 15% !important;
  86. }
  87. .CustDiv2 div span:nth-child(3),.CustDiv2 div div span:nth-child(3) {
  88. width: 15% !important;
  89. }
  90. .CustDiv2 div span:nth-child(4),.CustDiv2 div div span:nth-child(4) {
  91. width: 15% !important;
  92. }
  93. .CustDiv2 div span:nth-child(5),.CustDiv2 div div span:nth-child(5) {
  94. width: 15% !important;
  95. }
  96. .CustDiv2 div span:nth-child(6),.CustDiv2 div div span:nth-child(6) {
  97. width: 8% !important;
  98. }
  99. .CustDiv2 div span:nth-child(7),.CustDiv2 div div span:nth-child(7) {
  100. width: 10% !important;
  101. }
  102. </style>
  103. </head>
  104. <body style="height:100%">
  105. <table class="header">
  106. <tr>
  107. <td style="width:12%">
  108. <div class="TopNamelogo" id="TopNamelogo">
  109. <img src="~/Content/img/ninghong.jpg" border="0" class="logoclass" />
  110. </div>
  111. </td>
  112. <td style="width:18%">
  113. <div class="TopNamelogo" id="TopNamelogo">振翔</div>
  114. </td>
  115. <td style="width:40%">
  116. <div class="TopName" id="TopName">执行看板</div>
  117. </td>
  118. <td >
  119. <div class="TopNameTime" id="TopNameTime"></div>
  120. </td>
  121. </tr>
  122. </table>
  123. <div class="viewport" style="height:calc(100% )">
  124. <div class="mainbox">
  125. <ul class="clearfix">
  126. <li>
  127. <div style="height: calc(50% - 0.1rem);width: calc(33% - 0.1rem); float: left ">
  128. <div class="column">
  129. <!--监控-->
  130. <div class="monitor panel">
  131. <div class="inner">
  132. <div class="tabs">
  133. <a href="javascript:;" data-index="0" class="active"><span class="icon-cube"></span>SMT车间生产加工数据</a>
  134. </div>
  135. <div class="content CustDiv1" style="display: block;" >
  136. <div class="head">
  137. <span class="col">生产订单</span>
  138. <span class="col">产品名称</span>
  139. <span class="col">计划量</span>
  140. <span class="col">完成量</span>
  141. <span class="col">计划完工日期</span>
  142. <span class="col">生产进度</span>
  143. </div>
  144. <div class="marquee-view" id="marqueeCust1">
  145. <div class="marquee" id="marqueeCustCH1">
  146. @*<div class="row">
  147. <span class="col">20180701</span>
  148. <span class="col">1120180701</span>
  149. <span class="col">10</span>
  150. <span class="col">20</span>
  151. <span class="col">2023-03-10</span>
  152. <span class="col">100%</span>
  153. </div>*@
  154. </div>
  155. </div>
  156. </div>
  157. </div>
  158. </div>
  159. </div>
  160. </div>
  161. <div style="height: calc(50% - 0.1rem);width: calc(33% - 0.1rem); float: left;padding-left:0.5rem ">
  162. <div class="column">
  163. <!--监控-->
  164. <div class="monitor panel" style="border-image:none;">
  165. <div class="inner">
  166. <div class="tabs">
  167. <a href="javascript:;" data-index="0" class="active"><span class="icon-cube"></span>插件车间生产加工数据</a>
  168. </div>
  169. <div class="content CustDiv1" style="display: block;">
  170. <div class="head">
  171. <span class="col">生产订单</span>
  172. <span class="col">产品名称</span>
  173. <span class="col">计划量</span>
  174. <span class="col">完成量</span>
  175. <span class="col">计划完工日期</span>
  176. <span class="col">生产进度</span>
  177. </div>
  178. <div class="marquee-view" id="marqueeCust2">
  179. <div class="marquee" id="marqueeCustCH2">
  180. </div>
  181. </div>
  182. </div>
  183. </div>
  184. </div>
  185. </div>
  186. </div>
  187. <div style="height: calc(50% - 0.1rem);width: calc(33% - 0.1rem); float: right ">
  188. <div class="column">
  189. <!--监控-->
  190. <div class="monitor panel">
  191. <div class="inner">
  192. <div class="tabs">
  193. <a href="javascript:;" data-index="0" class="active"><span class="icon-cube"></span>组装车间生产加工数据</a>
  194. </div>
  195. <div class="content CustDiv1" style="display: block;">
  196. <div class="head">
  197. <span class="col">生产订单</span>
  198. <span class="col">产品名称</span>
  199. <span class="col">计划量</span>
  200. <span class="col">完成量</span>
  201. <span class="col">计划完工日期</span>
  202. <span class="col">生产进度</span>
  203. </div>
  204. <div class="marquee-view" id="marqueeCust3">
  205. <div class="marquee" id="marqueeCustCH3">
  206. </div>
  207. </div>
  208. </div>
  209. </div>
  210. </div>
  211. </div>
  212. </div>
  213. <div style="height: calc(50% - 0.1rem);width: calc(50% - 0.1rem); float: left ">
  214. <div class="column">
  215. <!--监控-->
  216. <div class="monitor panel">
  217. <div class="inner">
  218. <div class="tabs">
  219. <a href="javascript:;" data-index="0" class="active"><span class="icon-cube"></span>IPQC检验合格率</a>
  220. </div>
  221. <div class="content " style="display: block;">
  222. <div id="echart1_1" style="width:100%;height:100%"></div>
  223. </div>
  224. </div>
  225. </div>
  226. </div>
  227. </div>
  228. <div style="height: calc(50% - 0.1rem);width: calc(50% - 0.1rem); float: right ">
  229. <div class="column">
  230. <!--监控-->
  231. <div class="monitor panel">
  232. <div class="inner">
  233. <div class="tabs">
  234. <a href="javascript:;" data-index="0" class="active"><span class="icon-cube"></span>检验合格未入库</a>
  235. </div>
  236. <div class="content CustDiv2" style="display: block;">
  237. <div class="head">
  238. <span class="col">物料条码</span>
  239. <span class="col">送货单号</span>
  240. <span class="col">采购订单号</span>
  241. <span class="col">存货编码</span>
  242. <span class="col">存货名称</span>
  243. <span class="col">数量</span>
  244. <span class="col">检验人员</span>
  245. </div>
  246. <div class="marquee-view" id="RCVUNINView">
  247. <div class="marquee" id="RCVUNIN">
  248. <div class="row">
  249. <span class="col">100%</span>
  250. <span class="col">100%</span>
  251. <span class="col">100%</span>
  252. <span class="col">100%</span>
  253. <span class="col">100%</span>
  254. <span class="col">100%</span>
  255. <span class="col">100%</span>
  256. </div>
  257. </div>
  258. </div>
  259. </div>
  260. </div>
  261. </div>
  262. </div>
  263. </div>
  264. </li>
  265. </ul>
  266. </div>
  267. </div>
  268. <script>
  269. var DataF = 300;//单位秒 //刷新数据时间
  270. var _BarWidth = "25%";
  271. var _barBorderRadius_M = 2;
  272. $(function () {
  273. getTime();
  274. GetDataZong();
  275. //刷新数据
  276. timer = setInterval(function () {
  277. GetDataZong();
  278. }, DataF * 1000);
  279. });
  280. function getTime() {
  281. var days = new Array("日", "一", "二", "三", "四", "五", "六");
  282. var currentDT = new Date();
  283. var y, m, date, day, hs, ms, ss, theDateStr;
  284. y = currentDT.getFullYear(); //四位整数表示的年份
  285. m = currentDT.getMonth() < 10 ? '0' + (currentDT.getMonth() + 1) : (currentDT.getMonth() + 1); //月
  286. date = currentDT.getDate() < 10 ? '0' + currentDT.getDate() : currentDT.getDate(); //日
  287. day = currentDT.getDay(); //星期
  288. hs = currentDT.getHours() < 10 ? '0' + currentDT.getHours() : currentDT.getHours(); //时
  289. ms = currentDT.getMinutes() < 10 ? '0' + currentDT.getMinutes() : currentDT.getMinutes(); //分
  290. ss = currentDT.getSeconds() < 10 ? '0' + currentDT.getSeconds() : currentDT.getSeconds(); //秒
  291. theDateStr = y + "-" + m + "-" + date + " " + hs + ":" + ms + ":" + ss;
  292. //填充到组件中
  293. $("#TopNameTime").text(theDateStr);
  294. // setTimeout 在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次
  295. window.setTimeout(getTime, 1000);
  296. }
  297. function GetDataZong() {
  298. echart1_1();
  299. GetZhiXing_MO("marqueeCustCH1", "30");
  300. GetZhiXing_MO("marqueeCustCH2", "60");
  301. GetZhiXing_MO("marqueeCustCH3", "90");
  302. GetZhiXing_RCVUnInWare();
  303. SetIfGo("marqueeCust1", "marqueeCustCH1");//判断是否需要滚动
  304. SetIfGo("marqueeCust2", "marqueeCustCH2");//判断是否需要滚动
  305. SetIfGo("marqueeCust3", "marqueeCustCH3");//判断是否需要滚动
  306. SetIfGo("RCVUNINView", "RCVUNIN");//判断是否需要滚动
  307. }
  308. function SetIfGo(DivID, DivCHID)
  309. {
  310. var H_marqueediv = $("#" + DivCHID)[0];
  311. var H_marquee= H_marqueediv.clientHeight;
  312. var H_marqueeView = $("#" + DivID)[0].clientHeight;
  313. if (H_marquee < H_marqueeView) {
  314. if ($("#" + DivID).hasClass("marquee-view")) {
  315. $("#" + DivID).removeClass("marquee-view");
  316. }
  317. if ($("#" + DivCHID).hasClass("marquee")) {
  318. $("#" + DivCHID).removeClass("marquee");
  319. }
  320. }
  321. else {
  322. if (!$("#" + DivID).hasClass("marquee-view")) {
  323. $("#" + DivID).addClass("marquee-view");
  324. }
  325. if (!$("#" + DivCHID).hasClass("marquee")) {
  326. $("#" + DivCHID).removeClass("marquee");
  327. }
  328. }
  329. }
  330. function echart1_1() {
  331. // 基于准备好的dom,初始化echarts实例
  332. var myChart = echarts.init(document.getElementById('echart1_1'));
  333. var MonthArray = new Array();
  334. var MonthPercent = new Array();
  335. $.ajax({
  336. url: "/SRM/WatchPanel/GetZhiXing_OQC?XX=XX&" + Math.random(),
  337. dataType: "json",
  338. async: false,
  339. success: function (data) {
  340. if (data != false && data != null && data.length > 0) {
  341. for (var i = 0; i < data.length; i++) {
  342. MonthArray.push(data[i].月份);
  343. MonthPercent.push(data[i].PercentNum);
  344. }
  345. //MonthPercent = [10, 40.23, 70, 40, 0];//测试
  346. var colors = ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc']
  347. option = {
  348. color: colors,
  349. tooltip: {
  350. trigger: 'axis',
  351. axisPointer: { type: 'shadow' },
  352. formatter: function (params) {
  353. var showHtm = "";
  354. showHtm = params[0].name + "月:" + '<br>' +
  355. params[0].seriesName + ':' + params[0].data+"%";
  356. return showHtm;
  357. }
  358. },
  359. grid: {
  360. "top": "15",
  361. "right": "20",
  362. "bottom": "20",
  363. "left": "40",
  364. },
  365. legend: {
  366. show: false,
  367. },
  368. "xAxis": [
  369. {
  370. data: MonthArray,
  371. axisLine: { show: true, lineStyle: { color: "rgba(255,255,255,.9)", } },
  372. axisTick: { show: true, },
  373. axisLabel: {
  374. textStyle: {
  375. show: true,
  376. //fontSize: 9,
  377. color: "rgba(255,255,255,.9)",
  378. },
  379. },
  380. },
  381. ],
  382. "yAxis": [
  383. {
  384. "type": "value",
  385. axisTick: { show: true },
  386. splitLine: { show: false, },
  387. axisLine: { show: true, },
  388. axisLabel: {
  389. show: true,
  390. //fontSize: 9,
  391. color: "rgba(255,255,255,.9)"
  392. },
  393. axisLine: {
  394. show: true
  395. },
  396. }
  397. ],
  398. "series": [
  399. {
  400. "name": "合格率",
  401. "type": "bar",
  402. "data": MonthPercent,
  403. barWidth: _BarWidth,
  404. "itemStyle": {
  405. "normal": {
  406. barBorderRadius: _barBorderRadius_M,
  407. }
  408. },
  409. label: {
  410. show: true,
  411. //position: 'outside',
  412. formatter: '{c}%',
  413. },
  414. }
  415. ]
  416. };
  417. myChart.setOption(option);
  418. }
  419. else {
  420. return null;
  421. }
  422. },
  423. error: function (aa) {
  424. return null;
  425. }
  426. });
  427. }
  428. function GetZhiXing_MO(marqueeID, ItemNumber) {
  429. $.ajax({
  430. url: "/SRM/WatchPanel/GetZhiXing_MO?ItemNumber=" + ItemNumber + "&" + Math.random(),
  431. dataType: "json",
  432. async: false,
  433. success: function (data) {
  434. if (data != false && data != null && data.length > 0) {
  435. //生产订单 产品名称 计划数量 完成数量 计划完工日期 生产进度
  436. var html = "";
  437. for (var i = 0; i < data.length; i++) {
  438. html += ' <div class="row"> <span class="col">' + data[i].生产订单 + '</span> <span class="col">' + data[i].产品名称 + '</span>';
  439. html += ' <span class="col">' + data[i].计划数量 + '</span> <span class="col">' + data[i].完成数量 + '</span>';
  440. html += ' <span class="col" >' + data[i].计划完工日期 + '</span> <span class="col">' + data[i].生产进度 + '</span> </div> ';
  441. }
  442. html += "</ul>";
  443. $("#" + marqueeID).html(html);
  444. }
  445. else {
  446. $("#" + marqueeID).html("");
  447. }
  448. },
  449. error: function (aa) {
  450. }
  451. });
  452. }
  453. function GetZhiXing_RCVUnInWare() {
  454. $.ajax({
  455. url: "/SRM/WatchPanel/GetZhiXing_RCVUnInWare?XX=XX&" + Math.random(),
  456. dataType: "json",
  457. async: false,
  458. success: function (data) {
  459. if (data != false && data != null && data.length > 0) {
  460. var html = "";
  461. for (var i = 0; i < data.length; i++) {
  462. html += ' <div class="row"> <span class="col">' + data[i].LOTNO + '</span> <span class="col">' +
  463. data[i].送货单号 + '</span>';
  464. html += ' <span class="col">' + data[i].采购订单号 + '</span> <span class="col">' + data[i].物料编码 + '</span>';
  465. html += ' <span class="col" >' + data[i].物料名称 + '</span> <span class="col">' + data[i].检验人 + '</span> ';
  466. html += ' <span class="col" >' + data[i].数量 + '</span> </div> ';
  467. }
  468. html += "</ul>";
  469. $("#RCVUNIN" ).html(html);
  470. }
  471. else {
  472. $("#RCVUNIN" ).html("");
  473. }
  474. },
  475. error: function (aa) {
  476. }
  477. });
  478. }
  479. function GetZhiXing_OQC( ) {
  480. $.ajax({
  481. url: "/SRM/WatchPanel/GetZhiXing_OQC?XX=XX&" + Math.random(),
  482. dataType: "json",
  483. async: false,
  484. success: function (data) {
  485. if (data != false && data != null && data.length > 0) {
  486. return data;
  487. }
  488. else {
  489. return null;
  490. }
  491. },
  492. error: function (aa) {
  493. return null;
  494. }
  495. });
  496. }
  497. </script>
  498. </body>
  499. </html>