<template>
<!-- 纯前端分页表格,只需传tableData -->
<el-row>
<el-col>
<el-table
:data="
tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)
"
style="width: 100%; padding: 0 100px"
>
<!-- 插槽放表格列 -->
<slot />
</el-table>
</el-col>
<el-col>
<el-pagination
background
style="text-align: right"
:current-page="currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="tableData.length"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</el-col>
</el-row>
</template>
<script>
export default {
props: {
tableData: {
type: Array,
default: () => []
}
},
data() {
return {
pageSize: 10,
currentPage: 1
}
},
methods: {
handleSizeChange(size) {
this.pageSize = size
},
handleCurrentChange(current) {
this.currentPage = current
}
}
}
</script>
Vue+element纯前端封装分页表格
于 2022-01-17 16:39:19 首次发布