Merge pull request #206 from cshaptx4869/patch-106

refactor(Upload): ♻️ 单图片支持点击预览
This commit is contained in:
Ray Hao
2025-09-18 15:04:19 +08:00
committed by GitHub

View File

@@ -12,14 +12,23 @@
:on-error="onError" :on-error="onError"
> >
<template #default> <template #default>
<el-image v-if="modelValue" :src="modelValue" /> <template v-if="modelValue">
<el-icon v-if="modelValue" class="single-upload__delete-btn" @click.stop="handleDelete"> <el-image
class="single-upload__image"
:src="modelValue"
:preview-src-list="[modelValue]"
@click.stop="handlePreview"
/>
<el-icon class="single-upload__delete-btn" @click.stop="handleDelete">
<CircleCloseFilled /> <CircleCloseFilled />
</el-icon> </el-icon>
<el-icon v-else class="single-upload__add-btn"> </template>
<template v-else>
<el-icon>
<Plus /> <Plus />
</el-icon> </el-icon>
</template> </template>
</template>
</el-upload> </el-upload>
</template> </template>
@@ -138,6 +147,13 @@ function handleUpload(options: UploadRequestOptions) {
}); });
} }
/**
* 预览图片
*/
function handlePreview() {
console.log("预览图片,停止冒泡");
}
/** /**
* 删除图片 * 删除图片
*/ */
@@ -166,21 +182,14 @@ const onError = (error: any) => {
<style scoped lang="scss"> <style scoped lang="scss">
:deep(.el-upload--picture-card) { :deep(.el-upload--picture-card) {
width: v-bind("props.style.width"); position: relative;
height: v-bind("props.style.height"); width: v-bind("props.style.width ?? '150px'");
height: v-bind("props.style.height ?? '150px'");
} }
.single-upload { .single-upload {
position: relative; &__image {
width: v-bind("props.style.width"); border-radius: 6px;
height: v-bind("props.style.height");
overflow: hidden;
cursor: pointer;
border: 1px var(--el-border-color) solid;
border-radius: 5px;
&:hover {
border-color: var(--el-color-primary);
} }
&__delete-btn { &__delete-btn {