src/components/Pagination
<template> <div :class = "{'hidden':hidden}" class ='pagination'> <el-pagination small :background:'background' :current-page.sync="currentPage" :page-size.sync="pageSize" :page-count.sync="Count" :layout="layout" :total="total" v-bind="$attrs" @size-change="handleSizeChnage" @current-change="handleCurrentChange" > </el-pagination> </div> </template>
import {scrollTo} from '@/utils/scroll-to'
export default {
name:'pagination',
props:{
total:{
required:'true',
type:Number
},
page:{
type:Number,
default:1
},
limit:{
type:Number,
default:2
},
Count:{
type:Number,
default:5
},
layout:{
type:String,
default:'total,prev,pager,next'
},
background:{
type:Boolean,
default:true
},
autoScroll:{
type:Boolean,
default:true
},
hidden:{
type:Boolean,
default:false
}
},
computed:{
currentPage:{
get(){return this.page},
set(val){this.$emit('update:page',val)}
},
pageSize:{
get(){return this.limit},
set(val){this.$emit('update:limit',val)}
}
},
methods:{
handleSizeChange(val){
this.$emit('pagination',{page:this.currentPage,limit:val})
if(this.autoScroll){scrollTo(0,800)}
},
handleCurrentChange(val){
this.$emit('pagination',{page:val,limit:this.pageSize})
}
}
}
引用
<Pagination v-show="totalNum>0" :total="totalNum" :page.sync="listQuery.page" :limt.sync="listQuery.limit" @pagination="getList" > </Pagination> import Pagination from '@/components/Pagination' export default{ name:'cc', conponents:{Pagination}. data(){ return { totalNum:0, listQuery:{ page:1, limit:10 } } }, methods:{ getList(){ getList(this.listQuery).then((res)=>{console.log()}) } } }
纸上学来终觉浅,绝知此事要躬行
浙公网安备 33010602011771号