达到效果:1.点击添加动态添加一行表格数据 2.点击移除删除一行

templete部分代码

<el-tab-pane label="股东情况">
<el-row>
<el-col :span="24">
<el-table border="" :data="value.listItem" show-summary="" :summary-method="getSummaries">
<el-table-column align="left" width="100">
<template slot="header" slot-scope="scope">
<el-button width="100%" @click="clickAddProblems(scope.row)" icon="iconfont icon-add" type="text" size="small">添加</el-button>
</template>
<template slot-scope="scope">
<el-button width="100%" @click="clickRemoveProblems(scope.row)" icon="iconfont icon-guanbi" type="text" size="small">移除</el-button>
</template>
</el-table-column>
<el-table-column type="index" align="center" label="序号" width="70"></el-table-column>
<el-table-column align="center" label="股东名称" prop="shareholderName">
<template slot-scope="scope">
<el-form-item :prop="'listItem.'+ scope.$index + '.shareholderName'" :rules="rules.shareholderName" label-width="0px">
<el-input v-model.trim="scope.row.shareholderName" placeholder="请填写股东名称"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" label="认缴注册资本(万元)" prop="registeredCapital">
<template slot-scope="scope">
<el-form-item :prop="'listItem.'+ scope.$index + '.registeredCapital'" :rules="rules.registeredCapital" label-width="0px">
<el-input v-model.trim="scope.row.registeredCapital" placeholder="请填写认缴注册资本(万元)"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" label="实缴注册资本(万元)" prop="paidinRegisteredCapital">
<template slot-scope="scope">
<el-form-item :prop="'listItem.'+ scope.$index + '.paidinRegisteredCapital'" :rules="rules.paidinRegisteredCapital" label-width="0px">
<el-input v-model.trim="scope.row.paidinRegisteredCapital" placeholder="请填写实缴注册资本(万元)"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" label="持股比例(%)" prop="shareholdingRatio">
<template slot-scope="scope">
<el-form-item :prop="'listItem.'+ scope.$index + '.shareholdingRatio'" :rules="rules.shareholdingRatio" label-width="0px">
<el-input v-model.trim="scope.row.shareholdingRatio" placeholder="请填写持股比例" max="100"></el-input>
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</el-tab-pane>

查看代码

script部分代码

clickAddProblems(rows){
$this.value.listItem.push({
key:guid.newGuid(),
shareholderName:'',
registeredCapital:null,
paidinRegisteredCapital:null,
shareholdingRatio:null
})
},
clickRemoveProblems(row){
console.log("row:", row);
$this.value.listItem= $this.value.listItem.filter(x => {
return x.key != row.key;
});
},

查看代码

表格添加合计行
1. el-table 中添加 show-summary 属性 :summary-method 绑定合计的方法

<el-table border="" :data="value.listItem" show-summary="" :summary-method="getSummaries">

2. 绑定的合计方法

getSummaries(param){
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
if (index === 0||index === 1||index === 2) {
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
console.log(column.property);
console.log(data);
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
console.log(curr);
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
if(index==5){
sums[index] += ' %';
}
else{
sums[index] += ' 万元';
}
} else {
sums[index] = 'N/A';
}
}); return sums;
}

查看代码

Vue Element-ui Table实现动态新增和删除的更多相关文章

  1. Vue+element ui table 导出到excel

    需求: Vue+element UI table下的根据搜索条件导出当前所有数据 参考: https://blog.csdn.net/u010427666/article/details/792081 ...

  2. vue + element ui 实现实现动态渲染表格

    前言:之前需要做一个页面,能够通过表名动态渲染出不同的表格,这里记录一下.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9786326.html 网站地址:我的 ...

  3. vue+element ui 的tab 动态增减,切换时提示用户是否切换

    前言:工作中用到 vue+element ui 的前端框架,动态添加 Tab,删除 Tab,切换 Tab 时提示用户是否切换等,发现 element ui  有一个 bug,这里记录一下如何实现.转载 ...

  4. element ui table表头动态筛选条件

    本文主要实现:根据el-table表格数据自动生成表头筛选条件的方法,可根据表格数据动态调整. el-table表格的表头增加筛选功能,大家平时都是怎么实现的呢?先看看官方文档的例子: 1 <t ...

  5. vue+element ui table组件封装,使用render渲染

    后台管理经常会用到表格,一开始封装了一个常用的功能性表格,点击这里: 后来由于需求增加,在表格中还会用到switch,select,input等多种组件,每次都要在html中增加<el-tabl ...

  6. vue element ui table 自动无限滚动组件

    <template>   <el-table     class="tableList"     ref="rw_table"     hei ...

  7. vue + element ui table表格二次封装 常用功能

    因为在做后台管理项目的时候用到了大量的表格, 且功能大多相同,因此封装了一些常用的功能, 方便多次复用. 组件封装代码: <template> <el-table :data=&qu ...

  8. VUE -- 对 Element UI table中数据进行二次处理

    时间——日期 后台经常给我们返回的是 时间戳 (例如:1535620671) 这时候我们页面展现的时候需要将时间戳转换为我们要的格式 例如 (YYYY-MM-DD HH:mm:ss) 如果是在Elem ...

  9. Element UI table组件源码分析

    本文章从如下图所示的最基本的table入手,分析table组件源代码.本人已经对table组件原来的源码进行削减,源码点击这里下载.本文只对重要的代码片段进行讲解,推荐下载代码把项目运行起来,跟着文章 ...

  10. 基于vue(element ui) + ssm + shiro 的权限框架

    zhcc 基于vue(element ui) + ssm + shiro 的权限框架 引言 心声 现在的Java世界,各种资源很丰富,不得不说,从分布式,服务化,orm,再到前端控制,权限等等玲琅满目 ...

随机推荐

  1. Linux系统的硬件信息

    查看Linux系统的硬件信息 [1]查看内核信息 uname 用于显示系统的内核信息 option -s:显示内核名称 -r:显示内核版本 [root@bogon /]# uname -a Linux ...

  2. logo描边

  3. Spring Reactor基本介绍和案例

    1. Reactor 对比 1.1 Reactor 线程模型 Reactor 线程模型就是通过 单个线程 使用 Java NIO 包中的 Selector 的 select()方法,进行监听.当获取到 ...

  4. 解决阿里云redis监听6379,配置规则也将6379端口开放,但是外网仍无法连接6379的问题

    首先确保阿里云配置规则和服务器防火墙已开发6379端口 阿里云linux安装完成redis,并且已经运行,检测6379端口,显示redis-server正在监听,如图 修改redis.conf配置 将 ...

  5. 从30个角度对比 PostgreSQL 和 MySQL

    比较版本:PostgreSQL 11    VS      MySQL5.7(innodb引擎) Oracle官方社区版 版权情况:PostgreSQL 11(免费开源).MySQL5.7 Oracl ...

  6. vue中使用xlsx导出excel文件

    俗话说,前人栽树,后人乘凉,感谢强人封装好的xlsx,直接使用就可以了.这是网上找到的,也不知道原作者是不是这位博主,先贴出来吧: https://www.cnblogs.com/boylxx/p/1 ...

  7. 安卓开发 StateListDrawable 应用

    基础部份     StateListDrawable 安卓开发中,如果要做一个按扭按下改变背景,或获取焦点改变背景,最简单的方法是利用将背景指向一个资源,然后果在资源中配置事件,总共分为三步, 1)  ...

  8. M1安装Anaconda遇到的问题

    1. 安装时报错:"Anaconda3 is already installed in /opt/anaconda3. Use 'conda update anaconda3' to upd ...

  9. 在Centos7中使用一键脚本安装Oracle11g

    在Centos7中使用一键脚本安装Oracle11g 1. 环境准备 1.1 系统版本:Centos7.9(2009) 1.2 Oracle版本:Oracle 11g 11.2.0.4 1.3 网络需 ...

  10. 9、IDEA集成Github

    9.1.登录Github账号 9.1.1.打开IDEA的Settings界面 如上图所示,打开IDEA的 Settings(设置)界面. 9.1.2.使用账号密码登录(方式一) 如上图所示,在&quo ...