@meleon/uni-ui
Version:
A uniapp components library written in vue3 and typescript
296 lines (295 loc) • 7.22 kB
text/less
.ml-table {
position: relative;
.loading-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
background-color: #e9e9e9;
opacity: 0.8;
z-index: 100;
.loader {
width: 20px;
height: 20px;
position: relative;
}
.loader::before {
content: '';
width: 20px;
height: 3px;
position: absolute;
top: 130%;
left: 0;
border-radius: 50%;
background-color: rgb(255, 80, 80);
animation: shadowScale 0.5s linear infinite;
}
.loader::after {
content: '';
width: 100%;
height: 100%;
border-radius: 3px;
position: absolute;
top: 0;
left: 0;
background-color: rgb(255, 80, 80);
animation: rotateJump 0.5s linear infinite;
}
}
// width: 100%;
.hidden-columns {
visibility: hidden;
position: absolute;
z-index: -1;
}
.table-header {
position: relative;
.ml-table-header__column {
box-sizing: border-box;
font-size: 14px;
color: var(--info-color-7);
border-top: solid 1px var(--info-color-2);
border-bottom: solid 1px var(--info-color-2);
background-color: #ffffff;
}
.ml-table-header__column--mini {
padding: 5px 8px;
}
.ml-table-header__column--small {
padding: 8px 8px;
}
.ml-table-header__column--medium {
padding: 12px 8px;
}
.ml-table-header__column--large {
padding: 16px 8px;
}
.ml-table-header {
display: flex;
align-items: flex-start;
justify-content: flex-start;
transform: none;
box-sizing: border-box;
// border-top: solid 1px var(--info-color-6);
color: var(--info-color-7);
overflow: auto;
.ml-table-header__wrapper {
display: flex;
align-items: center;
justify-content: flex-start;
}
}
.ml-table-header-left-fixed__wrapper {
position: absolute;
top: 0;
left: 0;
.ml-table-header__column {
box-shadow: 2px 0 4px 0 var(--info-color-1);
}
}
.ml-table-header-right-fixed__wrapper {
position: absolute;
top: 0;
right: 0;
.ml-table-header__column {
box-shadow: -2px 0 4px 0 var(--info-color-1);
}
}
}
.table-body {
position: relative;
.empty-status {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
min-height: 120px;
font-size: 12px;
color: var(--info-color-7);
}
.ml-table-body {
box-sizing: border-box;
display: flex;
align-items: flex-start;
justify-content: flex-start;
transform: none;
.refresher-wrapper {
width: 100%;
height: 45px;
display: flex;
align-items: center;
justify-content: center;
.loader {
width: 15px;
height: 15px;
position: relative;
}
.loader::before {
content: '';
width: 15px;
height: 3px;
position: absolute;
top: 120%;
left: 0;
border-radius: 50%;
background-color: rgb(255, 80, 80);
animation: shadowScale 0.5s linear infinite;
}
.loader::after {
content: '';
width: 100%;
height: 100%;
border-radius: 3px;
position: absolute;
top: -10%;
left: 0;
background-color: rgb(255, 80, 80);
animation: rotateJump 0.5s linear infinite;
}
.text {
margin-left: 10px;
font-size: 12px;
font-weight: 400;
color: var(--info-color-6);
transition: all 0.5s ease;
animation: upDownText 0.6s linear infinite;
}
}
&__wrapper {
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-start;
transform: none;
&-row {
position: relative;
box-sizing: border-box;
display: flex;
align-items: flex-start;
justify-content: flex-start;
border-bottom: solid 1px var(--info-color-2);
.table-columns {
display: flex;
align-items: stretch;
height: 100%;
.custom-table__column {
display: flex;
align-items: center;
justify-content: flex-start;
box-sizing: border-box;
font-size: 12px;
font-weight: 400;
color: var(--info-color-7);
transition: all 0.4s ease;
.column-text {
font-size: 12px;
font-weight: 400;
color: var(--info-color-7);
}
.custom-input {
width: 100%;
}
}
}
}
&-row--mini {
.custom-table__column {
padding: 4px 8px;
height: 32px;
}
}
&-row--small {
.custom-table__column {
padding: 8px 8px;
height: 36px;
}
}
&-row--medium {
.custom-table__column {
padding: 12px 8px;
height: 40px;
}
}
&-row--large {
.custom-table__column {
padding: 16px 8px;
height: 44px;
}
}
}
&-left-fixed__wrapper {
position: absolute;
left: 0;
top: 0;
.table-columns {
box-shadow: 2px 0 4px 0 var(--info-color-1);
}
}
&-right-fixed__wrapper {
position: absolute;
right: 0;
top: 0;
.table-columns {
box-shadow: -2px 0 4px 0 var(--info-color-1);
}
}
.empty-status {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
font-size: 12px;
color: var(--info-color-6);
border-bottom: solid 1px var(--info-color-2);
}
}
}
}
.ml-table-border {
border: solid 1px var(--info-color-2);
border-top: none;
}
@keyframes rotateJump {
15% {
border-bottom-right-radius: 15px;
}
25% {
transform: translateY(2px) rotate(22.5deg);
}
50% {
transform: translateY(4px) scale(1, 0.9) rotate(45deg);
}
75% {
transform: translateY(2px) rotate(67.5deg);
}
100% {
transform: translateY(0) rotate(90deg);
}
}
@keyframes shadowScale {
0%,
100% {
transform: scale(1, 1);
}
50% {
transform: scale(1.2, 1);
}
}
@keyframes upDownText {
0% {
transform: translateY(-10%);
}
50% {
transform: translateY(10%);
}
100% {
transform: translateY(-10%);
}
}
::-webkit-scrollbar {
height: 0;
}