Skip to content

Table ​

简易介绍 ​

Table 表格组件,用于展示结构化数据,支持树形数据、选择功能、自定义样式等。 可以使用 <MYTable></MYTable> 来实现一个表格组件。支持通过props.columns或子组件<MYTableColumn>定义列结构,自定义内容需使用命名插槽。

基础表格 ​

基础表格
使用 columns 和 data 属性定义表格结构和数据。
姓名年龄地址
张三25北京市朝阳区
李四30上海市浦东新区
王五28广州市天河区
展开代码

使用插槽定义列 ​

使用插槽定义列
使用 MYTableColumn 组件和插槽自定义列内容。
姓名年龄地址状态
张三25北京市朝阳区成功
李四30上海市浦东新区失败
王五28广州市天河区成功
展开代码

选择功能 ​

选择功能
使用 type='selection' 列启用行选择功能
姓名年龄地址
张三25北京市朝阳区
李四30上海市浦东新区
王五28广州市天河区
已选择:
展开代码

树形数据 ​

树形数据
使用树形结构数据展示层级关系
部门负责人人数
技术部张工20
市场部赵总15
展开代码

斑马纹表格 ​

斑马纹表格
使用 stripe 属性添加斑马纹样式
姓名部门职位薪资
张三技术部前端工程师15000
李四技术部后端工程师16000
王五市场部市场经理14000
赵六人事部HR12000
展开代码

列对齐 ​

列对齐
使用 align、headerAlign、bodyAlign 控制列内容对齐方式
姓名(左对齐)年龄(居中)薪资(右对齐)奖金
张三25150005000
李四30160006000
王五28140004500
展开代码

带分页的表格 ​

带分页的表格
使用分页插槽实现表格分页功能
姓名年龄地址
张三25北京市朝阳区
李四30上海市浦东新区
展开代码

API 参考 ​

Table Props ​

参数说明类型可选值默认值
data表格数据Array—[]
columns列配置TableColumnProps[]—[]
width表格宽度string—''
height表格高度string—''
headerBackgroundColor表头背景色string支持16进制颜色或单词颜色''
headerTextColor表头文字颜色string支持16进制颜色或单词颜色''
stripe斑马纹颜色string支持16进制颜色或单词颜色''
borderColor边框颜色string支持16进制颜色或单词颜色''
bodyBackgroundColor表格体背景色string支持16进制颜色或单词颜色''
bodyTextColor表格体文字颜色string支持16进制颜色或单词颜色''
rowKey行数据的 Keystring—'id'
treeProps树形结构的配置object—{ children: 'children', hasChildren: 'hasChildren' }
indent树形数据缩进number—16
align表格内容对齐方式stringleft/center/right'left'
headerAlign表头对齐方式stringleft/center/right''
bodyAlign表格体对齐方式stringleft/center/right''
loading是否显示加载中状态boolean—false

TableColumn Props ​

参数说明类型可选值默认值
prop列对应数据的 keystring——
label列标题string—undefined
width列宽度string—''
type列类型stringselection''
align列内容对齐方式stringleft/center/right''
headerAlign列表头对齐方式stringleft/center/right''
bodyAlign列内容对齐方式stringleft/center/right''

Table Events ​

事件名说明参数
selection-change当选择项发生变化时触发selection: any[]
update:modelValue选中的行数据变化时触发value: any[]

类型定义 ​

typescript
interface TableColumnProps {
  className: string;
  prop: string;
  label?: string;
  width?: string;
  height?: string;
  fixed?: 'left' | 'right';
  sortable?: boolean;
  filterable?: boolean;
  filters?: Array<{ text: string; value: string | number }>;
  scopedSlot?: string;
  children?: TableColumnProps[];
  colspan?: number;
  rowspan?: number;
  type?: string;
  align?: 'left' | 'center' | 'right';
  headerAlign?: 'left' | 'center' | 'right';
  bodyAlign?: 'left' | 'center' | 'right';
}

interface TableProps {
  data?: Record<string, unknown>[];
  modelValue?: string;
  columns?: TableColumnProps[];
  width?: string;
  height?: string;
  headerColor?: string;
  headerTextColor?: string;
  stripe?: string;
  borderColor?: string;
  bodyBackgroundColor?: string;
  bodyTextColor?: string;
  [key: string]: unknown;
}

基于 MIT 协议