vab.scss 22 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046
  1. /**
  2. * @description 全局样式
  3. */
  4. @import 'normalize.css';
  5. @import 'element-plus/theme-chalk/src/display';
  6. @import 'element-plus/theme-chalk/src/index';
  7. @import './dark';
  8. @import './plain';
  9. @import './technology';
  10. @import 'vsv-icon/dist/style.css';
  11. @import './var';
  12. @mixin base-scrollbar {
  13. &::-webkit-scrollbar {
  14. width: 6px;
  15. height: 6px;
  16. }
  17. &::-webkit-scrollbar-thumb {
  18. background-color: rgba(#909399, 0.3);
  19. border-radius: var(--el-border-radius-round);
  20. transition: var(--el-transition-duration) background-color;
  21. &:hover {
  22. background-color: rgba(#909399, 0.5);
  23. }
  24. }
  25. }
  26. html {
  27. body {
  28. position: relative;
  29. box-sizing: border-box;
  30. height: calc(var(--vh, 1vh) * 100);
  31. padding: 0;
  32. overflow: hidden;
  33. font-size: var(--el-font-size-base);
  34. color: var(--el-color-black);
  35. background: var(--el-background-color);
  36. &.color-weakness {
  37. filter: invert(80%);
  38. }
  39. #app {
  40. height: calc(var(--vh, 1vh) * 100);
  41. @include base-scrollbar;
  42. &:not([class*='el-scrollbar']) {
  43. transition: var(--el-transition);
  44. }
  45. .vue-shop-vite-box {
  46. section,
  47. div:not(
  48. .el-drawer,
  49. .el-drawer *,
  50. .el-dialog,
  51. .el-dialog *,
  52. .el-message-box,
  53. .el-message-box *,
  54. .el-table,
  55. .el-table *,
  56. .el-carousel,
  57. .el-carousel *,
  58. .el-pagination,
  59. .el-pagination *,
  60. .el-slider,
  61. .el-slider *,
  62. .el-card,
  63. .el-card *,
  64. .split,
  65. .split *,
  66. .card-drag,
  67. .card-drag *,
  68. .global-animation-disabled *,
  69. .no-transition-container *,
  70. .vab-magnifier,
  71. .vab-magnifier *
  72. ) {
  73. text-shadow: none;
  74. transition: var(--el-transition);
  75. -webkit-font-smoothing: antialiased;
  76. }
  77. .vab-main {
  78. .vab-app-main {
  79. width: 100%;
  80. padding: var(--el-padding);
  81. overflow: hidden;
  82. > section {
  83. > [class*='-container'] {
  84. min-height: var(--el-container-height);
  85. padding: var(--el-padding);
  86. background: var(--el-color-white);
  87. border: 1px solid var(--el-border-color);
  88. border-radius: var(--el-border-radius-base);
  89. }
  90. }
  91. }
  92. }
  93. }
  94. }
  95. .vue-shop-vite-box.mobile {
  96. --el-margin: 16px;
  97. --el-padding: 16px;
  98. --el-container-height: calc(
  99. var(--vh, 1vh) * 100 - var(--el-nav-height) - var(--el-tabs-height) - var(--el-padding) * 3 - var(--el-footer-height)
  100. );
  101. .ri-contract-right-line.fold-unfold {
  102. position: fixed;
  103. bottom: var(--el-margin);
  104. left: var(--el-margin);
  105. z-index: var(--el-z-index);
  106. display: flex;
  107. align-items: center;
  108. justify-content: center;
  109. width: 50px;
  110. height: 50px;
  111. color: var(--el-color-white);
  112. background: var(--el-color-primary);
  113. border-radius: 50%;
  114. box-shadow: 0 2px 12px 0 var(--el-color-primary);
  115. }
  116. }
  117. * {
  118. box-sizing: border-box;
  119. font-family: Arial, sans-serif;
  120. outline: none !important;
  121. -webkit-tap-highlight-color: transparent;
  122. -webkit-font-smoothing: antialiased;
  123. @include base-scrollbar;
  124. }
  125. [class*='ri-'] {
  126. cursor: pointer;
  127. }
  128. /*a标签 */
  129. a {
  130. color: var(--el-color-primary);
  131. text-decoration: none;
  132. }
  133. /*图片 */
  134. img {
  135. object-fit: cover;
  136. &[src=''],
  137. &:not([src]) {
  138. opacity: 0;
  139. }
  140. }
  141. /* vab-dropdown下拉动画 */
  142. .vab-dropdown {
  143. &-active {
  144. transform: rotateZ(180deg);
  145. }
  146. }
  147. /* vab-query-form表单查询 */
  148. .vab-query-form {
  149. .el-form-item__content {
  150. .el-slider {
  151. width: 190px;
  152. }
  153. }
  154. .el-form {
  155. &.el-form--inline.el-form--label-right {
  156. .el-form-item:not(:first-child) {
  157. .el-form-item__label {
  158. margin-left: 10px;
  159. }
  160. }
  161. }
  162. }
  163. }
  164. /* vab-dot圆点动画 */
  165. .vab-dot {
  166. position: relative;
  167. display: inline-block;
  168. width: 6px;
  169. height: 6px;
  170. margin-right: 3px;
  171. vertical-align: middle;
  172. border-radius: 50%;
  173. span {
  174. position: absolute;
  175. top: 0;
  176. left: 0;
  177. box-sizing: border-box;
  178. display: block;
  179. width: 100%;
  180. height: 100%;
  181. border-radius: 50%;
  182. animation: vabDot 1.2s ease-in-out infinite;
  183. @keyframes vabDot {
  184. 0% {
  185. opacity: 0.6;
  186. transform: scale(0.8);
  187. }
  188. to {
  189. opacity: 0;
  190. transform: scale(2.4);
  191. }
  192. }
  193. }
  194. &-success {
  195. background: var(--el-color-success);
  196. span {
  197. background: var(--el-color-success);
  198. }
  199. }
  200. &-error,
  201. &-danger {
  202. background: var(--el-color-error);
  203. span {
  204. background: var(--el-color-error);
  205. }
  206. }
  207. }
  208. /* vab-data-empty占位图 */
  209. .vab-data-empty {
  210. display: flex;
  211. align-items: center;
  212. justify-content: center;
  213. min-height: calc(var(--el-container-height) - 250px);
  214. margin: auto;
  215. }
  216. /* el-descriptions */
  217. .el-descriptions {
  218. &__title {
  219. padding-left: 10px;
  220. border-left: 5px solid var(--el-color-primary);
  221. }
  222. }
  223. /* el-button按钮 */
  224. .el-button {
  225. border-radius: var(--el-border-radius-base);
  226. &:hover,
  227. &:focus,
  228. &:active,
  229. &.is-disabled {
  230. background-clip: padding-box;
  231. }
  232. &.is-round {
  233. border-radius: var(--el-border-radius-round);
  234. }
  235. &.is-circle {
  236. border-radius: var(--el-border-radius-circle);
  237. }
  238. [class*='el-icon-'] + span,
  239. span + [class*='el-icon-'],
  240. [class*='ri-'] + span,
  241. span + [class*='ri-'] {
  242. margin-left: 3px;
  243. }
  244. }
  245. /* el-select */
  246. .el-select {
  247. min-width: 115px;
  248. }
  249. a + a,
  250. a + .el-button,
  251. .el-button + a {
  252. margin-left: 10px;
  253. }
  254. /* 毛玻璃遮罩(影响性能,默认关闭) */
  255. .el-overlay,
  256. .el-image-viewer__mask {
  257. background-color: var(--el-overlay-color-lighter);
  258. //backdrop-filter: blur(2.5px);
  259. //opacity: 1;
  260. // > div {
  261. // backdrop-filter: none;backdrop-filter
  262. // }
  263. }
  264. .v-modal {
  265. z-index: var(--el-z-index);
  266. background-color: var(--el-overlay-color-lighter);
  267. //backdrop-filter: blur(2.5px);
  268. //opacity: 1;
  269. }
  270. .vab-modal {
  271. position: fixed;
  272. top: 0;
  273. left: 0;
  274. z-index: var(--el-z-index);
  275. width: 100%;
  276. height: 100%;
  277. background-color: var(--el-overlay-color-lighter);
  278. //opacity: 1;
  279. //backdrop-filter: blur(2.5px);
  280. }
  281. /* el-loading-mask遮罩 */
  282. .el-loading-mask {
  283. z-index: calc(var(--el-z-index) - 10) !important;
  284. &.is-fullscreen {
  285. z-index: calc(var(--el-z-index) + 99) !important;
  286. }
  287. }
  288. /* el-tag */
  289. .el-tag {
  290. border-radius: var(--el-border-radius-base);
  291. }
  292. /* .el-badge */
  293. .el-badge {
  294. &__content {
  295. border: 0;
  296. }
  297. }
  298. /* .el-page-header */
  299. .el-page-header {
  300. margin: 0 0 var(--el-margin) 0;
  301. }
  302. /* el-alert */
  303. .el-alert {
  304. margin: 0 0 var(--el-margin) 0;
  305. &.is-light {
  306. .el-alert__icon,
  307. .el-alert__close-btn {
  308. color: currentColor;
  309. }
  310. }
  311. &--success {
  312. &.is-light {
  313. color: var(--el-color-success);
  314. background-color: var(--el-color-success-lighter);
  315. border: 1px solid var(--el-color-success);
  316. }
  317. &.is-dark {
  318. background-color: var(--el-color-success);
  319. border: 1px solid var(--el-color-success);
  320. }
  321. }
  322. &--info {
  323. &.is-light {
  324. color: var(--el-color-primary);
  325. background-color: var(--el-color-primary-light-9);
  326. border: 1px solid var(--el-color-primary);
  327. }
  328. &.is-dark {
  329. background-color: var(--el-color-primary);
  330. border: 1px solid var(--el-color-primary);
  331. }
  332. }
  333. &--warning {
  334. &.is-light {
  335. color: var(--el-color-warning);
  336. background-color: var(--el-color-warning-lighter);
  337. border: 1px solid var(--el-color-warning);
  338. }
  339. &.is-dark {
  340. background-color: var(--el-color-warning);
  341. border: 1px solid var(--el-color-warning);
  342. }
  343. }
  344. &--error {
  345. &.is-light {
  346. color: var(--el-color-error);
  347. background-color: var(--el-color-error-lighter);
  348. border: 1px solid var(--el-color-error);
  349. }
  350. &.is-dark {
  351. background-color: var(--el-color-error);
  352. border: 1px solid var(--el-color-error);
  353. }
  354. }
  355. }
  356. /* nprogress进度条 */
  357. #nprogress {
  358. position: fixed;
  359. z-index: calc(var(--el-z-index) + 3);
  360. .bar {
  361. background: var(--el-color-primary);
  362. }
  363. .peg {
  364. box-shadow:
  365. 0 0 10px var(--el-color-primary),
  366. 0 0 5px var(--el-color-primary);
  367. }
  368. }
  369. /* el-checkbox */
  370. .el-checkbox {
  371. &__label {
  372. font-size: var(--el-font-size-base);
  373. }
  374. }
  375. /* el-table表格 */
  376. .el-table {
  377. font-size: var(--el-font-size-base);
  378. td {
  379. .cell {
  380. .el-image {
  381. width: 50px;
  382. height: 50px;
  383. cursor: pointer;
  384. border-radius: var(--el-border-radius-base);
  385. }
  386. .el-button.is-text + .el-button.is-text {
  387. margin-left: 0;
  388. }
  389. }
  390. }
  391. }
  392. /* el-pagination分页 */
  393. .el-pagination {
  394. --el-pagination-border-radius: var(--el-border-radius-base);
  395. justify-content: center;
  396. margin-top: var(--el-margin);
  397. font-size: var(--el-font-size-base);
  398. * {
  399. font-size: var(--el-font-size-base);
  400. }
  401. }
  402. /* el-menu菜单 */
  403. .el-menu {
  404. user-select: none;
  405. .el-sub-menu__title,
  406. .el-menu-item {
  407. svg,
  408. [class*='ri-'] {
  409. margin-right: 3px;
  410. margin-left: 0;
  411. }
  412. }
  413. }
  414. /* el-tabs--top */
  415. .el-tabs.el-tabs--top {
  416. .el-tabs__item {
  417. svg,
  418. [class*='ri-'] {
  419. margin-right: 3px;
  420. }
  421. }
  422. }
  423. /* el-breadcrumb */
  424. .el-breadcrumb__inner {
  425. display: flex;
  426. align-items: center;
  427. justify-content: center;
  428. svg,
  429. [class*='ri-'] {
  430. margin-right: 3px;
  431. }
  432. }
  433. /* el-tour */
  434. .el-tour {
  435. --el-tour-title-font-size: 18px;
  436. &__header {
  437. display: flex;
  438. justify-items: center;
  439. width: 100%;
  440. height: 58px;
  441. padding: 0 0 0 var(--el-padding);
  442. margin: 0;
  443. }
  444. &__title {
  445. line-height: 58px;
  446. }
  447. &__closebtn {
  448. width: auto;
  449. height: auto;
  450. margin-top: var(--el-padding);
  451. margin-right: var(--el-padding);
  452. }
  453. &__content {
  454. max-width: 400px !important;
  455. padding: 0;
  456. .el-button--small {
  457. height: 32px;
  458. padding: 8px 15px;
  459. font-size: var(--el-font-size-base);
  460. border-radius: var(--el-border-radius-base);
  461. }
  462. }
  463. &__body {
  464. padding: var(--el-padding);
  465. }
  466. &__footer {
  467. display: flex;
  468. align-items: center;
  469. padding: var(--el-padding);
  470. }
  471. @media (max-width: 768px) {
  472. &__content {
  473. width: calc(100% - 10vw);
  474. }
  475. }
  476. }
  477. /* el-dialog */
  478. @media (max-width: 768px) {
  479. .el-dialog,
  480. .el-message-box {
  481. width: calc(100% - 10vw);
  482. margin-right: 5vw;
  483. margin-left: 5vw;
  484. }
  485. }
  486. .el-dialog {
  487. --el-dialog-title-font-size: 18px;
  488. padding: 0;
  489. border-radius: var(--el-border-radius-base);
  490. &--center {
  491. .el-dialog__title {
  492. padding-left: 0 !important;
  493. }
  494. }
  495. &__header {
  496. height: calc(var(--el-dialog-title-font-size) + var(--el-padding) * 2);
  497. padding: 0 !important;
  498. margin-right: 0;
  499. line-height: calc(var(--el-dialog-title-font-size) + var(--el-padding) * 2);
  500. border-top-left-radius: inherit;
  501. border-top-right-radius: inherit;
  502. .el-dialog__title {
  503. width: 100%;
  504. height: inherit;
  505. padding-left: var(--el-padding);
  506. line-height: inherit;
  507. }
  508. &btn {
  509. right: var(--el-margin);
  510. display: flex;
  511. align-items: center;
  512. justify-content: center;
  513. width: 16px;
  514. height: inherit;
  515. &:focus {
  516. .el-dialog__close {
  517. color: var(--el-color-info);
  518. }
  519. }
  520. .el-dialog__close {
  521. color: var(--el-color-info);
  522. }
  523. .el-dialog__fullscreen {
  524. font-size: 14px;
  525. vertical-align: -3px;
  526. }
  527. }
  528. }
  529. &__body {
  530. padding: var(--el-padding);
  531. .el-form:not(.el-form--inline):not(.el-form--label-top) {
  532. margin-right: 30px;
  533. .el-form-item:last-child {
  534. margin-bottom: 0;
  535. }
  536. .el-date-editor,
  537. .el-select {
  538. width: 100%;
  539. }
  540. }
  541. }
  542. &__footer {
  543. padding: var(--el-padding);
  544. }
  545. &.is-fullscreen {
  546. width: 100%;
  547. margin: 0;
  548. border-radius: 0;
  549. .el-dialog__body {
  550. height: calc(var(--vh, 1vh) * 100 - var(--el-dialog-title-font-size) - var(--el-padding) * 4 - 32px);
  551. overflow-y: auto;
  552. }
  553. }
  554. &.vab-dialog-plain {
  555. .el-dialog__header {
  556. background: var(--el-color-info-light-9);
  557. }
  558. }
  559. &.vab-dialog-primary {
  560. .el-dialog__header {
  561. --el-text-color-primary: var(--el-color-white);
  562. --el-color-info: var(--el-color-white);
  563. background: var(--el-color-primary);
  564. .el-dialog__close {
  565. --el-color-primary: var(--el-color-white);
  566. &:hover {
  567. opacity: 0.6;
  568. }
  569. }
  570. }
  571. }
  572. }
  573. /* el-el-message-box */
  574. .el-message-box {
  575. --el-messagebox-font-size: 18px;
  576. padding: 0;
  577. border-radius: var(--el-border-radius-base);
  578. &__header {
  579. height: calc(var(--el-messagebox-font-size) + var(--el-padding) * 2);
  580. padding: 0 !important;
  581. margin-right: 0;
  582. line-height: calc(var(--el-messagebox-font-size) + var(--el-padding) * 2);
  583. border-top-left-radius: inherit;
  584. border-top-right-radius: inherit;
  585. .el-message-box__title {
  586. width: 100%;
  587. height: inherit;
  588. padding-left: var(--el-padding);
  589. line-height: inherit;
  590. }
  591. &btn {
  592. right: var(--el-margin);
  593. width: 16px;
  594. height: inherit;
  595. line-height: inherit;
  596. &:focus {
  597. .el-message-box__close {
  598. color: var(--el-color-info);
  599. }
  600. }
  601. .el-message-box__close {
  602. color: var(--el-color-info);
  603. }
  604. }
  605. }
  606. &__content {
  607. padding: calc(var(--el-padding) / 2) var(--el-padding) 0 var(--el-padding);
  608. }
  609. &__btns {
  610. padding: var(--el-padding);
  611. }
  612. }
  613. /* el-card卡片 */
  614. .el-card {
  615. margin-bottom: var(--el-margin);
  616. border: 1px solid var(--el-border-color);
  617. border-radius: var(--el-border-radius-base);
  618. transition: var(--el-transition) !important;
  619. &__header {
  620. position: relative;
  621. display: flex;
  622. align-items: center;
  623. justify-content: flex-start;
  624. [class*='ri-'] {
  625. margin-right: 3px;
  626. }
  627. .card-header-tag,
  628. .card-header-button {
  629. position: absolute;
  630. right: var(--el-margin);
  631. }
  632. }
  633. &__body {
  634. padding: var(--el-padding);
  635. }
  636. }
  637. /* .vab-hey-message */
  638. .vab-hey-message {
  639. @mixin vab-hey-message {
  640. padding: 15px;
  641. background-color: var(--el-color-white);
  642. border-color: var(--el-color-white);
  643. box-shadow: 0 5px 10px rgba(0, 0, 0, 0.15);
  644. .el-message__content {
  645. color: var(--el-color-grey);
  646. }
  647. .el-icon-close {
  648. color: var(--el-color-grey);
  649. &:hover {
  650. opacity: 0.8;
  651. }
  652. }
  653. }
  654. &-info {
  655. @include vab-hey-message;
  656. i {
  657. color: var(--el-color-grey);
  658. }
  659. }
  660. &-success {
  661. @include vab-hey-message;
  662. i {
  663. color: var(--el-color-success);
  664. }
  665. }
  666. &-warning {
  667. @include vab-hey-message;
  668. i {
  669. color: var(--el-color-warning);
  670. }
  671. }
  672. &-error {
  673. @include vab-hey-message;
  674. i {
  675. color: var(--el-color-error);
  676. }
  677. }
  678. }
  679. /* vab-table-expand */
  680. .vab-table-expand {
  681. padding: var(--el-padding);
  682. line-height: 30px;
  683. &-title {
  684. display: inline-block;
  685. width: 80px;
  686. font-weight: bold;
  687. }
  688. }
  689. /* el-color-picker */
  690. .el-color-picker {
  691. &__trigger {
  692. width: 20px;
  693. height: 20px;
  694. padding: 0;
  695. border-radius: 0;
  696. }
  697. &__color {
  698. border: 0;
  699. }
  700. }
  701. /* svg */
  702. [fill='#6c63ff'],
  703. [fill='#7CADF6'],
  704. [fill='#1C85E8'],
  705. [fill='#5CA4E6'],
  706. [fill='#2F9BFF'] {
  707. fill: var(--el-color-primary) !important;
  708. }
  709. [fill='#5661AE'],
  710. [fill='#465393'] {
  711. fill: var(--el-color-primary-light-1) !important;
  712. }
  713. [fill='#FEBB94'],
  714. [fill='#BC775C'],
  715. [fill='#E6A23C'] {
  716. fill: var(--el-color-warning) !important;
  717. }
  718. .el-menu--horizontal .el-menu-item:not(.is-disabled):focus,
  719. .el-menu--horizontal .el-menu-item:not(.is-disabled):hover {
  720. background-color: var(--el-color-primary) !important;
  721. }
  722. .el-avatar {
  723. background-color: var(--el-color-primary-light-9) !important;
  724. }
  725. .no-background-container {
  726. padding: 0 !important;
  727. background: var(--el-background-color) !important;
  728. border: 0 !important;
  729. }
  730. /* 表格全屏 */
  731. .vab-table-fullscreen {
  732. position: fixed !important;
  733. inset: 0 !important;
  734. z-index: calc(var(--el-z-index) + 3) !important;
  735. box-sizing: border-box !important;
  736. width: 100vw !important;
  737. height: calc(var(--vh, 1vh) * 100) !important;
  738. overflow: auto !important;
  739. border: 0 !important;
  740. border-radius: 0 !important;
  741. }
  742. /* 数据大屏全屏 */
  743. .vab-data-fullscreen {
  744. position: fixed !important;
  745. inset: 0 !important;
  746. z-index: calc(var(--el-z-index) + 3) !important;
  747. padding: 0 !important;
  748. margin: 0 !important;
  749. border: 0 !important;
  750. border-radius: 0 !important;
  751. }
  752. .el-upload.el-upload--text + .el-button {
  753. margin-left: 10px;
  754. }
  755. /* 默认布局自动高度 */
  756. :not(.no-background-container).auto-height-container {
  757. display: flex;
  758. flex-direction: column;
  759. height: var(--el-container-height);
  760. .el-table {
  761. flex: 1;
  762. }
  763. .el-scrollbar {
  764. //margin-right: -20px;
  765. .vab-auto-box {
  766. flex: 1;
  767. width: 100%;
  768. padding: 0 var(--el-padding) 0 0;
  769. }
  770. }
  771. @media (max-width: 1024px) {
  772. height: auto;
  773. }
  774. }
  775. /* 左右布局自动高度 */
  776. .no-background-container.auto-height-container {
  777. .auto-height-card {
  778. margin-bottom: 0;
  779. > .el-card__body {
  780. display: flex;
  781. flex-direction: column;
  782. height: calc(var(--el-container-height) - 2px);
  783. .el-table {
  784. flex: 1;
  785. }
  786. }
  787. &.has-header {
  788. > .el-card__body {
  789. height: calc(var(--el-container-height) - 57px);
  790. }
  791. }
  792. }
  793. @media (max-width: 1200px) {
  794. margin-bottom: calc(0 - var(--el-margin));
  795. > .el-row {
  796. > .el-col + .el-col {
  797. .auto-height-card {
  798. margin-bottom: 0;
  799. }
  800. }
  801. }
  802. .auto-height-card {
  803. margin-bottom: var(--el-margin);
  804. > .el-card__body {
  805. &:not(:has(.el-alert)) {
  806. height: auto;
  807. }
  808. }
  809. &.has-header {
  810. margin-bottom: 0;
  811. > .el-card__body {
  812. height: auto;
  813. min-height: calc(var(--el-container-height) - 57px);
  814. }
  815. }
  816. }
  817. }
  818. &.vab-table-fullscreen {
  819. padding: var(--el-padding) !important;
  820. .auto-height-card {
  821. > .el-card__body {
  822. height: calc(var(--vh, 1vh) * 100 - var(--el-padding) * 2 - 2px);
  823. }
  824. }
  825. }
  826. }
  827. :not(.auto-height-container).no-background-container {
  828. > .el-row:has(.el-card) {
  829. margin-bottom: calc(0px - var(--el-margin));
  830. }
  831. }
  832. .jv-container.jv-light {
  833. background: var(--el-color-white);
  834. .jv-key,
  835. .jv-item.jv-object {
  836. color: var(--el-color-black);
  837. }
  838. }
  839. .vab-column-bar .el-tabs .el-tabs__nav {
  840. margin-left: -1px !important;
  841. border-right: 1px solid var(--el-menu-background-color) !important;
  842. }
  843. .vab-logo-column .logo {
  844. border-right: 1px solid var(--el-menu-background-color) !important;
  845. }
  846. .vab-side-bar {
  847. margin-left: -1px !important;
  848. border-right: 1px solid var(--el-menu-background-color) !important;
  849. }
  850. .el-space {
  851. &__item {
  852. &:empty {
  853. display: none;
  854. }
  855. }
  856. }
  857. @media (max-width: 768px) {
  858. .el-space {
  859. &__item {
  860. &:has([class*='hidden']) {
  861. display: none;
  862. }
  863. }
  864. }
  865. }
  866. /* 旋转动画 */
  867. .rotate {
  868. @keyframes rotate {
  869. 0% {
  870. transform: rotate(0);
  871. }
  872. 100% {
  873. transform: rotate(360deg);
  874. }
  875. }
  876. animation: rotate 1s linear infinite;
  877. }
  878. }
  879. }