el-table + el-pagination 前端实现分页操作
后端返回全部列表数据,前端进行分页操作
html代码
javascript
<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
javascript
<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 = val
this.getTabelData2()
},
// size改变时回调的函数,参数为当前的size
sizeChange(val) {
this.size = val
this.page = 1
this.getTabelData2()
}
}
}
</script>