您现在的位置是:网站首页> 编程资料编程资料
vue el-table 动态添加行与删除行的实现_vue.js_
2023-05-24
407人已围观
简介 vue el-table 动态添加行与删除行的实现_vue.js_
el-table 动态添加行与删除行
项目中有需要动态添加和删除 el-table 行的需要,就学习了下,发现很简单:
{{ $t('common.add') }} {{ $t('common.edit') }} {{ $t('common.delete') }} {{ $t('common.cancel') }} {{ $t('common.confirm') }}
以上 handleAdd 和 handleDelete 方法便可实现动态添加行和删除行。
原理:vue是数据驱动 dom 进行渲染,所以改变 el-table 绑定的数组,就可以改变 el-table。
点击“添加”按钮就给数组添加一行数据,从而表格也会新增一行,点击“删除”按钮就删除数组当前的这一行数据,从而表格删除当前行。
el-table 合计行放在首行
效果如图所示

首先在el-table ,添加属性
summary-method=“getSummaries” show-summary
{{ scope.row.name }}
2.定义合计行的位置和样式
方法一:通过css 控制
// 合计行样式 .el-table__footer-wrapper tbody td, .el-table__header-wrapper tbody td { background-color: #e3f3ff !important; color: #666; } .el-table__footer-wrapper .is-leaf { color: #666 !important; } .el-table__fixed-footer-wrapper tbody td { border-top: 1px solid #ebeef5; background-color: #e3f3ff; color: #666; text-align: center !important; } .has-gutter tr td .cell { text-align: center; color: #001111; } //合并行放在第一行 .contentInfoWrap .el-table { display: flex; flex-direction: column; } .contentInfoWrap .el-table__body-wrapper { order: 1; } .contentInfoWrap .el-table__fixed-body-wrapper { top: 97px !important; } .contentInfoWrap .el-table__fixed-footer-wrapper { z-index: 0; top: 50px; }方法二:通过DOM操作将合计行放置到首行
在mounted中调用该方法即可
showSummariesPosition() { const table = document.querySelector('.customTable') // customTable这个是在el-table定义的类名 const footer = document.querySelector( '.customTable .el-table__footer-wrapper' ) const body = document.querySelector( '.customTable .el-table__body-wrapper' ) table.removeChild(footer) // 移除表格最下方的合计行 table.insertBefore(footer, body) // 把合计行插入到表格body的上面 },3. 合计行的数据
getSummaries(param) { const { columns, data } = param const sums = [] columns.forEach((column, index) => { if (index === 0) { sums[index] = 'Total(销量)' 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 },以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- vue组件vue-treeselect箭头和叉图标变大问题及解决_vue.js_
- Nodejs环境Eggjs加签验签示例代码_node.js_
- element-ui+vue-treeselect下拉框的校验过程_vue.js_
- 关于下拉类型多选组件Vue-Treeselect(键名转换)_vue.js_
- 如何修改vue-treeSelect的高度_vue.js_
- JavaScript中通用的jquery动画滚屏实例_javascript技巧_
- vue利用sync语法糖实现modal弹框的项目实践_vue.js_
- 关于vue-treeselect绑值、回显等常见问题的总结_vue.js_
- JS 中实现一个串型异步函数队列_javascript技巧_
- Vue封装远程下拉框组件的实现示例_vue.js_
