Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@pureadmin/table

pure-admin6.5kMIT3.2.1TypeScript support: included

二次封装element-plus的Table,提供灵活的配置项

@pureadmin/table, element-plus, typescript, el-table, nuxt3, vue3, vite, tsx

readme

@pureadmin/table

二次封装element-plus的Table,提供灵活的配置项

NPM version NPM Downloads

简体中文 | English

预览地址
更多示例,基本所有的用法这里都有

🤔 开发初衷

element-plus TableTable-column属性目前只能写在<template></template>模版里,这样不是很灵活,如果表格的column足够多,代码写、看起来很臃肿,但element-plus Virtualized Table 可配置性就很高,为了保持统一,我将Table二次封装并沿用了cellRendererheaderRenderer这两个自定义渲染器,内置了可通过配置渲染的分页组件,当然还有一些额外的属性,让我们一起探索吧

🚀 特性

🦾 灵活度高、强类型: 使用TSX语法编写,拥有强大的类型推导提示和灵活、方便的配置
完全可摇树: 自带Tree-Shaking,只对引入的代码进行打包
🫶 代码零侵入: 保持Element-Plus Table 的所有属性、插槽、事件、方法的同时,提供更灵活的配置,而且还内置了可通过配置渲染的分页组件和加载动画以及表格自适应内容区高度等,当然 自定义命名空间 也不会受到任何影响
🌍 国际化友好: 内置三种精简的国际化(简体中文:zhCn、繁体中文:zhTw、英语: en),提供三种国际化配置方法,使其配置更灵活、方便。当然也可以结合 vue-i18n ,让表格自适应国际化语言
💚 SSR友好: 完全兼容Nuxt3
📡 可通过CDN引用: 同时支持jsdelivrunpkg

📦 安装

npm install @pureadmin/table
# or
yarn add @pureadmin/table
# or
pnpm add @pureadmin/table

📡 CDN

<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/@pureadmin/table/dist/style.css" />
<script src="//cdn.jsdelivr.net/npm/@pureadmin/table"></script>
<!-- or -->
<link rel="stylesheet" href="//unpkg.com/@pureadmin/table/dist/style.css" />
<script src="//unpkg.com/@pureadmin/table"></script>

⚙️ 用法

局部注册(单文件)

import "@pureadmin/table/dist/style.css";
import { PureTable } from "@pureadmin/table";

<pure-table locale="zhCn" :data="dataList" :columns="columns" :pagination="pagination"></pure-table>

全局注册(main.ts)

import { createApp } from "vue";
import App from "./App.vue";

import "@pureadmin/table/dist/style.css";
import PureTable from "@pureadmin/table";

const app = createApp(App);

app.use(PureTable, { locale: "zhCn" }).mount("#app");

点击查看按需、全局、自定义命名空间、nuxt3以及Html文件引入的用法示例

🔮 Volar支持

如果您在使用 Volar,那么可以在 tsconfig.json 中配置 compilerOptions.types 来指定全局组件类型(尤其是全局注册时要想获得类型提示就需要加上下面配置)

// tsconfig.json
{
  "compilerOptions": {
    // ...
    "types": ["@pureadmin/table/volar"]
  }
}

许可证

MIT © 2022-present, pure-admin

changelog

Changelog

3.2.1 (2024-08-31)

🐞 Bug fixes

  • 修复多级表头使用 headerRenderer 无效的问题

3.2.0 (2024-08-12)

✔️ refactor

  • 兼容 element-plus 最新版 v2.8.0,适配 el-pagination 新增的 size 属性,使用 pagination.size 替换表格 paginationSmall 属性

3.1.0 (2024-03-01)

✔️ refactor

  • 使用 tableKey 替换表格拓展的 key 属性,防止和 vue 内部 key 属性产生命名冲突

🎫 Feat

  • 表格的 table-column 新增过滤弹出框的类名 filterClassName
  • 添加是否是服务端渲染 ssr 全局配置

🍏 Perf

  • 分页样式优化

3.0.0 (2023-12-28)

🎫 Feat

  • 添加自定义命名空间和nuxt3示例
  • 提供表格整体所需的单独的@pureadmin/table/dist/style.css文件
  • 提供内置国际化(简体中文:zhCn、繁体中文:zhTw、美国英语: en)支持,当然内置的国际化文件是精简后的,也就是只内置表格完整组成所需的国际化文件。

  • 权重最高,组件可传locale属性,代表国际化配置,可传zhCnzhTwen也可以自定义国际化,配置后会覆盖下面23方法;

  • 权重第二,使用app.use全局注册PureTable时,在第二个参数中可传两个可选属性,第一个属性locale代表国际化配置,可传zhCnzhTwen也可以自定义国际化,第二个属性i18n,需要配合vue-i18n,将element-plus的国际化文件配置到vue-i18n,统一传入i18n属性中后@pureadmin/table就会根据当前语言环境自适应表格国际化,如下
app.use(PureTable, {
  locale: "zhCn",
  i18n // 如果配置了i18n,上面的locale就无需配置,它会根据当前语言环境自适应
});

3.权重最低,使用element-plus提供的 ConfigProviderapp.vue 中配置全局的国际化,如果使用 ConfigProvider,就不要使用上面2方法了,因为2方法权重第二,使用后会覆盖ConfigProvider,也就是ConfigProviderPureTable无效了

🍏 Perf

  • 完全兼容nuxt3

🎫 types

  • 优化类型

2.4.1 (2023-12-02)

🐞 Bug fixes

  • 修复表格同时设置 borderadaptive 后,表头边框消失

2.4.0 (2023-11-11)

🎫 Feat

🐞 Bug fixes

  • 修复 cdn 模式报错 Uncaught ReferenceError: process is not defined

2.3.4 (2023-10-20)

🐞 Bug fixes

  • 修复 Cannot find type definition file for '@pureadmin/table/volar' 警告

2.3.3 (2023-08-05)

🐞 Bug fixes

  • 修复表格 loadingConfig 属性中 background 配置无效的问题

2.3.2 (2023-06-09)

🍏 Perf

  • 优化 setAdaptivesetHeaderSticky 方法,确保在 DOM 更新后执行

2.3.1 (2023-06-09)

🎫 types

  • 导出 AdaptiveConfig 类型

2.3.0 (2023-06-09)

🎫 Feat

  • 新增 adaptive 表格属性,支持表格自适应内容区高度
  • 新增 adaptiveConfig 表格属性,自适应内容区高度相关配置(offsetBottom:表格距离页面底部的偏移量,默认值为 96fixHeader:是否固定表头,默认值为 truetimeout:页面 resize 时的防抖时间,默认值为 60 ms、zIndex:表头的 z-index,默认值为 100
  • 新增并暴露出 setAdaptive 方法,可以设置表格自适应高度(用于表格外的元素高度改变或者元素隐藏时主动对表格进行自适应高度调整)
  • 新增并暴露出 setHeaderSticky 方法,可以设置表头为 sticky 布局

🐞 Bug fixes

  • 修复设置表格属性 table-layout="auto" 后,表头不会固定的问题

2.2.0 (2023-05-20)

🎫 Feat

  • 添加自定义表头的内容插槽 headerSlot,可在 template 中使用

2.1.0 (2023-05-08)

🎫 Feat

  • TableColumnshide 属性支持 Boolean 类型

🍏 Perf

  • 适配 el-table 新增的 tooltipOptions 属性

2.0.0 (2023-01-08)

✔️ refactor

  • 分页事件名变更 size-change 变更为 page-size-changecurrent-change 变更为 page-current-change

1.9.0 (2022-12-09)

🍏 Perf

  • 优化表格渲染

1.8.3 (2022-12-04)

🎫 Feat

  • 添加 loadingloadingConfig 表格属性,可配置自定义加载动画,加载动画已适配暗黑模式

1.8.0 (2022-11-24)

🎫 Feat

  • 新增表格 key 属性,唯一键,如果单个页面有多个表格实例,但是您只获取到一个表格实例,设置 key 即可解决,不过大多数情况下不需要设置,会自动处理
  • 新增表格 rowHoverBgColor 属性,鼠标经过行时,行的背景色,默认 --el-table-row-hover-bg-color,具体看 theme-chalk/src/table.scss

1.7.0 (2022-11-23)

🎫 Feat

  • TableColumnprop 支持传函数,用于动态改变 prop,应用场景:列拖拽

1.5.0 (2022-11-20)

🎫 Feat

  • 支持多级表头(表头分组),columns 中传 children 即可

🐞 Bug fixes

  • 表格传 alignWhole 替换 align 属性,@pureadmin/tablealign 属性跟 element-plus tablealign 属性有突出,注意这个 align 不是 columns 里的,而是全局的

⛽️ types

  • 完善类型

1.3.0 (2022-11-19)

⛽️ types

  • types: supplement type

1.2.0 (2022-07-02)

🎫 Feat

  • add vitest unit test

🐞 Bug fixes

  • fix table append and empty slot

1.1.0 (2022-06-26)

🎫 Feat

  • add pagination component

🍏 Perf

  • types files

0.0.1 (2022-06-22)

🎫 Feat

  • add columnsalignheaderAlignshowOverflowTooltiphidecellRendererheaderRendererslot props, on the basis of maintaining the table attribute in element-plus