vue(iview)没有图片时默认图片设置

45 篇文章 0 订阅
<template>


        <Avatar style="background-color: #87d068" shape="square" size="large"
                icon="person"
                :src="url"/>
</template>
<style>

</style>
<script>
    import imgerror from "@/images/main/imgerror.png"
    import util from "@/libs/util.js"
    import $ from 'jquery';

    export default {
        name: 'image2',
        props: {
            src: String
        }, // 父组件传过来所需的url
        data() {
            return {
                loading: true,
                showOriginImg: false,
                width: '101px',
                url: '', // 先加载loading.gif
                imgId: 'image' + Math.ceil(Math.random() * 1000000),
                imgProp: {
                    imgwidth: 100,
                    imgheight: 100,
                    zoom: 0,
                    deg: 0,
                }

            }
        },
       watch:{
            src:function () {
                this.loadImg();
            }
        },
        methods: {

            loadImg() {
                // debugger;
                if (this.src) {

                    var self = this;
                    var newImg = new Image();
                    newImg.src = this.src;
                    newImg.onerror = () => {    // 图片加载错误时的替换图片
                        this.loading = false;
                        self.url = "";
                        // newImg.src = imgerror
                    }
                    newImg.onload = () => { // 图片加载成功后把地址给原来的img
                        self.loading = false;
                        self.url = newImg.src;
                        // self.imgProp.imgwidth = newImg.width;
                        // self.imgProp.imgheight = newImg.height;
                        // self.initWidth(newImg.width, self);
                    }
                }else {
                    this.url = "";
                }
            },
            // initWidth(widthN, self) {
            //     if (widthN < 170) {
            //         self.width = "200px";
            //     }
            //     else {
            //         self.width = (widthN + 30) + "px";
            //     }
            // },
//             showImageFunc() {
//                 this.showOriginImg = true;
//             },
//
//             rotate(v) {
//                 var deg = this.imgProp.deg = this.imgProp.deg + v;
//                 $('#' + this.imgId).css({
//                     '-webkit-transform': 'rotate(' + deg + 'deg)',
//                     '-moz-transform': 'rotate(' + deg + 'deg)',
//                     '-o-transform': 'rotate(' + deg + 'deg)',
//                     '-ms-transform': 'rotate(' + deg + 'deg)',
//                     'transform': 'rotate(' + deg + 'deg)'
//                 });
// //                $('#'+this.imgId).rotate(v);
//             },
//             //放大缩小
//             zoom(v) {
//                 var self = this;
//                 self.imgProp.zoom = self.imgProp.zoom + v;
//                 var width = self.imgProp.imgwidth + self.imgProp.imgwidth * self.imgProp.zoom;
//                 var height = self.imgProp.imgheight + self.imgProp.imgheight * self.imgProp.zoom;
//                 self.initWidth(width, self);
//                 $('#' + this.imgId).width(width);
//                 $('#' + this.imgId).height(height);
//             }
        },

        mounted() {
            this.loadImg();
        }
    }
</script>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值