EASYAIuniappNewUI/node_modules/@tuniao/tnui-vue3-uniapp/theme-chalk/src/image-upload.scss
2025-02-08 18:50:38 +08:00

167 lines
3.2 KiB
SCSS

@use '../mixins/mixins.scss' as *;
@include b('image-upload') {
position: relative;
width: 100%;
display: flex;
flex-wrap: wrap;
}
/* item 对象 */
@include b('image-upload-item') {
flex-grow: 0;
position: relative;
width: calc(100% / 3 - 20rpx);
height: 0;
padding-bottom: calc(100% / 3 - 20rpx);
border-radius: 15rpx;
margin-right: 20rpx;
margin-bottom: 20rpx;
overflow: hidden;
/* 自定义显示图片数据 start */
@include when(custom) {
flex: auto;
width: 100%;
height: auto;
padding: 0rpx;
border-radius: 0rpx;
margin: 0;
}
/* 自定义显示图片数据 end */
/* 图片 start */
@include e(image) {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
border-radius: inherit;
will-change: transform;
z-index: 1;
.image {
width: 100%;
height: 100%;
border-radius: inherit;
}
@include when(donw) {
z-index: 4;
}
}
/* 图片 end */
/* 删除按钮 start */
@include e(remove) {
position: absolute;
right: 0;
top: 0;
background-color: transparent;
color: #fff;
width: 0;
height: 0;
z-index: 6;
border-top: 70rpx solid var(--tn-color-danger);
border-left: 70rpx solid transparent;
@include m(icon) {
position: absolute;
top: -76rpx;
right: 8rpx;
transform: translateY(50%);
line-height: 1;
}
}
/* 删除按钮 end */
/* 重试蒙层 start */
@include e(retry) {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.2);
color: #fff;
z-index: 5;
display: flex;
align-items: center;
justify-content: center;
font-size: 110rpx;
line-height: 1;
}
/* 重试蒙层 end */
/* 进度条 start */
@include e(progress) {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 100%;
z-index: 2;
opacity: 1;
background-color: rgba(247, 248, 247, 0);
transition-property: opacity;
transition-duration: 0.8s;
transition-timing-function: linear;
transition-delay: 0.3s;
@include m(wave) {
position: absolute;
width: calc(100% * 4);
height: calc(100% * 4);
top: -300%;
left: 50%;
z-index: 2;
background-color: rgba(170, 170, 170, 0.5);
border-radius: 45%;
transform: translateX(-50%) rotate(0);
animation: rotate 4s linear infinite;
& + & {
z-index: 3;
background-color: rgba(170, 170, 170, 0.8);
border-radius: 47%;
animation: rotate 9s linear -4s infinite;
}
}
@include when(finish) {
opacity: 0;
}
}
/* 进度条 end */
/* 新增图片 按钮 start */
@include e(add-btn) {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
border-radius: inherit;
@include m('icon') {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
font-size: 100rpx;
}
}
/* 新增图片 按钮 end */
}
@keyframes rotate {
50% {
transform: translateX(-50%) rotate(180deg);
}
100% {
transform: translateX(-50%) rotate(360deg);
}
}