kui-vue
Version:
A lightweight desktop UI component library suitable for Vue.js 2.
334 lines (284 loc) • 6.03 kB
text/less
@import "../../styles/var.less";
.k-upload {
display: inline-block;
.k-upload-file {
display: none;
}
.k-upload-file-list {
margin-top: 8px;
display: flex;
flex-wrap: wrap;
}
.k-upload-file-list-item {
display: flex;
align-items: center;
justify-content: space-between;
height: 52px;
width: 256px;
cursor: pointer;
background-color: var(--kui-color-gray-90);
border-radius: var(--kui-border-radius);
font-size: 12px;
margin-bottom: 8px;
margin-right: 8px;
}
.k-upload-file-item-remove {
padding: 5px;
margin: 0 8px;
border-radius: var(--kui-border-radius);
color: var(--kui-color-font);
font-size: 18px;
&:hover {
background-color: var(--kui-color-border);
}
}
.k-upload-file-preview {
width: 36px;
height: 36px;
padding: 8px;
box-sizing: content-box;
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
.k-icon {
font-size: 20px;
background-color: var(--kui-color-border);
padding: 8px;
border-radius: var(--kui-border-radius);
}
img {
width: 36px;
height: 36px;
object-fit: cover;
}
}
.k-upload-file-item-remove {
flex-shrink: 0;
}
.k-upload-file-item-info {
display: flex;
flex-direction: column;
flex: 1;
overflow: hidden;
}
.k-upload-file-main {
display: flex;
flex: 1;
flex-basis: 100%;
align-items: center;
margin-bottom: 5px;
}
.k-upload-file-status {
flex: 1;
display: flex;
flex-direction: column;
.k-icon {
margin-right: 3px;
}
}
.k-upload-file-name {
font-size: 14px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: block;
display: inline-block;
font-weight: 600;
}
.k-upload-file-size {
color: #999;
margin-left: 8px;
}
.k-upload-file-status-success .k-upload-file-status-text {
color: var(--kui-color-success);
display: flex;
align-items: center;
.k-icon {
font-size: 14px;
}
}
.k-upload-file-status-error .k-upload-file-status-text {
display: flex;
align-items: center;
color: var(--kui-color-danger);
.k-icon {
font-size: 14px;
}
}
//picture
.k-upload-file-picture-item {
}
.k-upload-add {
line-height: 1;
}
}
.k-upload-picture {
display: flex;
flex-wrap: wrap;
.k-upload-text {
font-size: 14px;
color: var(--kui-color-gray-30);
margin-top: 8px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding: 0 8px;
width: 100%;
box-sizing: border-box;
text-align: center;
}
.k-upload-picture-list {
display: inline-flex;
margin-top: 0;
flex-wrap: wrap;
}
.k-upload-select {
width: 96px;
height: 96px;
border-radius: var(--kui-border-radius);
border: 1px dashed var(--kui-color-border);
background-color: var(--kui-color-gray-90);
display: inline-block;
cursor: pointer;
.k-upload-add {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
overflow: hidden;
padding: 0;
line-height: 1;
}
&:hover {
border-color: var(--kui-color-main);
}
.k-icon {
font-size: 30px;
color: #999;
}
}
.k-upload-file-picture-item {
width: 96px;
height: 95px;
border-radius: var(--kui-border-radius);
border: 1px solid var(--kui-color-border);
margin-bottom: 8px;
margin-right: 8px;
position: relative;
overflow: hidden;
&:hover {
.k-upload-file-picture-remove {
display: block;
}
}
}
.k-upload-picture-preview {
width: 100%;
height: 100%;
padding: 0px;
overflow: hidden;
img {
width: 100%;
height: 100%;
object-fit: cover;
border: none;
}
}
.k-upload-file-picture-remove {
display: none;
position: absolute;
background-color: var(--kui-color-mask);
border-radius: 50%;
color: #fff;
padding: 2px;
cursor: pointer;
font-size: 12px;
top: 8px;
right: 8px;
z-index: 1;
}
.k-upload-file-status-uploading {
.k-upload-file-item-info {
position: absolute;
width: 100%;
height: 100%;
bottom: 0;
pointer-events: none;
left: 0;
z-index: 1;
}
.k-upload-file-status {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
background: var(--kui-color-mask);
.k-progress {
width: 30px;
height: 30px;
}
}
}
.k-upload-file-status-error {
.k-upload-file-item-info {
position: absolute;
left: 10px;
bottom: 10px;
color: var(--kui-color-danger);
.k-icon {
font-size: 20px;
}
}
border-color: var(--kui-color-danger);
}
}
.k-upload-drag {
width: 100%;
.k-upload-add {
border-radius: var(--kui-border-radius);
border: 1px dashed var(--kui-color-border);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: var(--kui-color-gray-90);
padding: 16px 0;
line-height: 1;
cursor: pointer;
&:hover {
border-color: var(--kui-color-main);
}
&[drag="over"] {
border-color: var(--kui-color-main);
.k-upload-sub-text {
font-weight: bold;
color: var(--kui-color-main);
}
}
}
.k-upload-add .k-icon {
font-size: 30px;
color: var(--kui-color-main);
margin-bottom: 10px;
}
.k-upload-text {
color: var(--kui-color-gray-30);
font-size: 14px;
}
.k-upload-sub-text {
color: var(--kui-color-gray-30);
font-size: 12px;
margin-top: 4px;
}
}
.k-upload-disabled {
opacity: 0.5;
cursor: not-allowed;
* {
cursor: not-allowed;
}
}