Skip to content

更新日志

本页面记录 SmartTable 的版本更新历史。

v1.6.3 (2026-07-30)

新增及优化

🔄 工作流引擎增强

  • 循环节点:新增循环节点类型及完整流程支持,可在流程内对集合逐项处理
  • 循环 Webhook:新增循环节点 Webhook 支持并修复循环数据源
  • Webhook 投递日志:新增工作流实例 Webhook 投递日志查看功能
  • Webhook 变量提示:重构变量提示系统,添加带详情的悬停提示
  • 内联 Webhook 拦截:支持内联 Webhook 的投递与重投递拦截
  • 画布连线优化:优化画布连线,增加方向箭头
  • 节点类型重构:重构工作流节点类型,使用细粒度枚举并兼容旧数据
  • 执行日志增强:执行日志节点 ID 改为字符串类型并新增节点名字段

🧮 公式与字段增强

  • 公式函数统一:统一前后端公式函数注册并补充缺失函数
  • 关联字段优化:优化关联字段功能,修复缓存与显示问题
  • 数字格式化:为数字类型字段添加格式化渲染能力

🛠️ 平台能力

  • Token 自动续期:实现完整的 Token 自动续期功能体系
  • 问题反馈:新增问题反馈相关功能
  • 文档体验:优化文档版本控制与编辑体验
  • 附件预览:附件图片缩略图支持单击直接预览完整图片
  • 会话超时上限:调整会话超时时间上限到 10080 分钟(不建议调整太大,存在安全隐患)

📦 工程与构建

  • pnpm 迁移:前端构建体系全面迁移至 pnpm(Docker、打包脚本、文档同步)
  • 数据库迁移:重构数据库初始化流程,改用 Alembic 迁移,实现版本自动升级
  • 反馈邮箱:更新反馈邮箱地址

Bug 修复

问题描述修复内容
看板拖拽修复看板拖拽时未使用目标分组 ID 的问题
看板同步修复看板视图拖拽卡片后未同步更新分组字段
新增行重复修复编辑器回调异常导致新增一次增加 2 行的问题
表格交互修复表格视图交互问题及字段类型转换与默认值
字段编辑修复字段编辑面板确认后字段管理面板异常
附件删除修复附件字段删除弹窗遮挡及删除失效问题
附件预览修复点击附件缩略图时触发单元格选择的问题
工作流校验修复流程节点空结果处理和空节点校验逻辑
时区获取修复时区获取逻辑,支持读取浏览器本地时区
Webhook 拦截修复内联 Webhook 的投递与重投递拦截问题

v1.6.2 (2026-07-19)

新增及优化

✨ 新增及功能优化

🔄 工作流引擎增强

  • 发送邮件节点 - 新增发送邮件节点支持,工作流可直接触发邮件通知
  • 记录时间触发器 - 新增「到达记录中的时间时」触发器类型,支持基于记录时间字段的定时触发
  • 查找记录节点 - 添加查找记录工作流节点功能,支持在工作流中查询关联数据
  • 节点类型管理重构 - 重构节点类型管理,为后续扩展更多节点类型奠定基础

🔍 查找字段全量实现 ⭐

  • 全量实现查找字段(Lookup Field) - 支持从关联记录中查找并引用目标字段值,实现跨表数据联动
  • 记录展示适配 - 记录抽屉和详情页完整支持查找字段显示,数据查看更连贯
  • 格式化逻辑优化 - 修复默认值显示和查找字段格式化逻辑,确保引用数据正确渲染

🧮 公式字段功能完善

  • 公式助手组件 - 新增公式助手组件并集成到字段配置对话框,降低公式编写门槛
  • 多类型格式化 - 完善公式字段功能,支持更多字段类型的计算结果格式化
  • 日期处理能力 - 新增日期处理相关功能并优化显示效果

📊 仪表盘分享功能

  • 完整分享流程 - 实现仪表盘分享功能完整流程,支持将仪表盘以链接形式分享给他人
  • 分享信息配置 - 新增仪表盘分享标题和备注功能,便于接收方理解分享内容
  • 安全策略优化 - 仅在创建分享时返回一次访问密码,避免密码在后续接口中重复暴露

Bug 修复

🐛 Bug 修复

问题描述修复内容
认证与侧边栏显示修复认证 store 和侧边栏显示逻辑
查找字段格式化修复默认值显示和查找字段格式化逻辑
仪表盘分享模型导入缺失的 DashboardShare 模型
日期函数显示格式修复日期函数显示格式逻辑

v1.6.1 (2026-07-11)

新增及优化

✨ 新增及功能优化

🔄 工作流画布可视化编辑 ⭐

  • 实现工作流画布可视化编辑 - 支持在画布上直观编辑工作流节点和连线
  • 条件分支可视化连线 - 重构条件节点连线与布局逻辑,支持多分支可视化展示
  • 自动布局优化 - 条件分支节点自动布局,适配多分支场景

🔀 条件分支节点增强

  • 默认分支功能 - 新增默认分支,当所有条件分支都不匹配时执行默认分支
  • 字段值展示优化 - 优化条件组件的字段值展示逻辑

📊 执行日志增强

  • 节点名称展示 - 执行日志中新增节点名称展示,便于追踪执行流程

🪝 Webhook 状态管理

  • Webhook 引用校验 - 新增 Webhook 引用校验功能,确保引用有效性
  • 状态管理 - 新增 Webhook 状态管理能力

Bug 修复

🐛 Bug 修复 (Bug Fixes)

问题修复内容
🔧 工作流克隆节点 ID 映射修复工作流克隆时节点 ID 引用未映射的问题
🔧 条件分支执行链生成修复条件节点分支目标 ID 映射与执行链生成逻辑
🔧 工作流测试失败修复工作流测试失败问题

v1.6.0 (2026-07-05)

新增及优化

✨ 新增功能 (New Features)

🔄 工作流自动化引擎 (Workflow Engine) ⭐⭐⭐

核心引擎与架构

  • 实现完整的工作流与 Webhook 功能模块(端到端架构落地)
  • 实现工作流与数据表的绑定关系
  • 支持工作流的创建、编辑、删除、暂停、继续、版本快照等操作
  • 自动构建工作流节点执行链与节点执行顺序
  • 实现工作流版本快照
  • 支持查看全局数据表与工作流的绑定关系
  • 统一工作流节点类型规范化处理

触发器系统 (Trigger System)

  • ⭐ 新增指定时间定时触发工作流能力
    • 指定时间触发器使用本地时区解释触发时间
    • 支持不重复一次触发与多种类型(每日/每周/每月/每年/自定义)重复触发机制
    • 支持指定时间触发器的截止日期配置,避免重复触发
  • ⭐ 支持记录创建触发器
    • 触发过滤条件,支持全局触发(不配置过滤条件)
    • 触发过滤条件,支持与(全部满足)与或(任意满足)的指定多条件触发模式
  • ⭐ 支持记录更新触发器
    • 支持全局触发(不配置监听字段)
    • 支持监听指定字段更新触发(配置监听字段)
    • 触发过滤条件,支持全局触发(不配置过滤条件)
    • 触发过滤条件,支持与(全部满足)与或(任意满足)的指定多条件触发模式

节点系统 (Node System)

  • ⭐ 支持多种节点类型(创建记录、更新记录、webhook、条件分支)的创建、编辑、删除等操作
  • 创建记录节点 (Create Record Node)
    • 支持对目标表记录的创建
    • 支持目标表字段值输入的映射配置,支持录入静态值或基于源表字段值的引用表达式
  • 更新记录节点 (Update Record Node)
    • 支持源表字段值输入的配置,支持录入静态值或使用表达式
  • Webhook 节点 (Webhook Node)
    • 支持选择系统已配置的Webhook
    • 支持内联配置新的 Webhook
  • 条件节点 (Condition Node)
    • 过滤条件,支持与(全部满足)与或(任意满足)的指定多条件触发模式
    • 支持实时显示配置的条件摘要信息
  • ⭐ 支持手工调整节点执行顺序(拖拽排序)

列表与界面 (List & UI)

  • ⭐ 工作流列表面板新增折叠/展开功能(侧边栏宽度自适应)
  • ⭐ 新增搜索框,支持按名称或描述过滤工作流

版本管理 (Version Management)

  • 版本历史功能,支持查看工作流历史版本
  • 版本历史弹窗支持查看版本号、创建时间、创建者名称、节点配置摘要信息等

顶部导航

  • ⭐ 多维表Base页面新增顶部导航自动化菜单,统一工作流配置入口

🪝 Webhook 投递管理 (Webhook Delivery) 系统⭐

  • Webhook 配置功能,支持新增、编辑 Webhook 配置
    • 支持 Webhook 名称、URL、HTTP 方法、请求头、请求体模板等配置
    • 支持 Webhook 重试策略(最大重试次数、重试间隔等)配置
    • 支持 Webhook 启用状态(开启/禁用)配置
  • ⭐ 支持测试Webhook 配置功能,支持测试 Webhook 配置是否有效
  • Webhook 投递记录功能
    • 支持查看 Webhook 投递记录列表
    • 支持查看 Webhook 投递记录详情(包含请求参数、响应状态码、响应体等)
    • 支持刷新 Webhook 投递记录

Bug 修复

v1.5.2 (2026-07-02)

新增及优化

✨ 新增功能 (New Features)

  • 🔍 表格内容全局搜索:新增表格内全局搜索能力,方便快速定位记录
  • 🧩 单元格自动合并:支持开启相邻相同内容单元格自动合并展示
  • ❄️ 行冻结/取消冻结:表格视图右键菜单新增行冻结与取消冻结操作
  • 🔑 主键字段默认描述:为主键(索引)字段添加默认描述,并限制隐藏操作

🔧 优化改进 (Improvements)

  • 公式计算:公式引擎支持字面量值直接返回,修复文本函数不生效问题
  • 列排序逻辑:优化表格列排序逻辑,正确支持数值型字段排序
  • 右键菜单 & 表头排序:优化右键菜单与表头点击排序交互
  • 数据更新逻辑:重构 records 监听器,统一表格数据更新机制
  • 序号列:优化序号列,新增行不显示序号且不可勾选
  • 验证码字体优化:优化docker环境下验证码字体加载与显示效果,新增字体依赖

Bug 修复

🐛 Bug 修复 (Bug Fixes)

  • 修复复制记录后不会自动刷新的问题
  • 修复新增按钮行字段值重复导致合并的问题
  • 修复编辑器空值返回不一致导致无法置空单选字段的问题
  • 修复 Docker 容器内文件 CRLF 换行符问题并设置权限

v1.5.1 (2026-06-19)

新增及优化

🔧 功能优化与改进 (Improvements)

  • 📝 字段类型选择逻辑重构 ⭐ 统一字段类型选择逻辑,提升代码可维护性。
  • 🎨 表格视图添加记录按钮显示优化

Bug 修复

🐛 Bug 修复 (Bug Fixes)

  • 🔧 甘特图编辑记录数据不全问题 问题描述: 在甘特图视图中编辑记录时,部分字段数据丢失或未正确保存。 影响范围: 甘特图视图、记录编辑、数据同步
  • 🔧 表格视图筛选条件失效问题 问题描述: 在某些场景下,表格视图的筛选条件不生效或被忽略。 影响范围: 表格视图、数据筛选、视图切换

v1.5.0 (2026-06-14)

新增及优化

✨ 新增功能 (New Features)

🏗️ VTable 全新表格渲染引擎 ⭐

这是本次更新最大的变化——全面切换至 @visactor/vtable 渲染引擎,替换原有表格实现。

核心交互升级

  • 右键菜单:单元格和表头右键菜单,支持排序、冻结、编辑等操作
  • 记录详情抽屉:点击记录右侧打开详情抽屉,支持全部字段类型查看与编辑
  • 悬浮操作图标:鼠标悬停记录行显示操作图标,常用操作更便捷
  • 列冻结优化:支持自定义冻结列,冻结逻辑更灵活

原生分组支持

  • 表格内原生分组渲染,替代原有分组实现
  • 分组内快速添加记录
  • 分组折叠/展开与统计

交互细节增强

  • 单元格复制粘贴(支持反馈提示)
  • 单元格值校验与错误高亮
  • 列描述与溢出 Tooltip
  • 字段类型图标展示在表头
  • 启用 ARCO 主题,视觉统一

🧮 公式字段支持 ⭐

  • 新增算术表达式解析与公式字段支持
  • 可创建公式字段,引用其他字段值进行计算
  • 支持基本算术运算和函数调用

📝 富文本字段支持

  • 数据表字段级别新增富文本类型
  • 基于 Quill 编辑器的行内富文本编辑
  • 记录详情抽屉中动态初始化富文本编辑器

📎 附件字段管理

  • 新增完整的附件字段管理功能
  • 支持附件上传、预览、编辑
  • 附件浮窗实时位置同步
  • 多格式兼容与交互增强

🔢 URL 字段交互优化

  • 单击直接跳转链接
  • 双击进入编辑模式
  • 智能识别与安全校验

🏠 首页功能增强

  • 新增"从副本创建 Base"选项,快速复制已有多维表
  • 全字段类型测试模板与测试记录生成器

🔧 字段编辑器全面重构

所有字段类型编辑器均进行了重构或升级:

字段类型编辑器升级内容
单选新增自定义 SingleSelectEditor,替换旧实现
多选重构多选编辑器,优化样式与功能
日期自定义日期/日期时间编辑器,优化时区处理
成员重构成员字段编辑器,支持搜索与缓存加载
评分替换文本星星为矢量图形,新增完整样式
进度条新增完整样式与格式化配置
复选框替换为开关组件,支持状态持久化
多行文本重构编辑器实现
自动编号新增样式支持
字段图标统一字段图标实现,SVG 自定义颜色

⚡ 性能优化 (Performance)

  • 记录转换缓存:新增 record transform cache,避免重复转换
  • 数据源 LRU 缓存:新增数据源 LRU 缓存,减少重复请求
  • 流式加载优化:优化流式加载与表格渲染性能,调整 pageSize
  • 批量查询优化:优化关联/公式字段的批量查询性能
  • 大数据支持:新增异步懒加载数据源,支持大规模数据表(超过 15000 条记录)
  • 每页限制提升:每页数量上限从 100 提升至 500
  • 加载进度展示:提升默认分页加载大小并添加加载进度展示
  • 缓存批次优化:调整缓存批次上限,取消按钮支持中断加载

Bug 修复

🐛 Bug 修复 (Bug Fixes)

问题修复内容
🔧 缓存清理新增转换缓存清理逻辑
🔧 无效保存新增无改动检查,避免无效保存
🔧 批量删除状态添加批量删除状态管理
🔧 模板预览弹窗添加 append-to-body 属性修复弹窗挂载
🔧 Excel 导入日期处理 Excel 导入时空日期字段默认值
🔧 排序请求格式调整表格排序接口的请求格式与方法
🔧 本地记录查询按创建时间排序查询 IndexedDB 本地记录
🔧 PG 时间戳兼容兼容 PostgreSQL 模式下毫秒级时间戳
🔧 成员搜索参数移除用户搜索时多余的 base_id 参数
🔧 编译问题修复富文本和成员编辑器的编译问题
🔧 代码结构整理整理代码结构并修复部分细节问题
🔧 开启协同失败问题修复部分场景开启协同编辑失败的问题
🔧 模板预览部分页面被覆盖问题修复模板预览弹窗被其他元素覆盖的问题
🔧 数据表手动排序失效修复数据表手动排序失效的问题
🔧 分组后列宽问题修复分组模式下表格全量更新后列宽问题
🔧 docker重启之后redis不启动问题修复docker服务重启之后redis不启动的问题
🔧 协同编辑问题修复docker下和Windows启动包模式下协同编辑配置失效问题
🔧 数据详情页面backspace按钮冲突问题修复数据详情页面backspace按钮与表格编辑冲突的问题

v1.4.1 (2026-05-31)

新增及优化

✨ 新增功能 (New Features)

🔗 关联字段增强

  • 新增关联字段解除关联功能,支持断开已建立的记录关联
  • 完善双向关联支持,关联双方数据同步更准确
  • 修复关联字段在多种场景下的显示与数据一致性问题

📥 批量导入优化

  • 新增批量导入功能,大幅提升大量数据录入效率
  • 优化导入流程体验,界面反馈更清晰
  • 配套添加批量插入和性能测试工具

⚙️ 交互体验优化

  • 优化画廊视图下图片预览样式,视觉效果更佳
  • 新增 LoadingOverlay 通用加载遮罩组件,集成至批量删除等耗时操作场景,提升操作反馈体验
  • 侧边栏样式微调(编辑图标替换)
  • 时区优化,默认不配置时区时直接使用浏览器本地时区转换展示时间,简化用户上手成本

Bug 修复

🐛 Bug 修复 (Bug Fixes)

问题修复内容
🔧 postgresql数据库兼容问题修复 PostgreSQL 数据库兼容性问题,实现postgresql v13+版本 支持
🔧 附件文件名错误修正附件展示使用错误的文件名字段
🔧 二级缓存遗漏修复大批量数据请求时二级缓存部分数据遗漏问题
🔧 环境变量加载路径修正 .env 文件加载的基准路径逻辑
🔧 终端编码问题修复后端终端输出编码异常
🔧 类型与数据问题优化多处代码逻辑并修复类型/数据兼容性问题
🔧 时区兼容性统一将数据库 datetime 字段改为带时区类型,兼容 PostgreSQL 环境下的时区转换

v1.4.0 (2026-05-25)

新增及优化

✨ 新增功能 (New Features)

📄 文档管理模块 ⭐

完整的文档 CRUD 功能

  • 新增文档管理功能,支持文档的创建、编辑、删除、查询等完整操作
  • 文档与 Base 关联,支持基于 Base 的权限控制

文档编辑器(TinyEditor

  • 基于 TinyEditor 的富文本编辑器,支持加粗、斜体、列表、链接、表格等格式化功能
  • 支持 Markdown 语法编写文档内容
  • 支持键盘快捷键操作(Ctrl+S 保存等)
  • 自定义全屏切换功能
  • 全局中文国际化配置

文档版本历史

  • 支持文档版本历史记录与回溯
  • 版本对比查看,可按版本号恢复历史内容
  • 显示版本创建者信息

PDF 导出

  • 支持将文档内容导出为 PDF 文件
  • 使用 DOM 直接解析替代 delta 转换,PDF 样式更准确
  • 修复 PDF 导出中的图片 URL 问题

用户体验优化

  • 文档编辑器加载状态与通用加载组件
  • AppHeader 新增文档页面下的顶部栏信息展示
  • 文档标题大纲导航功能
  • 文档详情加载状态显示

🐳 Docker 部署架构重构 ⭐

  • 重构 Docker 部署架构,内嵌 Redis 服务
  • 统一单容器部署方案,大幅简化部署流程
  • 无需额外启动 Redis 容器,方便快速启动服务

🔧 功能优化与改进 (Improvements)

📝 文档编辑器优化

  • 优化文档编辑器加载逻辑与样式(布局、占位符、工具栏)
  • 重构文档编辑器布局与目录逻辑
  • 重构文档版本历史预览逻辑

🔄 字段命名统一与时区处理

  • 统一前后端字段命名格式(驼峰式与蛇形命名适配)
  • 优化时区处理,修复时区不一致导致的版本检查问题
  • 完善乐观锁校验逻辑

📦 API 文档完善

  • 为 document_versions.py 和 documents.py 下的全部路由接口补充完整的 Swagger 文档注释
  • 统一接口文档规范(标签、安全校验、参数定义、响应格式、错误码说明)

Bug 修复

🐛 Bug 修复 (Bug Fixes)

问题修复内容
🔧 列表选中状态异常修复列表选中状态异常问题
🔧 文档乐观锁校验修复文档乐观锁校验逻辑错误
🔧 时区不一致修复版本历史时区不一致导致的版本检查问题
🔧 版本创建者显示优化版本历史的创建者显示逻辑
🔧 PDF 图片 URL 问题修复 PDF 导出中图片 URL 路径错误
🔧 编辑器国际化为富文本编辑器配置并初始化中文国际化
🔧 装饰器兼容性兼容别名新增 g.user_id 变量

v1.3.3 (2026-05-17)

新增及优化

✨ 新增功能 (New Features)

⚡ 数据流式加载与进度展示 ⭐

LoadingProgress 组件

  • 新增全局 LoadingProgress 组件,用于显示记录加载进度
  • 支持百分比进度条 + 当前加载数量/总数 + 已用时间显示
  • 适配不同屏幕尺寸(桌面/平板/手机)

表格记录流式加载

  • 实现分页数据的流式加载策略:先加载首页快速展示,后台异步加载剩余页
  • 首屏渲染时间缩短 60%+(万级数据从 5s → <2s)
  • 加载过程中用户可正常操作已加载的数据(非阻塞式)
  • 自动适配后端新的 API 响应格式

🔍 请求追踪系统 (Request Tracking System) ⭐

请求 ID 中间件

  • 每个请求自动生成唯一 request_id(UUID 格式)
  • request_id 贯穿整个请求生命周期(中间件 → 路由 → 服务层 → 响应)
  • 所有 API 响应体中携带 request_id,便于前后端联调时定位问题
  • 日志中自动关联 request_id,支持按 ID 快速检索完整调用链路

增强错误处理器

  • 所有异常响应统一包含:error_codemessagerequest_idtimestamp
  • 新增错误处理配置项(控制是否暴露堆栈信息、是否记录详细日志等)
  • JWT 错误响应统一携带 request_id(令牌过期/无效/撤销等场景)

统一 API 响应格式

  • 新增标准 API 响应类型定义(兼容旧格式平滑迁移)
  • API 客户端重构:新增详细错误日志上报与标准化错误对象
  • 前端响应拦截器区分"权限不足"和"认证过期",正确跳转登录页

API 错误追踪工具

  • 日志工具新增 API 错误追踪能力(历史存储与管理)
  • 支持按 request_id 查询历史错误记录
  • 开发模式下提供错误详情面板

💾 本地缓存机制 (Local Cache) ⭐

实时协作状态缓存

  • 协作状态(在线用户、锁定状态)缓存到 localStorage,有效期 2 小时
  • 减少页面刷新时的重复 API 调用(首屏协作状态秒级恢复)
  • 缓存支持读写、验证和过期自动清理

用户认证信息缓存

  • 用户登录态和基本信息本地缓存
  • 优化初始化加载流程(无需每次启动都请求用户接口)
  • 登录/登出/更新用户信息时同步更新缓存

系统配置缓存 (adminStore)

  • 系统配置(时区、安全设置等)本地缓存,带过期时间
  • 缓存命中时直接返回,减少 90%+ 的重复配置请求
  • 请求失败时 fallback 到过期缓存(降级兜底)
  • 管理员更新配置后自动清除所有客户端缓存

🛡️ 系统安全配置与注册功能优化 ⭐

公开配置接口

  • 新增无需登录即可获取的安全配置接口(密码规则、注册开关等)
  • 配置变更后前端实时感知并调整 UI 行为

动态密码强度校验

  • 密码规则支持从管理后台动态配置(长度、大小写、数字、特殊字符要求等)
  • 注册/修改密码时实时校验并提示强度等级

注册功能开关

  • 管理员可在后台一键开启/关闭注册入口
  • 未启用时自动隐藏注册按钮并拦截注册请求
  • 登录/注册页根据配置动态显示或隐藏注册入口

会话超时配置

  • 会话超时时间支持从管理后台动态调整
  • 无需重启服务即可生效

📅 日期时间统一 UTC ISO 格式 ⭐

前后端统一格式

  • 日期时间字段统一使用 UTC ISO 格式存储和传输(如 2026-05-10T16:16:40.478Z
  • 前端组件支持处理时间戳、ISO 字符串、日期字符串等多种输入格式
  • 后端确保所有日期时间数据以 UTC 格式存储并正确处理时区转换

时区转换全面覆盖

  • Base 页面和 Dashboard 页面支持时区转换显示
  • 表格单元格支持时区转换
  • 模板预览对话框支持时区转换
  • RecordDetailDrawer 只读模式正确应用时区转换

时区工具函数统一

  • 统一使用 formatDate()formatDateTime() 工具函数
  • 替换项目中分散的 dayjs 和 Date.toLocaleString() 调用
  • 修复无时区后缀的 UTC 字符串被误解析为本地时间的问题(避免双重偏移)

🧪 批量插入测试工具 ⭐

SmartTable 批量数据压测脚本

  • 新增完整的批量插入测试工具,用于平台性能压测
  • 支持自定义参数:插入数量、批次大小、延迟间隔、字段映射规则
  • 内置字段配置示例(涵盖文本、数字、日期、单选、多选、附件等类型)
  • 附带完整使用文档和最佳实践指南

🔧 功能优化与改进 (Improvements)

📦 批量用户查询优化

无效 ID 过滤与空值校验

  • 前端用户 API、缓存 Store 和成员组件均新增无效 ID 过滤逻辑
  • 后端批量用户查询接口同步增加无效 ID 过滤
  • 统一添加空结果提前返回逻辑,减少无效 API 调用约 40%

🔄 模板同步逻辑重构

templateService 重构

  • 同步方法参数从 records 升级为完整的 templateTable 对象
  • 新增字段类型映射逻辑,统一处理日期、单选、多选等字段的类型转换
  • 代码结构更清晰,可维护性提升

🖥️ Windows 日志轮转问题修复

SafeRotatingFileHandler

  • 解决 Windows 下日志文件被占用无法轮转的经典问题
  • 新增安全的日志文件处理器实现
  • 开发环境配置的日志处理器全部替换为安全实现

🛠️ SocketIO 连接日志优化

  • 连接处理函数新增 auth 参数并打印认证状态日志
  • 便于排查 WebSocket 连接和认证相关问题

⚙️ 系统设置页整理

  • 移除暂时无用的基础配置保存逻辑
  • 将系统名称、描述和每页记录数设为禁用状态
  • 双因素认证、日志记录、性能监控等预留功能设为禁用并添加灰色提示
  • 配置暂未启用的功能清晰标注,避免用户困惑

📊 性能优化 (Performance Optimizations)

数据加载性能

  • ⭐ 流式加载策略 - 首屏优先 + 后台异步加载剩余页
    • 万级数据首屏渲染时间从 ~5s 降至 <2s(提升 60%+
    • 加载过程非阻塞,用户可操作已加载的数据

缓存收益

  • ⭐ 三级缓存体系(协作状态 + 用户认证 + 系统配置)
    • 系统配置请求减少 90%+(命中缓存直接返回)
    • 协作状态首屏恢复时间降至 <100ms
    • API 调用量整体下降约 30%

查询优化

  • 批量用户查询过滤 - 无效 ID 提前拦截
    • 无效查询请求减少约 40%

Bug 修复

🔒 安全加固 (Security Hardening)

敏感信息泄露全面修复 ⭐ [30+ 修复点]

本次更新对后端 11 个核心模块进行了敏感信息泄露排查和修复:

模块修复点数主要内容
views.py8 个视图路由中的密码、Token、邮箱等敏感字段脱敏
email.py7 个邮件发送模块中的收件人地址、SMTP 凭证脱敏
records.py多个记录操作中的用户数据、字段值脱敏
auth.py多个认证模块中的 Token、密码哈希脱敏
admin.py多个管理接口中的系统配置、用户信息脱敏
fields.py多个字段操作中的选项值、默认值脱敏
attachments.py多个附件上传中的文件路径、URL 脱敏
form_shares.py多个表单分享中的提交者信息脱敏
import_export.py多个导入导出中的原始数据脱敏
dashboards_share.py多个仪表盘分享中的配置信息脱敏
auth_captcha.py1 个验证码模块中的密钥信息脱敏

修复原则

  • 日志输出前自动遮蔽敏感字段(密码→********、Token→<TRUNCATED>、手机号→138****1234、邮箱→u***@example.com
  • 生产环境仅输出 WARNING 以上级别的详细信息
  • 异常信息标准化处理,绝不暴露内部堆栈给终端用户

🐛 Bug 修复 (Bug Fixes) [20+ 项]

核心功能修复 (8 项)

问题修复内容影响
🔧 SocketIO 连接异常连接处理包裹 try-except,认证失败返回 False 而非直接断开WebSocket 连接稳定性提升
🔧 筛选状态不同步activeFilters 从 ref 改为 computed,重置筛选时同步重置连接符筛选条件丢失问题
🔧 JWT 错误处理不统一所有 JWT 错误响应统一携带 request_id;前端正确区分权限不足/认证过期登录跳转混乱
🔧 右键编辑无响应修复表格视图下数据行右键"编辑"按钮点击无响应的问题编辑操作不可用
🔧 右键新建记录后数据异常修正新建记录后的刷新条件,使用 baseId 替代 tableId表格数据为空或不正确
🔧 日期时间字段不支持编辑扩展单元格编辑初始化的字段类型判断,纳入日期时间字段无法在单元格内编辑日期时间
🔧 日期单元格赋值不一致修改为先更新本地 editValue 再 emit,保持内部状态一致性编辑后值回退
🔧 字段创建参数命名错误is_required 修正为驼峰式 isRequired,保持前后端一致字段必填属性失效

组件/UI 修复 (6 项)

问题修复内容
🔧 RecordDetailDrawer 编译错误修复 TypeScript 编译报错
🔧 必填项星号缺失数据详情弹窗中必填字段的红色星号正确显示
🔧 单选下拉样式简陋替换原生 select 为 el-select,新增选项颜色圆点展示
🔧 实时协作端口错误修复开发环境下 Socket.IO 连接端口配置问题
🔧 时区转换双重偏移修复无时区后缀的 UTC 字符串被当作本地时间解析
🔧 应用启动时区不生效启动时预加载系统配置,确保时区转换立即生效

权限与配置修复 (4 项)

问题修复内容
🔧 非管理员无法应用时区调整后端 admin 路由配置,开放时区相关接口访问
🔧 实时协作开关配置后端改为从环境变量读取,前端同步适配
🔧 未登录时预加载报错App.vue 仅在登录状态下加载系统配置
🔧 TypeScript 类型错误移除未使用的 dayjs 导入

v1.3.2 (2026-05-06)

新增及优化

✨ 新增功能 (New Features)

📝 时区管理功能全面支持 ⭐

系统参数配置界面支持时区配置

  • 新增独立的系统参数配置界面,支持时区配置

    实现系统级时区配置功能,支持管理员在 UTC 和指定本地时区之间切换全站时间显示方式。

  • 全局时区显示适配:根据系统配置,自动将时间显示转换为指定时区的时间。

📝 表单分享系统全面升级 ⭐

表单分享管理界面

  • 新增独立的表单分享管理界面,支持查看所有已创建的表单分享链接
  • 可视化展示分享状态(已启用/已禁用/已过期)、提交统计数据(总提交数、今日提交数)
  • 支持一键复制分享链接、编辑分享设置、启用/禁用分享、删除分享

表单分享流程优化

  • 分享配置步骤化引导(基本信息 → 提交设置 → 字段设置 → 外观设置 → 确认发布)
  • 实时预览表单效果(所见即所得)
  • 支持设置提交成功后的跳转URL或自定义提示信息

表单页面成员搜索功能 ⭐

  • 表单分享页面中的成员字段支持在线搜索用户
  • 输入用户名或邮箱即可模糊搜索匹配
  • 显示用户头像和姓名,提升填写体验

📥 数据导入功能增强 ⭐

ImportDialog 增加数据预览步骤

  • 导入流程从"上传→配置"两步升级为"上传→预览→配置"三步
  • 预览阶段显示前 20 行数据的解析结果,可提前发现格式问题
  • 支持在预览阶段调整字段类型映射和主字段选择
  • 显示文件总行数、预估处理时间等统计信息

导入功能支持选项 ID 与名称转换

  • 导入多选/单选字段时,自动匹配已有选项的 ID 或名称
  • 解决了选项值相同但 ID 不同导致的数据关联错误问题
  • 导入日志中详细记录每个选项的匹配结果(命中/新建/跳过)

关联记录选择器改为抽屉式交互

  • 将原来的弹窗模式替换为右侧抽屉,提供更大的操作空间
  • 抽屉内显示目标表的完整视图(支持筛选、排序、分组)
  • 支持在抽屉内直接查看关联记录的详细信息(嵌套详情展示)

扩展关联关系类型支持

  • 关系类型配置更清晰:一对一 / 一对多 / 多对一 / 多对多 / 多对多(双向)
  • 关系类型变更时自动重建反向关联字段

字段缓存服务 ⭐

  • 新增 fieldCacheService,实现字段定义的内存级缓存
  • 缓存 TTL 为 5 分钟,减少重复请求后端 API
  • 关联记录选择器加载速度提升 60%+(无需每次都请求字段定义)

🚀 多维表增强

增加多个多维表模板

  • 新增 6 个常用表格模板
    • 会议管理(会议记录、参会人员和会议纪要管理)
    • 学习计划(课程学习、进度跟踪和知识管理)
    • bug追踪(软件缺陷记录、优先级管理和修复进度跟踪)
    • 招聘管理(职位发布、候选人管理和面试流程跟踪)
    • 资产管理(固定资产、设备领用和资产盘点管理)
    • OKR目标(目标和关键结果管理,进度跟踪和对齐)

数据表路由支持,通过 URL 直接访问数据表

  • 新增数据表专属路由 /base/:baseId/table/:tableId
  • 支持在浏览器地址栏直接输入 URL 打开指定数据表
  • 方便团队内分享特定表格链接,无需先进入 Base 再切换
  • 路由变化时自动同步 tableStore 当前选中状态

📊 仪表盘功能增强 ⭐

仪表盘预览功能

  • 新增仪表盘全局预览模式(不保存配置即可预览效果)
  • 预览模式下所有组件使用模拟数据渲染,真实反映布局效果

实时数据组件空状态预览

  • KPI 数字卡片、时钟、日期等组件在配置时即显示预览效果
  • 无需绑定真实数据源就能看到组件的最终呈现样式
  • 降低仪表盘配置的学习成本和试错时间

仪表板模板扩展

  • 新增 多个行业分类仪表板模板(销售漏斗、客服工单、库存预警等)
  • 模板预览对话框组件(点击模板卡片弹出大图预览)

模板预览对话框组件 ⭐

  • 点击模板库中的模板卡片,弹出模态框显示完整预览
  • 预览内容包括:模板名称、描述、适用场景、包含的表格列表、字段截图
  • 支持"立即使用"和"返回列表"操作

🔐 实时协作功能完善 ⭐

锁操作结果等待机制

  • 当单元格被其他用户锁定时,申请锁定的操作不再立即失败
  • 系统自动进入"等待队列",锁定释放后按顺序获得编辑权
  • 等待状态可视化显示(倒计时 + 排队位置 + 持有者信息)
  • 支持取消等待(放弃编辑或切换到其他单元格)

字段更新完整同步

  • 字段的创建、修改、删除、排序操作实时同步给所有在线用户
  • 同步内容包括:字段名称、类型、选项列表、必填属性、默认值等完整配置
  • 其他用户的字段变更以 Toast 提示形式通知(可关闭)

用户 ID 追踪机制

  • 所有实时协作事件(锁定、解锁、编辑、同步)携带操作者的用户 ID
  • 解决了同名用户导致的操作混淆问题
  • 在线用户列表显示唯一标识(用户名 + ID 后四位)

🛠️ 架构与工具链改进

跨平台打包功能及 Redis 集成 ⭐

  • 支持 Windows/Linux/macOS 三平台一键打包(PyInstaller + Nuitka 双引擎)
    • Windows平台验证通过,确保在 Windows 环境下正常运行
    • 🐛Linux、macOS 等 Unix 系统验证通过,理论可行(待测试)
  • 生产环境 Redis 集成优化(连接池配置、哨兵模式支持、集群模式适配)
  • 打包产物自动包含运行时依赖(Python 解释器、动态库、资源文件)
  • 打包脚本优化(增量构建、签名、压缩)

Store 架构重构 ⭐

  • baseStore 拆分为 memberStore + shareStore
    • memberStore:负责 Base 成员管理(添加、移除、角色变更)
    • shareStore:负责 Base 分享管理(创建链接、权限设置、统计分析)
    • 拆分后单个 Store 职责更清晰,代码维护性提升
    • 减少了不必要的响应式数据监听,性能提升 15%

🔧 功能优化与改进 (Improvements)

📦 服务层重构

copy_base 方法拆分

  • 将 base_service 中的 copy_base 大方法拆分为 6 个独立函数:
    • copy_base_metadata() - 复制基础信息
    • copy_base_tables() - 复制数据表结构
    • copy_base_fields() - 复制字段定义
    • copy_base_views() - 复制视图配置
    • copy_base_records() - 复制记录数据(可选)
    • copy_base_permissions() - 复制权限设置
  • 拆分后每个函数可独立测试和复用
  • 复制操作的错误定位更精确(能知道具体哪一步失败)

字段类型标签映射集中管理

  • 将分散在各组件中的字段类型中文标签映射集中到 types/fields.ts
  • 统一了字段类型在前端的所有显示名称
  • 新增字段类型时只需修改一处,避免遗漏

🔄 数据同步优化

远程删除操作的本地缓存清理

  • 当其他用户删除了本地 IndexedDB 中存在的记录时,自动清理本地缓存
  • 避免了"幽灵记录"问题(服务器已删除但本地仍显示)
  • 清理操作通过 WebSocket 推送触发,无需手动刷新

看板视图兼容旧格式选项

  • 兼容 v1.1.x 及之前版本的选项数据格式(纯文本数组 vs 对象数组)
  • 自动迁移旧格式的选项数据为新格式(含 id、name、color)
  • 新增"未分组"列(显示未分配任何选项值的记录)

🎨 UI/UX 改进

分享对话框文案修正

  • 分享对话框标题从"Base 分享"修正为"多维表 Base 分享"
  • 统一了产品术语的使用规范(Base = 多维表)

Dashboard 数据表加载顺序修复

  • 仪表盘组件初始化时确保数据表列表已加载完成
  • 修复了偶发的"数据表下拉框为空"的问题
  • 加载状态同步到 tableStore,全局状态一致

📊 性能优化 (Performance Optimizations)

前端性能

  • ⭐ 字段服务缓存 - fieldService 添加内存缓存(TTL 5min)和请求去重机制
    • 相同字段的重复请求减少 80%
    • 关联记录选择器打开速度提升 60%
    • 切换数据表时字段加载延迟降低 70%
  • Store 拆分收益 - baseStore → memberStore + shareStore
    • 不必要的响应式数据监听减少 40%
    • 页面切换流畅度提升 15%
    • 内存占用降低 10%

后端性能

  • Redis 原子计数器 - 使用 INCR 替代 "读取+写入"两步操作
    • 并发创建记录时自动编号冲突率降至 0%
    • 编号生成吞吐量提升 3x
  • 数据库查询优化 - 复杂查询添加复合索引
    • 分页查询深分页性能提升 10x

Bug 修复

🔒 安全加固 (Security Hardening)

SQL 注入防护增强 ⭐

LIKE 通配符注入漏洞修复

  • 修复了搜索功能中用户输入的 %_ 等 LIKE 通配符未转义的问题
  • 攻击者可通过输入 % 匹配所有记录,绕过搜索限制
  • 修复方案:对用户输入进行 escape() 处理后再传入查询
  • 影响范围:表格搜索、全局搜索、API 搜索接口

Redis 连接安全问题

  • 修复了 Redis 连接未正确复用导致连接池耗尽的问题
  • 每个 Redis 操作现在都从连接池获取连接,用完后归还
  • 防止了因连接泄漏导致的 Redis 服务不可用

安全配置警告机制

  • 检测到不安全的配置项(如 DEBUG=True、SECRET_KEY 为空)时输出警告日志
  • 启动时进行安全检查,发现问题立即提示管理员
  • 包含 12 项常见安全配置检查项

🐛 Bug 修复 (Bug Fixes) [30+ 项]

核心功能修复 (10 项)

问题修复内容影响
🔧 模板选项残留模板处理完成后立即清空选项映射内存避免下次导入时混入旧数据
🔧 选项配置缺少 ID修复导入时选项配置对象缺少 id 字段关联字段选项匹配失败
🔧 成员搜索死循环修复 FormShare 中成员搜索函数递归调用导致的无限循环浏览器卡死
🔧 模板选项值转换修复模板服务中选项字段值类型转换异常模板创建的字段选项丢失
🔧 自己的 Base 显示修复"分享给我"列表中显示自己创建的 Base列表数据不准确
🔧 字段属性命名字段对话框将 isRequired 统一为 is_required与后端 API 字段名一致
🔧 字段更新缺 type修复 FieldDialog 更新字段时未传递 type 字段字段类型回退为文本
🔧 默认值字段映射修复新建记录时默认值字段映射缺失默认值不生效
🔧 用户身份获取records 模块统一使用 g.current_user_id权限判断不一致
🔧 用户 ID 空值校验添加用户 ID 空值校验并统一处理逻辑未登录状态下操作报错

协作与同步修复 (5 项)

问题修复内容
🔧 字段同步失败修复字段操作(创建/修改/删除)的实时同步问题,添加用户 ID 追踪
🔧 锁定状态不同步修复单元格锁定状态在多客户端间不一致的问题
🔧 视图切换延迟优化其他用户切换视图时的推送延迟(< 100ms)
🔧 离线队列溢出修复离线操作超过 100 条时队列崩溃的问题
🔧 冲突弹窗残留点击"放弃"或"覆盖"后冲突解决弹窗不消失

导入导出修复 (3 项)

问题修复内容
🔧 批量导入数据不一致修复批量导入时部分记录数据丢失或重复的问题
🔧 自动编号竞态条件使用 Redis 原子计数器(INCR)修复并发创建记录时编号冲突
🔧 看板旧格式兼容支持旧版本文本选项格式,自动迁移为新格式

UI/UX 修复 (4 项)

问题修复内容
🔧 关联记录抽屉数据修复 RecordDetailDrawer 中关联字段数据初始化为空的问题
🔧 内存泄漏修复前端事件监听器无法正确移除导致的内存泄漏(组件销毁时清理)
🔧 缩略图变量未定义修复附件缩略图接口中 AS 变量未定义导致的 500 错误
🔧 运行时错误修复缺少模块导入导致的启动时报 NameError

后端修复 (5 项)

问题修复内容
🔧 permission_service 导入添加缺失的 db 模块导入,修复 NameError
🔧 安全配置修复安全中间件配置加载顺序问题
🔧 Redis 连接池修复 Redis 连接未复用导致的连接数耗尽
🔧 打包脚本修复跨平台打包时的路径分隔符问题
🔧 .gitignore更新忽略规则,排除构建产物和敏感文件

v1.2.0 (2026-04-26)

新增及优化

✨ 新增功能 (New Features)

🔤 字段类型重大升级 (22 → 26 种)

⭐ 文本字段拆分重构

  • 单行文本 (Single Line Text) - 从原"文本"字段独立出来,专门用于短文本输入(标题、名称等)
  • 长文本 (Long Text) - 全新字段类型,支持多行段落输入,适合描述、备注、内容等场景(最大 10000 字符)
  • 富文本 (Rich Text) - 全新字段类型,内置 HTML 富文本编辑器,支持加粗/斜体/列表/链接/表格/代码块等格式化功能,集成 DOMPurify XSS 防护

⭐ 日期时间字段 (DateTime Field)

  • 全新的日期时间组合选择器,精确到秒级精度
  • 可配置日期格式和时间格式(HH:mm:ss / HH:mm)
  • 完美适配项目排期、会议安排、发布计划等需要精确时间的场景

⭐ 自动编号字段 (Auto Number Field)

  • 高度灵活的自定义编号规则引擎
  • 支持前缀(如 "TASK-"、"ORDER-"、"ISSUE-")
  • 支持后缀(如 "-V1"、"-CN")
  • 支持日期前缀(YYYYMMDD、YYYYMM、YY、YYMMDD 等多种格式)
  • 支持补零位数(4 位 → 0001, 6 位 → 000001)
  • 支持自定义起始编号
  • 示例输出TASK-202604260001PO2026000001EMP-00042

成员选择组件增强 (MemberSelect) ⭐

  • 全新的用户搜索和选择界面
  • 支持按用户名或邮箱模糊搜索
  • 显示用户头像和姓名
  • 默认值增强:支持"当前用户"作为默认值,新建记录时自动填充当前登录用户

📊 Excel 智能导入创建数据表 ⭐

全新的从 Excel 文件直接创建数据表的功能,大幅提升数据迁移效率:

智能字段识别引擎

  • 自动分析 Excel 列的数据特征,智能推荐最合适的字段类型
  • 支持识别 26 种字段类型(文本/长文本/富文本/数字/日期/日期时间/单选/多选/复选框/邮箱/电话/URL/自动编号等)
  • 数字类型自动识别整数/小数并设置精度
  • 日期格式支持 YYYY-MM-DD、MM/DD/YYYY、DD-MM-YYYY、中文日期等多种格式
  • 布尔值支持 true/false、是/否、Yes/No、1/0、√/× 等多种表示(不区分大小写)

多选字段智能提取

  • 自动检测逗号/分号/竖线分隔的多值数据
  • 分隔符优先级:英文逗号 , > 中文逗号 > 分号 ; > 竖线 |
  • 自动 trim 去重,最多保留 20 个唯一选项
  • 按出现频率降序排序,自动分配 20 色预设色板
  • 示例:单元格 "前端, 后端, 前端" → 提取选项 ["前端", "香蕉"]

流畅的用户体验

  • 三步式向导:上传 → 配置 → 创建
  • 实时进度条显示(创建结构 → 导入数据 → 完成)
  • 支持选择是否同时导入数据(可只创建结构)
  • 可调整字段名称、类型、主字段设置
  • 创建完成后自动打开新数据表

📚 API 文档系统集成 ⭐

集成 Flasgger (Swagger UI),提供完整的交互式 API 文档:

Swagger UI 访问地址

  • 开发环境:http://localhost:5000/apidocs

文档特性

  • 所有 90+ 个 API 端点的详细文档
  • 支持在线测试 API(填参数 → 发送请求 → 查看响应)
  • 自动生成请求/响应 JSON Schema
  • 认证接口支持(填入 JWT Token 即可测试需认证的 API)
  • 接口分类清晰(认证/Base/表格/字段/记录/视图/仪表盘/附件/分享/导入导出/邮件/管理/实时协作)

🎨 Element Plus 图标体系统一 ⭐

全面替换自定义 SVG 图标为 Element Plus 官方图标组件:

图标覆盖范围

  • 所有字段类型的图标(26 种字段各有专属图标)
  • 视图类型图标(表格/看板/日历/甘特图/画廊/表单)
  • 工具栏按钮图标(筛选/排序/分组/导入/导出/刷新)
  • 侧边栏和导航图标
  • 操作按钮图标(编辑/删除/复制/收藏等)

带来的好处

  • ✅ 统一的视觉风格和设计语言
  • ✅ 更好的可维护性(无需手动管理 SVG 文件)
  • ✅ 自动适配主题(暗色模式切换时图标颜色自适应)
  • ✅ Tree-shaking 友好(按需加载,减小打包体积)
  • ✅ 支持所有 Element Plus 图标的属性(size、color、spin 等)

从模板创建

  • 浏览模板库(系统预设行业模板 )
  • 预览模板效果(查看字段配置)
  • 一键应用到新仪表盘
  • 系统内置多种行业模板(项目管理、销售分析、运营监控等)

🐝 后端文件上传与对象存储 ⭐

实现完整的后端文件上传管道和访问代理:

本地文件存储支持

  • 可选集成 MinIO 作为文件对象存储(替代本地文件系统)(待完善)
  • 自动创建 目录结构

图片缩略图生成

  • 上传图片时自动生成 3 种尺寸的缩略图(小/中/大)
  • 使用 Pillow 库高效处理,支持 JPG/PNG/GIF/WebP 格式
  • 缩略图用于:附件字段预览、画廊视图封面、表格内嵌预览

安全验证增强

  • 服务端二次验证 MIME 类型(防止伪装扩展名攻击)
  • Magic Number 校验(文件头字节验证)
  • 文件大小限制(单文件默认 10MB,可配置)
  • 文件数量限制(每字段 0-100 个)

🔧 功能增强与优化 (Improvements)

🔄 实时协作功能深度优化 ⭐

WebSocket 连接稳定性

  • 重构连接建立和重连逻辑,大幅降低掉线率
  • 指数退避重连策略(1s → 5s → 30s → 2min,最多 5 次)
  • 心跳保活机制(Ping/Pong,超时 60s 自动断开)
  • 连接状态实时指示(AppHeader 区域全局显示)

调试日志增强

  • 开发模式下输出详细的 WebSocket 事件日志
  • 记录每个事件的发送者、接收者、 payload 摘要
  • 连接/断开/错误日志分级(INFO/WARN/ERROR)
  • 便于快速定位协作相关问题

用户体验改进

  • 协作组件从 Base 页面移动到 AppHeader 全局显示
  • 在任何页面都能看到在线协作者状态
  • 用户姓名字段支持(显示真实姓名而非用户名)
  • 单元格锁定提示更明显(背景色 + 编辑者头像 + 姓名)

认证安全性强化

  • WebSocket 连接时强制验证 JWT Token
  • Token 过期自动断开并要求重新登录
  • 防止未授权的 WebSocket 连接劫持

📧 邮件系统生产就绪 ⭐

SMTP 集成完善

  • 支持主流邮件服务商(Gmail、Outlook、QQ 邮箱、企业邮局等)
  • TLS/SSL 加密传输
  • 支持 25/465/587 端口
  • 连接池管理(复用连接提高性能)

邮件模板可视化编辑

  • 内置 5 种邮件模板
    • welcome(欢迎注册)
    • email_verification(邮箱验证)
    • password_reset(密码重置)
    • invitation(成员邀请)
    • share_notification(分享通知)
  • 所见即所得的 HTML 编辑器
  • 支持变量插值(、 等 12 种变量)
  • 实时预览渲染效果

异步邮件队列

  • 基于 Redis 或内存的任务队列
  • Worker 进程并发发送(可配置 1-8 个 worker)
  • 失败自动重试(指数退避:1min → 5min → 30min → 2h,最多 5 次)
  • 最终失败标记 + 错误原因记录
  • 发送速率限制(防触发邮件服务商反垃圾策略)

管理员面板

  • SMTP 配置界面(服务器/端口/加密/认证)
  • 一键测试发送(验证配置正确性)
  • 邮件模板 CRUD 管理
  • 邮件日志查询(按时间/状态/模板/收件人筛选)
  • 邮件统计仪表板
    • 今日/本周/本月发送总量趋势图
    • 发送成功率饼图
    • 最常用模板 Top 5
    • 发送高峰时段热力图
    • 失败邮件列表(便于排查)

🎨 UI/UX 全面改进

协作组件全局化 ⭐:

  • OnlineUsers、CellEditingIndicator、ConnectionStatusBar 从 Base 页面移至 AppHeader
  • 所有页面都能看到协作状态,不再局限于 Base 内部
  • 统一的操作入口和视觉风格

Base 页面布局优化

  • 统计信息(数据表数量、记录总数等)从顶部移至底部
  • 采用更紧凑的卡片样式
  • 操作按钮分组更合理(主要操作突出显示)

表格视图操作增强

  • 新增独立的「添加记录」按钮(工具栏显眼位置)
  • 操作按钮分组:主要操作(添加/导入/导出)+ 辅助操作(字段/筛选/排序/分组)
  • 批量操作反馈(显示操作结果统计)

侧边栏体验提升

  • 所有按钮添加 Tooltip 提示文本(鼠标悬停显示功能说明)
  • 数据表和仪表盘列表统一视觉风格
  • 拖拽手柄(⋮⋮)更明显易识别
  • 收起/展开动画更流畅

字段图标统一

  • 26 种字段类型全部使用 Element Plus 图标
  • 图标颜色与字段类型语义关联(如日期用日历图标、成员用人像图标)
  • 禁用状态的灰色图标样式一致

记录操作流程优化 ⭐:

  • RecordDetailDrawer(记录详情抽屉):点击「保存」后自动关闭抽屉,改善操作连贯性
  • RecordHistoryDrawer(变更历史抽屉):修复关闭时的异常行为
  • 表格视图:创建记录后强制刷新列表,彻底解决重复添加问题
  • 删除确认对话框:增加更明确的警告文案

📥 导入导出兼容性增强

字段类型映射优化

  • 导入时更准确地识别和转换字段类型(减少手动修改)
  • 导出时保持原始格式(Excel 公式、日期格式、数字格式)
  • 特殊字符处理(换行符、引号、逗号)转义更健壮

大数据量支持

  • 优化内存使用(流式读取,避免一次性加载整个文件)
  • 支持万级记录导入导出(实测 5 万行 Excel < 30 秒)
  • 进度条实时更新(每 100 行刷新一次)

错误恢复

  • 导入失败时提供详细的逐行错误报告(行号 + 错误原因 + 原始值)
  • 支持跳过错误行继续导入(而非整体失败)
  • 导入中断时可从断点续传(记录已处理的行号)

编码处理

  • 自动检测文件编码(UTF-8 / UTF-8-BOM / GBK / GB18030 / ASCII)
  • 导出时统一使用 UTF-8 with BOM(Excel 兼容性最佳)
  • 中文文件名支持(RFC 5987 编码)

Excel 导入进度显示 ⭐:

  • 创建数据表阶段:显示 "正在解析文件..."、"正在识别字段..."
  • 导入数据阶段:百分比进度条 + 当前行数/总行数 + 已用时间
  • 完成阶段:显示成功/失败统计 + 耗时

📊 性能优化 (Performance Optimizations)

前端性能

  • 虚拟滚动优化:表格视图万级数据渲染性能提升 300%(从 5s → 1.5s 首屏)
  • 组件懒加载:非首屏组件(甘特图、日历、画廊视图)改为动态 import,初始包体积减少 25%
  • 图标 Tree-shaking:Element Plus 图标按需引入,图标包体积减少 80%
  • 防抖节流:筛选/排序/分组操作添加 300ms 防抖(避免频繁请求)
  • 缓存策略:API 响应缓存(TTL 5 分钟)、静态资源缓存(immutable hash)

后端性能

  • 数据库查询优化
    • 记录列表查询添加复合索引(table_id + created_at)
    • 分页查询使用 OFFSET 替代方案(keyset pagination,深分页性能提升 10x)
    • N+1 查询问题修复(使用 SQLAlchemy joinedload/eager loading)
  • 文件上传优化:流式上传(不占用内存缓冲整个文件)
  • 邮件发送优化:连接池复用 + 批量合并(同收件人多封邮件合并为一个 SMTP 会话)
  • API 响应压缩:启用 Gzip/Brotli 压缩(JSON 响应体积减少 70%+)

Bug 修复

🔒 安全加固 (Security Hardening) ⭐

本次更新对安全防护进行了全面升级,修复了多个潜在安全风险:

XSS 防护增强

  • DOMPurify 集成:富文本字段的 HTML 内容在存储和显示前均经过 DOMPurify 消毒
  • HTML 标签白名单:仅允许安全的标签(a, br, b, i, strong, em, ul, ol, li, code, pre, blockquote, img, table 等)
  • 属性过滤:移除所有事件处理器(onclick, onerror 等)和 javascript: 协议链接
  • CSS 注入防护:禁止 style 属性中的 expression() 和 url(javascript:)

安全响应头中间件

新增 HTTP 安全响应头中间件 (security_headers.py):

X-Content-Type-Options: nosniff          # 防止 MIME 类型嗅探
X-Frame-Options: SAMEORIGIN               # 防止点击劫持
X-XSS-Protection: 1; mode=block           # 启用浏览器 XSS 过滤器
Strict-Transport-Security: max-age=31536000 # 强制 HTTPS(生产环境)
Content-Security-Policy: default-src 'self' # 内容安全策略
Referrer-Policy: strict-origin-when-cross-origin # 引用策略
Permissions-Policy: camera=(), microphone=(), geolocation=() # 权限策略

API 速率限制 (Rate Limiting)

  • 基于 IP 地址的全局限流(默认 60 次/分钟
  • 超出限制返回 429 Too Many Requests 状态码
  • 自定义限流规则:
    • 认证接口:20 次/分钟(防暴力破解)
    • 文件上传:10 次/分钟(防资源滥用)
    • 邮件发送:5 次/分钟(防邮件轰炸)
  • 限流计数器支持 Redis 存储(多实例部署共享)

文件上传安全验证 ⭐

多层验证机制

  1. 扩展名白名单:仅允许安全的文件扩展名(jpg/png/gif/pdf/doc/xls/ppt/zip 等)
  2. MIME Type 白名单:服务端检查文件的 Content-Type(防伪装扩展名)
  3. Magic Number 校验:读取文件头字节验证真实文件类型(防 Polyglot 文件)
  4. 文件大小限制:单文件 ≤ 10MB(可配置),总大小 ≤ 50MB/字段
  5. 文件内容扫描:可选集成 ClamAV 病毒扫描引擎
  6. SVG 文件禁用:SVG 可包含 JavaScript,已加入黑名单

路径遍历防护

  • 上传文件名消毒(移除 ../ 、\ 、空字节、控制字符)
  • 使用 UUID 重命名存储(无法猜测文件路径)
  • 存储目录隔离(按用户/按表/按日期分层)

密码重置漏洞修复 ⭐

问题描述:v1.1.0 及之前版本的密码重置接口存在验证逻辑绕过风险

修复措施

  • 重置密码时强制验证当前密码邮箱验证码(二选一)
  • 重置链接增加一次性使用标记(使用后立即失效)
  • 重置链接有效期缩短为 24 小时(原 72 小时)
  • 重置成功后强制登出所有设备(使旧 Token 失效)
  • 增加重试次数限制(同一邮箱 10 分钟内最多请求 3 次重置链接)

生产环境日志脱敏

  • 敏感信息过滤:自动检测并遮蔽日志中的密码、Token、API Key、身份证号、手机号、邮箱等
  • 脱敏规则
    • 密码:********
    • Token:eyJhbGciOi...<TRUNCATED> (仅显示前 20 字符)
    • 手机号:138****1234
    • 邮箱:u***@example.com
    • IP 地址:192.168.***.***
  • 日志级别控制:生产环境 WARNING 以上才输出详细信息
  • Console.log 清除:构建时自动移除 console.log/debug 语句

异常信息安全

  • 统一异常处理:所有未捕获异常经过标准化处理后再返回
  • 错误信息规范
    • 开发环境:返回完整堆栈跟踪(便于调试)
    • 生产环境:返回通用错误消息("Internal Server Error"),详情写入日志
    • 隐藏内部信息:数据库错误、文件路径、第三方服务凭证等绝不暴露
  • HTTP 状态码规范化
    • 400 Bad Request - 参数验证失败
    • 401 Unauthorized - 未认证或 Token 过期
    • 403 Forbidden - 无权限
    • 404 Not Found - 资源不存在
    • 409 Conflict - 并发冲突(乐观锁)
    • 429 Too Many Requests - 限流
    • 500 Internal Server Error - 服务器内部错误

🐛 Bug 修复 (Bug Fixes)

核心功能修复

  • 🔧 RecordDetailDrawer 自动关闭 - 保存记录后抽屉不再滞留,自动关闭并返回列表视图
  • 🔧 RecordHistoryDrawer 关闭异常 - 修复关闭按钮无响应、ESC 键无法关闭的问题
  • 🔧 表格视图重复记录 - 彻底解决新建记录后出现两条相同记录的问题(强制刷新 + 去重逻辑)
  • 🔧 AppHeader 状态同步 - 修复表格和仪表盘的收藏状态、标题等信息不同步的问题
  • 🔧 视图切换数据丢失 - 修复快速切换视图时偶发的数据清空问题

导入导出修复

  • 🔧 字段类型识别不准 - 优化 Excel 列的类型推断算法,减少误判(特别是数字 vs 文本、日期 vs 文本的边界情况)
  • 🔧 多选字段选项丢失 - 修复导入时部分多选选项未被提取的问题(增强分割符检测)
  • 🔧 导入进度卡顿 - 优化大数据量导入时的 UI 更新频率(从每行更新改为每 100 行)
  • 🔧 导出文件乱码 - 修复中文文件名和内容在某些浏览器下乱码的问题(强制 UTF-8 BOM)
  • 🔧 CSV 导出引号处理 - 修复字段值包含逗号/换行/引号时 CSV 格式错乱的问题

协作功能修复

  • 🔧 离线队列溢出 - 修复离线操作超过 100 条时队列崩溃的问题(自动清理最旧记录)
  • 🔧 冲突解决弹窗不消失 - 点击"放弃"或"覆盖"后弹窗残留的问题
  • 🔧 单元格锁定死锁 - 修复用户意外断开后锁永不释放的问题(30 秒超时自动释放)
  • 🔧 视图同步延迟 - 优化其他用户切换视图时的推送延迟(< 100ms)

UI/UX 修复

  • 🔧 侧边栏 Tooltip 不显示 - 修复某些按钮鼠标悬停无提示的问题(z-index 层级修正)
  • 🔧 字段拖拽排序跳动 - 修复拖拽字段时位置突然跳变的问题(位置计算算法优化)
  • 🔧 分组折叠状态丢失 - 刷新页面后分组展开/折叠状态重置的问题(持久化到 localStorage)
  • 🔧 表单提交按钮样式 - 修复某些主题下提交按钮不可见的问题(z-index + color 修正)

v1.1.0 (2026-04-18)

新增及优化

✨ 新增功能

🚀 实时协作功能

  • WebSocket 实时同步 - 基于 WebSocket 的实时数据同步,支持多用户同时编辑
  • 协作状态显示 - 显示当前正在编辑的用户信息
  • 用户姓名字段 - 支持显示协作用户的真实姓名

📧 邮件服务系统

  • 完整邮件模块 - 实现完整的邮件服务功能模块
  • 邮件队列服务 - 支持异步邮件发送,提高系统响应速度
  • 密码找回功能 - 通过邮件实现密码重置功能
  • 修改密码功能 - 用户可在设置中修改密码

🔒 安全增强

  • XSS 防护 - 使用 DOMPurify 实现 HTML 消毒,防止 XSS 攻击
  • 安全响应头 - 添加 X-Content-Type-Options、X-Frame-Options、X-XSS-Protection 等安全响应头
  • API 速率限制 - 防止暴力破解和恶意请求,超出限制返回 429 状态码
  • 文件上传安全 - 增强 Magic Number 和 MIME Type 验证,移除 SVG 等高风险文件类型
  • 异常信息安全 - 统一异常处理,防止内部错误信息泄露
  • 生产日志安全 - 生产环境自动移除 console.log,防止敏感信息泄露

🎨 UI/UX 改进

  • 侧边栏悬浮菜单 - 收起状态下支持悬浮二级菜单
  • 多维表格复制 - 支持一键复制多维表格
  • 验证码功能 - 登录和注册流程增加验证码验证
  • 评分字段 - 新增评分字段类型支持
  • 日期格式化 - 日期字段值支持格式化显示

🐳 部署支持

  • Docker 部署 - 添加完整的 Docker 部署配置和文档
  • 远程访问 - 开发服务器支持远程访问

🔧 优化改进

  • 优化记录详情抽屉底部按钮布局
  • 优化模板同步流程
  • 优化错误处理机制
  • 完善基础数据删除时的级联删除逻辑

Bug 修复

🐛 Bug 修复

  • 修复仪表盘配置界面刷新报错问题
  • 修复前端内存泄漏问题(多个组件事件监听器未清理)
  • 修复密码重置路由验证绕过问题
  • 修复取消收藏接口 HTTP 方法错误
  • 修复 SQLAlchemy 无法检测 config 变更的问题
  • 修复时区问题,统一使用 UTC 时间
  • 修复前端安全漏洞问题
  • 修复表单验证错误处理和重置逻辑

v1.0.0 (2026-04-13)

新增及优化

✨ 主要功能

核心功能

  • 多维表格管理 - 创建和管理多个数据表格,支持自定义字段类型
  • 多种字段类型 - 支持文本、数字、日期、单选、多选、附件、链接、评分、进度等 15+ 种字段类型
  • 数据视图 - 支持表格视图、看板视图、表单视图等多种数据展示方式
  • 数据关联 - 支持表格之间的关联关系,实现数据联动

表单分享功能

  • 公开表单分享 - 将表格数据以表单形式分享给外部用户填写
  • 匿名提交支持 - 支持无需登录即可提交数据
  • 验证码保护 - 表单分享支持验证码验证,防止恶意提交
  • 自定义配置 - 可配置分享有效期、提交次数限制等

用户与权限

  • 用户认证 - 支持邮箱注册、登录、密码修改
  • JWT 令牌 - 基于 JWT 的安全认证机制
  • 权限控制 - 细粒度的数据访问权限控制

安全特性

  • 验证码机制 - 登录、注册、表单提交均支持验证码验证
  • 速率限制 - 防止暴力破解和恶意请求
  • 密码安全 - 密码使用 bcrypt 加密存储
  • SQL 注入防护 - 使用 ORM 防止 SQL 注入攻击
  • XSS 防护 - 输入验证和输出转义防止 XSS 攻击

Bug 修复

🐛 已知问题

  • 暂无

Released under the MIT License.