Element UI Table实现可编辑表格+校验 的方式进行提交

这篇具有很好参考价值的文章主要介绍了Element UI Table实现可编辑表格+校验 的方式进行提交。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在一些场景下面,我们需要对table来进行编辑,就像表单一样使用,可能还会带验证。本文vue+elementui实现动态添加行/可编辑的table,文中示例代码介绍的非常详细,大家也可以参照一下:

elementui表格编辑,element ui ,大数据,前端,elementui,前端,element ui表格可编辑,el table 编辑

 elementui表格编辑,element ui ,大数据,前端,elementui,前端,element ui表格可编辑,el table 编辑

我们先搞一个table:

<el-table :data="feeList" border size="mini" tooltip-effect="light">
        <el-table-column align="center" label="科目名称" type="index" width="350">
          <template v-slot="scope">
            <span>{{ scope.row.name }}</span>
          </template>
        </el-table-column>
        <el-table-column align="center" label="科目费用" prop="fee" show-overflow-tooltip>
          <template v-slot="{row}">
            <el-input v-model="row.subjectFee" class="edit-input" size="small" @blur="inputSubjectFee(row)" />
          </template>
        </el-table-column>
        <el-table-column align="center" label="数量" prop="num" show-overflow-tooltip>
          <template v-slot="{row}">
            <template>
              <el-input v-model="row.num" class="edit-input" size="small" @blur="inputNum(row)" />
            </template>
          </template>
        </el-table-column>
        <el-table-column align="center" label="商品规格型号" prop="model" show-overflow-tooltip>
          <template v-slot="{row}">
            <el-input v-model="row.model" :disabled="row.name =='合计'" class="edit-input" size="small" />
          </template>
        </el-table-column>
      </el-table>
      <div slot="footer" class="dialog-footer">
        <el-button @click="closeFee">取消</el-button>
        <el-button type="primary" @click="saveFeeList">确认</el-button>
      </div>

 这个就是我们要编辑的tablel ,我们其中的3个列里面,可以编辑,并且验证输入的是否正确。

我们需要添加鼠标移出的事件即可。

inputSubjectFee(row) {
      var check = this.inputClickSet(row, 'amount')
      if (!check) {
        this.setFailNotify('科目费用只能是数值类型或者小数点后2位的小数')
        return false
      }
    },
    inputNum(row) {
      var check = this.inputClickSet(row, 'num')
      if (!check) {
        this.setFailNotify('商品数量只能是数值类型')
        return false
      }
    },
    inputClickSet(row, filed) {
      if (filed === 'subjectFee' && row.subjectFee) {
        var feeReg = /^(\d*)$|^(([0-9]+|0)\.([0-9]{1,2}))$/
        var feeRe = new RegExp(feeReg )
        if (feeRe .test(row.subjectFee)) {
          this.computeTotal(filed)
          return true
        } else {
          row.amount = ''
          return false
        }
      } else if (filed === 'num' && row.num) {
        var numReg = /^(\d*)$/
        var numRe = new RegExp(numReg)
        if (numRe.test(row.num) && filed === 'num') {
          this.computeTotal(filed)
          return true
        } else {
          row.num = ''
          return false
        }
      }
      return true
    },
    computeTotal(field) {
      var total = 0
      this.feeList.map(v => {
        if (v.name !== '合计') {
          if (field === 'subjectFee' && v.subjectFee) {
            total = parseFloat(total) + parseFloat(v.subjectFee)
          } else if (field === 'num' && v.num) {
            total = parseInt(total) + parseInt(v.num)
          }
        }
        return v
      })
      this.feeList.map(v => {
        if (v.name === '合计') {
          if (field === 'subjectFee') {
            total = parseFloat(total).toFixed(2)
            this.$set(v, 'subjectFee', total)
          } else if (field === 'num') {
            this.$set(v, 'num', total)
          }
        }
        return v
      })
    },

这样我们就分别设置了鼠标移出事件的2中不同验证方法,并且加上一个汇总的动态处理,最后我们在提交的时候,可以来个判断table那些是必填 的。这样就把table数据变成form的这种方式去提交和验证了。文章来源地址https://www.toymoban.com/news/detail-668719.html

到了这里,关于Element UI Table实现可编辑表格+校验 的方式进行提交的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Vue+element实现el-table行内编辑并校验

    el-table行内编辑情况情况概要:之前在开发过程中对于element数据的新增,修改,删除。一般直接结合el-form使用。也就是新增的时候点新增然后出来一个弹框,里面嵌套一个表单,然后保存就好了。这次项目中要求所有的新增,修改,删除功能加在表格中,实现行内编辑功能。

    2024年02月15日
    浏览(47)
  • 【Vue/element】 el-table实现表格动态新增/插入/删除 表格行,可编辑单元格

    效果如下: 点击“新增一行”可以在表格最后新增一行,单元格内容可编辑 点击绿色+按钮,可在指定行的后面插入一行 点击红色-按钮,可以删除指定行 原理:表格 el-table 是通过动态循环 tableData 生成,只要对 tableData 数组进行增加删除元素,就可以达到效果 这里用了ele

    2024年02月16日
    浏览(63)
  • Vue+Element UI弹窗实现表格编辑

    点击编辑按钮弹出Dialog js如下 时间格式化 3.1 方法一

    2024年02月12日
    浏览(42)
  • element-ui table 表格控件实现单选功能

    今天遇到一个需求,感觉挺简单的,需求如下: 就是一个表格,在表格的前面加上一个选择框,注意: 只能单选 然后我就去element ui上粘代码: 虽然element ui上有对应的单选表格,可是并不符合我的需求 然后我又发现下面有一个多选的表格,样式虽然相似,可是还是不符合我

    2024年02月11日
    浏览(54)
  • element-ui实现表格每行可以编辑数据

    每行可以编辑数据可以不使用弹窗实现修改数据的功能,这里使用到element-ui框架 效果图如下: 代码如下: 可获取到编辑的数据 这里展示axios.post请求来实现编辑功能

    2024年02月12日
    浏览(52)
  • vue element ui table表格--实现列的显示与隐藏

    实现效果 提示:代码段太简单就不解释了,自己看代码自己更改,下面代码直接无脑复制更改就行

    2024年02月02日
    浏览(51)
  • Vue中使用Element UI的Table组件实现嵌套表格(最简单示例)

    以下是一个简单的示例代码,演示如何在Vue中使用Element UI的Table组件实现嵌套表格: 上面的代码通过type=\\\"expand\\\"设置了一个展开按钮,点击该按钮会显示与当前行关联的子表格内容。 在上面的示例中,我们定义了一个包含姓名和年龄的主表格,以及一个展开列用于显示与每行

    2024年02月02日
    浏览(76)
  • element ui el-table sorttable实现表格拖拽排序(vuedraggable)

    如果已经安装了 vuedraggable ,则可以不用安装 sortablejs

    2024年02月11日
    浏览(44)
  • 基于element-ui的table实现树级表格操作及单元格合并

    如题,公司业务需求,数据结构比较复杂,需要在一张表内实现多级树状数据展示及同属性的单元格合并,并在表格内实现增删改操作。 网上翻阅了很多实例,没有能解决所有需求的案例,于是自己实现了一套。 时间匆忙,逻辑有优化的地方还请无偿指出! 最终效果如下

    2024年02月14日
    浏览(48)
  • Element-ui中表格el-table图片预览效果实现(非常实用)

    🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅  文末获取源码联系 🏆先展示效果:   🏆使用的是下面这个插

    2024年02月11日
    浏览(61)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包