kpi-screen.css 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. html,
  2. body {
  3. width: 100%;
  4. height: 100%;
  5. margin: 0;
  6. overflow: hidden;
  7. background: #061326;
  8. font-family: "Microsoft YaHei", Arial, sans-serif;
  9. }
  10. .screen-page {
  11. position: relative;
  12. width: 1920px;
  13. height: 1080px;
  14. color: #fff;
  15. overflow: hidden;
  16. }
  17. .screen-page .bg {
  18. position: absolute;
  19. inset: 0;
  20. width: 100%;
  21. height: 100%;
  22. object-fit: cover;
  23. z-index: 0;
  24. }
  25. .screen-content {
  26. position: relative;
  27. z-index: 1;
  28. height: 100%;
  29. padding: 18px 36px 16px;
  30. box-sizing: border-box;
  31. display: flex;
  32. flex-direction: column;
  33. gap: 12px;
  34. }
  35. .screen-header {
  36. display: grid;
  37. grid-template-columns: 1fr auto 1fr;
  38. align-items: center;
  39. height: 64px;
  40. flex-shrink: 0;
  41. }
  42. .header-meta {
  43. display: flex;
  44. gap: 10px;
  45. }
  46. .meta-chip {
  47. height: 32px;
  48. padding: 0 14px;
  49. border: 1px solid rgba(0, 143, 253, 0.4);
  50. border-radius: 16px;
  51. background: rgba(4, 24, 52, 0.72);
  52. color: #9ad8ff;
  53. font-size: 16px;
  54. line-height: 32px;
  55. }
  56. .demo-toggle {
  57. cursor: pointer;
  58. font-family: inherit;
  59. }
  60. .demo-toggle.is-on {
  61. color: #ffd56a;
  62. border-color: rgba(255, 184, 0, 0.75);
  63. background: rgba(92, 58, 0, 0.72);
  64. }
  65. .screen-title-new {
  66. color: #fff;
  67. font-size: 36px;
  68. font-weight: 700;
  69. letter-spacing: 6px;
  70. text-align: center;
  71. text-shadow: 0 0 18px rgba(0, 246, 255, 0.45);
  72. }
  73. .screen-time {
  74. justify-self: end;
  75. font-size: 20px;
  76. color: #9ad8ff;
  77. }
  78. .summary-row {
  79. display: grid;
  80. grid-template-columns: repeat(6, 1fr);
  81. gap: 12px;
  82. flex-shrink: 0;
  83. }
  84. .summary-item {
  85. height: 78px;
  86. padding: 10px 16px;
  87. border: 1px solid rgba(0, 143, 253, 0.34);
  88. border-radius: 6px;
  89. background: linear-gradient(180deg, rgba(5, 37, 78, 0.88), rgba(5, 25, 54, 0.76));
  90. box-shadow: inset 0 0 24px rgba(0, 143, 253, 0.12);
  91. box-sizing: border-box;
  92. }
  93. .summary-item.is-actual { border-color: rgba(0, 246, 255, 0.45); }
  94. .summary-item.is-ok { border-color: rgba(64, 222, 120, 0.45); }
  95. .summary-item.is-ng { border-color: rgba(255, 92, 92, 0.45); }
  96. .summary-item.is-repair { border-color: rgba(255, 184, 0, 0.45); }
  97. .summary-item.is-shift { border-color: rgba(120, 170, 255, 0.45); }
  98. .summary-label {
  99. color: #9ad8ff;
  100. font-size: 15px;
  101. }
  102. .summary-value {
  103. margin-top: 4px;
  104. font-size: 30px;
  105. font-weight: 700;
  106. line-height: 1.1;
  107. font-family: Arial, sans-serif;
  108. }
  109. .summary-text {
  110. font-size: 24px;
  111. font-family: "Microsoft YaHei", sans-serif;
  112. white-space: nowrap;
  113. overflow: hidden;
  114. text-overflow: ellipsis;
  115. }
  116. .kpi-row {
  117. display: grid;
  118. grid-template-columns: repeat(4, 1fr);
  119. gap: 12px;
  120. height: 168px;
  121. flex-shrink: 0;
  122. }
  123. .kpi-card,
  124. .panel {
  125. border: 1px solid rgba(0, 143, 253, 0.34);
  126. border-radius: 6px;
  127. background: linear-gradient(180deg, rgba(5, 32, 68, 0.82), rgba(4, 18, 40, 0.72));
  128. box-shadow: inset 0 0 30px rgba(0, 143, 253, 0.1);
  129. box-sizing: border-box;
  130. }
  131. .kpi-card {
  132. display: flex;
  133. align-items: center;
  134. padding: 6px 12px 6px 0;
  135. min-width: 0;
  136. }
  137. .kpi-chart {
  138. width: 168px;
  139. height: 150px;
  140. flex-shrink: 0;
  141. }
  142. .kpi-side {
  143. flex: 1;
  144. min-width: 0;
  145. }
  146. .kpi-name {
  147. font-size: 20px;
  148. font-weight: 700;
  149. }
  150. .kpi-desc,
  151. .kpi-extra,
  152. .kpi-factor {
  153. margin-top: 6px;
  154. color: #9ad8ff;
  155. font-size: 14px;
  156. }
  157. .kpi-factor {
  158. display: flex;
  159. justify-content: space-between;
  160. padding-right: 8px;
  161. }
  162. .kpi-factor b {
  163. color: #fff;
  164. font-family: Arial, sans-serif;
  165. }
  166. .chart-row {
  167. display: grid;
  168. grid-template-columns: 1.15fr 0.85fr;
  169. gap: 12px;
  170. height: 280px;
  171. flex-shrink: 0;
  172. }
  173. .panel {
  174. display: flex;
  175. flex-direction: column;
  176. min-width: 0;
  177. min-height: 0;
  178. padding: 10px 14px 8px;
  179. }
  180. .panel-title {
  181. height: 28px;
  182. color: #d8f4ff;
  183. font-size: 18px;
  184. font-weight: 700;
  185. flex-shrink: 0;
  186. }
  187. .chart-box {
  188. flex: 1;
  189. min-height: 0;
  190. }
  191. .table-row {
  192. display: grid;
  193. grid-template-columns: 1.45fr 0.7fr;
  194. gap: 12px;
  195. flex: 1;
  196. min-height: 0;
  197. }
  198. .table-wrap {
  199. flex: 1;
  200. min-height: 0;
  201. overflow: hidden;
  202. }
  203. .kpi-table {
  204. width: 100%;
  205. border-collapse: collapse;
  206. table-layout: fixed;
  207. }
  208. .kpi-table th,
  209. .kpi-table td {
  210. height: 36px;
  211. padding: 0 8px;
  212. text-align: center;
  213. font-size: 15px;
  214. white-space: nowrap;
  215. overflow: hidden;
  216. text-overflow: ellipsis;
  217. }
  218. .kpi-table th {
  219. color: #7fd4ff;
  220. font-weight: 600;
  221. background: rgba(0, 143, 253, 0.12);
  222. }
  223. .kpi-table td {
  224. color: #fff;
  225. border-bottom: 1px solid rgba(0, 143, 253, 0.12);
  226. }
  227. .kpi-table tbody tr.is-current td {
  228. background: rgba(64, 222, 120, 0.12);
  229. color: #d9ffe6;
  230. }
  231. .kpi-table .is-good { color: #40de78; }
  232. .kpi-table .is-ok { color: #3ecbff; }
  233. .kpi-table .is-warn { color: #ffb800; }
  234. .kpi-table .is-bad { color: #ff5c5c; }
  235. .empty-row td {
  236. color: #7aa8c8;
  237. }