动态表单上传文件

之前做了一个动态表单的页面,最近要在这个动态表单中增加一个文件上传的操作,如何在上传操作中传参呢?

页面代码

<div v-for="(item,index) in form.list" :key="index">
<el-form-item
    label="上传证书"
    label-width="250px"
    :key="'path'+index"
    :prop="'list.'+index+'.path'"
    :rules="{
        required: true,
        message: '请上传',
        trigger: 'change'
    }">
    <el-input v-model="item.path" readonly></el-input>
    <el-upload
        :ref="'upload'+index"
        action="#"
        accept=".zip,.pfx"
        :file-list="fileList"
        :http-request="(params)=>httpRequest(params,index)"
        :auto-upload="false"
        :show-file-list="false"
        :on-change="(file,fileList)=>onChange(file,fileList,index)">
    <el-button
        slot="trigger"
        size="small"
        style="height:36px"
     >浏览...</el-button>
    
    <el-button
        size="small"
        type="primary"
        style="height:36px;
               margin-left:4px;
               position:absolute"
     >上传</el-button>
</el-form-item>
</div>

上传方法

submitUpload(index){
    this.$refs['upload'+index][0].submit();
},

httpRequest(params,index){
    upload({file:params.file}).then((res)=>{ //调用上传文件接口
        this.$message.success("上传成功")
        this.form.list[index].path = res.data;
    }).catch(()=>{
        this.$message.success("上传接口报错")
    })
},
//预览选中文件之后将文件名赋值给输入框之后点击上传按钮调用submit()方法上传文件
onChange(file,fileList,index){
    this.form.list[index].path = file.name;
}
    

提示:上文代码中也可见动态表单如何设置校验方法,可在prop参数中赋值index:for循环的list数组+index+输入框参数,并且要设置key来作为唯一标识,可用输入框参数+index表示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@.奈斯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值