【el-upload实现一个修改头像的功能】

el-upload实现一个修改头像的功能

效果

在这里插入图片描述

代码

<el-row type="flex" style="margin-top: 1%;margin-left: 14%;color: #aaaaaa">
    <el-col :span="16">
        <el-form-item label="个人头像" prop="adtabDtos" label-width="15%">
            <div style="width: 40%; display: inline-block; " v-if="imgDisplay && imgDisplay!= ''">
                <img :src="imgDisplay" alt="" style="margin-left:5%;height:60px;width:60px;border-radius: 50%">
            </div>
            <div style="width: 40%; display: inline-block; " v-else>
                <img src="/xxxWeb/static/image/headImage.png" alt="" style="margin-left:5%;height:60px;width:60px;border-radius: 50%">
            </div>
            <div style="width: 60%; display: inline-block;" >
                <el-upload
                    :action="action"
                    :limit="1"
                    :before-upload="beforeUpload"
                    :headers="uploadHeader"
                    :file-list="fileList"
                    :show-file-list="false"
                    :on-success="handleUploadSuccess"
                    :on-exceed="handleExceed" >
	                    <span style="margin-left: 40%;" >
	                        <el-button type="text">修改头像</el-button>
	                    </span>
                </el-upload>
            </div>
        </el-form-item>
    </el-col>
</el-row>
handleUploadSuccess: function (res, file) {
     if (res.code == '401') {
         this.$message.error(res.message);
     } else {
         this.imageUrl = URL.createObjectURL(file.raw);
         this.fileUrl = res.data.imagePath
         this.flag = 'upload'
         let adtabDtos = {
             ...res.data,
             operateType: true,
         }
         if(!this.ruleForm.adtabDtos || this.ruleForm.adtabDtos == []){
             this.ruleForm.adtabDtos = [{
                 ...adtabDtos
             }]
         } 
         api.editHeadImage({
             data: {
                 ...this.ruleForm
             },
             success: function (res) {
                 this.getUserDetail();
             },
             fail: function (res) {
                 self.$message.error(res.data.msg);
             }
         });
     }
 },

show-file-list="false"让文件列表消失,不显示上传的图片列表
el-button中设置type=“text”让按钮变成文本样式,隐藏按钮的效果
给两个div设置display: inline-block;"让两个div并排显示
上传图片成功之后直接调editHeadImage()接口修改用户头像

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在 Vue 3 中使用 Element UI 的 Upload 组件,你可以按照以下步骤进行配置: 1. 安装 Element UI 组件库 ``` npm install element-plus --save ``` 2. 在 main.js 中引入 Element UI ``` import { createApp } from 'vue' import ElementPlus from 'element-plus' import 'element-plus/lib/theme-chalk/index.css' createApp(App) .use(ElementPlus) .mount('#app') ``` 3. 在组件中使用 Upload 组件 ``` <template> <el-upload class="upload-demo" action="https://jsonplaceholder.typicode.com/posts/" :on-preview="handlePreview" :on-remove="handleRemove" :before-upload="beforeUpload" :on-exceed="handleExceed" :file-list="fileList" :disabled="disabled" :limit="3" :on-success="handleSuccess" :on-error="handleError"> <el-button size="small" type="primary">点击上传</el-button> <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> </el-upload> </template> <script> export default { data() { return { fileList: [], disabled: false, }; }, methods: { handleRemove(file, fileList) { console.log(file, fileList); }, handlePreview(file) { console.log(file); }, beforeUpload(file) { const isJPG = file.type === 'image/jpeg' || file.type === 'image/png'; const isLt500K = file.size / 1024 < 500; if (!isJPG) { this.$message.error('上传头像图片只能是 JPG/PNG 格式!'); } if (!isLt500K) { this.$message.error('上传头像图片大小不能超过 500KB!'); } return isJPG && isLt500K; }, handleExceed(files, fileList) { this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`); }, handleSuccess(response, file, fileList) { console.log(response, file, fileList); }, handleError(err, file, fileList) { console.log(err, file, fileList); }, }, }; </script> ``` 以上是一个简单的示例,你可以根据自己的需求进行修改。同时,你需要注意以下几点: - `action` 属性指定上传的接口地址; - `before-upload` 属性可以对上传文件的类型和大小进行限制; - `on-success` 和 `on-error` 属性分别指定上传成功和上传失败的回调函数; - `file-list` 属性可以设置已上传的文件列表; - `disabled` 属性可以控制上传组件是否可用; - `limit` 属性可以限制上传文件的数量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雄不是大熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值