首页 > 其他分享 >el-upload 跟Form表单一起提交

el-upload 跟Form表单一起提交

时间:2024-02-02 20:45:18浏览次数:30  
标签:el Form form index upload fileList fileName let key

 

vue  el-upload 上传

<el-col :span="20">
<el-form-item :label="$t('message.common.file')" prop="uploadFileList" el-upload
class="upload-demo" drag name="uploadFile'
ref="upload" list-type="text'
:auto-upload="false"
:multiple="true'
.limit="3"
:on-change="handleUploadChange"
:on-remove="handleAvatarRemove"
:on-exceed="handleExceed" >
<el-icon :size="49">color="#439eff"/>
<i-upload-filled</el-icon>
<div class="el-upload text”>将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload-tip" slot="tip">最多只能上传3个文件</div> </el-upload>
</el-form-item>
</el-co1>

 

vue  el-upload相关的js

setup(props, ctx){
let form=ref({readonly: '0'})
//文件上传失败
const handleAvatarRemove=(filefileList)=>{
  console.log("handleAvatarRemove '+file)
}
//文件上传时的钩子
const handleUploadChange=(file,fileList)=>[
    console.log("handleUploadChange '+file)
    form,value.uploadfilecount = fileList.length // raw才是真实文件,给form表单
    //form.value.uploadFileList= file.raw //单个文件上传
    const exclueFileTypes = ['.exe',".sh', '.bat', .vbs',".js']
    let fileName=file.name/校验文件是否合法
    if(fileName.lastIndexOf( .)>=8)/
    let fileType=fileName.substring(fileName.lastIndexOf("."))
    if(exclueFileTypes.includes(fileType)){
        for (let index = 0; index < fileList.length; index++)         
            (if(fileList[index].name==fileName){
                  fileList.splice(index)
                  handleAvatarRemove(file,fileList)
                 ElMessage.warning(
                    fileName+'不符合文件后缀')
              return
       }
     }
    form.value.uploadFileList=[]
    if(fileList!=nu11&&fileList.length>0)
      for (let index = 0; index < fileList.length; index++) {
          form.value.uploadFileList.push(fileList[index].raw)
   } 
}
//限制数量的提示
const handleExceed =(files, fileList)=>{ ElMessage.warning( '最多只能上传3个文件' ) }
return {
form,
handleAvatarRemove,
handleUploadChange,
handleExceed ,

}
}

 

提交的时候进行转化

methods: closeLayer() fthis.layer.show = false;
submit() 
if (this.ruleForm) {

  this.ruleForm.validate((valid) => {

    if (valid) {
      let params = this.form       let formdata = new FormData();       for(let key in params){
        if(key!='uploadFilelist'&& key!='cascadensourcelist'&& key!='cascaderTargetlist'){
          if(key=='targetplatList' && key=='sourceplatList'){
            formdata.append(key,JSON.stringify(params[key]))
          }
          else{
            formdata.append(key, params[key])
         }
        }
      }
      if(this.form.uploadFileList!=null&this.form.uploadFileList.length>0){
        for (let index = 0: index< this.form.uploadFilelist.length; index++) {
          formdata.append('uploadFilelist,this.form.uploadFileList[index]); // 将每文件添加到FormData对象中
      }
     }      if (this.layer.operationType ==add'){
        this.addForm(formdata)
}       else { return false; }
})
}

 

 

标签:el,Form,form,index,upload,fileList,fileName,let,key
From: https://www.cnblogs.com/zhian/p/18003917

相关文章

  • selenium出现“element not interactable”问题总结
    “elementnotinteractable”问题根因:元素不可交互,可能的原因及解决方法如下所示:1、检查元素的定位(XPATH、CSS_SELECTOR内的内容)是否写正确2、代码中元素进行获取的时候查看是否已经加载出来,等待元素加载可以使用显式等待element= WebDriverWait(browser,20,0.5).until(EC.p......
  • Selenium使用
    Selenium的使用一.介绍Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些JavaScript动态渲染的页面来说,此种抓取方式非常有效.本次学习使用Chrome,并配置ChromeDrive,Pyt......
  • Linux基础47 Ansible之ad-hoc, 命令模块(command, shell, script), 软件管理模块(yum,
    Ansible之ad-hoc一、什么是ad-hoc1.什么是ad-hocad-hoc简而言之就是“临时命令”,执行完即结束,并不会保存2.ad-hoc使用场景可以用作查看远程机器的进程,或者磁盘,或者拷贝文件3.ad-hoc命令使用[root@m01~]#ansibleweb01-mshell-a'free-m'web01|CHANGED|rc=......
  • 基于客户真实使用场景的云剪辑Timeline问题解答与代码实操
    本文为阿里云智能媒体服务IMS「云端智能剪辑」实践指南第6期,从客户真实实践场景出发,分享一些Timeline小技巧(AI_TTS、主轨道、素材对齐),助力客户降低开发时间与成本。欧叔|作者故事的开始要从一条客户的真实反馈说起。  Round1:视频比音频长,怎么办?某天,一位客户加入了智能媒......
  • 如何给极狐GitLab 配置 webhook,自动触发 Pipeline?
    本文根据工作中的痛点来举例介绍如何使用极狐GitLab,让你的日常工作更高效。还在只使用极狐GitLab存放代码?那你就OUT啦。赶紧看看这篇文章,让你的日常工作更高效。使用GitlabWebhook触发Pipeline,打通工作消息通知关于A/B同学的问题,我想可以使用Webhook触发Pipe......
  • laravel8 生成pdf
    privatestaticfunctioncreatePdfSendEmail($job_notes_id){#信息$recruit_job_notes_auth=DB::table('notes_auth')->select(["mobile","job_id"])->find($job_notes_id);if(!$recruit_job_note......
  • Laravel中toArray()方法使用驼峰变量
    前言不知道大家在用Laravel开发过程中有没有遇到过模型查询时,with中使用驼峰命名变量名,但是使用toArray方法后,变量名变成了蛇形命名;比如说这样的一条查询语句:WorkflowModel::query()->with(['workflowsInfo'])->get()->toArray();查询出来的结果可能就是这样的:查询出来关联......
  • Solution - Little Elephant and LCM & 之前学组合的一点疯话
    \(n\)个元素分成\(m\)份,每份不能为空,在\(n-1\)个空中插入\(m-1\)个板子,方案数\(C_{n-1}^{m-1}\)。为空则加上\(m\)个元素来垫着,就转化为上一个,然后就是\(C_{m-n+1}^{m-1}\)。所以为什么我之前不会插板?我是傻逼吗?然后突然发现,之前一直以为Gameswit......
  • Qt Creator配置clang-format格式化代码插件
    clang-format是一种格式化代码的插件,可用于格式化C/C++/Java/JavaScript/Objective-C/Protobuf/C#代码。而QtCreator的格式化代码的功能只支持非常简单的缩进纠正,本博客主要讲述如何在QtCreator上配置clang-format插件。打开Beautifier插件打开帮助->关于插件......
  • Qt Creator使用clang-format实现源代码格式化排版(Windows/macOS)
    本篇先针对Windows系统来描述,末尾再补充macOS1、clang官网下载clang-format.exeLLVMDownloadPage 下载最新版本Releases·llvm/llvm-project·GitHub方法1:完整版我们需要从官网下载完整的LLVM编译器,Pre-BuiltBinaries,Windows(64-bit),LLVM-9.0.0-win64.exe。安装时,请......