// 使用 xxx.vue
<Pager
:total="total"
:pageNum.sync="pageNum"
:pageSize.sync="pageSize"
@getList="query"
></Pager>
pager.vue
<template>
<div class="pager">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNum"
:page-sizes="pageSizes"
:page-size.sync="pageSize"
layout="total,sizes, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
</template>
<script>
export default {
props: {
total: {
type: Number,
default: 0
},
pageSizes: {
type: Array,
default() {
return [10, 20, 30, 40];
}
},
pageNum: {
type: Number,
default: 1
},
pageSize: {
type: Number,
default: 10
}
},
data() {
return {
pageNum: 1,
pageSize: 10
};
},
methods: {
handleSizeChange(pageSize) {
this.$emit("update:pageSize", pageSize);
this.getListData();
},
handleCurrentChange(pageNum) {
this.$emit("update:pageNum", pageNum);
this.getListData();
},
getListData() {
this.$emit("getList");
}
}
};
</script>
<style>
.pager {
padding: 12px 16px 12px;
}
</style>
网友评论