el-image的有余

el-image 自身设计已十分优良,但图片预览性能存在以下有余:

1.没有相应的用户反馈,用户无奈直观的晓得该图片能够点击查看详情;

2.预览图片的列表须要独自配置一个数组,在理论开发中往往是须要查看以后图片;

调用成果及代码

基于上述问题,新增用户交互反馈,反对单图、多图预览

<!-- * @Date: 2022-05-16 10:03:11 * @Author: surewinT 840325271@qq.com * @LastEditTime: 2022-05-16 11:00:07 * @LastEditors: surewinT 840325271@qq.com * @Description: 调用页面--><template>    <div class="">        <p-el-image            v-for="(item, index) in imglist"            :key="index"            :src="item.path"            width="200px"            height="200px"        />    </div></template><script>import PElImage from '@/components/p-el-image';export default {    components: {        'p-el-image': PElImage,    },    props: [],    data() {        return {            imglist: [                {                    id: 1,                    path: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',                },                {                    id: 2,                    path: [                        'https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg',                        'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',                        'https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg',                    ],                },            ],        };    },    mounted() {},    watch: {},    methods: {},};</script><style lang='scss' scoped></style>

组件源码(p-el-image)

<!-- * @Date: 2022-02-28 21:26:54 * @Author: surewinT 840325271@qq.com * @LastEditTime: 2022-05-16 11:00:18 * @LastEditors: surewinT 840325271@qq.com * @Description: 图片预览组件--><template>    <span        class="image-item"        :style="{            width: width,            height: height,        }"    >        <span class="warp" @click="showImage">            <span class="el-icon-view"></span>        </span>        <el-image            ref="Image"            class="image"            :src="imgSrc"            :preview-src-list="previewSrc"        ></el-image>    </span></template><script>export default {    components: {},    props: {        src: [Array, String],        width: {            typeof: String,            default: '100px',        },        height: {            typeof: String,            default: '100px',        },    },    data() {        return {            srcList: [],            baseurl: '',        };    },    mounted() {},    watch: {},    computed: {        imgSrc() {            if (typeof this.src == 'string') {                return this.src;            } else {                return this.src[0];            }        },        previewSrc() {            if (typeof this.src == 'string') {                return [this.src];            } else {                return this.src;            }        },    },    methods: {        // 显示图片        showImage() {            this.$refs.Image.clickHandler();            this.$emit('image-show', this.src);        },    },};</script><style lang='scss' scoped>.image-item {    // width: 100px;    // height: 100px;    position: relative;    display: inline-block;    cursor: pointer;    & + .image-item {        margin-left: 10px;    }    .image {        width: 100%;        height: 100%;    }    .warp {        position: absolute;        width: 100%;        height: 100%;        display: flex;        justify-content: center;        align-items: center;        color: #fff;    }    &:hover {        .warp {            z-index: 1;            background-color: rgba(0, 0, 0, 0.7);        }    }}</style>

代码仓库

后续补充