Vue Element-ui Table实现动态新增和删除
达到效果: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实现动态新增和删除的更多相关文章
- Vue+element ui table 导出到excel
需求: Vue+element UI table下的根据搜索条件导出当前所有数据 参考: https://blog.csdn.net/u010427666/article/details/792081 ...
- vue + element ui 实现实现动态渲染表格
前言:之前需要做一个页面,能够通过表名动态渲染出不同的表格,这里记录一下.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9786326.html 网站地址:我的 ...
- vue+element ui 的tab 动态增减,切换时提示用户是否切换
前言:工作中用到 vue+element ui 的前端框架,动态添加 Tab,删除 Tab,切换 Tab 时提示用户是否切换等,发现 element ui 有一个 bug,这里记录一下如何实现.转载 ...
- element ui table表头动态筛选条件
本文主要实现:根据el-table表格数据自动生成表头筛选条件的方法,可根据表格数据动态调整. el-table表格的表头增加筛选功能,大家平时都是怎么实现的呢?先看看官方文档的例子: 1 <t ...
- vue+element ui table组件封装,使用render渲染
后台管理经常会用到表格,一开始封装了一个常用的功能性表格,点击这里: 后来由于需求增加,在表格中还会用到switch,select,input等多种组件,每次都要在html中增加<el-tabl ...
- vue element ui table 自动无限滚动组件
<template> <el-table class="tableList" ref="rw_table" hei ...
- vue + element ui table表格二次封装 常用功能
因为在做后台管理项目的时候用到了大量的表格, 且功能大多相同,因此封装了一些常用的功能, 方便多次复用. 组件封装代码: <template> <el-table :data=&qu ...
- VUE -- 对 Element UI table中数据进行二次处理
时间——日期 后台经常给我们返回的是 时间戳 (例如:1535620671) 这时候我们页面展现的时候需要将时间戳转换为我们要的格式 例如 (YYYY-MM-DD HH:mm:ss) 如果是在Elem ...
- Element UI table组件源码分析
本文章从如下图所示的最基本的table入手,分析table组件源代码.本人已经对table组件原来的源码进行削减,源码点击这里下载.本文只对重要的代码片段进行讲解,推荐下载代码把项目运行起来,跟着文章 ...
- 基于vue(element ui) + ssm + shiro 的权限框架
zhcc 基于vue(element ui) + ssm + shiro 的权限框架 引言 心声 现在的Java世界,各种资源很丰富,不得不说,从分布式,服务化,orm,再到前端控制,权限等等玲琅满目 ...
随机推荐
- throws和try catch的区别
1.throws是表明方法抛出异常,需要调用者来处理,如果不想处理就一直向外抛,最后会有jvm来处理: 2.try catch 是自己来捕获别人抛出的异常,然后在catch里面去处理: 一般情况下,第 ...
- 移动WEB开发之 -- flex布局
flex布局原理 常见的父项属性 flex-direction设置主轴方向 justify-content 设置主轴上的子元素排列方式 flex-wrap属性 align-items属性 align- ...
- yb课堂之实战登陆模块开发整合Json Web Token《十》
开发登陆模块功能,并整合Json Web Token 开发登陆功能 LoginRequest.java UserMapper.xml UserMapper.java UserService.java ...
- redis-sort by
对某个列表(list).集合(set).有序集合(zset)排序的时候按照某个 参考键 进行排序,而不是按照按照这个列表.集合或有序集合本身进行排序: 被排序的键和参考键在业务上有关联(这个由业务保证 ...
- TP3.2与TP5.0的区别
1. 控制器输出return $this->fetch(); ----5$this->display(); ----3.2单字母函数去掉了 如:M() D() U() S() C() 3. ...
- centos7安装pcntl扩展
查看PHP扩展加载的目录php -i | grep extension_dir Centos下使用yum安装php默认是都不带pcntl扩展,需要安装扩展需要下载安装包,编译安装. 首先查看你的服务器 ...
- webpack性能优化方式之dll--- webpack.dll.config.js
通常来说,我们的代码都可以至少简单区分成业务代码和第三方库.如果不做处理,每次构建时都需要把所有的代码重新构建一次,耗费大量的时间.然后大部分情况下,很多第三方库的代码并不会发生变更(除非是版本升级) ...
- FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
<FFmpeg开发实战:从零基础到短视频上线>一书的"10.2.2 FFmpeg向网络推流"介绍了轻量级流媒体服务器MediaMTX,虽然MediaMTX使用很简单, ...
- Centos7下安装配置最新版本Jenkins(2.452.3)
1.基础环境配置 1.1 服务器下载Jenkins安装包 下载地址:https://www.jenkins.io/download/ 下载命令:wget https://get.jenkins.io/ ...
- RESTful服务与swagger
一开始刚学springboot的时候 restful服务+swagger一点都看不懂,现在知识学了一些,再回头看这些东西就简单很多了. 自己跟视频做了一个零件项目,里面写了一些零零散散的模块,其中在视 ...