index.css 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. /* 或者针对特定按钮 */
  2. .swal2-confirm:hover {
  3. background-color: #d33 !important; /* 保持与正常状态相同 */
  4. }
  5. .swal2-cancel:hover {
  6. background-color: #3085d6 !important; /* 保持与正常状态相同 */
  7. }
  8. * {
  9. box-sizing: border-box;
  10. }
  11. body {
  12. font-family: Arial, sans-serif;
  13. margin: 0;
  14. padding: 20px;
  15. min-width: 1200px;
  16. overflow-x: auto;
  17. }
  18. .container {
  19. display: flex;
  20. flex-direction: column;
  21. height: 95vh;
  22. gap: 20px;
  23. }
  24. .summary-section {
  25. border: 1px solid #ddd;
  26. padding: 15px;
  27. border-radius: 5px;
  28. background-color: #f9f9f9;
  29. }
  30. .summary-table {
  31. width: 100%;
  32. border-collapse: collapse;
  33. }
  34. .summary-table th, .summary-table td {
  35. border: 1px solid #ddd;
  36. padding: 12px;
  37. text-align: center;
  38. }
  39. .summary-table th {
  40. background-color: #f2f2f2;
  41. }
  42. .summary-actions {
  43. display: flex;
  44. justify-content: space-between;
  45. gap: 10px;
  46. margin-top: 10px;
  47. }
  48. .device-section {
  49. flex: 1;
  50. height: 100px; /* 固定高度 */
  51. overflow: auto;
  52. border: 1px solid #ddd;
  53. border-radius: 5px;
  54. }
  55. .device-table {
  56. height: 50px; /* 容器高度 */
  57. overflow-y: auto; /* 垂直滚动条 */
  58. width: 100%;
  59. border-collapse: collapse;
  60. }
  61. .device-table th, .device-table td {
  62. border: 1px solid #ddd;
  63. padding: 8px;
  64. text-align: center;
  65. white-space: nowrap;
  66. }
  67. .device-table th {
  68. background-color: #f2f2f2;
  69. position: sticky;
  70. top: 0;
  71. }
  72. .status-section {
  73. border: 1px solid #ddd;
  74. padding: 15px;
  75. border-radius: 5px;
  76. background-color: #f9f9f9;
  77. }
  78. .status-boxes {
  79. display: flex;
  80. flex-wrap: wrap;
  81. gap: 15px;
  82. }
  83. .status-box {
  84. border: 1px solid #ddd;
  85. padding: 15px;
  86. min-width: 150px;
  87. text-align: center;
  88. background-color: white;
  89. border-radius: 5px;
  90. flex: 1;
  91. }
  92. .status-active {
  93. color: #4CAF50;
  94. font-weight: bold;
  95. }
  96. .status-inactive {
  97. color: #f44336;
  98. font-weight: bold;
  99. }
  100. .left-buttons {
  101. display: flex;
  102. gap: 10px;
  103. }
  104. .right-buttons {
  105. display: flex;
  106. gap: 10px;
  107. }
  108. .button-container {
  109. /*display: flex;*/
  110. /*justify-content: center;*/
  111. /*gap: 15px;*/
  112. /*margin-top: 20px;*/
  113. margin-bottom: 10px; display: flex;
  114. justify-content: space-between; /* 左右分开 */
  115. align-items: center;
  116. padding: 15px;
  117. background-color: #f5f5f5;
  118. border-radius: 8px;
  119. }
  120. .btn {
  121. padding: 8px 16px;
  122. background-color: #4CAF50;
  123. color: white;
  124. border: none;
  125. border-radius: 4px;
  126. cursor: pointer;
  127. font-weight: bold;
  128. }
  129. .btn-energy {
  130. background-color: #2196F3;
  131. }
  132. .btn-close{
  133. background-color: rgb(101, 107, 139);
  134. }
  135. .btn-threshold {
  136. background-color: #ff9800;
  137. }
  138. .btn-delay {
  139. background-color: #9c27b0;
  140. }
  141. .scrollable-table {
  142. flex: 1;
  143. overflow-y: auto;
  144. }
  145. .button-footer {
  146. display: flex;
  147. justify-content: center;
  148. gap: 15px;
  149. padding: 15px;
  150. background-color: #f9f9f9;
  151. border-top: 1px solid #ddd;
  152. }
  153. .table-container {
  154. display: flex;
  155. flex-direction: column;
  156. height: 80vh; /* 视口高度百分比 */
  157. max-height: 500px;
  158. border: 1px solid #ddd;
  159. border-radius: 5px;
  160. min-width: 1000px; /* 最小宽度防止压缩 */
  161. }
  162. .selectStyle{
  163. width: 200px;
  164. height: 40px;
  165. border-radius: 4px
  166. }
  167. /* 重置样式 */
  168. * {
  169. margin: 0;
  170. padding: 0;
  171. box-sizing: border-box;
  172. }
  173. .tab-container {
  174. width: 100%;
  175. height: 100%;
  176. margin: 0 auto;
  177. background: white;
  178. border-radius: 8px;
  179. box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  180. overflow: hidden;
  181. }
  182. .tab-header {
  183. display: flex;
  184. background-color: #f1f1f1;
  185. border-bottom: 1px solid #ddd;
  186. }
  187. .tab-btn {
  188. border-radius: 10px;
  189. padding: 12px 20px;
  190. background: none;
  191. border: none;
  192. cursor: pointer;
  193. font-size: 16px;
  194. transition: all 0.3s;
  195. position: relative;
  196. }
  197. .tab-btn:hover {
  198. background-color: #ddd;
  199. }
  200. .tab-btn.active {
  201. background-color: #4CAF50;
  202. color: white;
  203. }
  204. .tab-content {
  205. height: 100%;
  206. padding: 20px;
  207. display: none;
  208. }
  209. .tab-content.active {
  210. display: block;
  211. animation: fadeIn 0.5s;
  212. }
  213. @keyframes fadeIn {
  214. from { opacity: 0; }
  215. to { opacity: 1; }
  216. }
  217. .tab-iframe {
  218. width: 100%;
  219. height: 100%;
  220. border: none;
  221. }
  222. html, body {
  223. height: 100%;
  224. font-family: 'Arial', sans-serif;
  225. }
  226. .modal-content {
  227. background: white;
  228. padding: 20px;
  229. border-radius: 8px;
  230. max-width: 500px;
  231. width: 80%;
  232. max-height: 80vh;
  233. overflow-y: auto;
  234. }
  235. .form-group {
  236. margin-bottom: 15px;
  237. }
  238. .form-group label {
  239. display: block;
  240. margin-bottom: 5px;
  241. font-weight: bold;
  242. }
  243. .form-group input[type="text"],
  244. .form-group input[type="date"],
  245. .form-group select,
  246. .form-group textarea {
  247. width: 100%;
  248. padding: 8px;
  249. border: 1px solid #ddd;
  250. border-radius: 4px;
  251. }
  252. .form-actions {
  253. display: flex;
  254. justify-content: flex-end;
  255. gap: 10px;
  256. margin-top: 20px;
  257. }
  258. .btn-on {
  259. background-color: #4CAF50;
  260. color: white;
  261. }
  262. .btn-off {
  263. background-color: #f44336;
  264. color: white;
  265. }
  266. .btn-all {
  267. background-color: #2196F3;
  268. color: white;
  269. }
  270. .btn-energy {
  271. background-color: #2196F3;
  272. }
  273. .btn-close{
  274. background-color: rgb(101, 107, 139);
  275. }
  276. .btn-threshold {
  277. background-color: #ff9800;
  278. }
  279. .btn-delay {
  280. background-color: #9c27b0;
  281. }
  282. .modal-overlay2 {
  283. position: fixed;
  284. top: 0;
  285. left: 0;
  286. right: 0;
  287. bottom: 0;
  288. background: rgba(0,0,0,0.5);
  289. display: flex;
  290. justify-content: center;
  291. align-items: center;
  292. z-index: 1000;
  293. }
  294. .upload-container {
  295. padding: 25px;
  296. }
  297. .upload-area {
  298. border: 2px dashed #cbd5e1;
  299. padding: 40px;
  300. text-align: center;
  301. background: #f8fafc;
  302. cursor: pointer;
  303. }
  304. .file-input {
  305. display: none;
  306. }
  307. .files-list {
  308. margin-top: 30px;
  309. }
  310. .files-list h3 {
  311. color: #334155;
  312. margin-bottom: 15px;
  313. padding-bottom: 10px;
  314. border-bottom: 1px solid #e2e8f0;
  315. }
  316. .file-item {
  317. display: flex;
  318. align-items: center;
  319. padding: 15px;
  320. background: #f8fafc;
  321. border-radius: 8px;
  322. margin-bottom: 10px;
  323. transition: all 0.3s ease;
  324. }
  325. .file-info {
  326. flex-grow: 1;
  327. }
  328. .file-action-btn {
  329. width: 36px;
  330. height: 36px;
  331. border-radius: 50%;
  332. display: flex;
  333. cursor: pointer;
  334. }
  335. .progress-bar {
  336. height: 6px;
  337. background: #e2e8f0;
  338. border-radius: 3px;
  339. margin-top: 8px;
  340. overflow: hidden;
  341. }
  342. .modal-overlay {
  343. position: fixed;
  344. top: 0;
  345. left: 0;
  346. right: 0;
  347. bottom: 0;
  348. background: rgba(0,0,0,0.5);
  349. display: flex;
  350. justify-content: center;
  351. align-items: center;
  352. z-index: 999;
  353. }
  354. .radio-group,
  355. .checkbox-group {
  356. display: flex;
  357. flex-wrap: wrap;
  358. gap: 10px;
  359. }
  360. .radio-group label,
  361. .checkbox-group label {
  362. display: flex;
  363. align-items: center;
  364. gap: 5px;
  365. font-weight: normal;
  366. }
  367. button[type="submit"] {
  368. background: #4CAF50;
  369. color: white;
  370. }
  371. button[type="submit"]:disabled {
  372. background: #ccc;
  373. }
  374. select.custom-select {
  375. padding: 12px;
  376. border: 1px solid #ddd;
  377. border-radius: 6px;
  378. background-color: white;
  379. font-size: 16px;
  380. color: #333;
  381. appearance: none;
  382. -webkit-appearance: none;
  383. background-image: url('data:image/svg+xml;utf8,<svg fill="%23333" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/></svg>');
  384. background-repeat: no-repeat;
  385. background-position: right 10px center;
  386. background-size: 16px;
  387. }
  388. /* 尝试设置option样式(效果有限) */
  389. select.custom-select option {
  390. height: 40px; /* 可能在某些浏览器中有效 */
  391. padding: 12px; /* 可能在某些浏览器中有效 */
  392. font-size: 16px; /* 通常有效 */
  393. line-height: 2; /* 可能有效 */
  394. }
  395. thead {
  396. position: sticky; /* 固定表头 */
  397. top: 0; /* 固定在容器顶部 */
  398. z-index: 10; /* 确保表头在内容之上 */
  399. }
  400. .divAll{
  401. width: 100%;
  402. height: 100%;
  403. margin: 0 auto;
  404. background: white;
  405. border-radius: 8px;
  406. box-shadow: 0 2px 10px rgb(0 0 0 / 10%);
  407. overflow: hidden;
  408. }