modal.less 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778
  1. @import '../theme.less';
  2. @{theme-default} {
  3. --image-bg1: url('/@/assets/images/vent/bg1.png');
  4. --image-device-detail-card: url('/@/assets/images/vent/device-detail-card.png');
  5. --image-device-left-bg: url('/@/assets/images/vent/device-left-bg.png');
  6. --image-tj: url('/@/assets/images/vent/tj.png');
  7. --image-short-light: url('/@/assets/images/vent/short-light.png');
  8. --image-bottom-tabs-l: url('/@/assets/images/vent/bottom-tabs-l.png');
  9. --image-bottom-tabs-r: url('/@/assets/images/vent/bottom-tabs-r.png');
  10. }
  11. @{theme-deepblue} {
  12. --image-device-detail-card: url('/@/assets/images/themify/deepblue/vent/device-detail-card.png');
  13. --image-device-left-bg: url('/@/assets/images/themify/deepblue/vent/device-left-bg.png');
  14. --image-tj: url('/@/assets/images/themify/deepblue/vent/tj.png');
  15. --image-short-light: url('/@/assets/images/themify/deepblue/vent/short-light.png');
  16. --image-bottom-tabs-l: url('/@/assets/images/themify/deepblue/vent/bottom-tabs-l.png');
  17. --image-bottom-tabs-r: url('/@/assets/images/themify/deepblue/vent/bottom-tabs-r.png');
  18. }
  19. .bg {
  20. width: 100%;
  21. height: 100%;
  22. background: var(--image-bg1) no-repeat;
  23. background-size: cover;
  24. //background-repeat: no-repeat;
  25. position: relative;
  26. &::before {
  27. content: '';
  28. width: 100%;
  29. height: 100%;
  30. display: block;
  31. position: absolute;
  32. left: 0;
  33. top: 0;
  34. background: var(--vent-base-color);
  35. }
  36. .elementTag {
  37. pointer-events: none !important;
  38. }
  39. .threejs-Object-CSS {
  40. pointer-events: none;
  41. .elementContent {
  42. // background-color: rgb(20 143 221 / 40%);
  43. // box-shadow: 0px 0px 12px rgb(0 128 255 / 75%);
  44. // border: 1px solid rgb(127 177 255 / 75%);
  45. // padding: 10px 20px 0px 20px;
  46. background-color: rgba(0, 0, 0, 0.3);
  47. box-shadow: 0px 0px 40px rgb(0 90 131 / 55%) inset;
  48. border: 2px solid rgb(153 176 195 / 55%);
  49. padding: 15px 20px 0px 20px;
  50. color: #efefef;
  51. &::before {
  52. content: '';
  53. display: block;
  54. position: absolute;
  55. width: 80px;
  56. height: 1px;
  57. background: rgb(127 177 255 / 75%);
  58. bottom: 0;
  59. right: -80px;
  60. transform-origin: 0 0;
  61. transform: rotate(30deg);
  62. }
  63. &::after {
  64. content: '';
  65. display: block;
  66. position: absolute;
  67. width: 21px;
  68. height: 21px;
  69. border: 4px solid #f2a811;
  70. background: rgba(173, 204, 253, 0.75);
  71. bottom: -55px;
  72. right: -85px;
  73. border-radius: 50%;
  74. //animation: sign 1s infinite;
  75. }
  76. }
  77. .elementContent-r {
  78. &::before {
  79. content: '';
  80. display: block;
  81. position: absolute;
  82. width: 80px;
  83. height: 1px;
  84. background: rgb(127 177 255 / 75%);
  85. bottom: 0;
  86. right: 85px;
  87. transform-origin: 0 0;
  88. transform: rotate(150deg);
  89. }
  90. &::after {
  91. content: '';
  92. display: block;
  93. position: absolute;
  94. width: 21px;
  95. height: 21px;
  96. border: 4px solid #f2a811;
  97. background: rgb(127 177 255 / 75%);
  98. bottom: -55px;
  99. right: 230px;
  100. border-radius: 50%;
  101. //animation: sign 1s infinite;
  102. }
  103. }
  104. .value {
  105. color: #e90;
  106. }
  107. @keyframes sign {
  108. 0% {
  109. background: #d35d00;
  110. }
  111. 50% {
  112. background: #ffd8b9;
  113. }
  114. 100% {
  115. background: #d35d00;
  116. }
  117. }
  118. .gas_unit_text {
  119. writing-mode: vertical-lr;
  120. /*垂直展示*/
  121. writing-mode: tb-lr;
  122. /*兼容IE*/
  123. color: var(--vent-font-color);
  124. text-orientation: upright;
  125. }
  126. }
  127. .hot-point {
  128. .status {
  129. width: 30px;
  130. height: 30px;
  131. position: relative;
  132. .animate1,
  133. .animate2 {
  134. background: #fff;
  135. width: 30px;
  136. height: 30px;
  137. border-radius: 100%;
  138. position: absolute;
  139. left: 0;
  140. top: 0;
  141. z-index: 1;
  142. }
  143. .animate1 {
  144. -webkit-animation: circle 2s 0s ease-out infinite running;
  145. animation: circle 2s 0s ease-out infinite running;
  146. }
  147. .animate2 {
  148. -webkit-animation: circle 2s 1s ease-out infinite running;
  149. animation: circle 2s 1s ease-out infinite running;
  150. }
  151. }
  152. @keyframes circle {
  153. 0% {
  154. -webkit-transform: scale(1);
  155. transform: scale(1);
  156. opacity: 1;
  157. }
  158. 100% {
  159. -webkit-transform: scale(1.8);
  160. transform: scale(1.8);
  161. opacity: 0.1;
  162. }
  163. }
  164. .solid {
  165. width: 100%;
  166. height: 100%;
  167. position: absolute;
  168. z-index: 999;
  169. left: 0;
  170. top: 0;
  171. background: #fff;
  172. border-radius: 100%;
  173. }
  174. }
  175. .device-detail {
  176. width: 100%;
  177. height: 100%;
  178. position: absolute;
  179. overflow: hidden;
  180. // pointer-events: none !important;
  181. .device-card {
  182. width: 329px;
  183. height: 247px;
  184. background: var(--image-device-detail-card) no-repeat;
  185. background-size: 100%;
  186. z-index: 99;
  187. position: relative;
  188. pointer-events: none;
  189. .title {
  190. color: var(--vent-font-color);
  191. font-family: 'douyuFont';
  192. text-align: center;
  193. font-size: 12px;
  194. padding-top: 15px;
  195. }
  196. .detail-box {
  197. display: flex;
  198. flex-direction: row;
  199. position: relative;
  200. .left-box {
  201. width: 164px;
  202. height: 152px;
  203. background: var(--image-device-left-bg) no-repeat;
  204. background-size: contain;
  205. position: relative;
  206. margin-top: 10px;
  207. }
  208. .right-box {
  209. width: 165px;
  210. height: 160px;
  211. color: #ffffff99;
  212. padding: 10px 10px 10px 0;
  213. overflow-y: auto;
  214. pointer-events: auto;
  215. .detail-title {
  216. color: #ffd80a;
  217. }
  218. }
  219. }
  220. }
  221. }
  222. }
  223. .scene-box {
  224. width: 100%;
  225. height: 100%;
  226. position: absolute;
  227. z-index: 2;
  228. left: 0;
  229. top: 0;
  230. pointer-events: none;
  231. display: flex;
  232. flex-direction: column;
  233. justify-items: center;
  234. overflow: hidden;
  235. .top-box {
  236. position: absolute;
  237. top: 50px;
  238. width: 100%;
  239. height: 50px;
  240. // background-image: linear-gradient(to right, #046ad500, #006effe7, #046ad500);
  241. display: flex;
  242. align-items: center;
  243. pointer-events: auto;
  244. .row {
  245. color: var(--vent-font-color);
  246. display: flex;
  247. align-items: center;
  248. }
  249. .top-left {
  250. width: 400px;
  251. height: 100%;
  252. font-size: 16px;
  253. display: flex;
  254. align-items: center;
  255. padding-left: 20px;
  256. position: relative;
  257. background: var(--image-tj) no-repeat;
  258. background-position: center right;
  259. background-size: auto 100%;
  260. cursor: pointer;
  261. padding-right: 80px;
  262. color: var(--vent-font-color);
  263. letter-spacing: 0.15em;
  264. text-shadow:
  265. -1px -1px 1px #0084ff,
  266. 0px 1px 0 #28282822,
  267. 0px 2px 0 #28282822,
  268. 0px 3px 0 #28282822,
  269. 0px 4px 0 #28282822,
  270. 0px 5px 0 #28282822,
  271. 0px 6px 0 #28282822,
  272. 0px 7px 0 #28282822,
  273. 0px 8px 0 #28282822,
  274. 0px 9px 0 #28282822,
  275. // 0px 10px 0 #28282822,
  276. // 0px 11px 0 #28282822,
  277. // 0px 12px 0 #181818,
  278. // 0px 13px 0 #161616,
  279. // 0px 14px 0 #141414,
  280. // 0px 15px 0 #121212,
  281. 2px 20px 5px rgba(0, 0, 0, 0.3),
  282. 5px 23px 5px rgba(0, 0, 0, 0.1),
  283. 8px 27px 8px rgba(0, 0, 0, 0.2);
  284. &::after {
  285. width: calc(100% - 105px);
  286. height: 100%;
  287. content: '';
  288. position: absolute;
  289. display: block;
  290. bottom: 1px;
  291. border-bottom: 3px solid #5595ff;
  292. }
  293. }
  294. .top-center {
  295. flex: 1.5;
  296. }
  297. .top-right {
  298. justify-content: right;
  299. .run-type {
  300. margin: 0 10px;
  301. }
  302. .control-title {
  303. color: #73e8fe;
  304. // color: rgb(0, 255, 242);// 64D5FF
  305. }
  306. }
  307. :deep(.button-box) {
  308. position: relative;
  309. padding: 5px;
  310. // border: 1px transparent solid;
  311. border-radius: 5px;
  312. margin-left: 8px;
  313. margin-right: 8px;
  314. width: auto;
  315. // height: 40px;
  316. // border: 1px solid #65dbea;
  317. height: 35px !important;
  318. display: flex;
  319. align-items: center;
  320. justify-content: center;
  321. color: var(--vent-font-color);
  322. padding: 0 15px 5px 15px;
  323. cursor: pointer;
  324. &:hover {
  325. background: var(--vent-modal-bg2);
  326. }
  327. &::before {
  328. width: calc(100% - 6px);
  329. height: 27px;
  330. content: '';
  331. position: absolute;
  332. top: 3px;
  333. right: 0;
  334. left: 3px;
  335. bottom: 0;
  336. z-index: -1;
  337. border-radius: inherit;
  338. /*important*/
  339. background: var(--vent-device-manager-control-btn);
  340. }
  341. &::after {
  342. width: calc(100% + 32px);
  343. height: 10px;
  344. content: '';
  345. position: absolute;
  346. top: 28px;
  347. right: 0;
  348. left: -16px;
  349. bottom: 0;
  350. z-index: -1;
  351. border-radius: inherit;
  352. /*important*/
  353. background: var(--image-short-light) no-repeat;
  354. background-position: center;
  355. background-size: 100%;
  356. z-index: 999;
  357. }
  358. }
  359. :deep(.button-disable) {
  360. border: 1px solid #66989e !important;
  361. &:hover {
  362. background: none !important;
  363. }
  364. &::before {
  365. background: linear-gradient(#1fa6cbcc, #127cb5cc) !important;
  366. }
  367. }
  368. }
  369. .title-text {
  370. color: var(--vent-font-color);
  371. font-size: 16px;
  372. text-align: center;
  373. line-height: 32px;
  374. position: relative;
  375. top: 47px;
  376. }
  377. .title-box {
  378. font-family: Geneva, sans-serif;
  379. width: 100%;
  380. text-align: center;
  381. position: absolute;
  382. top: 50px;
  383. font-size: 28px;
  384. color: #ff9900;
  385. letter-spacing: 0.15em;
  386. text-shadow:
  387. -1px -1px 1px #efede3,
  388. 0px 1px 0 #28282822,
  389. 0px 2px 0 #28282822,
  390. 0px 3px 0 #28282822,
  391. 0px 4px 0 #28282822,
  392. 0px 5px 0 #28282822,
  393. 0px 6px 0 #28282822,
  394. 0px 7px 0 #28282822,
  395. 0px 8px 0 #28282822,
  396. 0px 9px 0 #28282822,
  397. 0px 10px 0 #28282822,
  398. 0px 11px 0 #28282822,
  399. // 0px 12px 0 #181818,
  400. // 0px 13px 0 #161616,
  401. // 0px 14px 0 #141414,
  402. // 0px 15px 0 #121212,
  403. 2px 20px 5px rgba(0, 0, 0, 0.3),
  404. 5px 23px 5px rgba(0, 0, 0, 0.1),
  405. 8px 27px 8px rgba(0, 0, 0, 0.2);
  406. // 8px 28px 35px rgba(0, 0, 0, 0.9);
  407. &:before {
  408. content: attr(text);
  409. position: absolute;
  410. z-index: 10;
  411. color: pink;
  412. -webkit-mask: linear-gradient(to left, red, transparent);
  413. }
  414. }
  415. .bottom-tabs-box {
  416. position: fixed;
  417. width: 100%;
  418. height: 330px;
  419. bottom: 5px;
  420. // padding: 0 10px;
  421. margin: 0px;
  422. pointer-events: auto;
  423. z-index: 9999;
  424. // &:before {
  425. // position: absolute;
  426. // content: '';
  427. // width: 2px;
  428. // height: calc(100% + 55px);
  429. // left: 2px;
  430. // top: -19px;
  431. // background-image: linear-gradient(#00F7FF05, #00F7FF, #00F7FF05);
  432. // background-position: center;
  433. // // background: var(--image-bottom-tabs-l) no-repeat;
  434. // // background-size: contain;
  435. // }
  436. // &:after {
  437. // position: absolute;
  438. // content: '';
  439. // width: 2px;
  440. // height: calc(100% + 55px);
  441. // right: 7px;
  442. // top: -19px;
  443. // background-image: linear-gradient(#00F7FF05, #00F7FF, #00F7FF05);
  444. // background-position: center;
  445. // // background: var(--image-bottom-tabs-r) no-repeat;
  446. // // background-size: contain;
  447. // }
  448. .dv_border_8 {
  449. position: relative;
  450. .enter-detail {
  451. color: var(--vent-font-color);
  452. cursor: pointer;
  453. position: absolute;
  454. right: 120px;
  455. top: -6px;
  456. padding: 5px;
  457. border-radius: 5px;
  458. margin-left: 8px;
  459. margin-right: 8px;
  460. width: auto;
  461. height: 33px !important;
  462. display: flex;
  463. align-items: center;
  464. justify-content: center;
  465. color: var(--vent-font-color);
  466. padding: 5px 15px 5px 15px;
  467. cursor: pointer;
  468. right: 20px;
  469. top: 6px;
  470. z-index: 99;
  471. &:hover {
  472. background: var(--vent-modal-bg2);
  473. }
  474. &::before {
  475. width: calc(100% - 6px);
  476. height: 27px;
  477. content: '';
  478. position: absolute;
  479. top: 3px;
  480. right: 0;
  481. left: 3px;
  482. bottom: 0;
  483. z-index: -1;
  484. border-radius: inherit;
  485. /*important*/
  486. background: var(--vent-device-manager-control-btn);
  487. }
  488. }
  489. }
  490. .tabs-button-group {
  491. position: absolute;
  492. display: flex;
  493. right: 20px;
  494. top: 5px;
  495. z-index: 999;
  496. align-items: center;
  497. pointer-events: auto;
  498. .tabs-button {
  499. margin-right: 10px;
  500. }
  501. }
  502. :deep(.tabs-box) {
  503. position: absolute;
  504. width: calc(100%);
  505. bottom: 0px;
  506. height: calc(100% - 0px);
  507. pointer-events: auto;
  508. // background: #02263aaa;
  509. // background: linear-gradient(#00daff33, #2081ff11);
  510. background: var(--vent-tabs-bg);
  511. // background: radial-gradient(circle at 50% 80%, #3df6ff33, #0038b433);
  512. backdrop-filter: blur(18px);
  513. overflow-y: hidden;
  514. border-radius: 8px;
  515. .tabs-box {
  516. height: 100%;
  517. }
  518. .tab-item {
  519. height: 240px;
  520. color: var(--vent-font-color);
  521. }
  522. // .@{ventSpace}-tabs-content,
  523. // .vent-table {
  524. // height: calc(100% - 10px);
  525. // }
  526. // .@{ventSpace}-tabs-content{
  527. // height: calc(100% - 10px);
  528. // }
  529. .@{ventSpace}-tabs-top > .@{ventSpace}-tabs-nav {
  530. margin: 0 !important;
  531. }
  532. .@{ventSpace}-table-title {
  533. padding: 0 !important;
  534. }
  535. .vent-table {
  536. .@{ventSpace}-table-column-title,
  537. .@{ventSpace}-table-thead > tr > th {
  538. color: var(--vent-table-action-link) !important;
  539. }
  540. .@{ventSpace}-progress-text {
  541. color: var(--vent-font-color) !important;
  542. }
  543. }
  544. .@{ventSpace}-tabs-nav {
  545. margin-bottom: 0px !important;
  546. }
  547. .@{ventSpace}-tabs-nav-wrap {
  548. padding-left: 10px !important;
  549. }
  550. .@{ventSpace}-tabs-tab.@{ventSpace}-tabs-tab-active .@{ventSpace}-tabs-tab-btn {
  551. color: var(--vent-tabs-action-link) !important;
  552. }
  553. .@{ventSpace}-tabs-ink-bar {
  554. background: var(--vent-tabs-action-link);
  555. }
  556. .@{ventSpace}-tabs-top > .@{ventSpace}-tabs-nav::before {
  557. border-color: #f0f0f022 !important;
  558. }
  559. }
  560. }
  561. }
  562. .state-icon {
  563. display: inline-block;
  564. width: 11px;
  565. height: 11px;
  566. border-radius: 6px;
  567. margin-right: 6px;
  568. }
  569. .open {
  570. border: 2px solid #133a56;
  571. background: #4ecb73;
  572. }
  573. // .gray {
  574. // border: 2px solid #898fa144;
  575. // background: #898fa1;
  576. // }
  577. .close {
  578. border: 2px solid #ff1818;
  579. background: #ff8888;
  580. animation: close 1s infinite;
  581. }
  582. @keyframes close {
  583. 0% {
  584. border: 2px solid #ff8888;
  585. background: #ff3538;
  586. }
  587. 50% {
  588. border: 2px solid #ff0000;
  589. background: #c90000;
  590. }
  591. 100% {
  592. border: 2px solid #ff8888;
  593. background: #ff3538;
  594. }
  595. }
  596. .data-title {
  597. color: #eee;
  598. }
  599. .signal-item {
  600. display: flex;
  601. justify-content: space-between;
  602. align-items: center;
  603. }
  604. /* 模态框样式 */
  605. :deep(.modal-container) {
  606. min-height: 100px;
  607. padding: 20px;
  608. .label {
  609. margin-right: 15px;
  610. font-size: 15px;
  611. font-weight: 600;
  612. color: #70e0f7;
  613. }
  614. .warning-text {
  615. margin-left: 10px;
  616. font-size: 16px;
  617. }
  618. .input-box {
  619. margin-top: 20px;
  620. }
  621. .startSmoke-select {
  622. display: flex;
  623. margin: 15px 12px;
  624. }
  625. }
  626. :deep(.@{ventSpace}-table-thead) {
  627. // background: linear-gradient(#003f77 0%, #004a86aa 10%); //#003f77, #0a134c
  628. background-color: var(--vent-tabs-table-thead) !important;
  629. & > tr > th,
  630. .@{ventSpace}-table-column-title {
  631. // color: #70f9fc !important;
  632. color: var(--vent-table-action-link) !important;
  633. border-color: #91e9fe55 !important;
  634. border-left: none !important;
  635. // border-right: none !important;
  636. &:last-child {
  637. border-right: none;
  638. }
  639. }
  640. }
  641. :deep(.@{ventSpace}-table-tbody) {
  642. tr.@{ventSpace}-table-row-selected {
  643. td {
  644. background: #007cc422 !important;
  645. }
  646. }
  647. tr > td {
  648. background: #007cc405 !important;
  649. }
  650. }
  651. // .jeecg-basic-table-row__striped {
  652. // // background: #97efff11 !important;
  653. // td {
  654. // background-color: #97efff00 !important;
  655. // // background-color: @vent-table-hover !important;
  656. // }
  657. // }
  658. :deep(.@{ventSpace}-form) {
  659. padding: 0 !important;
  660. border: none !important;
  661. margin-bottom: 0 !important;
  662. }
  663. :deep(.@{ventSpace}-picker),
  664. :deep(.@{ventSpace}-select-selector) {
  665. // width: 100% !important;
  666. // height: 30px !important;
  667. background: #00000017 !important;
  668. border: 1px solid @vent-form-item-border !important;
  669. input,
  670. .@{ventSpace}-select-selection-item,
  671. .@{ventSpace}-picker-suffix {
  672. color: var(--vent-font-color) !important;
  673. }
  674. .@{ventSpace}-select-selection-placeholder {
  675. color: #b7b7b7 !important;
  676. }
  677. }
  678. :deep(.@{ventSpace}-select-arrow),
  679. :deep(.@{ventSpace}-picker-separator) {
  680. color: var(--vent-font-color) !important;
  681. }
  682. :deep(.@{ventSpace}-picker-dropdown) {
  683. top: 0 !important;
  684. left: 0 !important;
  685. }