linkmore-design
Version:
🌈 🚀lm组件库。🚀
344 lines (296 loc) • 7 kB
text/less
@import '../../style/themes/index.less';
@import '../../image-viewer/style/index.less';
.lm_upload_wrapper {
display: flex;
flex-wrap: wrap;
gap: 16px;
.lm_paste_upload {
padding: 16px;
border: 1px dashed @text-color-disable;
border-radius: @border-radius-base;
display: flex;
flex-wrap: wrap;
flex: auto;
gap: 16px;
&:hover {
border-color: @primary-color;
}
}
.lm_upload_core {
position: relative;
display: inline-flex;
vertical-align: middle;
.lm_upload_core_picture {
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 12px;
text-align: center;
background-color: @text-color-bg;
border: 1px dashed @text-color-disable;
cursor: pointer;
transition: all 0.3s;
border-radius: @border-radius-base;
&::after {
position: absolute;
background-color: rgba(0, 0, 0, 0.04);
cursor: not-allowed;
inset: 0;
}
&:hover {
border-color: @primary-color;
}
.lm_upload_core_picture_action {
width: 100%;
padding: @gap-base;
text-align: center;
.action_plus {
color: @text-color-new;
}
.tip {
margin-top: @gap-base;
color: @text-color-secondary-new;
}
}
}
&.disabled {
.lm_upload_core_picture {
border-color: rgba(0, 0, 0, 0.15);
&::after {
content: '';
}
.lm_upload_core_picture_action {
.action_plus,
.tip {
color: rgba(0, 0, 0, 0.25);
}
}
}
}
}
// 上传进度
.lm_upload_progress {
width: 100%;
height: 2px;
margin: 10px 0;
background-color: @text-color-bg;
border-radius: 20px;
.line {
width: 0%;
height: 2px;
background-color: @primary-color;
border-radius: 20px;
transition: 0.3;
}
}
// 文件列表项的每一项ƒ
.lm_upload_item {
vertical-align: middle;
// 文字列表
&.lm_upload_item_text {
display: flex;
gap: @gap-base;
align-items: center;
justify-content: space-between;
width: 100%;
height: 22px;
padding: 0 6px;
cursor: pointer;
transition: 0.3s;
&:hover {
background-color: @text-color-bg;
}
.text_left {
display: flex;
flex: 1;
gap: @gap-base;
align-items: center;
.prefix {
color: @text-color-secondary;
font-size: @font-size-base;
transition: 0.3s;
}
.lm_upload_item_name {
flex: 1;
color: @primary-color;
font-size: @font-size-base;
transition: 0.3s;
}
}
.text_right {
display: inline-flex;
.action_delete {
width: 24px;
color: @text-color-secondary;
text-align: center;
transition: 0.3s;
.anticon {
font-size: 14px;
}
&:hover {
color: @primary-color;
}
}
}
// 上传错误列表
&.lm_upload_item_error {
color: @error-color;
.text_left {
.prefix,
.lm_upload_item_name {
color: inherit;
}
}
.text_right .action_delete {
color: inherit;
}
}
}
// 图片列表
&.lm_upload_item_card {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
padding: @gap-base;
text-align: center;
border: 1px solid @text-color-border;
border-radius: @border-radius-base;
cursor: pointer;
transition: all 0.3s;
.lm_upload_item_thumb {
width: 100%;
.anticon {
color: @text-color-secondary;
font-size: 34px;
}
img {
object-fit: contain;
}
}
// 报错时的内容显示
.lm_upload_item_thumb_error {
.lm_upload_item_name {
margin-top: 8px;
overflow: hidden;
font-size: 12px;
text-overflow: ellipsis;
}
}
.lm_upload_item_mask {
position: absolute;
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
background-color: rgba(0, 0, 0, 0.5);
opacity: 0;
transition: 0.3s;
inset: 8px;
.lm_upload_item_action {
display: flex;
gap: @gap-base;
align-items: center;
color: @text-color-new;
}
}
.action_delete {
position: absolute;
top: -8px;
right: -8px;
color: @error-color;
border: 2px solid #fff;
font-size: 16px;
line-height: 1;
z-index: 11;
}
&:hover {
.lm_upload_item_mask {
opacity: 1;
}
.check_main {
display: block;
}
}
&.lm_upload_item_error {
border-color: @error-color;
.lm_upload_item_mask {
display: none;
}
.lm_upload_item_thumb_error {
color: @error-color;
}
}
.check_main {
position: absolute;
top: 0;
left: 0;
padding: 2px 4px;
background: rgba(19, 21, 35, 0.45);
border-top-left-radius: 8px;
border-bottom-right-radius: 8px;
font-size: 10px;
color: #fff;
display: none;
&.active {
display: block;
background: @primary-color;
}
}
}
// 图卡列表
&.lm_upload_item_picture {
display: flex;
gap: @gap-base;
align-items: center;
justify-content: space-between;
width: 100%;
padding: @gap-base;
border: 1px solid @text-color-border;
border-radius: 2px;
cursor: pointer;
transition: 0.3s;
&:hover {
border-color: @primary-color;
}
.picture_left {
display: inline-flex;
flex: 1;
gap: @gap-base;
align-items: center;
.lm_upload_item_thumb {
width: 48px;
img {
width: 100%;
max-height: 80px;
}
}
.lm_upload_item_name {
flex: 1;
color: @primary-color;
font-size: @font-size-base;
transition: 0.3s;
}
}
.picture_right {
display: flex;
align-items: center;
.action_delete {
width: 24px;
color: @text-color-secondary-new;
text-align: center;
transition: 0.3s;
.anticon {
font-size: 14px;
}
&:hover {
color: @primary-color;
}
}
}
&.lm_upload_item_error {
color: @error-color;
}
}
}
}