Skip to content

SmartTable 是什么?

SmartTable 是一款基于 Vue 3 + Flask 构建的开源智能多维表格系统,定位类似 Airtable 或飞书多维表格。它通过灵活的字段、多样的视图和丰富的协作能力,帮助个人和团队把零散数据整理成结构化的业务系统。

核心定位

  • 多维表格:一个 Base 可包含多张数据表,表与表之间可通过关联字段建立关系。
  • 多视图:同一套数据可用表格、看板、甘特图、日历、画廊、表单、分组等多种方式呈现。
  • 低代码自动化:通过可视化工作流和公式字段,减少重复性手工操作。
  • 实时协作:基于 WebSocket 的多人实时编辑,支持在线状态、视图同步、单元格锁定和冲突检测。
  • 可扩展插件:通过 UI 插件(iframe 沙箱 + Vue 模板)与脚本插件(受限子进程)扩展表格能力,插件可读取表格勾选记录进行批处理。

主要能力概览

能力说明
数据表管理一个 Base 内支持多张数据表,支持拖拽排序、重命名、复制与删除。
字段管理提供 26 种字段类型,覆盖文本、数字、日期、选择、关联、公式、附件等常见场景。
视图管理提供 7 种视图类型,每种视图拥有独立的筛选、排序和分组配置。
数据处理支持多条件组合筛选、多字段排序、多级分组、47 个内置函数的公式计算,以及 Excel / CSV / JSON 的导入导出。
工作流自动化可视化工作流设计器,支持定时触发、记录创建/更新触发,以及创建记录、更新记录、Webhook、条件分支等节点。
协作与分享Base 分享、表单分享、仪表盘分享、成员角色管理和实时协作编辑。
文档管理支持基于 Quill 的富文本编辑和 Markdown 编写,支持 PDF 导出和版本历史。
插件体系UI 插件在 iframe 沙箱中以 Vue 模板编写,脚本插件在受限子进程运行;支持上传安装、全局/Base 两级启停、两级配置、勾选数据传入、运行日志与回滚。详见插件开发

快速上手

如果您是第一次使用 SmartTable,建议先阅读快速开始,了解如何创建第一个 Base 和数据表。

技术栈简述

  • 前端:Vue 3 + TypeScript + Vite + Pinia + Element Plus
  • 后端:Flask + SQLAlchemy + Alembic
  • 数据库:SQLite(默认)/ PostgreSQL(生产推荐)
  • 实时通信:WebSocket(Socket.IO),可选启用
  • 插件沙箱:UI 插件为 iframe(opaque origin,宿主注入 Vue 3 运行时);脚本插件为受限 Python 子进程(模块白名单 + 危险内建禁用)

更多架构细节可参考架构设计

开源协议

SmartTable 基于 MIT 协议 开源。

Released under the MIT License.