【问题解决】el-upload数据上传成功后不显示成功icon

el-upload数据上传成功后不显示成功icon

原因

由于后端返回数据与要求形式不符,使用el-upload默认方法调用onSuccess钩子失败,上传文件的状态并未发生改变,因此数据上传成功后并未显示成功的icon标志。

解决方法

点击按钮,调用submitDetail()方法,在该方法中通过this.$refs.uploadDetail.submit()语句,调用:http-request对应的方法,即uploadDetail(param)方法。

通过UploadServletList方法调用后端文件上传接口,根据后端返回内容进行判断,通过param.onSuccess手动调用文件上传成功的钩子,使得上传成功icon成功显示。

代码展示

javascript 复制代码
<el-upload ref="uploadDetail" action="#" :on-remove="handleRemoveDetail" :on-change="handleChangeDetail" :limit="1" :file-list="detailFileList" :auto-upload="false" v-loading="detailUploadingFlag" class="upload-demo" :show-file-list="true" :http-request="uploadDetail">
	<el-button slot="trigger" size="medium" type="primary">选择</el-button>
    <el-button style="margin-left: 10px;" size="medium" type="success" @click="submitDetail">上传</el-button>
</el-upload>


<srcipt>
submitDetail() {
    this.$refs.uploadDetail.submit()
},
uploadDetail(param) {
	var formData = new FormData()
    this.detailFileList.forEach((item) => {
        formData.append('files', item.raw)
    })
    this.detailUploadingFlag = true
    UploadServletList(formData).then((res) => {
        if (!res.includes("上传出现错误")) {
            let arr = res.split(';')
            let detailShcemeSNameList = arr.map(item => item.split('>')[0])
            this.applyInfoForm.detailSchemeSName = detailShcemeSNameList[0]
            param.onSuccess(res)
            this.$message({
                type: 'success',
                message: `详细方案上传成功`
            })
        } else {
            param.onError(res)
        }
        this.detailUploadingFlag = false
    }).catch((err) => {
        console.log(err)
    })
},
</srcipt>

效果展示

相关推荐
LYFlied1 小时前
从 Vue 到 React,再到 React Native:资深前端开发者的平滑过渡指南
vue.js·react native·react.js
爱喝白开水a1 小时前
前端AI自动化测试:brower-use调研让大模型帮你做网页交互与测试
前端·人工智能·大模型·prompt·交互·agent·rag
董世昌411 小时前
深度解析ES6 Set与Map:相同点、核心差异及实战选型
前端·javascript·es6
B站_计算机毕业设计之家1 小时前
豆瓣电影数据采集分析推荐系统 | Python Vue Flask框架 LSTM Echarts多技术融合开发 毕业设计源码 计算机
vue.js·python·机器学习·flask·echarts·lstm·推荐算法
吃杠碰小鸡2 小时前
高中数学-数列-导数证明
前端·数学·算法
kingwebo'sZone2 小时前
C#使用Aspose.Words把 word转成图片
前端·c#·word
xjt_09013 小时前
基于 Vue 3 构建企业级 Web Components 组件库
前端·javascript·vue.js
我是伪码农3 小时前
Vue 2.3
前端·javascript·vue.js
夜郎king3 小时前
HTML5 SVG 实现日出日落动画与实时天气可视化
前端·html5·svg 日出日落
跳动的梦想家h4 小时前
环境配置 + AI 提效双管齐下
java·vue.js·spring