时间:2021-05-25
背景
后台管理系统中,使用表格展示数据时,可能的需求是多项选择然后进行批量操作,也期望能翻页多选。
实现
页面结构如下
<el-table class="table" :data="tableData" border style="width: 100%" @selection-change="handleSelectionChange" ref="asTable"> <el-table-column width="50" type="selection" fixed="left" > </el-table-column> <el-table-column prop="id" label="ID" > </el-table-column> <el-table-column prop="name" label="名字" > </el-table-column> <el-table-column label="操作" width="100" > <template slot-scope="scope"> <el-button type="primary" plain size="small" @click="handleEdit(scope.row)" >编辑</el-button> </template> </el-table-column></el-table><el-pagination background @current-change="handleCurrentChange" :current-page.sync="pagination.currentPage" :page-size="pagination.size" layout="total, prev, pager, next, jumper" :total="pagination.total" slot="pagination"></el-pagination>模拟数据实现分页
data () { return { tableData: [], multipleSelection: [], pagination: { currentPage: 1, size: 10, total: 1000 } }},beforeMount () { this.fetchData()},methods: { fetchData () { this.tableData = [] let start = (this.pagination.currentPage - 1) * this.pagination.size let end = this.pagination.currentPage * this.pagination.size setTimeout(_ => { for (let i = start; i < end; i++) { this.tableData.push({ id: i, name: `王${i}兰` }) } } }, handleCurrentChange () { this.fetchData() }, handleSelectionChange (val) { this.multipleSelection = val },}展示已选择项
<div class="result"> 已选:{{ allMultipleSelection }}</div>allMultipleSelection: [],在复选事件中对所选项进行存储
主要思路就是:
此时还需要在切换页面时将之间选择项进行重新选中,即遍历当前页所有数据如果存在于所有已选项中,则将其置为已选择。
fetchData () { // ... setTimeout(_ => { // ... // @tip 实现分页复选 setTimeout(_ => { this.setSelectedRow() }, 50) }, 200)},setSelectedRow () { // 设置当前页已选项 this.tableData.forEach(item => { if (this.allMultipleSelection.includes(item[this.uniqueKey])) { this.$refs.asTable.toggleRowSelection(item, true) console.log(item[this.uniqueKey], 'set') } })},以上实现了分页复选功能。
所有代码存放在 @careteen/lan-vue
查看DEMO
clone仓库并引入依赖
git clone git@github.com:careteenL/lan-vue.gitnpm installnpm run serve浏览器打开 http://localhost:8080/#/examples/pagingCheck 即可看到效果
总结
以上所述是小编给大家介绍的在vue和element-ui的table中实现分页复选功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
vue使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知使用element-ui中的Notification,只有一
vue项目中实现分页效果,供大家参考,具体内容如下1.这里我们使用element-ui来实现,先使用npm安装npmielement-ui-S2.在main.j
在vue2.0中引用element-ui组件库element-ui是由饿了么团队开发的一套基于Vue2.0的桌面端组件库。官网:http://element.e
前言本篇文章基于vue、element-ui需求前端开发过程中,经常遇到表单开发的需求,element-ui为我们带来了极大的便利,前端只需要更专注于前端逻辑。
前言随着我们vue3.0的出现,我们的ui组件库也有了一些变化,像我们的旧版的element-ui已经不能在vue3.0中使用了,如果要使用element的话需