lazhang.html 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=Edge">
  6. <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  7. <title>流水线管理页</title>
  8. <!-- Favicon-->
  9. <link rel="icon" href="favicon.ico" type="image/x-icon">
  10. <!-- Google Fonts -->
  11. <link href="css/cyllic.css" rel="stylesheet" type="text/css">
  12. <link href="css/mateial.css" rel="stylesheet" type="text/css">
  13. <!-- Bootstrap Core Css -->
  14. <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.0.0/css/bootstrap.min.css"
  15. integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
  16. <!-- Waves Effect Css -->
  17. <link href="plugins/node-waves/waves.css" rel="stylesheet"/>
  18. <!-- Animation Css -->
  19. <link href="plugins/animate-css/animate.css" rel="stylesheet"/>
  20. <!-- Morris Chart Css-->
  21. <link href="plugins/morrisjs/morris.css" rel="stylesheet"/>
  22. <!-- Custom Css -->
  23. <link href="css/style.css" rel="stylesheet">
  24. <!-- AdminBSB Themes. You can choose a theme from css/themes instead of get all themes -->
  25. <link href="css/themes/all-themes.css" rel="stylesheet"/>
  26. <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
  27. <script src="https://cdn.bootcss.com/popper.js/1.12.9/umd/popper.min.js"
  28. integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
  29. crossorigin="anonymous"></script>
  30. <script src="https://cdn.bootcss.com/bootstrap/4.0.0/js/bootstrap.min.js"
  31. integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
  32. crossorigin="anonymous"></script>
  33. <link rel="icon" href="https://static.jianshukeji.com/highcharts/images/favicon.ico">
  34. <meta name="viewport" content="width=device-width, initial-scale=1">
  35. <style>
  36. /* css 代码 */
  37. </style>
  38. <script src="https://img.hcharts.cn/highcharts/highcharts.js"></script>
  39. <script src="https://img.hcharts.cn/highcharts/modules/exporting.js"></script>
  40. <script src="https://img.hcharts.cn/highcharts-plugins/highcharts-zh_CN.js"></script>
  41. <script src="https://img.hcharts.cn/highcharts/themes/dark-unica.js"></script>
  42. <script>
  43. var timer = null;
  44. function displayClock(num) {//num是传入的startClock中的动态值
  45. if (num < 10) {
  46. return "0" + num;
  47. }
  48. else {
  49. return num;
  50. }
  51. }
  52. //停止计时
  53. function stopClock() {
  54. clearTimeout(timer);
  55. }
  56. //开始计时
  57. function startClock() {
  58. var time = new Date();
  59. var hours = displayClock(time.getHours()) + ":";
  60. var minutes = displayClock(time.getMinutes()) + ":";
  61. var seconds = displayClock(time.getSeconds());
  62. //显示时间
  63. $("#clockt").innerHTML = hours + minutes + seconds;//在id为show的块区域显示
  64. timer = setTimeout("startClock()", 1000);//延时器
  65. }
  66. </script>
  67. </head>
  68. <style>
  69. #show1 {
  70. font-size: 30px;
  71. color: black;
  72. text-align: center;
  73. }
  74. </style>
  75. <body class="theme-black" style="background-color: #17253f !important;">
  76. <nav class="navbar">
  77. <div class="container-fluid">
  78. <div class="navbar-header">
  79. <a class="navbar-brand" href="index.html">工厂产能监控系统</a>
  80. </div>
  81. <div class="collapse navbar-collapse" id="navbar-collapse">
  82. <ul class="nav navbar-nav navbar-right">
  83. <!-- Call Search -->
  84. <li><a href="javascript:void(0);" class="js-search" data-close="true"><i class="material-icons">search</i></a></li>
  85. <!-- #END# Call Search -->
  86. <!-- Notifications -->
  87. <li class="dropdown">
  88. <a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button">
  89. <i class="material-icons">notifications</i>
  90. <span class="label-count">7</span>
  91. </a>
  92. <ul class="dropdown-menu">
  93. <li class="header">NOTIFICATIONS</li>
  94. <li class="body">
  95. <div class="slimScrollDiv" style="position: relative; overflow: hidden; width: auto; height: 254px;"><ul class="menu" style="overflow: hidden; width: auto; height: 254px;">
  96. <li>
  97. <a href="javascript:void(0);" class=" waves-effect waves-block">
  98. <div class="icon-circle bg-light-green">
  99. <i class="material-icons">person_add</i>
  100. </div>
  101. <div class="menu-info">
  102. <h4>12 new members joined</h4>
  103. <p>
  104. <i class="material-icons">access_time</i> 14 mins ago
  105. </p>
  106. </div>
  107. </a>
  108. </li>
  109. <li>
  110. <a href="javascript:void(0);" class=" waves-effect waves-block">
  111. <div class="icon-circle bg-cyan">
  112. <i class="material-icons">add_shopping_cart</i>
  113. </div>
  114. <div class="menu-info">
  115. <h4>4 sales made</h4>
  116. <p>
  117. <i class="material-icons">access_time</i> 22 mins ago
  118. </p>
  119. </div>
  120. </a>
  121. </li>
  122. <li>
  123. <a href="javascript:void(0);" class=" waves-effect waves-block">
  124. <div class="icon-circle bg-red">
  125. <i class="material-icons">delete_forever</i>
  126. </div>
  127. <div class="menu-info">
  128. <h4><b>Nancy Doe</b> deleted account</h4>
  129. <p>
  130. <i class="material-icons">access_time</i> 3 hours ago
  131. </p>
  132. </div>
  133. </a>
  134. </li>
  135. <li>
  136. <a href="javascript:void(0);" class=" waves-effect waves-block">
  137. <div class="icon-circle bg-orange">
  138. <i class="material-icons">mode_edit</i>
  139. </div>
  140. <div class="menu-info">
  141. <h4><b>Nancy</b> changed name</h4>
  142. <p>
  143. <i class="material-icons">access_time</i> 2 hours ago
  144. </p>
  145. </div>
  146. </a>
  147. </li>
  148. <li>
  149. <a href="javascript:void(0);" class=" waves-effect waves-block">
  150. <div class="icon-circle bg-blue-grey">
  151. <i class="material-icons">comment</i>
  152. </div>
  153. <div class="menu-info">
  154. <h4><b>John</b> commented your post</h4>
  155. <p>
  156. <i class="material-icons">access_time</i> 4 hours ago
  157. </p>
  158. </div>
  159. </a>
  160. </li>
  161. <li>
  162. <a href="javascript:void(0);" class=" waves-effect waves-block">
  163. <div class="icon-circle bg-light-green">
  164. <i class="material-icons">cached</i>
  165. </div>
  166. <div class="menu-info">
  167. <h4><b>John</b> updated status</h4>
  168. <p>
  169. <i class="material-icons">access_time</i> 3 hours ago
  170. </p>
  171. </div>
  172. </a>
  173. </li>
  174. <li>
  175. <a href="javascript:void(0);" class=" waves-effect waves-block">
  176. <div class="icon-circle bg-purple">
  177. <i class="material-icons">settings</i>
  178. </div>
  179. <div class="menu-info">
  180. <h4>Settings updated</h4>
  181. <p>
  182. <i class="material-icons">access_time</i> Yesterday
  183. </p>
  184. </div>
  185. </a>
  186. </li>
  187. </ul><div class="slimScrollBar" style="background: rgba(0, 0, 0, 0.5); width: 4px; position: absolute; top: 0px; opacity: 0.4; display: block; border-radius: 0px; z-index: 99; right: 1px;"></div><div class="slimScrollRail" style="width: 4px; height: 100%; position: absolute; top: 0px; display: none; border-radius: 0px; background: rgb(51, 51, 51); opacity: 0.2; z-index: 90; right: 1px;"></div></div>
  188. </li>
  189. <li class="footer">
  190. <a href="javascript:void(0);" class=" waves-effect waves-block">View All Notifications</a>
  191. </li>
  192. </ul>
  193. </li>
  194. <!-- #END# Notifications -->
  195. <!-- Tasks -->
  196. <li class="dropdown">
  197. <a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button">
  198. <i class="material-icons">flag</i>
  199. <span class="label-count">9</span>
  200. </a>
  201. <ul class="dropdown-menu">
  202. <li class="header">TASKS</li>
  203. <li class="body">
  204. <div class="slimScrollDiv" style="position: relative; overflow: hidden; width: auto; height: 254px;"><ul class="menu tasks" style="overflow: hidden; width: auto; height: 254px;">
  205. <li>
  206. <a href="javascript:void(0);" class=" waves-effect waves-block">
  207. <h4>
  208. Footer display issue
  209. <small>32%</small>
  210. </h4>
  211. <div class="progress">
  212. <div class="progress-bar bg-pink" role="progressbar" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100" style="width: 32%">
  213. </div>
  214. </div>
  215. </a>
  216. </li>
  217. <li>
  218. <a href="javascript:void(0);" class=" waves-effect waves-block">
  219. <h4>
  220. Make new buttons
  221. <small>45%</small>
  222. </h4>
  223. <div class="progress">
  224. <div class="progress-bar bg-cyan" role="progressbar" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100" style="width: 45%">
  225. </div>
  226. </div>
  227. </a>
  228. </li>
  229. <li>
  230. <a href="javascript:void(0);" class=" waves-effect waves-block">
  231. <h4>
  232. Create new dashboard
  233. <small>54%</small>
  234. </h4>
  235. <div class="progress">
  236. <div class="progress-bar bg-teal" role="progressbar" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100" style="width: 54%">
  237. </div>
  238. </div>
  239. </a>
  240. </li>
  241. <li>
  242. <a href="javascript:void(0);" class=" waves-effect waves-block">
  243. <h4>
  244. Solve transition issue
  245. <small>65%</small>
  246. </h4>
  247. <div class="progress">
  248. <div class="progress-bar bg-orange" role="progressbar" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100" style="width: 65%">
  249. </div>
  250. </div>
  251. </a>
  252. </li>
  253. <li>
  254. <a href="javascript:void(0);" class=" waves-effect waves-block">
  255. <h4>
  256. Answer GitHub questions
  257. <small>92%</small>
  258. </h4>
  259. <div class="progress">
  260. <div class="progress-bar bg-purple" role="progressbar" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100" style="width: 92%">
  261. </div>
  262. </div>
  263. </a>
  264. </li>
  265. </ul><div class="slimScrollBar" style="background: rgba(0, 0, 0, 0.5); width: 4px; position: absolute; top: 0px; opacity: 0.4; display: block; border-radius: 0px; z-index: 99; right: 1px;"></div><div class="slimScrollRail" style="width: 4px; height: 100%; position: absolute; top: 0px; display: none; border-radius: 0px; background: rgb(51, 51, 51); opacity: 0.2; z-index: 90; right: 1px;"></div></div>
  266. </li>
  267. <li class="footer">
  268. <a href="javascript:void(0);" class=" waves-effect waves-block">View All Tasks</a>
  269. </li>
  270. </ul>
  271. </li>
  272. <!-- #END# Tasks -->
  273. <li class="pull-right"><a href="javascript:void(0);" class="js-right-sidebar" data-close="true"><i class="material-icons">more_vert</i></a></li>
  274. </ul>
  275. </div>
  276. </div>
  277. </nav>
  278. <!--<nav class="navbar navbar-expand-lg navbar-light bg-light" style-height="10">-- >
  279. <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo01" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation">
  280. <span class="navbar-toggler-icon"></span>
  281. </button>
  282. <div class="collapse navbar-collapse" id="navbarTogglerDemo01">
  283. <a class="navbar-brand" href="#">Hidden brand</a>
  284. <ul class="navbar-nav mr-auto mt-2 mt-lg-0">
  285. <li class="nav-item active">
  286. <a class="nav-link" href="#">生产线<span>1</span>号 </a>
  287. </li>
  288. <li class="nav-item">
  289. <a class="nav-link" href="#"><span id="clockt"></span></a>
  290. </li>
  291. <li class="nav-item">
  292. <a class="nav-link disabled" href="#">Disabled</a>
  293. </li>
  294. </ul>
  295. <form class="form-inline my-2 my-lg-0">
  296. <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
  297. <button class="btn btn-outline-success my-2 my-sm-0" type="submit">下班</button>
  298. <div class="dropdown">
  299. <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown"
  300. aria-haspopup="true" aria-expanded="false" style="font-size: 0.5em">
  301. <div class="row">
  302. <div class="col-4">
  303. 拉长
  304. </div>
  305. <div class="col-5">
  306. 张三
  307. </div>
  308. </div>
  309. </button>
  310. <ul class="dropdown-menu" aria-labelledby="dropdownMenu2">
  311. <li><a href="#">更改密码</a></li>
  312. <li><a href="#">退出登录</a></li>
  313. </ul>
  314. </div>
  315. </form>
  316. </div>
  317. </nav>-->
  318. <section class="content" style="margin: 0 auto; margin-top: 100px;">
  319. <div class="row"></div>
  320. <div class="container-fluid " style="margin-bottom: 1em">
  321. <div class="row text-center">
  322. <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
  323. <div class="info-box bg-green hover-expand-effect" style="margin: 0;">
  324. <div class="icon">
  325. <i class="material-icons">equalizer</i>
  326. </div>
  327. <div class="content">
  328. <div class="row text-center" style="margin: 0 auto">
  329. <div class="text" style="font-size: 1.5em;padding-top: 0.2em">合格数:</div>
  330. <div class="number" style="font-size: 3em">555</div>
  331. </div>
  332. </div>
  333. </div>
  334. </div>
  335. <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
  336. <div class="info-box bg-red hover-expand-effect" style="margin: 0;">
  337. <div class="icon">
  338. <i class="material-icons">equalizer</i>
  339. </div>
  340. <div class="content">
  341. <div class="row text-center" style="margin: 0 auto">
  342. <div class="text" style="font-size: 1.5em;padding-top: 0.2em">不合格数:</div>
  343. <div class="number" style="font-size: 3em">5255</div>
  344. </div>
  345. </div>
  346. </div>
  347. </div>
  348. <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
  349. <div class="info-box bg-lime hover-expand-effect" style="margin: 0;">
  350. <div class="icon">
  351. <i class="material-icons">brightness_low</i>
  352. </div>
  353. <div class="content">
  354. <div class="row text-center" style="margin: 0 auto">
  355. <div class="text" style="font-size: 1.5em;padding-top: 0.2em">合格率:</div>
  356. <div class="number" style="font-size: 3em">55%</div>
  357. </div>
  358. </div>
  359. </div>
  360. </div>
  361. <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
  362. <div class="info-box bg-cyan hover-zoom-effect" style="margin: 0; ">
  363. <div class="icon">
  364. <i class="material-icons">access_alarm</i>
  365. </div>
  366. <div class="content">
  367. <div class="row text-center" style="margin: 0 auto">
  368. <div class="text" style="font-size: 1.5em;padding-top: 0.2em">堆积数:</div>
  369. <div class="number" style="font-size: 3em">235</div>
  370. </div>
  371. </div>
  372. </div>
  373. </div>
  374. </div>
  375. </div>
  376. <div class="container-fluid" style="margin-top: 0.5em;padding-top: 1em">
  377. <div class="card" style-height="30-8" style="margin: 0 auto;">
  378. <div>
  379. <div class="" style="">
  380. <div class="table-responsive" style="width: 30%;float: left">
  381. <table class="table table-hover dashboard-task-infos">
  382. <thead>
  383. <tr style="border-bottom:3px solid black;">
  384. <th>姓名(工号)</th>
  385. <th>合格数</th>
  386. <th>不合格数</th>
  387. </tr>
  388. </thead>
  389. <tbody id="rank-one">
  390. </tbody>
  391. </table>
  392. </div>
  393. <div class="table-responsive" style="width: 30%;float: left;padding-left: 5em">
  394. <table class="table table-hover dashboard-task-infos">
  395. <thead>
  396. <tr style="border-bottom:3px solid black;">
  397. <th>姓名(工号)</th>
  398. <th>合格数</th>
  399. <th>不合格数</th>
  400. </tr>
  401. </thead>
  402. <tbody id="rank-two">
  403. </tbody>
  404. </table>
  405. </div>
  406. <div class="table-responsive" style="width: 30%;float: right">
  407. <table class="table table-hover dashboard-task-infos">
  408. <thead>
  409. <tr style="border-bottom:3px solid black;">
  410. <th>姓名(工号)</th>
  411. <th>合格数</th>
  412. <th>不合格数</th>
  413. </tr>
  414. </thead>
  415. <tbody id="rank-three">
  416. </tbody>
  417. </table>
  418. </div>
  419. </div>
  420. </div>
  421. </div>
  422. <div class="row" style="height: 3em;"></div>
  423. <div class="row" style-height="50-8">
  424. <div id="graph-1"></div>
  425. </div>
  426. </div>
  427. </section>
  428. <!-- Jquery Core Js -->
  429. <script src="plugins/jquery/jquery.min.js"></script>
  430. <!-- Bootstrap Core Js -->
  431. <script src="plugins/bootstrap/js/bootstrap.js"></script>
  432. <!-- Select Plugin Js -->
  433. <script src="plugins/bootstrap-select/js/bootstrap-select.js"></script>
  434. <!-- Slimscroll Plugin Js -->
  435. <script src="plugins/jquery-slimscroll/jquery.slimscroll.js"></script>
  436. <!-- Waves Effect Plugin Js -->
  437. <script src="plugins/node-waves/waves.js"></script>
  438. <!-- Jquery CountTo Plugin Js -->
  439. <script src="plugins/jquery-countto/jquery.countTo.js"></script>
  440. <!-- Morris Plugin Js -->
  441. <script src="plugins/raphael/raphael.min.js"></script>
  442. <script src="plugins/morrisjs/morris.js"></script>
  443. <!-- ChartJs -->
  444. <script src="plugins/chartjs/Chart.bundle.js"></script>
  445. <!-- Flot Charts Plugin Js -->
  446. <script src="plugins/flot-charts/jquery.flot.js"></script>
  447. <script src="plugins/flot-charts/jquery.flot.resize.js"></script>
  448. <script src="plugins/flot-charts/jquery.flot.pie.js"></script>
  449. <script src="plugins/flot-charts/jquery.flot.categories.js"></script>
  450. <script src="plugins/flot-charts/jquery.flot.time.js"></script>
  451. <!-- Sparkline Chart Plugin Js -->
  452. <script src="plugins/jquery-sparkline/jquery.sparkline.js"></script>
  453. <!-- Custom Js -->
  454. <script src="js/admin.js"></script>
  455. <!--<script src="js/pages/index.js"></script>-->
  456. <!-- Demo Js -->
  457. <script src="js/demo.js"></script>
  458. <script src="js/basic.js"></script>
  459. <script>
  460. function getSpotHtml(htmlbody, one_person, i) {
  461. htmlbody += "<tr>";
  462. htmlbody += `<tr>
  463. <td>${one_person.spotName}(${one_person.id})</td>
  464. <td>${passNumber[i]}</td>
  465. <td>${failNumber[i]}</td>
  466. </tr>`;
  467. htmlbody += "</tr>";
  468. return htmlbody;
  469. }
  470. function showEachSpot() {
  471. var htmlbody = "", one_person = "";
  472. var i = 0;
  473. var triGap = Math.fround(sID.length / 3);
  474. var remain = sID.length - triGap * 2;
  475. for (i = 0; i < triGap; i++) {
  476. one_person = namedata[i];
  477. htmlbody = getSpotHtml(htmlbody, one_person, i);
  478. $("#rank-one").html(htmlbody);
  479. }
  480. for (i = 0; i < triGap; i++) {
  481. one_person = namedata[i + triGap];
  482. htmlbody = getSpotHtml(htmlbody, one_person, i + triGap);
  483. $("#rank-two").html(htmlbody);
  484. }
  485. for (i = 0; i < remain; i++) {
  486. one_person = namedata[i + triGap * 2];
  487. htmlbody = getSpotHtml(htmlbody, one_person, i + triGap * 2);
  488. $("#rank-three").html(htmlbody);
  489. }
  490. }
  491. var thisPageFlow = 1;
  492. function showChart() {
  493. var data = [];
  494. var ratedata = [];
  495. var stackmax = 0;
  496. var failmax = 0;
  497. for (i = 0; i < passNumber.length; i++) {
  498. if (stackmax < stackeverynum[i]) {
  499. stackmax = stackeverynum[i];
  500. }
  501. if (failmax < failrate[i]) {
  502. failmax = failrate[i];
  503. }
  504. data.push(stackeverynum[i]);
  505. ratedata.push(Math.floor(failrate[i]));
  506. }
  507. stackmax = Math.max(stackmax, 5);
  508. failmax = Math.max(failmax, 5);
  509. stackAndFailChart = Highcharts.chart('graph-1', {
  510. chart: {
  511. zoomType: 'xy',
  512. height: (4 / 16 * 100) + '%' // 16:9 ratio
  513. },
  514. title: {
  515. text: null
  516. },
  517. credits: {
  518. enabled: false // 禁用版权信息
  519. },
  520. exporting: {
  521. enabled: false
  522. },
  523. xAxis: [{
  524. categories: namedata,
  525. crosshair: true,
  526. title: {
  527. text: '员工',
  528. style: {
  529. fontSize: '1.5em'
  530. }
  531. },
  532. labels: {
  533. style: {
  534. fontSize: '1.5em'
  535. }
  536. }
  537. }],
  538. yAxis: [{ // Primary yAxis
  539. labels: {
  540. format: '{value}',
  541. style: {
  542. color: Highcharts.getOptions().colors[0],
  543. fontSize: '1.5em'
  544. }
  545. },
  546. min: 0,
  547. max: 1.5 * stackmax,
  548. title: {
  549. text: '堆积数',
  550. style: {
  551. color: Highcharts.getOptions().colors[0],
  552. fontSize: '1em'
  553. }
  554. }
  555. }, { // Secondary yAxis
  556. title: {
  557. text: '不良率',
  558. style: {
  559. color: 'red',
  560. fontSize: '1em'
  561. }
  562. },
  563. min: 0,
  564. max: 1.5 * failmax,
  565. labels: {
  566. formatter: function () {
  567. return Math.floor(this.value) + "%";
  568. },
  569. style: {
  570. color: 'red',
  571. fontSize: '20px'
  572. }
  573. },
  574. opposite: true
  575. }],
  576. tooltip: {
  577. shared: true
  578. },
  579. legend: {
  580. layout: 'vertical',
  581. align: 'right',
  582. x: -120,
  583. verticalAlign: 'top',
  584. y: 0,
  585. floating: true,
  586. backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
  587. },
  588. series: [{
  589. name: '堆积数',
  590. type: 'column',
  591. data: data,
  592. tooltip: {
  593. valueSuffix: ' mm'
  594. }
  595. }, {
  596. name: '不良率',
  597. type: 'spline',
  598. yAxis: 1,
  599. data: ratedata,
  600. color: 'red',
  601. tooltip: {
  602. valueSuffix: '%'
  603. }
  604. }]
  605. });
  606. }
  607. function updateChart() {
  608. var data = [];
  609. var ratedata = [];
  610. var stackmax = 0;
  611. var failmax = 0;
  612. for (i = 0; i < passNumber.length; i++) {
  613. if (stackmax < stackeverynum[i]) {
  614. stackmax = stackeverynum[i];
  615. }
  616. if (failmax < failrate[i]) {
  617. failmax = failrate[i];
  618. }
  619. data.push(stackeverynum[i]);
  620. ratedata.push(Math.floor(failrate[i]));
  621. }
  622. stackmax = Math.max(stackmax, 5);
  623. failmax = Math.max(failmax, 5);
  624. // https://api.hcharts.cn/highcharts#Series.addPoint;
  625. stackAndFailChart.series[0].setData(data);
  626. stackAndFailChart.series[1].setData(ratedata);
  627. }
  628. var stackAndFailChart = null;
  629. $(document).ready(on_document_load);
  630. window.onresize = resizeAll;
  631. function resizeAll() {
  632. $('[style-height="10"]').height(window.innerHeight / 10);
  633. $('[style-height="20"]').each(function(one,items){$(items).height(window.innerHeight / 5)});
  634. $('[style-height="30"]').each(function(one,items){$(items).height(window.innerHeight * 0.3)});
  635. $('[style-height="40"]').height(window.innerHeight / 2.5);
  636. $('[style-height="30-8"]').height(window.innerHeight * 0.4 - 220);
  637. var graph = $("#graph-1");
  638. graph.width(window.innerWidth - 35);
  639. graph.height(window.innerHeight / 3.333);
  640. if (graph.highcharts !== undefined) {
  641. graph.highcharts().reflow();
  642. }
  643. }
  644. setInterval(function () {
  645. resizeAll();
  646. }, 5000);
  647. resizeAll();
  648. startClock();
  649. </script>
  650. </body>
  651. </html>
  652. <!---
  653. ### SVR_BASE 类似 "http://127.0.0.1:8803" 实际上线之后是确定值,写死在HTML里的JS里面
  654. ### 各个拉实时产量数据接口地址
  655. SVR_BASE + "/server/fcWorkRaw/allFlows"
  656. ### 单个拉内,所有工位实时产量数据接口地址 e.g. 拉线ID = 2
  657. SVR_BASE + "/server/fcWorkRaw/allSpots" + "?" + "flowId=2"
  658. ### 员工上班记录API e.g. 拉线ID = 2 工位顺序 = 1 员工ID = 33404
  659. SVR_BASE + "/server/fcWorkStartend/goOnline" + "?" + "flowId=2&sequence=1&workerId=33404"
  660. ### 查询已上班员工 e.g. 拉线ID = 2
  661. SVR_BASE + "/server/fcWorkRaw/getAll" + "?" + "flowId=2"
  662. -->