mesScreen7.html 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. <!doctype html>
  2. <html lang="zh-CN">
  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>MES工位加工记录统计大屏</title>
  8. <link rel="stylesheet" href="${ctxStatic}/screen/oprno-record-screen.css?v=202506244">
  9. <style>
  10. .screen-header .header-left-tools {
  11. justify-self: start;
  12. display: flex;
  13. align-items: center;
  14. }
  15. .scope-tab-group {
  16. display: inline-flex;
  17. padding: 4px;
  18. border: 1px solid rgba(0, 143, 253, 0.34);
  19. border-radius: 6px;
  20. background: rgba(4, 20, 45, 0.78);
  21. box-shadow: inset 0 0 24px rgba(0, 143, 253, 0.1);
  22. }
  23. .scope-tab {
  24. min-width: 112px;
  25. height: 40px;
  26. padding: 0 16px;
  27. border: none;
  28. border-radius: 4px;
  29. background: transparent;
  30. color: #9ad8ff;
  31. font-size: 18px;
  32. font-family: inherit;
  33. cursor: pointer;
  34. transition: color 0.2s, background 0.2s, box-shadow 0.2s;
  35. }
  36. .scope-tab.is-active {
  37. color: #fff;
  38. background: linear-gradient(180deg, rgba(64, 222, 120, 0.32), rgba(0, 143, 253, 0.24));
  39. box-shadow: 0 0 14px rgba(64, 222, 120, 0.22);
  40. }
  41. .scope-tab:not(.is-active):hover {
  42. color: #d8f4ff;
  43. background: rgba(0, 143, 253, 0.16);
  44. }
  45. .main-grid-wrap {
  46. position: relative;
  47. display: flex;
  48. align-items: stretch;
  49. height: 770px;
  50. margin-top: 22px;
  51. }
  52. .main-grid-wrap .side-config-panel {
  53. width: 470px;
  54. flex-shrink: 0;
  55. overflow: hidden;
  56. transition: width 0.28s ease, opacity 0.28s ease, margin 0.28s ease;
  57. }
  58. .main-grid-wrap.is-folded .side-config-panel {
  59. width: 0;
  60. opacity: 0;
  61. margin-right: 0;
  62. pointer-events: none;
  63. }
  64. .config-fold-trigger {
  65. position: relative;
  66. z-index: 6;
  67. flex-shrink: 0;
  68. display: flex;
  69. flex-direction: column;
  70. align-items: center;
  71. justify-content: center;
  72. width: 24px;
  73. margin: 0 10px 0 0;
  74. align-self: center;
  75. height: 136px;
  76. padding: 0;
  77. border: 1px solid rgba(0, 246, 255, 0.38);
  78. border-radius: 0 6px 6px 0;
  79. background: linear-gradient(180deg, rgba(5, 37, 78, 0.96), rgba(5, 25, 54, 0.92));
  80. box-shadow: inset 0 0 20px rgba(0, 143, 253, 0.14), 0 0 16px rgba(0, 143, 253, 0.18);
  81. cursor: pointer;
  82. color: #00f6ff;
  83. font-size: 22px;
  84. font-family: inherit;
  85. line-height: 1;
  86. }
  87. .config-fold-trigger:hover {
  88. border-color: rgba(64, 222, 120, 0.55);
  89. color: #40de78;
  90. box-shadow: inset 0 0 24px rgba(64, 222, 120, 0.12), 0 0 18px rgba(64, 222, 120, 0.2);
  91. }
  92. .config-fold-trigger .fold-icon {
  93. display: block;
  94. font-size: 28px;
  95. font-weight: 700;
  96. line-height: 1;
  97. transition: transform 0.28s ease;
  98. }
  99. .config-fold-trigger .fold-label {
  100. margin-top: 10px;
  101. font-size: 14px;
  102. writing-mode: vertical-rl;
  103. text-orientation: mixed;
  104. letter-spacing: 3px;
  105. }
  106. .main-grid-wrap.is-folded .config-fold-trigger .fold-icon {
  107. transform: rotate(180deg);
  108. }
  109. .main-grid-wrap .data-panel-main {
  110. flex: 1;
  111. min-width: 0;
  112. }
  113. </style>
  114. </head>
  115. <body>
  116. <div class="screen-page">
  117. <img class="bg" src="${ctxStatic}/screen/imgs/bg3.png" alt="">
  118. <div class="screen-content">
  119. <div class="screen-header">
  120. <div class="header-left-tools">
  121. <div class="scope-tab-group" id="scopeSwitch">
  122. <button type="button" class="scope-tab is-active" data-scope="all">全部产量</button>
  123. <button type="button" class="scope-tab" data-scope="today">今日产量</button>
  124. </div>
  125. </div>
  126. <div class="screen-title-new" id="screenTitle"></div>
  127. <div class="screen-time" id="screenTime"></div>
  128. </div>
  129. <div class="summary-row">
  130. <div class="summary-item"><div class="summary-label">工位数量</div><div class="summary-value" id="oprnoTotal">0</div></div>
  131. <div class="summary-item"><div class="summary-label" id="recordTotalLabel">全部生产数量</div><div class="summary-value" id="recordTotal">0</div></div>
  132. <div class="summary-item"><div class="summary-label">最高工位</div><div class="summary-value" id="maxOprno">--</div></div>
  133. </div>
  134. <div class="main-grid-wrap" id="mainGrid">
  135. <div class="side-config-panel" id="sideConfigPanel">
  136. <div class="panel control-panel">
  137. <div class="panel-title">工位号</div>
  138. <textarea class="oprno-input" id="oprnoInput"></textarea>
  139. <div class="input-row">
  140. <input class="add-input" id="addOprno" type="text" placeholder="新增工位号">
  141. <button type="button" class="screen-btn primary" id="addBtn">添加</button>
  142. </div>
  143. <div class="action-row">
  144. <button type="button" class="screen-btn primary" id="queryBtn">查询</button>
  145. <button type="button" class="screen-btn" id="clearBtn">清空</button>
  146. </div>
  147. <div class="tag-list" id="tagList"></div>
  148. <div class="hint">支持逗号、空格、换行分隔工位号。</div>
  149. </div>
  150. </div>
  151. <button type="button" class="config-fold-trigger" id="panelCollapseBtn" aria-expanded="true" title="收起工位配置">
  152. <span class="fold-icon">‹</span>
  153. <span class="fold-label">收起</span>
  154. </button>
  155. <div class="panel data-panel data-panel-main">
  156. <div class="panel-title" id="dataPanelTitle">各工位全部生产数量</div>
  157. <div class="chart-box" id="recordChart"></div>
  158. <div class="table-wrap">
  159. <table class="record-table">
  160. <thead><tr><th>序号</th><th>工位</th><th id="recordCountHeader">全部生产数量</th></tr></thead>
  161. <tbody id="recordBody"></tbody>
  162. </table>
  163. </div>
  164. </div>
  165. </div>
  166. </div>
  167. </div>
  168. <script src="${ctxStatic}/jquery-1.11.3.min.js"></script>
  169. <script src="${ctxStatic}/echarts/4.2/echarts.min.js"></script>
  170. <script>
  171. window.screenOprnoConfig = {
  172. title: "华为项目加工记录统计大屏",
  173. defaultOprnos: ["OP200A", "OP210A", "OP220A", "OP230A", "OP240A", "OP240B", "OP250A", "OP260A", "OP270A", "OP270B", "OP280A", "OP290A", "OP300A", "OP310A", "OP320A", "OP330A", "OP340A", "OP350A", "OP360A"]
  174. };
  175. </script>
  176. <script src="${ctxStatic}/screen/oprno-record-screen.js?v=202506244"></script>
  177. </body>
  178. </html>