vue+element ui 关于表格中多行增加上传文件操作

这篇具有很好参考价值的文章主要介绍了vue+element ui 关于表格中多行增加上传文件操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先创建一个表格标签,表格中需要先写上上传文件的组件

<el-table
  :data="tableData"
  style="width: 100%"
  border
  >
  <el-table-column
    type="index"
    label="序号"
    width="50"
    align="center">
  </el-table-column>
  <el-table-column
    prop="materialName"
    label="材料名称"
    align="center"
    width="300"
  >
  </el-table-column>
  <el-table-column
    prop="isRequire"
    label="是否必填"
    align="center"
    width="100"
  >
    <template slot-scope="{row}">
    <span>{{row.isRequire == '0'?'否':'是'}}</span>
    </template>
  </el-table-column>
  <el-table-column
    prop="rentStatus"
    label="状态"
    align="center"
    width="100"
  >
    <template slot-scope="{row}">
    <span>{{row.rentStatus == '0'?'未上传':'已上传'}}</span>
    </template>
  </el-table-column>
  <el-table-column
    prop="name"
    label="操作"
    >
    <template slot-scope="scope">
    <!-- <span class="has-link">上传</span> -->
    
    <el-upload
      class="upload-demo"
      :action="uploadFileServiceUrl"
      :on-success="(response, file, fileList) => {handleSuccess(response, file, fileList,scope)}"
      :on-remove="(file, fileList) => {handleRemove(file, fileList,scope)}"
      :file-list="fileList"
      >
      <span class="has-link">上传</span>
    </el-upload>
    </template>
  </el-table-column>

</el-table>

在data中定义一个表格数组,数组中的fileIdList是我需要存储的信息,可自行参考

export default {
  name: "",
  data() {
    return {
      tableData: [{
        rentStatus:'0',
        isRequire:'1',
        materialName:'项目投资合同',
        fileIdList:[]
      }],
      fileList:[],
    }
  }
}

表格多行上传的难点在于,需要把上传的文件和表格中的行一一对应,所以在handleSuccess和handleRemove方法中多传入了一个scope,scope参数是自行封装的,需要与表格对应。

完整的方法代码:

export default {
  name: "",
  data() {
    return {
      tableData: [{
        rentStatus:'0',
        isRequire:'1',
        materialName:'项目投资合同',
        fileIdList:[]
      }],
      fileList:[],
    }
  },
  methods: {
    handleSuccess(response, file, fileList,scope){
      response.data.forEach((item,index) => {
        this.tableData[scope.$index].fileIdList.push(item.fileID)
        this.tableData[scope.$index].rentStatus = '1'
      })
    },
    handleRemove(file, fileList,scope){
      let index = scope.$index;
      this.tableData[scope.$index].fileIdList = []
      fileList.forEach((item,index) => {
        item.response.data.forEach((item,index) => {
          this.tableData[scope.$index].fileIdList.push(item.fileID)
        })
      })

      if(this.tableData[scope.$index].fileIdList.length == 0){
        this.tableData[scope.$index].rentStatus = '0'
      }
    },
  }
}

注意:handleSuccess钩子函数中,因为这里上传的是一张一张的上传,所以需要把上传成功以后返回的数据push到tableData中,而handleRemove钩子函数中,需要先把数据置空,然后再循环把需要的数据push进去,如果没有先置空的话,fileIdList中的数据会不断叠加,当然,也可以用splice的方法,把找到对应的文件数据删除掉。文章来源地址https://www.toymoban.com/news/detail-630051.html

到了这里,关于vue+element ui 关于表格中多行增加上传文件操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue+element ui 实现文件上传下载

    2024年02月14日
    浏览(50)
  • vue+element ui 文件上传之文件缩略图缩略图

    文件缩略图按官方文档说的是使用  scoped-slot  去设置缩略图模版。且需要上传的是图片,因为有预览等功能,如果上传的不是图片,会显示不出来。 这里设置了图片的格式等,用户在选择的时候,会自动校准图片格式,官方文档中提供了before-upload方法,可以防止用户在选择

    2024年02月11日
    浏览(82)
  • element-ui table表格 增加合计行 和 表格列固定之后 滚动条无法滚动

    是因为el-table__fixed或el-table__fixed-right有了合计之后把 el-table__body-wrapper层覆盖 el-table__fixed或el-table__fixed-right层级较高 因此点击滚动条失效 解决方法: 若想设置滚动条样式 若想合并合计行的列

    2024年02月15日
    浏览(45)
  • Vue element ui + AmazonS3上传文件功能

    一、在上传之前,需要先获取到AWS的S3服务的Access key ID和Secret access key 二、代码代码: 别忘记安装AWS.S3!! 三、如果上传失败,报此错误:ETagMissing No access to ETag property on response. Check CORS configuration to expose ETag header. 解决方案: 找到配置的存储桶——权限——跨源资源共享

    2024年02月16日
    浏览(40)
  • Vue3 + Element UI 实现文件上传弹出框

    Vue3 + Element UI 实现文件上传 实现如下: 1.首页添加按钮点击弹出文件框 给dialog设置传参 展示对话框,设置 页面部分代码如下: 语法部分代码如下: 2.弹出框 页面部分代码如下: 语法部分代码如下 上述实现弹出框上传文件事件,当文件上传后需要更新文件管理展示页面,

    2024年02月11日
    浏览(62)
  • vue element-ui表格(el-table)数据导出execl文件

    功能实现:element UI 的el-table数据导出为execl文件 使用到插件:xlsx、file-saver exportExecl.js 代码如下: 页面代码如下:

    2024年02月14日
    浏览(57)
  • Vue Element ui Upload组件在上传文件时,动态切换 action上传路径

    当我们在使用 Element ui,Upload组件时,官网默认的基础配置如下 现在的需求是,如果页面只有 一个 el-upload组件,需要上传的文件,根据不同的类型,切换不同的action 上传路径。 首先我这里选择,通过调用 before-upload 上传文件之前的钩子函数,函数接收一个参数,就是上传的

    2024年02月11日
    浏览(42)
  • vue结合element ui 实现多个文件上传、并删除不符合条件的

    多个文件上传的核心就是将文件append进FormData的实例中,向后台请求时将实例对象传送过去。  多个文件上传,传送的数据: html部分: js部分(this.$request是我自定义的请求方式,大家可以根据自身需要来调整): 1. 我们想要的效果是手动一次性上传多个文件,但是文件选取

    2024年03月20日
    浏览(63)
  • vue+element ui完成头像上传功能(文件转base64)以及自定义布局。

    1、自定义布局       查阅element ui的头像上传功能,发现是点击头像位置才可以上传,那我们可不可以点击头像外部的按钮来上传头像呢? element ui效果图 :                                                    目标效果 :                            在实现

    2024年01月18日
    浏览(45)
  • 关于element-ui表格 鼠标悬停背景颜色修改问题

    element-ui鼠标悬停时行背景色默认为白色,当表格字体为白色时容易看不到文字,因此需要修改鼠标悬停时的背景色。 html使用el-table后,在css样式中添加以下代码即可修改鼠标悬停后的背景色。(未使用scss和less) 同时补充鼠标点击后行高亮颜色修改,需要在el-table标签内添加

    2024年02月11日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包