element ui——Pagination 自定义分页样式

在这里插入图片描述

我们可以看到,element ui Pagination分页默认样式 直接显示 首页 - 中间页 - 末页,但当项目中数据量过大时,用户直接点击最后一页 可能会导致后端elk崩溃。项目最后要求 不能把最后一页呈现给用户,只能让用户一个一个点过去类似与下图
在这里插入图片描述
想接着用 element ui Pagination分页 也想改变分页的显示样式,经过翻查文档看到 Slot

layout=“total, sizes, prev, slot, next” slot代表的插槽 显示样式为下图

在这里插入图片描述
slot就是我们自定义分页的地方

类似于  showNumList = [1,6]  //最小分页数 和最大分页数
 <ul class="pageUl">
   <li class="pageLi" @click="handleCurrentChange(item)" v-for="item in showNumList" :key="item" :class="item == page.pageNo ? 'tePageLi' : ''">
   {
   {
   item}}
   </li>
 </ui>

在这里插入图片描述
逻辑思维
var 定义页面最大页码 = 我们定义一个数
var 总页数 = 总数/每个显示的数量
var min = 1 //最小页码
var max = 1 //最大页码
1、如果总页数 小于 定义页面最大页码max = 总页数 其他的逻辑思维都跟他无关了
2、如果总页数 大于 定义页面最大页码 max = 定义页面最大页码 然后在判断 当前点击的页码 是否大于 定义页面最大页码 / 2 如果大 则 max = 定义页面最大页码
如果小
//min
if(当前点击页码 - parseInt( 定义页面最大页码 / 2) > 0){
min = 当前点击页码 - parseInt( 定义页面最大页码 / 2)
}else{
min = 1
}

//max
if(总页数 > 当前点击页码 + parseInt( 定义页面最大页码 / 2)){
max = 当前点击页码 + parseInt( 定义页面最大页码 / 2)
}else{
max = 总页数
}

在这里插入图片描述

下面贴上完整代码

封装的ThePagination

<template>
    <!-- 配置分页的组件 -->
    <section>
        <div class="pagination">
            <el-pagination
                background
                @size-change="handleSizeChange"
                @prev-click="handleCurrentChange"
                @next-click="handleCurrentChange"
                :current-page.sync="page.pageNo"
                :page-size="page.pageSize"
                :page-sizes="[10, 50, 100, 200]"
                :total="page.total"
                layout="total, sizes, prev, slot, next"
                ref="pagination"
            >
                <ul class="pageUl">
                    <li class="pageLi" @click="handleCurrentChange(item)" v-for="item in showNumList" :key="item" :class="item == page.pageNo ? 'tePageLi' : ''">{
   {
   item}}</li>
                </ul>
            </el-pagination>
        </div>
    </section>
</template>
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值