Changelog
按版本倒序记录 Zenith Admin 的功能更新与变更历史。
v0.17.0 - 2026-05-12
Added
消息中心增强
- 新增消息虚拟滚动,大量历史消息场景下渲染性能显著提升,并支持消息高亮定位
- 新增消息回复功能,支持引用回复并在气泡中展示被回复消息内容
- 新增草稿功能,切换会话时自动保存未发送内容,刷新后从 localStorage 恢复
- 新增链接消息类型支持,媒体库新增链接分类浏览
- 新增消息发送失败提示,会话列表中标记发送失败状态
- 新增上下文定位模式,查看历史消息后可一键返回最新消息
- 优化置顶消息交互,新增「取消置顶」按钮
- 在会话列表与聊天页面的 Popover 中展示用户手机、邮箱、部门及岗位信息
系统增强
- 标签页最大数量限制生效,超出限制时展示一次性 Toast 提示
Changed
- 切换媒体库 Tab 时清空旧媒体数据,避免旧数据短暂闪烁
- 用户管理页面交换「编辑」与「修改密码」按钮位置,操作逻辑更符合直觉
Fixed
- 修复文件类型回复消息无法正确显示文件名的问题
- 修复会话处于活动状态时草稿文本未及时清空的问题
- 优化消息列表查询,过滤当前用户已删除(隐藏)的消息
Performance
- 后端认证相关接口(登录、注册、获取/更新个人信息等)多项独立查询改为
Promise.all并行执行 - 聊天服务消除 N+1 查询,改为批量并行数据库查询
- 审计日志写入与 WebSocket 广播延迟至响应后通过
setImmediate异步执行,降低接口延迟
v0.16.0 - 2026-05-11
Added
快捷聊天(QuickChat)
- 新增快捷聊天浮动按钮,可在任意页面快速唤起聊天面板
- 支持在系统设置中控制快捷聊天按钮的显示/隐藏
- 面板支持 Esc 关闭与关闭动画(slide-out)
- 支持通过菜单导航时自动携带当前活跃会话(onConvChange 回调)
- 全屏聊天页面支持通过 URL 参数直接激活指定会话
消息中心增强
- 新增投票消息类型,支持创建和参与投票,消息气泡展示投票选项与结果
- 新增全局消息搜索功能,支持关键词搜索与分页浏览
- 新增未读 @ 我消息提示,会话列表与消息中标记 hasMentionUnread 状态
- 新增「正在输入」提示功能,实时显示正在输入的成员昵称
- 新增内联图片缩略图组件(QuickImageBubble),支持加载受保护图片 URL
- 新增图片和文件发送功能,支持上传后直接发送至聊天
- 消息获取接口改为游标分页(cursorId + hasMore),解决传统分页数据错位问题
WebSocket 稳定性
- 新增 WebSocket 连接状态提示,断线时显示连接断开提醒
- 断线重连成功后自动补拉会话列表与当前会话最新消息
Fixed
- 修复游标分页场景下获取最旧消息 ID 的逻辑,避免 oldestMsgId 被错误置为 null
Changed
- 重构快速聊天按钮与聊天页面组件,采用懒加载优化首屏性能,简化状态管理
- 优化消息追加逻辑,添加 appendMessageOnce 方法防止重复消息插入
- 移除会话项、消息气泡按钮、工作流节点、审批时间线等多处冗余左边框样式
v0.15.0 - 2026-05-09
Added
消息中心增强
- 新增消息内联编辑功能,支持 24 小时内修改文本消息,含快捷键提示
- 新增 @ 提及候选项键盘导航,支持上下方向键选择与回车插入
- 新增会话免打扰功能(数据库新增
is_muted字段),支持静音单个会话 - 新增媒体库面板,可按会话浏览历史图片与文件
- 新增图片预览组件(ImagePreview),替换旧版图片画廊,支持后台加载与灯箱展示
- 新增输入状态动画效果,提升「正在输入」提示的视觉体验
- 优化获取当前用户信息的方式,改用
useAuthHook,移除对 localStorage 的直接解析
Fixed
- 修复转发消息时消息类型丢失的问题,现直接沿用原消息类型
Security
- 在通知与公告页面引入 DOMPurify,对富文本 HTML 内容进行消毒,防范 XSS 攻击
- 强化链接预览接口的私有地址检测逻辑,防范 SSRF 攻击(含重定向跳转场景)
v0.14.0 - 2026-05-06
Added
消息中心增强
- 新增消息转发功能,支持逐条转发与合并转发两种模式
- 新增消息表情回应(Reaction)功能,支持 Emoji 快速反应与计数展示
- 新增文件上传与发送能力,消息气泡支持文件类型展示
- 新增批量删除消息功能(仅对自己隐藏,不影响其他成员)
- 新增收藏消息预览弹窗,支持定位至原消息
- 新增 @ 提及功能,支持快速选择会话成员插入提及
标签页管理
- 新增标签右键上下文菜单:刷新、关闭、关闭其他、关闭全部标签
文档 / 首页
- 新增核心能力矩阵可视化组件(FeatureMatrixFlow),支持点击跳转至对应功能模块
- 优化首页 Hero 区域描述与架构分层展示,补充功能模块文档结构
用户管理
- 部门组织架构树新增「全部展开 / 全部折叠」功能
- admin 超级管理员账号新增删除与禁用保护
Changed
暗色模式背景全面修正
- 消息中心、AI 智能对话、日志文件、IP 访问控制等多个页面的黑色背景统一修正为 Semi Design
bg-1/bg-2色阶,消除纯黑(bg-0)刺眼问题 - AI 对话代码块标题栏、代码内容区、关联问题(hint)背景色统一修正为
bg-2 - 全局 Card 组件背景统一为
bg-1,修复暗色模式下卡片偏深问题
UI 交互统一
- 全局多个模块(系统管理、部门、用户等)的新增、查询、导出、展开/折叠等功能性按钮统一改为
type="primary",提升视觉可见性
依赖升级
- 升级
@douyinfe/semi-ui、lucide-react、recharts、TypeScript、Vitest、@vitejs/plugin-react等至最新版本
v0.13.0 - 2026-05-03
Added
消息中心(聊天)能力增强
- 新增完整消息中心能力:单聊/群聊、会话管理、实时消息、系统消息与消息撤回
- 新增会话置顶/星标、会话删除、未读计数显示与会话时间智能格式化
- 新增消息搜索与上下文定位能力,支持根据关键字快速回溯历史对话
- 新增输入状态通知(typing)、回复消息、图片/文件消息发送与展示能力
群聊管理增强
- 新增群成员管理能力:添加成员、移除成员、群主转让、群名/群公告更新
- 新增群组头像网格展示与成员头像刷新机制,提升群聊识别度
Changed
- 优化消息气泡、时间显示、菜单交互与消息操作体验(收藏、置顶、定位原消息等)
- 更新 README 与文档索引,补充消息中心功能说明
Fixed
- 修复群组头像展示逻辑问题
- 修复用户相关用户名/邮箱唯一性校验边界问题(含租户隔离场景)
- 修复用户验证最小长度限制不一致问题
v0.12.0 - 2026-05-02
Added
在线会话管理增强
- 在线用户列表标识当前浏览器会话(蓝色「当前会话」Tag),精确到 JWT tokenId 级别
- 强制下线新增模式选择弹窗:「仅下线此会话」或「下线该用户全部会话」
- 新增
DELETE /api/sessions/user/{id}接口,支持一键踢出指定用户的所有在线会话
文件管理增强
- 新增文件网格视图,支持图片预览、文件卡片交互
- 文件网格视图支持全选当前页、批量操作
- 新增文件操作下拉菜单(下载、详情、复制链接、删除)
- 新增批量下载功能(使用 fflate 打包为 zip)
- 新增文件类型筛选
登录页面
- 实现登录重定向功能,未登录时保存来源路径,登录后自动跳回
Fixed
- 修复 WebSocket 强制下线只踢出单个 session 而影响同用户其他连接的问题(改用 tokenId 精确管理)
- 修复用户管理选中行键类型转换问题
- 修复文件管理操作下拉菜单路由顺序问题
v0.11.0 - 2026-04-30
Added
监控模块 SSE 实时推送
- 实现 SSE 差量推送机制,仅传输变化的指标数据,减少带宽占用
- 新增连接状态指示灯(连接中 / 已连接 / 断开),支持脉冲动画效果提升用户体验
- 监控页面新增趋势折线图(CPU、内存、网络),可视化历史指标变化
- 新增慢查询与慢日志展示表格
文件管理增强
- 支持多文件同时上传,新增单文件上传 API 接口
- 新增批量删除文件功能,支持勾选后一键删除
- 根据文件类型动态渲染对应图标(图片、文档、压缩包等)
- 新增文件大小格式化工具函数(
formatFileSize) - 文件名称支持悬浮 Tooltip 提示,防止长名称截断无法识别
登录页面优化
- 全面重构登录页视觉风格,更新背景色、Eyebrow 徽标、特性标签展示区域
- 调整底部间距与标题样式,提升整体美观度
Changed
- 登录速率限制从「15 分钟内最多 10 次」调整为「3 分钟内最多 20 次」,优化登录频率控制策略
- 修正文件 URL 拼接逻辑,确保本地存储与对象存储场景下 URL 均正确生成
v0.10.0 - 2026-04-30
Added
主题管理
- 新增
ThemeProvider组件,支持「亮色 / 暗色 / 跟随系统」三种主题模式的切换与持久化 - 主题模式与主题色偏好存储于用户偏好,刷新后自动恢复
- 富文本编辑器新增暗色模式适配样式(
RichTextEditor.css)
审批时间线组件
- 将审批时间线逻辑提取为独立组件
ApprovalTimeline,在「我的申请」「工作流监控」「待我审批」三个页面中复用
Changed
错误处理统一
- 将
AppError自定义错误类替换为 Hono 原生HTTPException,统一全局错误处理链路,减少依赖层次
分页规范完善
- SQL-builder 分页统一使用
withPagination(query.$dynamic(), page, pageSize) - RQB 分页统一使用
pageOffset(page, pageSize),全库完成迁移
审计日志请求体解析
- 重构
setAuditBeforeData函数,新增resolveAuditRequestBody以正确处理 multipart/JSON 等不同请求体格式
Fixed
客户端真实 IP 获取
- 修正
getClientIP逻辑:优先读取x-forwarded-for/x-real-ip头,无反代时回退到getConnInfo获取直连 IP,解决反代场景下 IP 记录错误问题
压缩中间件误压缩流式响应
- SSE 实时推送和文件下载等路由不再经过
compress中间件,修复 SSE 事件流被截断的问题
SideSheet 内表格样式
- 修正侧边抽屉
SideSheet内表格行/表头背景色,使用半透明背景色适配抽屉层级
地区管理表格
- 启用虚拟滚动(
virtualized)并设置垂直滚动高度,解决大量地区数据渲染卡顿问题
工作流实例关键词搜索
- 工作流实例关键词过滤使用
escapeLike转义,防止 SQL 通配符注入
v0.9.0 - 2026-04-26
Added
操作日志前态快照(beforeData)
- 为所有主要业务模块的修改/删除操作补全
beforeData快照注入,覆盖 20+ 路由文件中的 53 个审计操作点 - 新增
getXxxBeforeAudit()辅助函数到所有 service 文件(users、roles、menus、departments、positions、dicts、notices、cron-jobs、system-configs、regions、message-templates、file-storage-configs、workflow-definitions、email-config、tenants、oauth-config、cache、sessions、files、db-backups、workflow-instances),使操作日志详情页的数据变更 diff 功能完整生效 - 敏感字段自动脱敏:
emailConfig.smtpPassword和oauthConfig.clientSecret在快照中替换为******
操作日志详情页增强
- 操作日志详情弹窗新增标签页布局,分为「基础信息」「请求详情」「数据变更」三个标签页,提升可读性
日志文件关键词搜索
- 日志文件内容支持关键词过滤,前端和后端 API 同步支持
keyword参数
Fixed
审计日志日期格式不一致
- 修复
beforeData显示 ISO 8601 格式(2026-04-25T10:00:00.000Z)而afterData显示YYYY-MM-DD HH:mm:ss的不一致问题,所有快照现在统一通过mapXxx()格式化
LIKE 通配符注入防护
- 所有
keyword模糊搜索参数通过escapeLike()helper 转义%/_,防止恶意 LIKE 注入
跨租户数据泄露
- 修复 dicts、files、departments、importUsers、operation-logs 模块的跨租户过滤缺失问题
Changed
工作流实例状态值统一
- 工作流实例相关状态值从
active统一改为enabled,与系统其他模块状态枚举保持一致
v0.8.0 - 2026-04-25
Added
区域选择缓存
RegionSelect组件新增缓存层(RegionSelect.cache.ts),区域数据首次加载后缓存,避免重复请求
Excel 导出
- 新增
okExcel/excelBody响应辅助函数,多个模块支持导出 Excel 文件,日期时间统一使用dayjs格式化
Changed
时间格式规范统一
- 系统内所有日期时间字符串统一为
YYYY-MM-DD HH:mm:ss格式 - 前端新增
formatDateTime/formatDateTimeForApi/formatDateForApi工具函数(packages/web/src/utils/date.ts) - 后端新增
formatDateTime/formatNullableDateTime/formatDate/formatFileTimestamp/parseDateTimeInput等工具函数(packages/server/src/lib/datetime.ts) - 禁止在业务代码中直接调用
toISOString()等原生时间格式化方法
响应体构造规范
- 统一使用
okBody(data, msg?)/errBody(msg, code?)构造响应体,废弃内联字面量对象写法 - 所有路由文件完成规范迁移
请求工具优化
- 下载文件错误处理增强,新增网络请求失败提示,401 状态自动尝试刷新 token
监控页面
- Redis 命令总执行数使用
Intl.NumberFormat格式化,符合中文数字展示习惯 - 修正进度条颜色样式选择器
Fixed
- 修复 SonarLint 安全告警
- 修复用户管理中角色/岗位编码映射的空值安全问题
- 修复历史遗留测试失败(data-scope / auth / system-config)
- 修复工作流设计器高级设置面板重构后的编译错误
v0.7.0 - 2026-04-24
Added
Service 层全量提取
- 后端所有路由(21 个业务模块)完成 Service 层提取,业务逻辑从 route handler 迁移至
packages/server/src/services/下独立的xxx.service.ts文件 - 新增
AppError(packages/server/src/lib/errors.ts),由全局onError统一转为标准 JSON 错误响应,route handler 不再需要手动捕获业务错误 - 数据映射函数统一以
mapXxx命名(纯函数),前置校验函数统一以ensureXxx命名(抛AppError)
日志文件管理
- 新增「日志文件」页面(系统管理菜单下),支持日志文件列表、内容读取(最后 N 行)、实时追踪(SSE)、下载及删除
- 后端新增
/api/log-files路由,含路径穿越安全防护 - 支持
.log与.log.gz压缩日志文件的读取
菜单搜索
- 顶部 Header 新增菜单搜索框,支持按菜单名称或面包屑路径模糊搜索,选中后自动跳转
- 偏好设置新增「显示菜单搜索框」和「显示全屏按钮」开关,可按需隐藏
Changed
UI 规范统一
- 所有列表页面的状态列移至操作列左侧并设为固定列(
fixed: 'right'),涉及:用户管理、部门管理、岗位管理、菜单管理、角色管理、字典管理、地区管理、文件存储配置、工作流、定时任务、数据库备份、消息模板、租户管理等 10+ 个页面
v0.6.0 - 2026-04-23
Added
可观测性支持(OpenTelemetry + Prometheus)
- 集成 OpenTelemetry SDK,支持分布式追踪(通过环境变量
OTEL_*配置) - 集成 Prometheus 指标暴露,新增
/metrics端点 - 更新 API 文档,补充健康检查与指标端点说明
Changed
数据库查询规范化
- 分页列表的
total与list统一使用Promise.all并行执行,禁止串行await - 计数查询统一使用
db.$count(table, where)工具方法,覆盖仪表盘统计、定时任务、通知、消息模板、角色管理等多个路由 - 新增
pageOffset(page, pageSize)工具函数(src/lib/pagination.ts),统一分页偏移量计算,禁止手写(page - 1) * pageSize updatedAt字段通过.$onUpdate(() => new Date())自动维护,db.update().set()中禁止手动传入updatedAt
关联查询优化
- 推荐使用 Drizzle RQB(
db.query.*)替代手写LEFT JOIN,用户角色查询、用户管理等路由已迁移
事务原子性增强
- 通知接收者保存、角色菜单分配、角色用户分配、API Token 相关多步写操作统一使用
db.transaction()确保原子性
v0.5.0 - 2026-04-22
Added
实体 DTO 中心化架构
- 所有响应实体 DTO 按业务域拆分至
packages/server/src/lib/dtos/(iam/auth/dict/files/logs/notices/system/workflow/dashboard/region/messages) - 通过
src/lib/openapi-dtos.ts统一 re-export,各路由通过import { XxxDTO } from '../lib/openapi-dtos'导入,禁止路由内本地声明.openapi('EntityName')的 DTO
统一路由定义模式
- 全面迁移至
defineOpenAPIRoute+router.openapiRoutes()模式 - 移除
<AuthEnv>泛型和全局router.use('*', authMiddleware),每个受保护路由在createRoute.middleware中显式声明鉴权 - 覆盖用户、角色、工作流实例/定义、会话管理、租户管理等核心路由
统一验证失败响应(validationHook)
- 新增
validationHook,所有OpenAPIHono实例通过defaultHook: validationHook将 Zod 校验失败统一转为{ code: 400, message, data: null }标准格式
安全防护增强
- 新增 CSRF 防护(
hono/csrf):通过ALLOWED_ORIGINS环境变量配置白名单 - 新增接口限流(
hono-rate-limiter+ Redis):对高危认证接口限制请求频率,超限返回code: 429
OpenAPI 文档升级至 3.1.0
- 使用
app.doc31替代app.doc,输出 OpenAPI 3.1.0 规范
全量数据接口
- 用户、岗位、角色模块新增
/get/all接口,支持不分页的全量数据获取
服务端分页扩展
- 字典、角色、文件存储配置、操作日志、岗位、会话列表等模块支持服务端分页
- 前端对应页面新增
pageSize状态,支持用户动态调整每页条目数
Changed
- 共享层
@zenith/shared升级至 Zod v4(^4.3.6),与@hono/zod-openapi@1.x保持一致 - 认证中间件重构:使用 Hono 官方 JWT 中间件替代自定义 JWT 验证逻辑
- 上下文管理优化:使用
tryGetContext替代getCtx,简化错误处理 - 路由中间件统一改用
hono/factory的createMiddleware
Fixed
- 修复通知模块发布时间(
publishTime)字段类型验证逻辑 - 修复文件存储配置更新时合并逻辑,确保状态字段正确保留
- 修复数据库备份时间戳格式化(冒号/点号替换)导致的文件名错误
- 修复邮件配置测试发送时的邮箱与 SMTP 信息校验条件
v0.4.0 - 2026-04-22
Added
OpenAPI 自动生成支持
- 全面迁移后端路由至
@hono/zod-openapi(OpenAPIHono),路由定义自动汇总生成 OpenAPI Spec - 所有请求参数通过
createRoute+ Zod schema 声明,支持请求验证与响应格式化 - 涵盖路由管理、工作流实例、缓存管理等模块的 OpenAPIHono 重构
全局请求上下文存储
- 引入
hono/context-storage中间件,提供currentUser()/getCtx()零参取值函数 - 辅助函数无需层层透传
c参数,简化请求上下文访问
请求防护
- 新增请求体大小限制(
REQUEST_BODY_LIMIT)和请求超时(REQUEST_TIMEOUT_MS)环境变量配置 - 默认不启用,超出限制分别返回
code: 413/code: 408
性能分析
- 新增
Server-Timing响应头支持,可通过环境变量ENABLE_SERVER_TIMING开启
Changed
- 切换 JWT 实现为 Hono 官方库(
hono/jwt),移除jsonwebtoken依赖 - 参数校验统一改用
zValidate中间件(@hono/zod-validator),覆盖用户、角色、通知、OAuth、岗位、地区、系统配置、租户、工作流等模块 - 日志中间件重构:替换自定义
httpLogger为 Hono 官方logger,并去除日志中的 ANSI 控制字符
v0.3.2 - 2026-04-21
Added
菜单管理
- 搜索栏新增「菜单名称」文本筛选与「状态」下拉筛选,支持客户端递归过滤树形数据
字典管理
- 搜索栏新增「状态」下拉筛选和「创建时间」日期范围筛选
- 字典列表新增「描述」列
- 字典项侧边抽屉加宽(700 → 900),顶部新增标签/键值文本搜索与状态下拉筛选(客户端实时过滤)
v0.3.1 - 2026-05-03
Added
定时任务增强
- 定时任务配置新增「重试次数」「重试间隔(ms)」「监控超时时间(ms)」字段,支持任务失败后自动重试
- 执行日志新增「第几次执行」列,记录每次触发的累计执行次数
- 执行日志抽屉加宽,输出列固定宽度,内容不再被挤压
Changed
- 登录页表单输入框去掉标签,改为纯 placeholder 风格,界面更简洁
- 定时任务列表「上次执行」状态由英文(success/fail/running)改为中文显示(成功/失败/运行中)
- 定时任务列表描述列固定宽度 200px,避免过窄
Fixed
- 修复手动创建 Drizzle 迁移文件不注册到 journal 导致迁移不执行的问题
v0.3.0 - 2026-04-20
Added
工作流模块
- 新增工作流设计器:基于 React Flow 的可视化流程图设计,支持节点拖拽、连接与属性配置
- 新增多种节点类型:发起人节点、审批节点、抄送节点、分支条件节点,配置各节点的审批人策略、超时处理、拒绝策略等高级设置
- 新增表单权限与操作权限配置:流程节点可独立配置字段可见性与按钮权限
- 新增飞书风格审批时间线组件,替代原 Steps 展示审批记录
- 新增「我的申请」页面:用户可发起流程申请,查看申请列表与审批详情
- 新增「待审批」页面:展示待办任务,支持审批通过/驳回并填写意见
- 新增全局流程监控页面(管理员视角):查看所有流程实例状态及统计信息
AI 助手
- 新增 AI 智能助手功能,包含独立对话页面(AIChatPage)与侧边栏入口(AISidebarPage)
- 支持富文本消息内容、演示模式切换及 MCP 工具配置
用户管理增强
- 用户表新增手机号码字段,支持手机号的录入、展示与搜索过滤
- 列表页左侧新增部门树面板,可点击部门节点快速筛选该部门下的用户
消息模板
- 新增消息模板管理模块:支持模板的增删改查与内容预览
定时任务
- 定时任务列表新增「执行日志」入口,支持以抽屉形式查看全部执行记录
表单设计器
- 新增分栏(row)、分割线(divider)、分组(group)三种布局类型字段
测试覆盖
- 新增多模块单元测试:权限管理、数据范围、认证中间件、认证 Hook、权限 Hook、密码策略、工作流引擎、区域选择组件等
Changed
搜索工具栏重构
SearchToolbar组件 API 简化:移除left/right独立区域概念,统一使用children作为工具栏内容,由<Space wrap>自动换行排列- 全站所有列表页同步更新为新 API,搜索输入框与操作按钮统一放置在同一行
表单体验优化
- 批量为各模块表单的 Select / Input 补充
placeholder,提升空状态引导体验 - 用户、部门管理的新增/编辑弹窗改为 Row/Col 双列布局,节省垂直空间
其他
- 仪表盘新增骨架屏(Skeleton)替换原 Spin,消除空白加载态
- 侧边栏与卡片样式改用 CSS 变量,提升主题切换一致性
- 标签(Tab)支持拖拽排序
Fixed
- 修复仪表盘饼图标签显示异常(名称与百分比渲染错误)
- 修复文件存储配置页面提供者标签颜色映射错误
- 修复用户编辑接口中日期字段格式化与头像字段处理逻辑
v0.2.0 - 2026-03-31
Added
安全与访问控制
- 新增忘记密码功能:用户可通过邮件找回密码,后端生成带时效重置 Token 并发送重置邮件
- 新增 IP 访问控制:支持配置 IP 白名单与黑名单,中间件自动拦截非法请求
水印功能
- 新增页面水印功能,企业后台防截图泄漏
- 水印作为系统配置项管理(
watermark_enabled/watermark_content/watermark_font_size/watermark_opacity),默认关闭 - 水印内容留空时自动回退为当前登录用户的 nickname/username
文件存储扩展
- 文件存储支持扩展至三种模式:本地(local)、阿里云 OSS、AWS S3、腾讯云 COS
- 更新数据库结构,新增
provider枚举字段及相关配置字段
通知公告增强
- 新增通知收件人机制:发布通知时可指定目标类型(全体/指定用户/指定角色/指定部门)
- 新增已读统计功能(管理员视角):列表页展示已读人数,点击可查看详细已读/未读用户列表
- 通知详情弹窗:通知列表与铃铛入口均支持点击查看完整内容
- 通知内容展示安全优化:新增
stripHtml处理,列表预览不再dangerouslySetInnerHTML
仪表盘图表
- 仪表盘新增三类统计图表:登录趋势折线图、操作类型分布饼图、用户活跃度排行图
缓存管理
- 新增缓存管理页面,支持查看全部缓存键值、按分类删除缓存、一键清空所有缓存
监控页面优化
- 系统监控页面重构为 Tabs 标签页布局,分类展示 CPU/内存/磁盘/进程等信息
- 加载阶段使用 Skeleton 骨架屏替换 Spin,提升视觉体验
文档完善
- 新增多篇技术文档:定时任务与数据库备份、OAuth 第三方登录、安全体系、公共组件指南、前端路由与菜单、演示模式、项目结构等
Changed
- 登录页视觉优化:调整品牌区背景与装饰元素,功能特性列表展示更清晰
- 系统配置种子数据写入改为幂等逻辑(先查询现有 key,仅插入缺失项,避免重复执行报错)
- 多租户模式下密码重置与用户查询逻辑优化,确保租户隔离正确性
Fixed
- 修复系统配置中 IP 白名单/黑名单配置项结构冗余问题,简化配置管理逻辑
v0.1.5 - 2026-03-27
Added
多租户支持
- 新增多租户架构支持(
MULTI_TENANT_MODE=true),实现租户数据隔离(tenant_id字段 +tenantCondition查询工具函数) - 新增租户管理 CRUD 页面(
/system/tenants),支持租户的增删改查 - 支持超管切换租户视角,切换后系统自动过滤对应租户数据
- 新增多租户部署指南文档
个人中心
- 新增 API Token 管理 Tab:支持创建、查看、删除个人 API Token,用于第三方接口调用鉴权
布局与交互
- 顶部工具栏新增全屏切换按钮,支持一键全屏
- 新增面包屑导航,显示当前页面层级路径(位于标签栏下方)
- 偏好设置新增主题色选择器和标签页切换动画开关
菜单管理
- 新增「全部展开 / 全部折叠」按钮,方便快速浏览多层级菜单树
地区管理
- 省市选择升级为级联选择器(Cascader),交互更直观
系统配置
- 新增配置类型字典(
system_config_type),列表页支持按类型筛选配置项 - 系统管理菜单拆分为「系统管理」和「系统设置」两个独立一级菜单
搜索工具栏组件
- 新增
SearchToolbar公共组件,统一搜索区域布局(左侧搜索条件、右侧操作按钮),全站 CRUD 列表页面全面迁移使用
Changed
- 路由加载方式升级为
React.lazy+Suspense,减少首屏加载体积 - 新增
@路径别名(指向src/),全站模块导入统一使用短路径 - 全面类型安全优化:所有页面
Form的getFormApi回调统一使用FormApi类型替代any
Fixed
- 修复菜单管理页面
onExpandedRowsChange回调中行数据类型不一致导致的运行时错误 - 修复用户更新接口错误写入
passwordUpdatedAt的问题 - 修复管理员默认账号在重复执行 seed 时触发唯一约束冲突的问题
v0.1.4 - 2026-03-26
Added
密码策略与安全
- 新增密码复杂度配置项(最小长度、是否必须大写字母/特殊字符),用户创建和密码修改接口自动校验
- 新增密码过期功能:可设置密码有效期天数,过期后登录触发强制修改密码弹窗
- 新增注册功能开关(
allow_registration):支持全站启停开放注册,登录页入口动态显示
用户批量导入
- 新增 Excel 导入接口,支持按部门/岗位/角色编码自动关联,逐行报告失败原因
- 用户管理页新增「导入」按钮,支持模板下载、文件上传与导入结果展示
邮件配置
- 新增
email_configs数据库表及 SMTP 配置读写接口(支持发送测试邮件) - 新增「邮件配置」菜单页面,涵盖 SMTP 主机、端口、加密方式、授权密码等配置
OAuth 第三方登录
- 支持 GitHub、钉钉、企业微信三种 OAuth 提供方,登录后自动创建或绑定账号
- 新增 OAuth 配置管理页面(
/system/oauth-config),可配置各提供方的 Client ID / Secret - 个人中心新增「关联账号」Tab,可查看已绑定的第三方账号
数据库备份管理
- 新增数据库备份功能(基于 pg_dump),支持手动触发、下载及删除备份文件
- 新增「数据库备份」菜单页面(
/system/db-backups)
其他
- 顶部标签栏新增右键上下文菜单(关闭当前/其他/左侧/右侧/全部标签)
- 新增 Vitest 单元测试配置,覆盖密码策略、输入净化、验证码、日期格式化等工具函数
Changed
- 侧边栏菜单支持独立滚动,滚动条改为极窄样式,子菜单添加最大高度限制
- 登录页第三方登录图标替换为
@iconify/react组件 - OpenAPI Spec 补充邮件配置、用户导入、密码策略、OAuth 登录、数据库备份接口文档
v0.1.3 - 2026-03-26
Added
仪表盘
- 新增仪表盘统计接口(
GET /api/dashboard/stats),提供用户总数、在线人数、今日登录次数、今日操作次数等统计数据 - 新增仪表盘前端页面,展示系统概况卡片、通知公告列表及技术架构信息
- 通知公告区域新增「查看更多」按钮,点击跳转至通知公告管理页面
用户管理
- 新增用户解锁功能,支持解除登录锁定状态(
POST /api/users/:id/unlock) - 新增批量删除用户接口(
DELETE /api/users/batch) - 新增批量更新用户状态接口(
PUT /api/users/batch-status),支持批量启用 / 禁用 - 新增重置用户密码接口,允许管理员重置指定用户的登录密码
通知中心
- 新增通知收件箱功能,用户可查看自己收到的通知列表(含分页)
- 新增「全部标记为已读」接口,一键将所有未读通知设为已读状态
菜单管理
- 新增个人中心与通知中心两个系统内置隐藏菜单,支持导航路由但不显示在侧边栏
个人资料页
- 新增「我的登录记录」Tab,展示当前用户的历史登录记录
- 新增「我的操作记录」Tab,展示当前用户的历史操作日志
Changed
- 仪表盘技术架构展示区域重构,使用 List 组件替代原有列表,提升可读性
- 通知中心界面布局优化,合并重复代码,组件结构更简洁
Fixed
- 修复顶部导航品牌区域缺少点击跳转首页功能
v0.1.2 - 2026-03-25
Added
后端
- 集成 Swagger UI,新增两个无需认证的端点:
GET /api/docs— Swagger UI 交互界面GET /api/openapi.json— OpenAPI 3.0 JSON Spec(可导入 Postman / Apifox)
- 新增
packages/server/src/openapi.ts,以 TypeScript 对象维护 OpenAPI 3.0 Spec,覆盖全部 API 分组
操作日志
- 操作日志列表新增 IP 地址搜索筛选条件,支持模糊匹配
文档站点
- 新增「Swagger / OpenAPI」章节,说明文档访问、鉴权、导入及 Spec 维护方式
- 新增「系统内置配置」章节,说明 5 个内置配置项的用途、类型、默认值及使用方式
- 新增「操作日志与变更记录」章节,说明 Diff 机制架构及如何为新路由添加变更快照
- 更新「Zenith Skill」章节,新增后端路由规范与前端页面规范说明
Fixed
- 修复 CronJobsPage 使用不存在的
Drawer组件导致的运行时错误(改为SideSheet) - 修复 CronJobsPage
cronExprValue和handlers状态变量未声明的运行时错误
v0.1.1 - 2026-03-25
Added
通知管理
- 通知内容编辑器升级为富文本编辑器(基于 wangEditor),支持格式化文本与图片插入
- 富文本编辑器支持图片上传,通过 Authorization 头上传图片并自动插入到编辑器
- 通知列表支持 HTML 内容渲染(
dangerouslySetInnerHTML),展示富文本内容 - 通知编辑界面改用 SideSheet 侧边抽屉,提升编辑体验
- 通知内容字段类型从
varchar升级为text,支持长文本存储 - 通知管理添加批量删除功能,后端新增
DELETE /api/notices/batch接口
组件与前端
- 新增省市区三级联动选择组件(
RegionSelect),基于 Semi Design Cascader 封装,支持动态加载 - 组件示例页面新增省市区联动选择演示
Changed
- WebSocket 连接管理优化:添加自动重连机制,使用 Map 记录最近通知时间戳,避免重复推送通知
- 岗位管理添加批量删除功能,后端新增
DELETE /api/positions/batch接口
Fixed
- 修复个人资料页密码更新接口路径错误(
/auth/password→/api/auth/password) - 修复超级管理员和普通用户角色的数据范围字段缺失问题
Docs
- 重构部署文档,新增贡献指南与维护说明
- 更新首页文档,补充 Semi Design v2 和 lucide-react 技术栈说明
v0.1.0 - 2026-03-25
首个正式版本,包含完整的后台管理基础框架。
Added
认证与账户
- 用户登录 / 登出,JWT Bearer Token 鉴权(7 天有效期)
- Access Token + Refresh Token 自动续期机制
- 登录验证码校验,降低暴力尝试风险
- 个人中心:基本资料维护、头像上传、密码修改
权限体系
- 用户管理:用户 CRUD、启停用、角色分配
- 角色管理:角色 CRUD、菜单权限配置
- 菜单管理:目录 / 菜单 / 按钮三级能力模型
- 动态菜单路由:前端根据当前用户角色自动注册可访问页面
组织与基础资料
- 部门管理:树形组织层级维护
- 岗位管理:岗位信息维护
- 数据字典:字典类型与字典项统一管理
- 系统配置:系统运行相关配置项维护
通知、审计与安全
- 通知公告:发布、查看、已读状态管理,WebSocket 实时推送
- 登录日志:登录行为记录与安全审计
- 操作日志:关键业务操作轨迹记录
- 在线会话:查看当前在线会话,支持强制下线
文件与存储
- 文件管理:上传、列表查询、下载等基础能力
- 存储配置:本地文件系统 / 阿里云 OSS 双模式,支持切换默认存储
任务与运维
- 定时任务:Cron 任务管理与服务端调度执行
- 系统监控:运行状态相关信息查看
- WebSocket:支持实时通知与会话下线消息推送
- 健康检查:
/api/health接口,用于服务探活
基础设施与工程
- npm monorepo 结构(
server/web/shared三包) - Redis 会话持久化(ioredis),支持 URL 与逐项两种配置方式
- Drizzle ORM + PostgreSQL,迁移文件版本化管理
- Demo 演示模式(MSW Mock Service Worker),无需后端即可完整运行
- VitePress 文档站,自动部署到 GitHub Pages
- GitHub Actions Release 工作流:推送 tag 自动构建并发布产物
- AI 友好:
AGENTS.md+ Zenith CRUD Skill,支持 AI 辅助开发