Skip to content

Pagination 分页 ​

当数据量过多时,使用分页分解数据。

设计稿对应组件集 →分页器,通过属性组合多种样式:

设计属性组件属性说明
类型 · 线性background 不传 / false页码白底描边
类型 · 面性background页码灰底填充
尺寸 · 默认size="default"控件高度 32px
尺寸 · 小size="small"控件高度 24px
ts
import { createApp } from 'vue'
import { ElPagination } from '@szhn/dh-design-pc'

const app = createApp()
app.use(ElPagination)

设计样式(类型 × 尺寸) ​

通过 background、size 切换设计稿中的四种组合;跳转区展示为「跳至 n /总页 页」。

基础用法 ​

设置最大页码按钮数 ​

线性 / 面性 ​

线性为默认描边样式;传入 background 切换为面性填充样式。

小型分页 ​

在空间有限的情况下,可以使用 size="small" 的小型分页。

当只有一页时隐藏分页 ​

当只有一页时,通过设置 hide-on-single-page 属性来隐藏分页。

附加功能 ​

根据场景需要,可以添加总数、每页条数、跳转等模块。

API ​

属性 ​

属性名说明类型默认值
size尺寸:default 32px / small 24px(设计稿「尺寸」)enum'default'
background是否面性填充;false 为线性描边(设计稿「类型」)booleanfalse
page-size / v-model:page-size每页显示条目个数number—
default-page-size每页默认的条目个数,不设置时默认为10number—
total总条目数number—
page-count总页数, total 和 page-count 设置任意一个就可以达到显示页码的功能;如果要支持 page-sizes 的更改,则需要使用 total 属性number—
pager-count设置最大页码按钮数。 页码按钮的数量,当总页数超过该值时会折叠number7
current-page / v-model:current-page当前页数number—
default-current-page当前页数的默认初始值,不设置时默认为 1number—
layout组件布局,子组件名用逗号分隔stringprev, pager, next, jumper, ->, total
page-sizes每页显示个数选择器的选项设置array[10, 20, 30, 40, 50, 100]
append-size-to下拉框挂载到哪个 DOM 元素string—
popper-class每页显示个数选择器的下拉框类名string''
popper-style每页显示个数选择器的下拉框样式string / object—
prev-text替代图标显示的上一页文字string''
prev-icon上一页的图标, 比 prev-text 优先级更高string / ComponentArrowLeft
next-text替代图标显示的下一页文字string''
next-icon下一页的图标, 比 next-text 优先级更高string / ComponentArrowRight
disabled是否禁用分页booleanfalse
teleported是否将下拉菜单teleport至 bodybooleantrue
hide-on-single-page只有一页时是否隐藏booleanfalse
small deprecated是否使用小型分页样式booleanfalse

注意

我们现在会检查一些不合理的用法,如果发现分页器未显示,可以核对是否违反以下情形:

  • total 和 page-count 必须传一个,不然组件无法判断总页数;优先使用 page-count;
  • 如果传入了 current-page,必须监听 current-page 变更的事件(@update:current-page),否则分页切换不起作用;
  • 如果传入了 page-size,且布局包含 page-size 选择器(即 layout 包含 sizes),必须监听 page-size 变更的事件(@update:page-size),否则分页大小的变化将不起作用。

事件 ​

名称说明类型
size-changepage-size 改变时触发Function
current-changecurrent-page 改变时触发Function
changecurrent-page 或 page-size 更改时触发Function
prev-click用户点击上一页按钮改变当前页时触发Function
next-click用户点击下一页按钮改变当前页时触发Function

注意

以上事件不推荐使用(但由于兼容的原因仍然支持,在以后的版本中将会被删除);如果要监听 current-page 和 page-size 的改变,使用 v-model 双向绑定是个更好的选择。

插槽 ​

名称说明
default自定义内容 设置文案,需要在 layout 中列出 slot

设计说明 ​

  • 文案:总数为「共 {total} 项」,跳转为「跳至」+ 页码输入 +「/总页 页」
  • 完整栏推荐 layout:total, ->, sizes, prev, pager, next, jumper(-> 将右侧控件右对齐,总数在左)
  • 线性选中 / 面性选中均为品牌色实心 #075AED
  • 线性默认项:白底 + #E0E0E0 描边;悬停描边变为主色;禁用上一页/下一页同为白底描边 + 弱化图标(非实心灰块)
  • 面性默认项:灰底 #F2F2F2;箭头同步灰底方块
  • 禁用选中:#B9D5FF