vue+element ui----table编辑当前行、删除当前行、新增、合计操作

这篇具有很好参考价值的文章主要介绍了vue+element ui----table编辑当前行、删除当前行、新增、合计操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue+element ui----table编辑当前行、删除当前行、新增、合计操作文章来源地址https://www.toymoban.com/news/detail-502988.html

<template>
  <div class="table_box">
    <div class="btn" style="text-align: left;">
      <el-button type="primary" @click="addItem">新增</el-button>
    </div>
    <el-table :data="list" border :summary-method="getSummaries" show-summary style="width: 100%;" stripe height="260">
      <el-table-column label="序号" width="80px" align='center'>
        <template slot-scope="scope">
          <span>{{ scope.$index +1 }}</span>
        </template>
      </el-table-column>
      <el-table-column label="最喜欢吃" align='center'>
        <template slot-scope="scope">
          <span v-if="!scope.row.isEgdit">{{['橙子','橘子','榴莲'][scope.row.fruitSort-1]}}</span>
          <el-select placeholder="请选择" v-if="scope.row.isEgdit" v-model="scope.row.fruitSort">
            <el-option v-for="(item, index) in ['橙子','橘子','榴莲']" :key="index+1" :label="item" :value="index+1">
            </el-option>
          </el-select>
        </template>
      </el-table-column>
      <el-table-column prop="firstNum" label="第一周吃的数量" align='center'>
        <template slot-scope="scope">
          <span v-if="!scope.row.isEgdit">{{scope.row.firstNum}}</span>
          <el-input v-if="scope.row.isEgdit" v-model="scope.row.firstNum"></el-input>
        </template>
      </el-table-column>
      <el-table-column prop="secondNum" label="第二周吃的数量" align='center'>
        <template slot-scope="scope">
          <span v-if="!scope.row.isEgdit">{{scope.row.secondNum}}</span>
          <el-input v-if="scope.row.isEgdit" v-model="scope.row.secondNum"></el-input>
        </template>
      </el-table-column>
      <el-table-column prop="thirdNum" label="第三周吃的数量" align='center'>
        <template slot-scope="scope">
          <span v-if="!scope.row.isEgdit">{{scope.row.thirdNum}}</span>
          <el-input v-if="scope.row.isEgdit" v-model="scope.row.thirdNum"></el-input>
        </template>
      </el-table-column>
      <el-table-column prop="fourthNum" label="第四周吃的数量" align='center'>
        <template slot-scope="scope">
          <span v-if="!scope.row.isEgdit">{{scope.row.fourthNum}}</span>
          <el-input v-if="scope.row.isEgdit" v-model="scope.row.fourthNum"></el-input>
        </template>
      </el-table-column>
      <el-table-column fixed="right" label="操作" align='center'>
        <template slot-scope="scope">
          <el-button v-if="!scope.row.isEgdit" type="primary" size="small" @click='edit(scope.$index,scope.row)' icon="el-icon-edit" circle></el-button>
          <el-button v-if="scope.row.isEgdit" type="success" size="small" @click='editSuccess(scope.$index,scope.row)' icon="el-icon-check" circle></el-button>
          <el-button @click.native.prevent="deleteItem(scope.$index, list)" type="danger" size="small" icon="el-icon-delete" circle></el-button>
        </template>
      </el-table-column>
    </el-table>
    <div style="margin-top: 30px;">
      <el-button type="primary" @click="goNextPage">跳转页面</el-button>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      list: [{
        id: 1,
        fruitSort: 1,
        firstNum: 10,
        secondNum: 3,
        thirdNum: 4,
        fourthNum: 6,
      }, {
        id: 2,
        fruitSort: 2,
        firstNum: 7,
        secondNum: 6,
        thirdNum: 8,
        fourthNum: 2,
      }, {
        id: 3,
        fruitSort: 3,
        firstNum: 5,
        secondNum: 6,
        thirdNum: 8,
        fourthNum: 9,
      }, {
        id: 4,
        fruitSort: 3,
        firstNum: 10,
        secondNum: 3,
        thirdNum: 4,
        fourthNum: 6,
      }],
    }
  },
  methods: {
    //合计 表格每一列需要带上prop
    getSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = '总数量';
          return;
        }
        const values = data.map(item => Number(item[column.property]));
        if (!values.every(value => isNaN(value))) {
          sums[index] = values.reduce((prev, curr) => {
            const value = Number(curr);
            if (!isNaN(value)) {
              return prev + curr;
            } else {
              return prev;
            }
          }, 0);
          sums[index] += '(个)';
        } else {
          sums[index] = '';
        }
      });
 
      return sums;
    },
    //新增数据
    addItem() {
      let item = {
        id: null,
        fruitSort: null,
        firstNum: null,
        secondNum: null,
        thirdNum: null,
        fourthNum: null,
        isEgdit: true
      }
      this.list.push(item)
    },
    //删除数据
    deleteItem(index, list) {
      list.splice(index, 1);
    },
    //编辑数据
    edit(index, row) {
      this.$set(row, 'isEgdit', true)
    },
    //编辑成功
    editSuccess(index, row) {
      this.$set(row, 'isEgdit', false)
    },
    //跳转下一页面
    goNextPage() {
      this.$router.push({ name: 'echartTest' })
    }
  }
 
}
 
</script>

到了这里,关于vue+element ui----table编辑当前行、删除当前行、新增、合计操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • element-table的动态操作,自动以表格,动态新增行、列,删除行列

    灵活的自定义表格行列以及增删改查的操作,右键选中列则是列的删除,效果如下   为了方便可以直接复制代码查看效果已把动态数据换成自定义数据

    2024年02月11日
    浏览(61)
  • 【element-ui】table表格底部合计自定义配置

    目录  带合计的表格设置  自定义方法  getSummaries   【element-ui】table表格底部合计自定义配置,最近做管理系统用到饿了么UI,用到了table表格合计需求,常用的table底部,有时候不是所有内容都需要合计,比如上图这个编号是数字,但是不需要合计计算处理的,这时候就需

    2024年02月11日
    浏览(55)
  • Vue + Element UI 实现复制当前行数据功能(复制到新增页面组件值不能更新等问题解决)

    使用Vue + Element UI 实现在列表的操作栏新增一个复制按钮,复制当前行的数据可以打开新增弹窗后亦可以跳转到新增页面,本文实现为跳转到新增页面。 方法部分:用id来区分,正常新增id为0,复制id不为0 按上述代码操作后,点击列表操作栏的复制按钮会跳转到新增页面并且

    2024年02月05日
    浏览(41)
  • vue element-ui (可编辑)table加载缓慢问题

    公司最近开了个需求会,要求做一个可编辑的table的表格,并且要求该表格添加权限,点击可编辑,时间段跳转(选择时间,跳转到时间当前位置),无分页(要求一页解决),有选中框,有批量处理的功能,input添加校验功能,小图标展示,编辑后局部刷新页面: 1. 管理员

    2024年02月15日
    浏览(41)
  • Vue + Element UI 实现复制当前行数据功能及解决复制到新增页面组件值不更新的问题

    Vue + Element UI 实现复制当前行数据功能及解决复制到新增页面组件值不更新的问题 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:AIGC人工智能 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹文章作者技

    2024年02月04日
    浏览(49)
  • Vue + Element ui 实现动态表单,包括新增行/删除行/动态表单验证/提交功能

    原创/朱季谦 最近通过Vue + Element ui实现了动态表单功能,该功能还包括了动态表单新增行、删除行、动态表单验证、动态表单提交功能,趁热打铁,将开发心得记录下来,方便以后再遇到类似功能时,直接拿来应用。 简化的页面效果图如下: 最开始,我是用了纯粹的表格形

    2024年02月04日
    浏览(49)
  • 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 table点击编辑后,变成input、select、date

    最近,在项目上需要table可以行内编辑,在table添加了input、select、时间控件,并且可以保存本行数据,当你点击编辑时,table的列就会变成相对应的input、select和时间控件,点击保存时,需要调用后台接口把本行的数据传个后台。 参考网站:https://www.codenong.com/cs106360465/

    2024年02月12日
    浏览(51)
  • element-ui中的el-table的summary-method(合计)的使用

    图片1: 图片2: 优点:         直接使用summary-method方法,直接,方便 缺点:         只是在表格下面添加了一行,如果想有多行就不行了 优点:          可以想表格下面添加多少行都行, 缺点:         列表的序号会一直往下走

    2024年02月11日
    浏览(50)
  • 【解决 Element UI 当中 el-table 中使用 show-summary 不显示合计一行】

    问题:在进行数据统计的过程中使用到了element-ui 的 el-table 组件,出现了合计统计无法渲染情况。 示例场景:在制作统计一栏时需要用到 element-ui 当中的 el-table 表格组件,组件当中有 show-summary 参数可以实现表格的自动合计,在实际开发中出现了渲染失败或不渲染的情况导致

    2024年02月07日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包