element ui 带上传文件的form表单

简介: element ui 带上传文件的form表单
学习过程中将笔记跟大家分享,希望对大家也有所帮助,共同成长进步💪~\
如果大家喜欢,可以点赞或留言💕 ~~,谢谢大家⭐️⭐️⭐️~

上传文件接口附带额外参数进行操作上传

正常项目的需求是文件单独上传,在提交表单数据,请求两次接口,现需求有变,需要一个接口搞定,也就是提交表单和上传文件同步进行,elementui中的upload组件上传文件时能附带额外的参数,所以我的思路是把表单数据作为上传时附带的额外参数提交给后台就好了。下面废话不多说,直接上代码了:

表单部分

额外参数注意:data这里

<el-form :inline="false" ref="form2" :rules="rules2" :model="form2" label-width="100px" style="padding: 30px 0;">
    <el-form-item label="导入方式" prop="importType">
        <el-select v-model="form2.importType" placeholder="请选择导入方式">
            <el-option
            v-for="item in importTypeData"
            :key="item.value"
            :label="item.label"
            :value="item.value"
            >
            </el-option>
        </el-select>
    </el-form-item>
    <el-form-item label="选取文件" prop="fileList">
        <el-upload 
            class="upload-demo" 
            drag 
            ref="newupload" 
            :action="action"
            accept=".xls,.xlsx"
            :on-change="onChange" :on-success="onSuccess" :file-list="form2.fileList"
            :auto-upload="false" 
            :data="form2" 
            >
            <i class="el-icon-upload"></i>
            <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        </el-upload>
    </el-form-item>
    <el-form-item label="">
        <el-button type="primary" @click="importFilepost">导入</el-button>
        <el-button type="primary" @click="onCancel">取消</el-button>
    </el-form-item>
</el-form>

data数据:

export default {
    data() {
        return {
           form2:{
                importType:"increment",
                fileList: [],
            },
            rules2: {
                fileList: [
                    { required: true, message: '请选择文件', trigger: 'change' }
                ],
            },
            action: "/investPlanCheck/importSHCQProject",
        }
    },
}

在methods里增加的方法

手动上传文件列表submit方法,需要触发submit

//onChange这里我根据我的业务需求进行修改替换上一次的上传文件了
onChange(file, fileList) {//文件状态改变时的钩子函数
    // this.form2.fileList = fileList;
    if (fileList.length > 0) {
        this.form2.fileList = [fileList[fileList.length - 1]]  // 这一步,是 展示最后一次选择的文件
    }
},
onSuccess(response, file, fileList) {//文件上传成功时的钩子
    if(response.state==1){
        this.$message.success('导入成功');
        this.dialogVisible2=false;
    }else{
        this.$message.error('导入失败');
    }
    this.form2.fileList = [];
    this.$refs['form2'].resetFields();
    this.$refs['newupload'].clearFiles();
},
importFilepost(){//导入提交---
    this.$refs.form2.validate((valid) => {
        if (valid) {
            //触发组件的action
            this.$refs.newupload.submit();//主要是这里
        } else {
            console.log('error submit!!');
            return false;
        }
    })
},
onCancel(){//取消
    this.$refs.form2.resetFields();
},

效果图:

image.png

目录
相关文章
|
3月前
|
Web App开发 前端开发 JavaScript
Element UI框架中自定义input组件的placeholder样式。
确保这些样式在你的应用程序CSS文件中定义,且该文件已正确加载到项目中。通过以上方法,可以控制Element UI组件中input的placeholder样式,使其满足特定的设计要求。这些更改都是基于CSS伪元素进行的,因此并不会对DOM结构产生改变,保持了原有结构的简洁和高效。
365 12
|
3月前
|
存储 JavaScript 前端开发
element ui <el-date-picker> 设置展示当前月
在 Element UI 中,使用 `el-date-picker` 的 `value-format` 属性可将日期值格式化为指定字符串。设置 `type=&quot;month&quot;` 时,绑定值默认为 Date 对象,通过 `value-format=&quot;yyyy-MM&quot;` 可将其转为如 &quot;2023-05&quot; 格式,便于存储与处理。
895 0
|
4月前
|
定位技术 容器
48.[HarmonyOS NEXT RelativeContainer案例五] 精确表单布局:辅助线定位技术打造专业级UI
在HarmonyOS NEXT的UI开发中,表单是常见且重要的界面元素。创建对齐精确、布局合理的表单需要精细的定位控制。RelativeContainer提供的辅助线(Guideline)功能,为表单布局提供了强大的支持。本教程将详细讲解如何使用RelativeContainer的辅助线功能实现精确的表单布局,帮助你掌握这一专业级UI技术。
106 7
|
API UED 容器
深入探索 Element UI:自定义滚动条与弹出层管理的技巧
在这篇博客中,我们将深入探讨 Element UI 中的自定义滚动条及弹出层管理技巧。文章详细介绍了 el-scrollbar 组件的使用和参数设置,以及 PopupManager 如何有效管理弹出层的 z-index。我们还将探讨如何实现灵活的全屏组件,利用 vue-popper 创建自定义弹出层,最后介绍 ClickOutside 指令的用法。这些高级技巧将帮助你提升 Element UI 应用程序的用户体验与交互灵活性。
1186 1
深入探索 Element UI:自定义滚动条与弹出层管理的技巧
|
JavaScript 索引
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
910 0
|
开发者 C# Android开发
明白吗?Xamarin与Native的终极对决:究竟哪种开发方式更适合您的项目需求,让我们一探究竟!
【8月更文挑战第31天】随着移动应用开发的普及,开发者面临多种技术选择。本文对比了跨平台解决方案Xamarin与原生开发方式的优势与劣势。Xamarin使用C#进行跨平台开发,代码复用率高,可大幅降低开发成本;但因基于抽象层,可能影响性能。原生开发则充分利用平台特性,提供最佳用户体验,但需维护多套代码库,增加工作量。开发者应根据项目需求、团队技能和预算综合考量,选择最适合的开发方式。
259 0
|
5月前
|
开发框架 前端开发 JavaScript
【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发一
本文介绍了方舟开发框架(ArkUI)及其两种开发范式:基于ArkTS的声明式开发范式和类Web开发范式。ArkUI是用于构建HarmonyOS应用界面的UI框架,提供极简UI语法和基础设施。声明式开发范式使用ArkTS语言,以组件、动画和状态管理为核心,适合复杂团队协作;类Web开发范式采用HML、CSS、JavaScript三段式开发,适用于简单界面应用,贴近Web开发者习惯。文中还概述了两者的架构和基础能力,帮助开发者选择合适的范式进行高效开发。
189 15
|
5月前
|
编解码 前端开发 Java
【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发三
本文介绍了基于声明式UI范式的图形绘制与动画效果实现方法,涵盖绘制图形、添加动画效果及常见组件说明三部分内容。在绘制图形部分,详细讲解了如何通过Circle组件为食物成分表添加圆形标签,以及使用Path组件结合SVG命令绘制自定义图形(如应用Logo)。动画效果部分则展示了如何利用animateTo实现闪屏动画,包括渐出、放大效果,并设置页面跳转;同时介绍了页面间共享元素转场动画的实现方式。最后,文章列举了声明式开发范式中的各类组件及其功能,帮助开发者快速上手构建复杂交互页面。
188 11
|
1月前
|
存储 开发者 容器
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
本文介绍了ArkTS语言中的Class类、泛型、接口、模块化、自定义组件及状态管理等核心概念,并结合代码示例讲解了对象属性、构造方法、继承、静态成员、访问修饰符等内容,同时涵盖了路由管理、生命周期和Stage模型等应用开发关键知识点。
200 1
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
|
4月前
|
JavaScript 前端开发 UED
【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发四
本文介绍了Web组件开发与性能优化的相关内容。在Web组件开发部分,涵盖创建组件、设置样式与属性、添加事件和方法以及场景示例,如动态播放视频。性能提升方面,推荐使用数据懒加载、条件渲染替代显隐控制、Column/Row替代Flex、设置List组件宽高及调整cachedCount减少滑动白块等方法,以优化应用性能与用户体验。
205 56

热门文章

最新文章