zoukankan      html  css  js  c++  java
  • 3.element ui upload上传图片组件

    • 引入组件
      1 <upload-img :profile-url="shopProfile" @getShopProfileFn="getShopProfile" />
    • 定义方法
       getShopProfile(url) {
           //  url 
          },
    • 组件内容
       1 <template>
       2   <div>
       3     <el-upload
       4       list-type="picture-card"
       5       :action="action"
       6       :auto-upload="true"
       7       :data="uploadData"
       8       name="file"
       9       :show-file-list="true"
      10       :on-success="handleSuccess"
      11       :before-upload="beforeUpload"
      12       :on-exceed="handleExceed"
      13       accept="image/png, image/jpeg, image/gif, image/jpg"
      14       :limit="1"
      15     >
      16       <i slot="default" class="el-icon-plus"></i>
      17       <div slot="file" slot-scope="{file}">
      18         <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
      19         <span class="el-upload-list__item-actions">
      20           <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
      21             <i class="el-icon-zoom-in"></i>
      22           </span>
      23           <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
      24             <i class="el-icon-delete"></i>
      25           </span>
      26         </span>
      27       </div>
      28     </el-upload>
      29     <el-dialog :visible.sync="dialogVisible">
      30       <img width="100%" :src="dialogImageUrl" alt />
      31     </el-dialog>
      32   </div>
      33 </template>
      34 <script>
      35 export default {
      36   data() {
      37     return {
      38       action: "",
      39       disabled: false,
      40       uploadData: {
      41         file: "",
      42         project: ""
      43       },
      44       imageUrl: "",
      45       dialogImageUrl: "",
      46       dialogVisible: false,
      47       disabled: false
      48     };
      49   },
      50   props: {
      51     profileUrl: {
      52       type: String,
      53       default: ""
      54     }
      55   },
      56   methods: {
      57     handleRemove(file) {
      58       // console.log(file);
      59     },
      60     handlePictureCardPreview(file) {
      61       this.dialogImageUrl = file.url;
      62       this.dialogVisible = true;
      63     },
      64     beforeUpload(file) {
      65       this.uploadData.file = file;
      66       const isLt2M = file.size / 1024 / 1024 < 2;
      67       if (!isLt2M) {
      68         this.$message.error("上传头像图片大小不能超过 2MB!");
      69         return isLt2M;
      70       }
      71     },
      72     // 上传成功后,但存在不保存情况
      73     handleSuccess(res, file) {
      74       // this.imageUrl = URL.createObjectURL(file.raw);
      75       // 获取后端对上传图片存储位置的路径,
      76       if (res.code === 200) {
      77         this.imageUrl = res.url;
      78         this.$emit("getShopProfileFn", this.imageUrl);
      79       } else {
      80         this.$message.error("图片上传失败");
      81       }
      82     },
      83     handleExceed(files, fileList) {
      84       this.$message.error("只能上传一张图片");
      85     }
      86   }
      87 };
      88 </script>
  • 相关阅读:
    Mifare系列3-卡的能源和数据传递(转)
    Mifare系列2-非接触卡标准(转)
    Mifare系列1-简介(转)
    oot 空间不足解决方法
    C语言位操作(转)
    C语言面试题(三)
    C语言运算符和优先级
    C语言面试题(二)
    C语言面试题(一)
    Ubuntu+Win7双系统grub的修复问题
  • 原文地址:https://www.cnblogs.com/janet11/p/12102431.html
Copyright © 2011-2022 走看看