lazhang.html 33 KB

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