123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564 |
- @import "mixins/mixins";
- @import "checkbox";
- @import "tag";
- @import "tooltip";
- @import "common/var";
- @include b(table) {
- position: relative;
- overflow: hidden;
- box-sizing: border-box;
- flex: 1;
- width: 100%;
- max-width: 100%;
- background-color: $--color-white;
- font-size: 14px;
- color: $--table-font-color;
- // 数据为空
- @include e(empty-block) {
- min-height: 60px;
- text-align: center;
- width: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- @include e(empty-text) {
- // min-height doesn't work in IE10 and IE11 https://github.com/philipwalton/flexbugs#3-min-height-on-a-flex-container-wont-apply-to-its-flex-items
- // set empty text line height up to contrainer min-height as workaround.
- line-height: 60px;
- width: 50%;
- color: $--color-text-secondary;
- }
- // 展开行
- @include e(expand-column) {
- .cell {
- padding: 0;
- text-align: center;
- }
- }
- @include e(expand-icon) {
- position: relative;
- cursor: pointer;
- color: #666;
- font-size: 12px;
- transition: transform 0.2s ease-in-out;
- height: 20px;
- @include m(expanded) {
- transform: rotate(90deg);
- }
- > .el-icon {
- position: absolute;
- left: 50%;
- top: 50%;
- margin-left: -5px;
- margin-top: -5px;
- }
- }
- @include e(expanded-cell) {
- background-color: $--color-white;
- // 纯属为了增加权重
- &[class*=cell] {
- padding: 20px 50px;
- }
- &:hover {
- background-color: transparent !important;
- }
- }
- @include e(placeholder) {
- display: inline-block;
- width: 20px;
- }
- @include e(append-wrapper) {
- // 避免外边距重合 https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing
- overflow: hidden;
- }
- @include m(fit) {
- border-right: 0;
- border-bottom: 0;
- .el-table__cell.gutter {
- border-right-width: 1px;
- }
- }
- @include m(scrollable-x) {
- .el-table__body-wrapper {
- overflow-x: auto;
- }
- }
- @include m(scrollable-y) {
- .el-table__body-wrapper {
- overflow-y: auto;
- }
- }
- thead {
- color: $--table-header-font-color;
- font-weight: 500;
- &.is-group {
- th.el-table__cell {
- background: $--background-color-base;
- }
- }
- }
- .el-table__cell {
- padding: 12px 0;
- min-width: 0;
- box-sizing: border-box;
- text-overflow: ellipsis;
- vertical-align: middle;
- position: relative;
- text-align: left;
- @include when(center) {
- text-align: center;
- }
- @include when(right) {
- text-align: right;
- }
- &.gutter {
- width: 15px;
- border-right-width: 0;
- border-bottom-width: 0;
- padding: 0;
- }
- &.is-hidden {
- > * {
- visibility: hidden;
- }
- }
- }
- @include m(medium) {
- .el-table__cell {
- padding: 10px 0;
- }
- }
- @include m(small) {
- font-size: 12px;
- .el-table__cell {
- padding: 8px 0;
- }
- }
- @include m(mini) {
- font-size: 12px;
- .el-table__cell {
- padding: 6px 0;
- }
- }
- tr {
- background-color: $--color-white;
- input[type="checkbox"] {
- margin: 0;
- }
- }
- th.el-table__cell.is-leaf,
- td.el-table__cell {
- border-bottom: $--table-border;
- }
- th.el-table__cell.is-sortable {
- cursor: pointer;
- }
- th.el-table__cell {
- overflow: hidden;
- user-select: none;
- background-color: $--table-header-background-color;
- > .cell {
- display: inline-block;
- box-sizing: border-box;
- position: relative;
- vertical-align: middle;
- padding-left: 10px;
- padding-right: 10px;
- width: 100%;
- &.highlight {
- color: $--color-primary;
- }
- }
- &.required > div::before {
- display: inline-block;
- content: "";
- width: 8px;
- height: 8px;
- border-radius: 50%;
- background: #ff4d51;
- margin-right: 5px;
- vertical-align: middle;
- }
- }
- td.el-table__cell {
- div {
- box-sizing: border-box;
- }
- &.gutter {
- width: 0;
- }
- }
- .cell {
- box-sizing: border-box;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: normal;
- word-break: break-all;
- line-height: 23px;
- padding-left: 10px;
- padding-right: 10px;
- &.el-tooltip {
- white-space: nowrap;
- min-width: 50px;
- }
- }
- // 拥有多级表头
- @include m((group, border)) {
- border: $--table-border;
- @include share-rule(border-pseudo) {
- content: '';
- position: absolute;
- background-color: $--table-border-color;
- z-index: 1;
- }
- // 表格右部伪 border
- &::after {
- @include extend-rule(border-pseudo);
- top: 0;
- right: 0;
- width: 1px;
- height: 100%;
- }
- }
- // 表格底部伪 border,总是有的
- &::before {
- @include extend-rule(border-pseudo);
- left: 0;
- bottom: 0;
- width: 100%;
- height: 1px;
- }
- // table--border
- @include m(border) {
- border-right: none;
- border-bottom: none;
- &.el-loading-parent--relative {
- border-color: transparent;
- }
- .el-table__cell {
- border-right: $--table-border;
- &:first-child .cell {
- padding-left: 10px;
- }
- }
- th.el-table__cell.gutter:last-of-type {
- border-bottom: $--table-border;
- border-bottom-width: 1px;
- }
- & th.el-table__cell {
- border-bottom: $--table-border;
- }
- }
- @include m(hidden) {
- visibility: hidden;
- }
- @include e((fixed, fixed-right)) {
- position: absolute;
- top: 0;
- left: 0;
- overflow-x: hidden;
- overflow-y: hidden;
- box-shadow: $--table-fixed-box-shadow;
- &::before {
- content: '';
- position: absolute;
- left: 0;
- bottom: 0;
- width: 100%;
- height: 1px;
- background-color: $--border-color-lighter;
- z-index: 4;
- }
- }
- @include e(fixed-right-patch) {
- position: absolute;
- top: -1px;
- right: 0;
- background-color: $--color-white;
- border-bottom: $--table-border;
- }
- @include e(fixed-right) {
- top: 0;
- left: auto;
- right: 0;
- .el-table__fixed-header-wrapper,
- .el-table__fixed-body-wrapper,
- .el-table__fixed-footer-wrapper {
- left: auto;
- right: 0;
- }
- }
- @include e(fixed-header-wrapper) {
- position: absolute;
- left: 0;
- top: 0;
- z-index: 3;
- }
- @include e(fixed-footer-wrapper) {
- position: absolute;
- left: 0;
- bottom: 0;
- z-index: 3;
- & tbody td.el-table__cell {
- border-top: $--table-border;
- background-color: $--table-row-hover-background-color;
- color: $--table-font-color;
- }
- }
- @include e(fixed-body-wrapper) {
- position: absolute;
- left: 0;
- top: 37px;
- overflow: hidden;
- z-index: 3;
- }
- @include e((header-wrapper, body-wrapper, footer-wrapper)) {
- width: 100%;
- }
- @include e(footer-wrapper) {
- margin-top: -1px;
- td.el-table__cell {
- border-top: $--table-border;
- }
- }
- @include e((header, body, footer)) {
- table-layout: fixed;
- border-collapse: separate;
- }
- @include e((header-wrapper, footer-wrapper)) {
- overflow: hidden;
- & tbody td.el-table__cell {
- background-color: $--table-row-hover-background-color;
- color: $--table-font-color;
- }
- }
- @include e(body-wrapper) {
- overflow: hidden;
- position: relative;
- @include when(scrolling-none) {
- ~ .el-table__fixed,
- ~ .el-table__fixed-right {
- box-shadow: none;
- }
- }
- @include when(scrolling-left) {
- ~ .el-table__fixed {
- box-shadow: none;
- }
- }
- @include when(scrolling-right) {
- ~ .el-table__fixed-right {
- box-shadow: none;
- }
- }
- .el-table--border {
- @include when(scrolling-right) {
- ~ .el-table__fixed-right {
- border-left: $--table-border;
- }
- }
- @include when(scrolling-left) {
- ~ .el-table__fixed {
- border-right: $--table-border;
- }
- }
- }
- }
- .caret-wrapper {
- display: inline-flex;
- flex-direction: column;
- align-items: center;
- height: 34px;
- width: 24px;
- vertical-align: middle;
- cursor: pointer;
- overflow: initial;
- position: relative;
- }
- .sort-caret {
- width: 0;
- height: 0;
- border: solid 5px transparent;
- position: absolute;
- left: 7px;
- &.ascending {
- border-bottom-color: $--color-text-placeholder;
- top: 5px;
- }
- &.descending {
- border-top-color: $--color-text-placeholder;
- bottom: 7px;
- }
- }
- .ascending .sort-caret.ascending {
- border-bottom-color: $--color-primary;
- }
- .descending .sort-caret.descending {
- border-top-color: $--color-primary;
- }
- .hidden-columns {
- visibility: hidden;
- position: absolute;
- z-index: -1;
- }
- @include m(striped) {
- & .el-table__body {
- & tr.el-table__row--striped {
- td.el-table__cell {
- background: #FAFAFA;
- }
- &.current-row td.el-table__cell, &.selection-row td.el-table__cell {
- background-color: $--table-current-row-background-color;
- }
- }
- }
- }
- @include e(body) {
- tr.hover-row {
- &, &.el-table__row--striped {
- &, &.current-row, &.selection-row {
- > td.el-table__cell {
- background-color: $--table-row-hover-background-color;
- }
- }
- }
- }
- tr.current-row > td.el-table__cell, tr.selection-row > td.el-table__cell {
- background-color: $--table-current-row-background-color;
- }
- }
- @include e(column-resize-proxy) {
- position: absolute;
- left: 200px;
- top: 0;
- bottom: 0;
- width: 0;
- border-left: $--table-border;
- z-index: 10;
- }
- @include e(column-filter-trigger) {
- display: inline-block;
- line-height: 34px;
- cursor: pointer;
- & i {
- color: $--color-info;
- font-size: 12px;
- transform: scale(.75);
- }
- }
- @include m(enable-row-transition) {
- .el-table__body td.el-table__cell {
- transition: background-color .25s ease;
- }
- }
- @include m(enable-row-hover) {
- .el-table__body tr:hover > td.el-table__cell {
- background-color: $--table-row-hover-background-color;
- }
- }
- @include m(fluid-height) {
- .el-table__fixed,
- .el-table__fixed-right {
- bottom: 0;
- overflow: hidden;
- }
- }
- [class*=el-table__row--level] {
- .el-table__expand-icon {
- display: inline-block;
- width: 20px;
- line-height: 20px;
- height: 20px;
- text-align: center;
- margin-right: 3px;
- }
- }
- }
|