【问题解决】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>

效果展示

相关推荐
guslegend13 分钟前
脚手架原理与本地调试:从 bin 软链接到 npm link
前端·npm·node.js·脚手架·前端工程化
大包子1 小时前
structuredClone vs lodash.cloneDeep:核心差异与选型指南
javascript·vue.js
海码事务所1 小时前
Google Play 新个人开发者账号上架指南:12 人连续 14 天封闭测试怎么做?
前端
田威AI1 小时前
图片内文字翻译的规格:输入输出、保真、自动化、时间与费用
前端·计算机视觉
不可能片场1 小时前
命令行中文变问号 我用环境变量救了场
前端·electron
lerhxx1 小时前
AI 应用中的上下文管理 —— 从"上下文窗口"到"分层压缩"的工程实践
前端·javascript
骑着蜗牛撵大象3271 小时前
多 Agent 分治协作:MapReduce 模式下的并行扇出与结果归并
前端
用户55318297321 小时前
Flutter iOS 热更新深入 Dart VM:读懂函数入口、解释执行与调用桥接
前端
前端snow1 小时前
为什么大厂要用Postgres + mogodb的框架?
前端
雪芽蓝域zzs1 小时前
第 3 节:地图点击事件,点击获取经纬度
vue.js