更新日志
本页面记录 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_code、message、request_id、timestamp - 新增错误处理配置项(控制是否暴露堆栈信息、是否记录详细日志等)
- 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.py | 8 个 | 视图路由中的密码、Token、邮箱等敏感字段脱敏 |
| email.py | 7 个 | 邮件发送模块中的收件人地址、SMTP 凭证脱敏 |
| records.py | 多个 | 记录操作中的用户数据、字段值脱敏 |
| auth.py | 多个 | 认证模块中的 Token、密码哈希脱敏 |
| admin.py | 多个 | 管理接口中的系统配置、用户信息脱敏 |
| fields.py | 多个 | 字段操作中的选项值、默认值脱敏 |
| attachments.py | 多个 | 附件上传中的文件路径、URL 脱敏 |
| form_shares.py | 多个 | 表单分享中的提交者信息脱敏 |
| import_export.py | 多个 | 导入导出中的原始数据脱敏 |
| dashboards_share.py | 多个 | 仪表盘分享中的配置信息脱敏 |
| auth_captcha.py | 1 个 | 验证码模块中的密钥信息脱敏 |
修复原则:
- 日志输出前自动遮蔽敏感字段(密码→
********、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 不同导致的数据关联错误问题
- 导入日志中详细记录每个选项的匹配结果(命中/新建/跳过)
🔗 关联字段 (Link Field) 全面增强 ⭐
关联记录选择器改为抽屉式交互
- 将原来的弹窗模式替换为右侧抽屉,提供更大的操作空间
- 抽屉内显示目标表的完整视图(支持筛选、排序、分组)
- 支持在抽屉内直接查看关联记录的详细信息(嵌套详情展示)
扩展关联关系类型支持
- 关系类型配置更清晰:一对一 / 一对多 / 多对一 / 多对多 / 多对多(双向)
- 关系类型变更时自动重建反向关联字段
字段缓存服务 ⭐
- 新增 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-202604260001、PO2026000001、EMP-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 存储(多实例部署共享)
文件上传安全验证 ⭐
多层验证机制:
- 扩展名白名单:仅允许安全的文件扩展名(jpg/png/gif/pdf/doc/xls/ppt/zip 等)
- MIME Type 白名单:服务端检查文件的 Content-Type(防伪装扩展名)
- Magic Number 校验:读取文件头字节验证真实文件类型(防 Polyglot 文件)
- 文件大小限制:单文件 ≤ 10MB(可配置),总大小 ≤ 50MB/字段
- 文件内容扫描:可选集成 ClamAV 病毒扫描引擎
- 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 修复
🐛 已知问题
- 暂无
