el-upload 拖拽上传 校验表单

运用element的el-uplaod drag 拖拽属性实现拖拽上传
action=“” 设为空 如有会直接上传 跳过校验
在before-upload 中做校验 注意:return false 否者会另外再发起一个本地空请求

<el-form :model="documentForm" ref="fromRef" :inline="true" size="small" :rules="rules" label-position="top">
  <el-row v-for="(item,index) in documentForm.files" :key="index" style="width:100%">
	<el-col :span="24">
       <el-form-item label="文件类型:" :prop="`files.${index}.operModule`" :rules="rules.operModule">
             <el-select  style="width:100%;" :disabled="openType == '2'" filterable :popper-append-to-body="false" clearable v-model="item.operModule">
                <el-option v-for="(item,index) in operModuleData" :key="index" :label="item.dictValue" :value="item.dictValue"></el-option>
              </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="24">
             <el-form-item label="附件文件:" class="uploadBox" :prop="`files.${index}.fileName`" :rules="rules.fileName">
                 <el-upload  class="upload-demo" :limit="1" action="" :before-upload="(file)=>{uploadFile(file,item,index); return false}" drag >
                     <div class="el-upload__text">
                        <em>点击或拖拽到此处上传文件</em>
                     </div>
                  </el-upload>
             </el-form-item>
         </el-col>
       </el-row>
</el-form>

function uploadFile(file:any,data:any,index:number) {
	//进行检验
      fromRef.value.validateField(`files.${index}.operModule`,((val:any)=>{
        if(val){
          return ElMessage.warning('请先选择文件类型')
        }else{
          let formFileData = new FormData();
          formFileData.append('file', file);
          formFileData.append('operModule', data.operModule);
          api(formFileData).then(res=>{
            if(res.status == '1000'){
              ElMessage.success('上传成功!')
            }
          })
        }
      }))
		}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值