element.scss 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564
  1. @import 'mixins/index.scss';
  2. /* Button 按钮
  3. ------------------------------- */
  4. // 第三方字体图标大小
  5. .el-button:not(.is-circle) i.el-icon,
  6. .el-button i.iconfont,
  7. .el-button i.fa,
  8. .el-button--default i.iconfont,
  9. .el-button--default i.fa {
  10. font-size: 14px !important;
  11. margin-right: 5px;
  12. }
  13. .el-button--small i.iconfont,
  14. .el-button--small i.fa {
  15. font-size: 12px !important;
  16. margin-right: 5px;
  17. }
  18. /* Input 输入框、InputNumber 计数器
  19. ------------------------------- */
  20. // 菜单搜索
  21. .el-autocomplete-suggestion__wrap {
  22. max-height: 280px !important;
  23. }
  24. // InputNumber无控制器时与Input保持一致
  25. .el-input-number.is-without-controls .el-input__wrapper {
  26. padding-left: 7px !important;
  27. padding-right: 7px !important;
  28. .el-input__inner {
  29. text-align: left !important;
  30. }
  31. }
  32. /* Form 表单
  33. ------------------------------- */
  34. .el-form {
  35. // 用于修改弹窗时表单内容间隔太大问题,如系统设置的新增菜单弹窗里的表单内容
  36. .el-form-item:last-of-type {
  37. margin-bottom: 0 !important;
  38. }
  39. // 修复行内表单最后一个 el-form-item 位置下移问题
  40. &.el-form--inline {
  41. // .el-form-item--large.el-form-item:last-of-type {
  42. // margin-bottom: 22px !important;
  43. // }
  44. // .el-form-item--default.el-form-item:last-of-type,
  45. // .el-form-item--small.el-form-item:last-of-type {
  46. // margin-bottom: 18px !important;
  47. // }
  48. .el-form-item,.el-form-item:last-of-type {
  49. margin: 5px 15px !important;
  50. }
  51. }
  52. // https://gitee.com/lyt-top/vue-next-admin/issues/I5K1PM
  53. .el-form-item .el-form-item__label .el-icon {
  54. margin-right: 0px;
  55. }
  56. }
  57. /* Alert 警告
  58. ------------------------------- */
  59. .el-alert {
  60. border: 1px solid;
  61. }
  62. .el-alert__title {
  63. word-break: break-all;
  64. }
  65. /* Message 消息提示
  66. ------------------------------- */
  67. .el-message {
  68. min-width: unset !important;
  69. padding: 15px !important;
  70. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.02);
  71. }
  72. /* NavMenu 导航菜单
  73. ------------------------------- */
  74. // 鼠标 hover 时颜色
  75. .el-menu-hover-bg-color {
  76. background-color: var(--next-bg-menuBarActiveColor) !important;
  77. //background-color: var(--el-color-primary-light-7) !important;
  78. }
  79. // 默认样式修改
  80. .el-menu {
  81. border-right: none !important;
  82. width: auto;
  83. }
  84. .el-menu-item,
  85. .el-sub-menu__title {
  86. color: var(--next-bg-menuBarColor);
  87. height: 45px !important;
  88. line-height: 45px !important;
  89. // margin: 0 0 1px 0;
  90. }
  91. // 修复点击左侧菜单折叠再展开时,宽度不跟随问题
  92. .el-menu--collapse {
  93. width: 64px !important;
  94. }
  95. // 外部链接时
  96. .el-menu-item a,
  97. .el-menu-item a:hover,
  98. .el-menu-item i,
  99. .el-sub-menu__title i {
  100. color: inherit;
  101. text-decoration: none;
  102. }
  103. // 第三方图标字体间距/大小设置
  104. .el-menu-item .iconfont,
  105. .el-sub-menu .iconfont,
  106. .el-menu-item .fa,
  107. .el-sub-menu .fa {
  108. @include generalIcon;
  109. }
  110. // 水平菜单、横向菜单高亮 背景色,鼠标 hover 时,有子级菜单的背景色
  111. .el-menu-item.is-active,
  112. .el-sub-menu.is-active .el-sub-menu__title,
  113. .el-sub-menu:not(.is-opened):hover .el-sub-menu__title {
  114. @extend .el-menu-hover-bg-color;
  115. color: var(--el-color-primary-dark-2);
  116. }
  117. .el-sub-menu:not(.is-active) .el-sub-menu__title {
  118. color: var(--next-bg-menuBarColor);
  119. }
  120. // 鼠标 hover 时背景色
  121. .el-menu-item:hover {
  122. //@extend .el-menu-hover-bg-color;
  123. background-color: var(--el-color-primary-light-9);
  124. }
  125. .el-sub-menu.is-active.is-opened .el-sub-menu__title {
  126. background-color: unset !important;
  127. }
  128. // 当前选中菜单右侧边框
  129. .el-menu-item.is-active {
  130. border-right: solid 3px var(--el-color-primary);
  131. }
  132. // 子级菜单背景颜色
  133. // .el-menu--inline {
  134. // background: var(--next-bg-menuBar-light-1);
  135. // }
  136. // 水平菜单、横向菜单折叠 a 标签
  137. .el-popper.is-dark a {
  138. color: var(--el-color-white) !important;
  139. text-decoration: none;
  140. }
  141. // 水平菜单、横向菜单折叠背景色
  142. .el-popper.is-pure.is-light {
  143. // 水平菜单
  144. .el-menu--vertical {
  145. background: var(--next-bg-menuBar);
  146. .el-sub-menu.is-active .el-sub-menu__title {
  147. color: var(--el-menu-active-color);
  148. }
  149. .el-popper.is-pure.is-light {
  150. .el-menu--vertical {
  151. .el-sub-menu .el-sub-menu__title {
  152. background-color: unset !important;
  153. color: var(--next-bg-menuBarColor);
  154. }
  155. .el-sub-menu.is-active .el-sub-menu__title {
  156. color: var(--el-menu-active-color);
  157. }
  158. }
  159. }
  160. }
  161. // 横向菜单
  162. .el-menu--horizontal {
  163. background: var(--next-bg-topBar);
  164. .el-menu-item,
  165. .el-sub-menu {
  166. height: 45px !important;
  167. line-height: 45px !important;
  168. color: var(--next-bg-topBarColor);
  169. .el-sub-menu__title {
  170. height: 45px !important;
  171. line-height: 45px !important;
  172. color: var(--next-bg-topBarColor);
  173. }
  174. .el-popper.is-pure.is-light {
  175. .el-menu--horizontal {
  176. .el-sub-menu .el-sub-menu__title {
  177. background-color: unset !important;
  178. color: var(--next-bg-topBarColor);
  179. }
  180. .el-sub-menu.is-active .el-sub-menu__title {
  181. color: var(--el-menu-active-color);
  182. }
  183. }
  184. }
  185. }
  186. .el-menu-item.is-active,
  187. .el-sub-menu.is-active .el-sub-menu__title {
  188. color: var(--el-menu-active-color);
  189. }
  190. // 鼠标 hover 时背景色
  191. .el-menu-item:hover {
  192. background-color: var(--el-color-primary-light-9);
  193. }
  194. }
  195. }
  196. // 横向菜单(经典、横向)布局
  197. .el-menu.el-menu--horizontal {
  198. border-bottom: none !important;
  199. width: 100% !important;
  200. .el-menu-item,
  201. .el-sub-menu__title {
  202. height: 50px !important;
  203. color: var(--next-bg-topBarColor);
  204. }
  205. .el-menu-item:not(.is-active):hover,
  206. .el-sub-menu:not(.is-active):hover .el-sub-menu__title {
  207. color: var(--next-bg-topBarColor);
  208. //border-right: solid 3px var(--el-color-primary);
  209. }
  210. // 鼠标 hover 时背景色
  211. .el-menu-item:hover {
  212. background-color: var(--el-color-primary-light-9);
  213. }
  214. // 菜单激活时去掉全局右边框
  215. .el-menu-item.is-active {
  216. border-right: none;
  217. }
  218. }
  219. // 菜单收起时,图标不居中问题
  220. .el-menu--collapse {
  221. .el-menu-item .iconfont,
  222. .el-sub-menu .iconfont,
  223. .el-menu-item .fa,
  224. .el-sub-menu .fa {
  225. margin-right: 0 !important;
  226. }
  227. .el-sub-menu__title {
  228. padding-right: 0 !important;
  229. }
  230. }
  231. /* Tabs 标签页
  232. ------------------------------- */
  233. .el-tabs__nav-wrap::after {
  234. height: 1px !important;
  235. }
  236. /* Dropdown 下拉菜单
  237. ------------------------------- */
  238. .el-dropdown-menu {
  239. list-style: none !important;
  240. /*修复 Dropdown 下拉菜单样式问题 2022.03.04*/
  241. }
  242. .el-dropdown-menu .el-dropdown-menu__item {
  243. white-space: nowrap;
  244. &:not(.is-disabled):hover {
  245. background-color: var(--el-dropdown-menuItem-hover-fill);
  246. color: var(--el-dropdown-menuItem-hover-color);
  247. }
  248. }
  249. /* Steps 步骤条
  250. ------------------------------- */
  251. .el-step__icon-inner {
  252. font-size: 30px !important;
  253. font-weight: 400 !important;
  254. }
  255. .el-step__title {
  256. font-size: 14px;
  257. }
  258. /* Dialog 对话框
  259. ------------------------------- */
  260. .el-overlay {
  261. overflow: hidden;
  262. .el-overlay-dialog {
  263. display: flex;
  264. align-items: center;
  265. justify-content: center;
  266. position: unset !important;
  267. width: 100%;
  268. height: 100%;
  269. .el-dialog {
  270. padding: 0 !important;
  271. margin: 0 auto !important;
  272. position: absolute;
  273. .el-dialog__body {
  274. padding: 18px !important;
  275. }
  276. }
  277. }
  278. }
  279. .el-dialog__body {
  280. max-height: calc(100vh - 160px) !important;
  281. overflow-y: auto;
  282. overflow-x: auto;
  283. }
  284. // .el-dialog__title{
  285. // font-size: 14px;
  286. // color: #FFF;
  287. // font-weight: 700;
  288. // }
  289. .el-dialog__header {
  290. margin-right: 0;
  291. padding: 8px;
  292. background: var(--el-color-primary);
  293. }
  294. .el-dialog__footer {
  295. padding: 15px;
  296. // border-top: 1px solid var(--el-color-primary-light-7);
  297. }
  298. .el-dialog__headerbtn {
  299. height: 37px;
  300. width: 40px;
  301. font-weight: 900;
  302. .el-dialog__close {
  303. color: #fff;
  304. }
  305. }
  306. .el-dialog__headerbtn:hover .el-dialog__close {
  307. color: var(--el-color-danger) !important;
  308. }
  309. /* Card 卡片
  310. ------------------------------- */
  311. .el-card__header {
  312. padding: 15px 20px;
  313. }
  314. .el-card__body {
  315. padding: 8px;
  316. }
  317. // 由于card没有size属性,所以通过其子元素来判断,当组件大小选择为默认时
  318. .el-card__body:has(.el-table--default) {
  319. padding: 20px;
  320. }
  321. /* Table 表格 element plus 2.2.0 版本
  322. ------------------------------- */
  323. .el-table {
  324. // 表头背景色
  325. --el-table-header-bg-color: var(--next-bg-main-color);
  326. .el-button.is-text {
  327. padding: 0;
  328. }
  329. // 表头字体颜色
  330. thead {
  331. color: var(--el-text-color-regular);
  332. th {
  333. font-weight: 500;
  334. }
  335. }
  336. }
  337. /*防止分栏布局二级菜单很多时,滚动条消失问题*/
  338. .layout-columns-warp .layout-aside .el-scrollbar__view {
  339. height: unset !important;
  340. }
  341. /* Pagination 分页
  342. ------------------------------- */
  343. // .el-pagination__editor {
  344. // margin-right: 8px;
  345. // }
  346. /*深色模式时分页高亮问题*/
  347. .el-pagination.is-background .btn-next.is-active,
  348. .el-pagination.is-background .btn-prev.is-active,
  349. .el-pagination.is-background .el-pager li.is-active {
  350. background-color: var(--el-color-primary) !important;
  351. color: var(--el-color-white) !important;
  352. }
  353. // 分页组件靠右显示
  354. .el-pagination {
  355. float: right;
  356. margin: 8px 0 0 0 !important;
  357. }
  358. // 强制给分页组件的下拉框设置宽度
  359. .el-pagination--small {
  360. .el-select {
  361. width: 100px !important;
  362. }
  363. }
  364. /* scrollbar
  365. ------------------------------- */
  366. .el-scrollbar__bar {
  367. z-index: 4;
  368. }
  369. /*防止页面切换时,滚动条高度不变的问题(滚动条高度非滚动条滚动高度)*/
  370. .el-scrollbar__wrap {
  371. max-height: 100%;
  372. }
  373. .el-select-dropdown .el-scrollbar__wrap {
  374. overflow-x: scroll !important;
  375. }
  376. /*修复Select 选择器高度问题*/
  377. .el-select-dropdown__wrap {
  378. max-height: 274px !important;
  379. }
  380. /*修复Cascader 级联选择器高度问题*/
  381. .el-cascader-menu__wrap.el-scrollbar__wrap {
  382. height: 204px !important;
  383. }
  384. /*用于界面高度自适应(main.vue),区分 scrollbar__view,防止其它使用 scrollbar 的地方出现滚动条消失*/
  385. .layout-container-view .el-scrollbar__view {
  386. height: 100%;
  387. }
  388. /* Drawer 抽屉
  389. ------------------------------- */
  390. .el-drawer {
  391. --el-drawer-padding-primary: unset !important;
  392. .el-drawer__header {
  393. padding: 8px !important;
  394. display: flex;
  395. align-items: center;
  396. margin-bottom: 0 !important;
  397. border-bottom: 1px solid var(--el-border-color);
  398. color: var(--el-color-white);
  399. background-color: var(--el-color-primary);
  400. }
  401. .el-drawer__body {
  402. width: 100%;
  403. height: 100%;
  404. overflow: auto;
  405. }
  406. .el-drawer__footer {
  407. padding: 5px;
  408. }
  409. }
  410. .el-drawer__close-btn:hover .el-drawer__close {
  411. color: var(--el-color-danger) !important;
  412. }
  413. // 级联选择-点击文本也生效
  414. .el-cascader-panel .el-radio {
  415. width: 100%;
  416. height: 100%;
  417. z-index: 10;
  418. position: absolute;
  419. top: 0px;
  420. right: -8px;
  421. }
  422. .el-cascader-panel .el-checkbox {
  423. width: 100%;
  424. height: 100%;
  425. z-index: 10;
  426. position: absolute;
  427. top: 0px;
  428. right: 0px;
  429. }
  430. $--el-table-text-color: #fb6d49;
  431. // hack列表页
  432. .layout-parent {
  433. height: 0;
  434. overflow: auto;
  435. // 方案一 如果怕影响其他页面,可以直接修改 src/views/home/index.vue 中 .home-container样式。
  436. // 方案二 此处修改是为了不修改框架原始页面,方便后期同步升级。
  437. // 自行取舍
  438. // 工作台 滚动条
  439. .home-container {
  440. overflow: auto !important;
  441. }
  442. // Table页自动撑满页面
  443. > div:first-child {
  444. display: flex;
  445. flex-direction: column;
  446. height: 100%;
  447. .full-table {
  448. flex: 1;
  449. display: flex;
  450. flex-direction: column;
  451. justify-content: space-between;
  452. .el-card__body {
  453. height: 100%;
  454. display: flex;
  455. //padding: 5px 5px 0px 5px;
  456. flex-direction: column;
  457. justify-content: space-between;
  458. .el-table {
  459. flex: 1;
  460. }
  461. .el-pagination > span:first-child {
  462. flex: 1;
  463. text-align: right;
  464. }
  465. }
  466. }
  467. }
  468. }
  469. /* Splitter 分隔面板
  470. ------------------------------- */
  471. .smallbar-el-splitter {
  472. .el-splitter-bar {
  473. width: 8px !important;
  474. .el-splitter-bar__dragger {
  475. height: 100px !important;
  476. }
  477. }
  478. }