页面级的分页表格组件RePageTable

151 阅读3分钟

页面级的分页表格组件RePageTable

组件实现基于 Vue3 + Element Plus + Typescript,同时引用 vueUse + lodash-es + tailwindCss (不影响功能,可忽略)

基于自封的分页表格组件ReTable进行的功能扩展,主要用于直接渲染页面级的分页表格,除了表格分页功能,还集成了一些表格控制功能,如边框、条纹展示、列框调整、全屏、列显示/隐藏/改变顺序的功能。

功能图标基于iconify图标,采用离线的加载方式引入。

思路

表格分页功能基本不变,全部直接继承ReTable组件,主要在RePageTable增加一些动态配置ReTable组件属性的控制,如边框、条纹的显示,以及尺寸、间距的控制,重点功能还是列配置。

ReTable列头配置基于v-for动态渲染,因此可以轻松的通过控制列头配置项进行顺序控制、显隐控制。通过ElPopover显示列配置面板,基于vue-draggable实现拖拽功能。

基于插件的页面功能,在工具栏左侧也提供插槽方便放置常见的按钮组。

基础

支持控制自定义功能的展示和隐藏。

image.png

image.png

image.png

查看 /demo/table/page-table.md

RePageTable属性

字段说明类型默认值
fullscreenTarget全屏元素,默认取组件根节点的父节点HTMLElement | () => HTMLElement-
defaultGutter默认表格间距string-
defaultSize默认表格尺寸string-
defaultBorder默认是否表格带边框string-
defaultStripe默认是否是条纹表格string-
defaultResizable默认是否可拖拽string-
showResizeIcon是否显示可拖拽改变列宽Iconbooleantrue
showGutterIcon是否显示表格间距切换Iconbooleantrue
showSizeIcon是否显示表格尺寸切换Iconbooleanfalse
showBorderIcon是否显示表格边框切换Iconbooleantrue
showStripeIcon是否显示条纹表格切换Iconbooleantrue
showFullscreenIcon是否显示全屏展示切换Iconbooleantrue
showSettingIcon是否显示列配置Iconbooleantrue
defaultMinWidth默认最小列宽string | number56
columns必填,RePageTable列配置RePageTableColumn[]-

除了上述字段之外,ReTable支持的属性均支持,默认会被ReTable实例继承

RePageTableColumn字段

字段说明类型默认值
fixed-show列是否固定展示,不能被隐藏,只在 showSettingIcon 生效时有效booleanfalse
defaul-show列是否默认展示booleantrue
ignore-resizable列是否支持改变大小,默认会继承 RePageTable.resizablebooleanfalse

除了上述字段以外,ReTableColumn字段也都支持

RePageTable事件

事件名说明格式
refresh点击刷新icon后触发() => void
reset点击列配置重置后触发() => void

除了上述事件之外,ReTable支持的事件也支持,默认会被ReTable实例继承

RePageTable插槽

插槽名说明
empty空状态展示
toolbox-left工具栏左侧内容插槽,通常用于放置批量处理功能按钮
toolbox-right工具栏右侧内容插槽,插槽内容在默认工具功能之前

除了上述插槽之外,列配置项配置的插槽也支持

RePageTable Expose

字段说明类型
reTableRefReTable组件实例InstanceType<typeof ReTable>

源代码

Github

/components/ReTable/src/page.vue

可以通过查看具体实现,如果遇到问题可以留言或者提出issue。

如果觉得对您有帮助的话,可以请小编瑞一下

WechatIMG6.jpg

IMG_2654.JPG