yyzone
Version:
yyzone vue components and utils
557 lines (472 loc) • 11.3 kB
text/less
@prefixPrivateTableCls: ~"@{yy-css-prefix}private-table";
@prefixTableSelectItemCls: ~"@{prefixPrivateTableCls}-filter-select-item";
.@{prefixPrivateTableCls} {
&-frame {
height: 100%;
display: flex;
flex-direction: column;
&-header, &-footer {
flex-shrink: 0;
}
&-body {
flex: 1;
// display: flex;
min-height: 0;
position: relative;
&-left, &-right {
// flex-shrink: 0;
z-index: 1;
position: absolute;
top: 0;
height: 100%;
}
&-left {
left: 0;
}
&-right {
right: 0;
}
&-main {
display: flex;
flex-direction: column;
min-width: 0;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
.ps__rail-y {
z-index: 2;
}
// &.right-fixed {
// .ps__rail-y {
// display: none;
// }
// }
}
}
}
&-body {
flex: 1;
&.scroll-content-horizonal {
height: auto;
}
}
&-resize-proxy {
position: absolute;
left: 200px;
top: 0;
bottom: 0;
width: 0;
border-left: 1px solid darken(@yy-table-border, 5%);
z-index: 10;
}
&-filter-popper {
min-width: 220px;
&-foot {
text-align: right;
}
}
&-wrapper {
position: relative;
border: 1px solid @yy-table-border;
border-bottom: 0;
border-right: 0;
border-top-color: @yy-table-thead-top-border;
}
width: inherit;
height: 100%;
max-width: 100%;
overflow: hidden;
color: @yy-text-primary-color;
font-size: @yy-font-size-small;
background-color: @yy-background-component;
box-sizing: border-box;
//position: relative;
&-hide {
opacity: 0;
}
&:before {
content: '';
width: 100%;
height: 1px;
position: absolute;
left: 0;
bottom: 0;
background-color: @yy-table-border;
z-index: 1;
}
&:after {
content: '';
width: 1px;
height: 100%;
position: absolute;
top: 0;
right: 0;
background-color: @yy-table-border;
z-index: 3;
}
&-title,
&-footer {
height: 35px;
line-height: 35px;
border-bottom: 1px solid @yy-table-border;
}
&-footer {
border-bottom: none;
}
&-header {
overflow: hidden;
flex-shrink: 0;
}
&-overflowX {
overflow-x: scroll;
}
&-overflowY {
overflow-y: scroll;
}
&-tip {
overflow-x: auto;
overflow-y: hidden;
}
&-with-fixed-top&-with-footer {
.@{prefixPrivateTableCls}-footer {
border-top: 1px solid @yy-table-border;
}
tbody tr:last-child td {
border-bottom: none;
}
}
th,
td {
min-width: 0;
height: 35px;
box-sizing: border-box;
text-align: left;
text-overflow: ellipsis;
vertical-align: middle;
//position: relative;
border-bottom: 1px solid @yy-table-border;
}
th {
height: 35px;
white-space: nowrap;
overflow: hidden;
background-color: @yy-table-thead-bg;
border-bottom: 1px solid @yy-table-thead-bottom-border;
}
td {
background-color: @yy-background-component;
transition: background-color @yy-transition-time @yy-ease-in-out;
}
th&-column,
td&-column {
&-left {
text-align: left;
}
&-center {
text-align: center;
}
&-right {
text-align: right;
}
}
& table {
//width: 100%;
table-layout: fixed;
}
&-border {
th,
td {
border-right: 1px solid @yy-table-border;
}
}
&-cell {
padding-left: 16px;
padding-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: normal;
word-break: break-all;
box-sizing: border-box;
&-ellipsis {
word-break: keep-all;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
&-tip {
width: 100%;
.yy-tip-rel {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
&-with-expand {
height: 47px;
line-height: 47px;
padding: 0;
text-align: center;
}
&-expand {
cursor: pointer;
transition: transform @yy-transition-time @yy-ease-in-out;
i {
font-size: @yy-font-size-base;
}
&-expanded {
transform: rotate(90deg);
}
}
&-sort {
cursor: pointer;
user-select: none;
}
&-with-selection {
.@{prefixCheckboxCls}-wrapper {
margin-right: 0;
}
}
}
&-hidden {
visibility: hidden;
}
th &-cell {
display: inline-block;
//position: relative;
word-wrap: normal;
vertical-align: middle;
width: 100%;
text-align: center;
.yy-tip {
float: right;
}
}
td&-expanded-cell {
padding: 20px 50px;
background: @yy-table-thead-bg;
}
&-stripe &-body,
&-stripe &-fixed-body {
tr:nth-child(2n) {
td {
background-color: @yy-table-td-stripe-bg;
}
}
// #1380
tr.@{prefixPrivateTableCls}-row-hover {
td {
background-color: @yy-table-td-hover-bg;
}
}
}
tr&-row-hover {
td {
background-color: @yy-table-td-hover-bg;
}
}
&-large {
font-size: @yy-font-size-base;
th {
height: 40px;
}
td {
height: 40px;
}
&-title,
&-footer {
height: 40px;
line-height: 40px;
}
.@{prefixPrivateTableCls}-cell-with-expand {
height: 39px;
line-height: 39px;
i {
font-size: @yy-font-size-base+2;
}
}
}
&-small {
th {
height: 30px;
}
td {
height: 30px;
}
&-title,
&-footer {
height: 30px;
line-height: 30px;
}
.@{prefixPrivateTableCls}-cell-with-expand {
height: 29px;
line-height: 29px;
}
}
&-row-highlight,
tr&-row-highlight&-row-hover,
&-stripe &-body tr&-row-highlight:nth-child(2n),
&-stripe &-fixed-body tr&-row-highlight:nth-child(2n) {
td {
background-color: @yy-table-td-highlight-bg;
}
}
&-fixed,
&-fixed-right {
// position: absolute;
// top: 0;
// left: 0;
box-shadow: 2px 0 8px -2px rgba(0, 0, 0, 0.12);
display: flex;
height: 100%;
flex-direction: column;
&-header {
flex-shrink: 0;
}
&-body {
flex: 1;
min-height: 0;
}
&::before {
content: '';
width: 100%;
height: 1px;
background-color: @yy-table-border;;
position: absolute;
left: 0;
bottom: 0;
z-index: 4;
}
}
&-fixed-right {
// top: 0;
// left: auto;
// right: 0;
box-shadow: -2px 0 8px -2px rgba(0, 0, 0, 0.12);
}
&-fixed-right-header {
// position: absolute;
// top: -1px;
// right: 0;
background-color: @yy-table-thead-bg;
border-top: 1px solid @yy-table-border;
border-bottom: 1px solid @yy-table-border;
}
&-fixed-header {
overflow: hidden;
}
&-fixed-body {
overflow: hidden;
position: relative;
z-index: 3;
}
&-fixed-shadow {
width: 1px;
height: 100%;
position: absolute;
top: 0;
right: 0;
// box-shadow: @shadow-right;
overflow: hidden;
z-index: 1;
}
&-sort {
display: inline-block;
width: 14px;
height: 12px;
margin-top: -1px;
vertical-align: middle;
overflow: hidden;
cursor: pointer;
position: relative;
i {
display: block;
height: 6px;
line-height: 6px;
overflow: hidden;
position: absolute;
color: #D0D0D0;
transition: color @yy-transition-time @yy-ease-in-out;
font-size: @yy-font-size-large;
&:hover{
color: #aaaaaa;
}
&.on{
color: #aaaaaa;
}
&:first-child{
top: 0;
}
&:last-child{
bottom: 0;
}
}
cursor: pointer;
}
&-filter {
display: inline-block;
cursor: pointer;
position: relative;
vertical-align: middle;
i {
color: @yy-btn-disable-color;
transition: color @yy-transition-time @yy-ease-in-out;
&:hover {
color: #aaaaaa;
}
&.on {
color: #aaaaaa;
}
}
&-list {
padding: 8px 0 0;
&-item {
padding: 0 12px 8px;
.yy-checkbox-wrapper+.yy-checkbox-wrapper {
margin: 0;
}
label {
display: block;
&>span {
margin-right: 4px;
}
}
}
ul {
padding-bottom: 8px;
}
// .select-item(@prefixPrivateTableCls, @prefixTableSelectItemCls);
}
&-footer {
padding: 4px;
border-top: 1px solid @yy-table-border;
overflow: hidden;
button:first-child {
float: left;
}
button:last-child {
float: right;
}
}
}
&-tip {
table {
width: 100%;
td {
text-align: center;
}
}
}
&-expanded-hidden {
visibility: hidden;
}
}
.yy-table-popper {
min-width: 0;
text-align: left;
.yy-poptip-body {
padding: 0;
}
}