更新记录
1.0.2(2026-03-31) 下载此版本
增加操作列功能 支持Vue3
1.0.1(2025-11-27) 下载此版本
- 优化了空数据状态下文本遮挡header的问题。
- 优化了高度处理逻辑,此处height应该为最大高度,有利于解决表格数据较少时候占据过多空白空间的问题。
1.0.0(2025-09-01) 下载此版本
添加基本表格功能
查看更多平台兼容性
uni-app(4.07)
| Vue2 | Vue2插件版本 | Vue3 | Vue3插件版本 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | √ | 1.0.2 | - | - | - | - | - | - | - |
| 微信小程序 | 微信小程序插件版本 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.07)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
SimpleX-Table 表格组件
一个功能丰富的 UniApp 表格组件,支持固定列、排序、滚动加载等功能。
功能特性
- 支持固定列(sticky columns)
- 支持列排序
- 支持水平和垂直滚动
- 支持自定义列宽
- 支持空数据提示
- 支持滚动加载更多
- 支持边框样式配置
- 支持自定义行唯一标识
- 支持操作列及自定义按钮配置
参数说明
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
data |
Array | [] |
表格数据 |
columns |
Array | - | 表头配置(必填) |
rowKey |
String/Function | 'id' |
行数据的唯一标识字段 |
height |
Number/String | 'auto' |
表格高度 |
emptyText |
String | '暂无数据' |
空数据提示文字 |
loadingText |
String | '加载中...' |
加载中提示文字 |
defaultColumnWidth |
Number | 75 |
默认列宽 |
border |
Boolean | false |
是否需要边框 |
defaultSort |
Object | {key: '', order: ''} |
默认排序配置 |
Columns 配置项
每个 columns 数组元素支持以下属性:
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
title |
String | - | 列标题(必填) |
key |
String | - | 数据字段名 |
width |
Number | defaultColumnWidth |
列宽度 |
fixed |
Boolean | false |
是否固定列 |
align |
String | 'left' |
对齐方式(left/center/right) |
sortable |
Boolean | false |
是否可排序 |
type |
String | - | 特殊列类型(如 'index' 序号列,'action' 操作列) |
buttons |
Array/Function | - | 操作列按钮配置,仅当 type: 'action' 时有效 |
emptyValue |
String | '' |
空值时显示的内容 |
ellipsis |
Boolean | false |
文本是否溢出省略 |
事件说明
| 事件名 | 参数 | 说明 |
|---|---|---|
sort-change |
{column, key, order, sortBy, sortOrder} |
排序状态改变时触发 |
scroll |
{scrollLeft, scrollTop} |
滚动时触发 |
action-click |
{btn, row, index} |
操作列按钮点击时触发 |
使用示例
基础用法
<template>
<view>
<simplex-table :data="tableData" :columns="columns" :height="400" border />
</view>
</template>
<script>
export default {
data() {
return {
tableData: [
{ id: 1, name: "张三", age: 25, department: "技术部" },
{ id: 2, name: "李四", age: 30, department: "产品部" },
{ id: 3, name: "王五", age: 28, department: "设计部" },
],
columns: [
{ title: "姓名", key: "name", width: 150 },
{ title: "年龄", key: "age", width: 150 },
{ title: "部门", key: "department", width: 150 },
],
};
},
};
</script>
固定列和排序
<template>
<view>
<simplex-table
:data="tableData"
:columns="columns"
:height="400"
@sort-change="handleSortChange"
/>
</view>
</template>
<script>
export default {
data() {
return {
tableData: [
{ id: 1, name: "张三", age: 25, department: "技术部", salary: 12000 },
{ id: 2, name: "李四", age: 30, department: "产品部", salary: 15000 },
{ id: 3, name: "王五", age: 28, department: "设计部", salary: 10000 },
],
columns: [
{ title: "ID", key: "id", width: 80, fixed: true, sortable: true },
{ title: "姓名", key: "name", width: 100, fixed: true },
{ title: "年龄", key: "age", width: 80, sortable: true },
{ title: "部门", key: "department", width: 120 },
{ title: "薪资", key: "salary", width: 100, sortable: true },
],
};
},
methods: {
handleSortChange(sortInfo) {
console.log("排序信息:", sortInfo);
// 根据 sortInfo.sortBy 和 sortInfo.sortOrder 进行排序处理
},
},
};
</script>
操作列
<template>
<view>
<simplex-table
:data="tableData"
:columns="columns"
@action-click="handleActionClick"
/>
</view>
</template>
<script>
export default {
data() {
return {
tableData: [
{ id: 1, name: "张三", status: 1 },
{ id: 2, name: "李四", status: 0 },
],
columns: [
{ title: "姓名", key: "name", width: 150 },
{ title: "状态", key: "status", width: 100 },
{
title: "操作",
type: "action",
width: 150,
buttons: [
{ text: "编辑", class: "btn-edit", style: "color: #007aff;" },
{ text: "删除", class: "btn-delete", style: "color: #dd524d;" },
],
// 也支持动态返回按钮:
// buttons: (row) => row.status === 1 ? [{ text: '禁用' }] : [{ text: '启用' }]
},
],
};
},
methods: {
handleActionClick({ btn, row, index }) {
console.log("点击了按钮:", btn.text, "当前行数据:", row);
},
},
};
</script>
使用场景
- 数据展示:展示结构化数据,如用户列表、订单信息等
- 数据分析:展示大量数据的统计信息
- 后台管理系统:在管理后台中展示各类业务数据
- 移动端报表:在移动设备上展示报表数据
- 复杂表格:需要固定列、排序等高级功能的场景
注意事项
- 当使用固定列功能时,建议为固定列设置明确的
width - 排序功能需要在列配置中设置
sortable: true - 使用嵌套数据时,通过
key属性指定路径,如user.name - 表格高度默认为
auto,会自动计算窗口高度,也可手动指定具体数值 - 当数据为空时会显示
emptyText设置的提示信息 - 滚动加载功能需要配合
load-more和load-complete事件使用
样式自定义
组件使用了以下 UniApp 样式变量,可以通过全局样式覆盖:
$uni-bg-color- 背景色$uni-border-color- 边框颜色$uni-text-color- 文字颜色$uni-text-color-grey- 灰色文字颜色$uni-font-size-base- 基础字体大小$uni-color-primary- 主色调
可以通过覆盖这些变量来自定义组件样式。

收藏人数:
下载插件并导入HBuilderX
赞赏(2)
下载 94
赞赏 2
下载 11578938
赞赏 1905
赞赏
京公网安备:11010802035340号