el-table + el-pagination 前端实现分页操作
后端返回全部列表数据,前端进行分页操作
html代码
<div><el-table :data="tableData" border><el-table-column label="序号" type="index" width="50" /><el-table-column prop="name" label="礼品名称"><template slot-scope="scope">{{ scope.row.orderInfo.itemName }}</template></el-table-column><el-table-column prop="orderNum" label="订单编号" width="120"><template slot-scope="scope">{{ scope.row.orderInfo.orderNum }}</template></el-table-column><el-table-column prop="name" label="物流编号" width="130"><template slot-scope="scope">{{ scope.row.orderInfo.expressCode }}</template></el-table-column><el-table-column prop="name" label="礼品单价" width="80"><template slot-scope="scope">{{ scope.row.orderInfo.unitPrice }}</template></el-table-column><el-table-column prop="name" label="礼品数量" width="80"><template slot-scope="scope">{{ scope.row.orderInfo.quantity }}</template></el-table-column><el-table-column prop="name" label="订单金额" width="80"><template slot-scope="scope">{{ scope.row.orderInfo.price }}</template></el-table-column><el-table-column prop="name" label="订单日期" width="130"><template slot-scope="scope">{{ scope.row.orderInfo.orderDate }}</template></el-table-column><el-table-column prop="isError" label="是否成功" width="80"><template slot-scope="scope">{{ scope.row.isError ? '否' : '是' }}</template></el-table-column><el-table-column prop="errorInfo" label="错误信息"><template slot-scope="scope">{{ scope.row.errorInfo }}</template></el-table-column></el-table><el-pagination:total="total":current-page="page":page-size="size":page-sizes="pageSizes"layout="total, sizes, prev, pager, next, jumper"@size-change="sizeChange"@current-change="currentChange"/>
</div>
js代码
两种方式:
① slice
② splice
<script>
export default {name: 'ImportLog',data() {return {page: 1, // 第几页size: 20, // 一页多少条total: 0, // 总条目数pageSizes: [20, 40, 60, 80, 100, 120, 140, 160, 180, 200], // 可选择的一页多少条tableData: [], // 表格绑定的数据allData: [], // 全部数据}},created() {this.getTabelData2()},methods: {// 获取表格数据,自行分页(slice)getTabelData() {// allData为全部数据this.tableData = this.allData.slice((this.page - 1) * this.size,this.page * this.size)this.total = this.allData.length},// 获取表格数据,自行分页(splice)getTabelData2() {const data = JSON.parse(JSON.stringify(this.allData))this.tableData = data.splice((this.page - 1) * this.size,this.size)this.total = this.allData.length},// page改变时的回调函数,参数为当前页码currentChange(val) {this.page = valthis.getTabelData2()},// size改变时回调的函数,参数为当前的sizesizeChange(val) {this.size = valthis.page = 1this.getTabelData2()}}
}
</script>