封装一个element table列表头像渲染

//全局引用,挂载

<template>

  <el-image

    :src="`${realSrc}`"

    fit="cover"

    :style="`width:${realWidth};height:${realHeight};`"

    :preview-src-list="realSrcList"

  >

    <div slot="error" class="image-slot">

      <i class="el-icon-picture-outline"></i>

    </div>

  </el-image>

</template>

<script>

import { isExternal } from "@/utils/validate";

export default {

  name: "ImagePreview",

  props: {

    src: {

      type: String,

      required: true

    },

    width: {

      type: [Number, String],

      default: ""

    },

    height: {

      type: [Number, String],

      default: ""

    }

  },

  computed: {

    realSrc() {

      let real_src = this.src.split(",")[0];

      if (isExternal(real_src)) {

        return real_src;

      }

      return process.env.VUE_APP_BASE_API + real_src; //这个是本地你的前缀地址拼接传进来的地址

    },

    realSrcList() {

      let real_src_list = this.src.split(",");

      let srcList = [];

      real_src_list.forEach(item => {

        if (isExternal(item)) {

          return srcList.push(item);

        }

        return srcList.push(process.env.VUE_APP_BASE_API + item);

      });

      return srcList;

    },

    realWidth() {

      return typeof this.width == "string" ? this.width : `${this.width}px`;

    },

    realHeight() {

      return typeof this.height == "string" ? this.height : `${this.height}px`;

    }

  },

};

</script>

<style lang="scss" scoped>

.el-image {

  border-radius: 5px;

  background-color: #ebeef5;

  box-shadow: 0 0 5px 1px #ccc;

  ::v-deep .el-image__inner {

    transition: all 0.3s;

    cursor: pointer;

    &:hover {

      transform: scale(1.2);

    }

  }

  ::v-deep .image-slot {

    display: flex;

    justify-content: center;

    align-items: center;

    width: 100%;

    height: 100%;

    color: #909399;

    font-size: 30px;

  }

}

</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值