<template> <div> <el-upload accept=".jpg,.jpeg,.png,.JPG,.JPEG,.PBG" :class="{disabled:uploadDisabled}" action="http://111.203.232.175:8088/mall/file/image/upload" list-type="picture-card" :on-preview="handlePictureCardPreview" :on-remove="handleRemove" :on-success="handleAvatarSuccess" :headers="headers" :file-list="fileList" :limit="1" :multiple ="false" > <i class="el-icon-plus"></i> <div slot="tip" class="el-upload__tip color_red">只能上传.jpg/.jpeg/.png文件</div> </el-upload> <el-dialog :visible.sync="dialogVisible"> <img width="100%" :src="dialogImageUrl" alt /> </el-dialog> </div> </template> <script> export default { props:{ fileList:{ type:Array, default:[ { name: "", url: "", }, ] }, }, data() { return { dialogImageUrl: "", dialogVisible: false, imageUrl:"" }; }, computed: { headers() { // return { 'token': this.backToken } return {'Authorization':localStorage.getItem('backToken')} }, uploadDisabled:function() { return (this.fileList.length>0)||this.imageUrl }, }, methods: { // 图片上传成功的返回值 handleAvatarSuccess(res, file) { // this.$emit('qrcodeUrl', res.data.url) if (res.resultCode == 200) { this.$emit('qrcodeUrl', res.data.url) this.imageUrl = res.data.url; } else { this.$message.error(res.message); } }, handleRemove(file, fileList) { console.log(file, fileList); this.$emit("qrcodeUrl", ""); this.imageUrl="" this.fileList=[] }, handlePictureCardPreview(file) { this.dialogImageUrl = file.url; this.dialogVisible = true; } } }; </script> <style> .color_red{ color:red; } .disabled .el-upload--picture-card { display: none; } </style>