Repository navigation
Releases: zhontai/Admin.Core
Release list
v10.1.0
新增功能
- 单点登录服务:新增一次性 Ticket 授权码方案,支持
SsoAppManage应用管理、Ticket 获取/校验及用户信息同步,配套 SSO 实体和仓储 - 用户个人信息扩展:登录用户基本信息新增性别、手机号、邮箱、企业微信名片等字段
- 站点消息:新增获取未读数量接口
- 权限管理:
- 新增查询简单权限列表接口(
PermissionService.GetSimpleListAsync) - 分组、菜单、权限点组件支持打开对话框或切换平台类型后查询上级分组/菜单数据
- 新增分组和菜单默认图标
- 新增 APP 端"系统管理/套餐管理"权限树、视图及对应操作权限
- 新增查询简单权限列表接口(
- 接口管理:模块地址统一增加"项目编码+/"前缀,新增
ApiDocumentHandler.SyncAsyncAPI 文档同步方法 - 动态接口:新增 Void 类型结果格式化支持,与接口返回数据格式保持一致,避免接口文档响应数据无法显示
功能优化
- 接口文档同步重构:改为 gRPC 方式同步,支持多项目并发;新增
AutoSyncToDb项目级自动同步配置,优化启动流程、异常与日志处理 - 字符串转换器增强:
StringNumberConverter重构为StringConverter,支持数字、布尔、null 等类型反序列化为字符串,并在JsonHelper全局注册 - 认证与错误提示优化:优化 401/403 状态码描述并补充国际化资源,认证处理返回本地化提示,前端优先展示后端 msg、细化超时/网络异常提示,图片预览支持缩放
- 权限体系调整:权限与 API 关联关系重构,细化授权控制,完善 APP 端菜单权限,统一权限平台标识,新增
EnableEnumListApi等配置项 - API 路径规范化:大量接口路径统一增加前缀分组
- 安全随机字符串:使用
RandomNumberGenerator生成加密安全随机字符串,默认 32 位 - 前端工程优化:
tsconfig.json启用noEmit、增加allowImportingTsExtensions,优化vite.config.ts路径解析
Bug 修复
- 修复账号穷举漏洞:统一登录失败提示,不再区分"账号不存在"与"账号或密码错误"
- 修复
UserService.GetPermissionAsync在 MySQL 8.0.12 下查询提示Unknown column 'a.Id' in 'on clause'的异常 - 修复权限管理复制功能所属平台未赋值的问题,复制分组、菜单、权限点均可修改所属平台
- 修复权限管理切换平台时树形数据无法展开的问题
- 修复视图管理和权限管理按平台新增时排序未从 1 开始的问题
- 修复管理界面及代码生成器
index.vue.tpl前端模板卸载前移除事件监听使用错误卸载事件的问题 - 修复窗口大小改变时接口重复请求的问题
- 修复 VSCode 无法格式化代码的问题
依赖升级
- 后端 NuGet 包:NLog、Mapster、protobuf-net.Grpc、SkiaSharp、CAP、FreeSql、Grpc、Refit、BouncyCastle 等升级至最新小版本,提升安全性与兼容性
- 前端依赖:element-plus、vue、eslint、vite、axios、dayjs、typescript-eslint 等同步升级,更新接口契约文件与
pnpm-lock.yaml - 测试依赖:Microsoft.NET.Test.Sdk、xunit.runner.visualstudio 等升级
- 项目模板:dev、app 项目模板升级以支持 Admin 最新版本,模板包版本升级至 10.1.0
v10.0.5
v10.0.3
版本发布说明
一、新增功能
1. 网关与后端配置
- Kestrel 配置支持:网关项目新增 Kestrel 服务器配置选项。
- 枚举列表接口开关:新增
AppConfig.EnableEnumListApi配置项,控制枚举列表接口的启用(@TTonlyV5)。 - 后端国际化支持:后端可根据用户前端选择的语言返回对应语言的提示信息。
- 繁体中文支持:admin 后端项目新增繁体中文多语言文件。
2. 前端国际化(i18n)
- 全局函数导入:新增
vue-i18n全局函数导入,简化国际化调用。 - 移除 useI18n 导入:不再需要在组件中手动导入
useI18n。 - 国际化 Key 优化:
- 废弃多级英文 key,统一改为一级中文 key 模板。
- 修复国际化 key 未作为模板编译的问题。
- 组件国际化:完成以下模块的国际化支持:
components组件库- admin 项目
- dev 项目
- 表格与列设置组件文本
- 富文本编辑器
- json编辑器
- cron表达式
- 打印设计器
- 枚举下拉列表选项文本
- 登录界面:新增语言切换设置。
- 时间格式化:新增时间格式化的国际化翻译。
- 繁体中文:admin 与 dev 项目新增繁体翻译文件。
二、功能优化
1. 代码生成器
- 修复配置字典数据时生成代码异常的问题。
- 修复生成业务组件和下拉框后端代码编译异常的问题。
- 优化代码生成器服务模板。
2. 前端交互与样式
- 组件大小调整:修复组件大小改变不能静默生效的问题。
- 分栏样式:优化分栏高亮圆角风格。
- 导航菜单:
- 新增菜单项尺寸控制。
- 菜单项字体随尺寸调整,文本过长时显示省略号并提示。
- 单选按钮组:优化无边框问题。
- 用户管理:查询条件改为计算属性,提升性能。
3. 国际化配置更新
- 更新 dev 和 app 项目的国际化配置。
- 移除冗余的
useI18n导入语句。
三、工程与依赖更新
1. TypeScript 配置
- 将
tsconfig.json中的"moduleResolution": "node"改为"moduleResolution": "bundler"。
2. 接口与模板
- 更新接口文件。
- 升级 dev 项目和 app 项目模板,支持 admin v10.0.3 版本。
3. 依赖版本升级
- 更新 NuGet 和 npm 包至最新版本。
升级注意事项
- 若使用了多级英文国际化 key,需迁移至一级中文 key 模板。
- 前端项目中不再需要手动导入
useI18n,请移除相关代码。 - 代码生成器生成的代码需重新生成并验证编译是否正常。
- 升级前请备份现有国际化翻译文件,尤其是自定义的 key。
v10.0.2
🚀 新增功能
- 项目模板更新
- App 项目模板:新增最新限流配置。
- 网关项目模板:增加代码生成器的代理配置。
- 代码生成器增强
- 创建表字段配置行中组件类型选择增加“无组件”选项。
- 后端相关生成模板更新,支持最新版本命名空间。
- 限流功能重构
- 支持基于客户端 Token 与 UserId 的限流配置。
- 支持限流缓存前缀自定义配置。
- 新增
RateLimitConfig独立配置类。 - 移除原有限流开关与相关缓存配置(
appconfig.rateLimit、cacheconfig.typeRateLimit、cacheconfig.redis.connectionStringRateLimit)。
🔧 配置与模板调整
- App 项目模板:更新缓存与限流配置。
- 默认启用配置中心,提升配置管理统一性。
- App 项目模板文件更新:
- App 项目模板与 Dev 开发项目 Dockerfile 同步调整。
- 网关权限接口文档域名配置由
admin更改为sys。
- WebSocket 连接优化:预连接接口改为匿名访问,并正确返回客户端 ID。
🐛 问题修复
- 启动与生成类问题
- 修复关闭数据同步后程序无法启动的问题。
- 修复代码生成-项目生成及预览界面权限配置不正确的问题。
- 修复代码生成-项目生成点击生成时无等待提示及错误提示缺失的问题。
- 代码生成相关
- 修复代码生成器在生成仓储、服务时未同步最新代码结构的问题。
- 修复生成菜单数据时,部分权限点不受表配置控制的问题。
- 修复视图、菜单及操作权限点排序错误的问题。
- 修复代码生成器关联模型异常及生成字段大小写不一致的问题。
- 修复生成菜单功能异常。
- 系统适配与兼容性
- 修复网关项目模板无法适配 sys 系统项目的问题。
- 修复开发管理界面缓存失效问题。
- 修复因升级 NuGet 包导致的国际化与 gRPC 服务异常。
- 修复前端开发中提示“找不到模块或其相应的类型声明”错误。
- 修复开发环境在线开发接口的操作日志缺少 IP 所属地信息的问题。
- 细节修正
- 修正
RegionLevel.Vilage拼写错误,统一为RegionLevel.Village(#152)。
- 修正
⚡ 优化内容
- 清理冗余数据:删除开发环境初始化中的冗余数据。
- 界面与交互优化:
- 优化项目生成预览样式与详情链接样式。
- 优化代码生成器前端生成模板、表单提示及管理界面模板。
- 优化列设置组件。
- 调整代码生成-项目生成的 ZIP 文件命名。
- 配置与提示优化:
- 限流配置调整为仅控制 API 请求。
- 优化代码生成器服务接口说明。
- 开发项目无法运行的情况提供修改指引。
📦 依赖升级
- 项目模板升级:
- App 项目模板支持 Admin v10.0.2。
- 开发代码生成器支持 Admin v10.0.2。
- 依赖包更新:
- 升级 NuGet 包至最新版本。
- 升级 npm 包至最新版本。
🎉v10.0.0
🚀 核心升级
- 全面升级至 .NET 10.0: 核心库(admin权限管理、dev代码生成器)以及 app、网关、im 服务端项目模板现已全面支持 .NET 10.0,助您利用最新的平台特性。
- 统一 JSON 序列化: 彻底告别
Newtonsoft.Json与System.Text.Json的混用,全系统统一使用高性能的System.Text.Json,提升了序列化效率与一致性。
✨ 新增特性
1. 开发工具与效率
- 新增在线代码生成器 (Dev) 项目: 提供了一个独立的在线开发-代码生成器项目,进一步提升快速开发能力。
- 集成
unplugin-auto-import插件: 自动导入 Vue 常用 API,无需手动引入,显著提升前端开发效率。 - 新增
env.config.js静态配置: 提供了中心化的静态环境配置。.env等动态环境文件可以指定覆盖其配置,同时保留其他未冲突的静态配置,使配置管理更灵活。
2. 前端组件库增强
- 新增
my-table表格组件:- 支持可配置化表头列。
- 轻松绑定表格数据源。
- 完整继承
el-table的所有属性。 - 支持通过插槽 (
slot) 配置自定义列模板。 - 内置强大分页功能,支持分页位置自定义,并继承
el-pagination属性。 - 自动计算分页数据,同时支持服务端和客户端两种分页模式。
- 新增
my-col-set.vue列设置组件: 内置列拖拽排序、置顶、左/右固定、恢复默认等实用功能,为用户提供个性化的表格视图。 - 新增
login/dialog.vue弹窗登录组件: 提供了新的登录交互方式。
3. 后端功能扩展
- 数据字典支持树形结构:
- 数据字典分类支持树形数据管理。
- 字典列表增加树形列展示。
- 实现了树形结构下的新增、查询、导入、导出功能。
- 根据编码和名称查询支持返回树形数据。
- 任务调度增强:
appsettings.json中的TaskSchedulerConfig增加Modules模块列表配置,支持配置模块的远程调用地址。- 报警邮件 (
AlarmEmail) 支持使用空格分隔多个邮件地址。
- 邮件服务: 邮件单发功能增加对是否需要身份验证的检查。
4. 用户体验与界面
- 新增网关项目标题与图标: 网关服务现在可以展示自定义标题和图标。
- 主题配置增强:
ThemeConfigState增加isMobile属性,用于适配移动端视图。 - 组件功能增强:
- 主题设置和日志详情抽屉支持调整大小。
splitter组件增加lazy模式。
⚡ 重要变更
- JSON 序列化迁移: 这是本次版本的一项重大变更。所有实体、远程调用、序列化方法均已从
Newtonsoft.Json迁移至System.Text.Json。升级时请确保检查所有自定义的 JSON 相关代码。 - 组件重构:
- 用户管理、角色管理等页面已将
el-table和el-pagination替换为功能更强大的MyTable组件。 - 多个管理页面不再使用
MySplitPanes组件,改用MySplitter组件。 - 移除了
my-select组件,统一使用el-select组件。
- 用户管理、角色管理等页面已将
- 用户状态与路由:
- 用户信息状态管理的清空方法不再使用
window刷新,改为通过路由导航到登录页,体验更流畅。 - 用户管理组件引用 (
ref) 统一更改为useTemplateRef,以获得更好的 TypeScript 类型推断。
- 用户信息状态管理的清空方法不再使用
- 代码生成与模板:
- 更新了
http-client.ejs请求客户端生成模板。 easyrun脚本现在支持dev项目。
- 更新了
🐛 问题修复
本次版本修复了众多问题,显著提升了系统的稳定性与可靠性,主要包括:
- 权限相关: 修复了角色设置数据权限和套餐权限后,未正确清理用户数据权限的问题;修复了用户拥有多个部门时的权限逻辑问题。
- 项目模板: 修复了 App 项目模板生成
sys项目时缺失滑块验证服务、未正确排除模块示例和ip2region.xdb引用、冗余代码等问题。 - 功能逻辑:
- 修复了空字符串日期无法映射到
DateTime?类型的问题。 - 修复了无 CAP 消息模块时无法记录操作日志的问题。
- 修复了表格查询组件中数字框默认值、高级查询异常等问题。
- 修复了 JWT 刷新失败无提示、多接口 Token 失效后返回多个提示信息的问题。
- 修复了 Admin 后台导入导出功能未正确处理数据字典树形数据的问题。
- 修复了空字符串日期无法映射到
🔧 优化与改进
- 性能优化:
- 优化了组件性能,弃用
InstanceType<typeof ElTable>写法,改用TableInstance,并统一使用useTemplateRef。 - 优化了 JWT 无感刷新机制。
- 优化了组件性能,弃用
- 用户体验优化:
- 优化了任务调度 Cron 表达式样式、抽屉组件页脚、打印设计、分隔面板等组件的视觉样式。
- 优化了数据字典类型与数据的联动效果。
- 优化了任务调度管理的 JSON 编辑器和任务日志抽屉,支持调整大小。
📦 依赖更新
- 前端: 更新 Admin 前端接口至最新版本,并升级所有 NPM 包到最新版本。
- 后端: 更新所有 NuGet 包到最新版本。
- 数据: 更新初始化数据 (
InitData/*) 至最新版本。
升级建议
在升级到 v10.0 时,请务必仔细阅读 【重要变更】 部分,特别是关于 JSON 序列化的迁移,这可能需要您对现有项目代码进行调整。建议在测试环境中充分验证后再部署到生产环境。
v9.1.3
新增
- 🎉数据字典及其数据字典类型支持树形结构和上级ID字段
- 🎉数据库配置 DbConfig 新增:
SyncDataBatchSize同步数据分批处理大小(默认500条/批)IncludeEntityDbs指定实体数据库列表ExcludeEntityDbs排除实体数据库列表
- 🎉新增
DatabaseAttribute数据库特性,用于标记实体类生成到指定的数据库中 - ✨实现日志记录方式自由切换:支持
Grpc和Cap模式(通过AppConfig.Log.Method配置,默认 Grpc) - 新增
LogRepositoryBase日志库基础仓储 - 🎉新增 滑块验证码独立库:
ZhonTai.Plugin.Lazy.SlideCaptcha.Core- 位置调整:从
ZhonTai.Admin.Core移至ZhonTai.Admin.Contracts中使用
- 🎉权限库与日志库分离:实现
AdminDb(权限库)和LogDb(日志库)独立 (#102) - IMServer 即时通讯服务端新增 NLog 日志和健康检查支持
修改
dbconfig.sysUpdateData重命名为dbconfig.syncUpdateData- 废弃
DbKeys.AppDb,统一使用AdminDb操作权限数据库 - Admin.Core项目部分库名调整:
ZhonTai.Gateway.Yarp→ZhonTai.Gateway.Yarp.HostZhonTai.IMServer→ZhonTai.IMServer.Host
修复
- 🦀修复 Linux 环境下滑块验证码异常问题
- 修复 多数据库场景下不支持
HostAppOptions配置的问题 - 🦀修复 数据库导入数据异常
- 🦀修复 租户设置
tenant=false时初始化数据与接口访问异常 (#141) - 修复 打印设计器拖拽组件在暗黑模式下图标显示问题
- 修复 组件在大型尺寸下设置不起作用的问题 (#144)
优化
- ✨所有界面组件支持统一大小切换
- 用户查询条件操作符逻辑优化
- ✨打印模板:
- 视觉样式优化
- 拖拽功能重构,支持自定义图标且每行显示2个组件
- ✨优化数据初始化:
- 通过配置
whereFunc和insertDataFunc初始化数据,规避唯一键冲突导致的启动失败 - 支持分批处理数据,避免 SQL 过大引发内存溢出
- 通过配置
DbHelp.GetEntityType()方法支持按数据库配置过滤实体- ✨操作日志记录,优化时序数据库
Questdb写入逻辑 - 样式改进:
Segmented分段控制器小型尺寸样式Collapse折叠面板视觉样式
- 命令台日志输出时显示数据库名称
升级
- 项目模板升级:
MyApp模板适配 Admin 9.1.3MyImServer模板增强配置(支持 NLog/健康检查)MyGateway模板同步升级- 清理冗余代码
- npm 和 NuGet 包升级至最新版本
v9.1.1
🎉新增 my-high-search高级查询组件新增查询方案选择、新增、修改、删除功能
🎉新增 my-search.vue表单搜索组件,全局查询条件组件命名MySearch,支持展开和收缩更多条件功能
🎉新增 对话框统一调整头部和底部风格
🎉新增 全局组件 my-select 下拉列表组件,用于查询表单组件
新增 json编辑器支持暗黑主题
新增 用户管理新增状态和性别查询条件
新增 视图管理视图地址新增地址前缀和后缀提示
新增 用户管理左侧导航部门增加展开所有、收缩所有功能
修改 用户管理查询条件组件 my-select-input 替换为 my-search 组件
修改 所有 Link 链接 :underline="false" 统一更改为 :underline="never"
修改 所有 Pagination 分页 small 统一更改为 size="small"
修改 所有 Button 按钮 <el-button type="text" /> 更改为 <el-button type="primary" link />
修改 高级查询组件my-filter更改为my-high-search
🦀修复 UnitOfWorkManagerCloud支持多线程并发操作会提示same key的问题
修复 用户软删除操作时,删除用户员工附表的问题
修复 日期控件赋值再清空查询会提示Invalid Date异常问题
✨优化 高级查询查询条件为空字符串查询
优化 .my-query-box 样式,新增 .my-search-box 样式
优化 部门图形样式
更新 nuget包和npm包到最新版本
v9.1.0
🚀 新增功能
- JSON 编辑器组件
- 新增
my-json-editor组件,支持 JSON 字符串或对象数据的编辑。
- 打印模板管理
- 支持拖拽组件、数据源、设计器、配置参数初始化。
- 支持选择纸张、自定义纸张、缩放、排版、打印、预览、查看模板 JSON 功能。
- 小屏幕自适应布局。
- HTTP 客户端优化
- 接口请求时提前 5 分钟主动刷新 Token。
- 用户管理
- 新增回收站功能,支持软删除用户的管理。
- 权限管理
- 角色管理和租户套餐管理支持多平台菜单授权。
- 新增平台过滤查询条件,支持是否系统菜单配置。
- 视图管理
- 支持多平台管理。
- 地区管理
- 同步功能重做,废弃城乡分类代码,新增简称、驻地、人口、面积、区号、邮编等数据。
- 路由元数据
- 新增
isPublic属性,支持免登录页面访问。
- 主题支持
- 登录界面、部门图形、Cron 表达式生成器、滑块验证组件、顶部站内信、站内消息详情、Demo 工作流、Editor 编辑器、大数据图表、打印模板设计界面等均支持暗黑主题。
- 部门接口
- 新增获取部门全路径列表功能。
- 用户查询
- 分页查询列表增加性别、多部门路径、主属部门路径等字段。
💥 重大变更
- AppInfo 属性废弃
- 移除
EffectiveTypes和EffectiveAssemblies属性,避免启动缓慢问题。
- Token 管理
- 移除
tokenInfo中的冗余数据,前端操作 Token 的方法全部更改为操作tokenInfo。
- 权限管理接口
- 修改
PermissionService.GetPermissionListAsync接口,支持视图管理和权限管理的启用控制。
- 冗余表移除
- 移除
TenantPermission租户权限表和AddApiAsync冗余接口方法。
- 主题命名优化
- 将
isIsDark更改为isDark。
- 组件替换
- 废弃
ace-builds和vue3-ace-editornpm 包,VAceEditor组件替换为MyJsonEditor。
🦀 修复问题
- 暗黑模式主题
- 修复影响
element-plus主题色的问题,修复自定义主题色未正确计算的问题。
- 部门图形
- 修复未增加数据刷新事件的问题。
- 用户管理
- 修复用户被软删除后无法重新添加的问题。
- 权限管理
- 修复页面禁用后菜单仍然显示的问题。
- 站内信和消息详情
- 修复不支持深色主题的问题。
- 移动端导航栏
- 修复悬浮导航栏无背景色的问题。
- 任务调度管理
- 修复工具栏操作不支持暗黑主题的问题。
- 操作日志和登录日志
- 修复非超级管理员登录时未启用租户过滤的问题。
- 字典类型
- 修复自动排序错误的问题。
- 权限管理表单
- 修复新增分组、菜单、权限点初始化数据未正确设置的问题。
- App 项目模板
- 修复创建非
sys项目时appsettings缺失逗号的问题。
✨ 优化与改进
- 数据库导入
- 数据文件不存在时发出警告,不再抛出异常。
- 滑块验证组件
- 优化样式。
- 多平台权限管理
- 优化分组、菜单、权限点的新增和修改表单。
- 视图管理
- 优化多平台视图的新增和修改。
- 用户查询接口
- 删除冗余的映射配置,优化查询性能。
- 角色管理
- 优化设置数据权限弹出的对话框宽度。
my-layout/split-panes组件优化
- 修复属性穿透问题,确保组件能够正确接收和传递属性。
- 地区编辑表单
- 优化地区编辑表单的布局。
🎉 更新与升级
- App 项目模板更新
- 支持
admin 9.1.0版本,确保与最新功能兼容。
- 地区和平台数据字典更新
- 更新了地区和平台相关的数据字典数据,确保数据准确性和时效性。
- 依赖包升级
- 升级
npm包和nuget包到最新版本。
v9.0.4
🔮新增 权限库中间表设置联合主键
🔮新增 图片裁剪实现 cropper 2.0版本
✨新增 基础实体类型:EntityUpdateNoId(实体修改无主键Id),EntityAddNoId(实体创建无主键Id)
新增 网关项目模板新增访问上传文件代理配置
新增 app项目模板非sys项目,新增appsettings.RpcConfig.Grpc.ServerAssemblyNames应用接口层配置
修改 app项目模板im配置文件端口由6010更改位17010
修改 将 swaggerResourcePaths 从 'doc/admin' 改为 'doc/sys' 以匹配接口前缀 @sabernagato
🦀️修复 app项目模板,修复发布模块项目后,Grpc服务方法未自动生成的问题
🦀修复 Yarp网关中/upload路径未配置代理转发导致文件访问失败的问题
🦀修复 中间表多对多查询异常的问题
修复 前端 websocket 发布事件未发送数据的问题
升级 npm包最新版本
升级 admin模块nuget包到最新版本
升级 测试库nuget包
升级 app项目模板支持Admin.Core最新版本
v9.0.3
✨新增 Admin项目所有Grpc传输对象更改为显示标记。避免属性或字段名称发生变化,序列化和反序列化受到影响。
⭐新增 appsettings.RpcConfig.Grpc.ServerAssemblyNames服务端程序集名称配置
新增 app项目模板CacheKeys缓存键增加获取模块缓存键方法
新增 app项目模板新增SubscribeNames订阅命名类
🦀️修复 自动反射Grpc服务方法未使用Grpc配置的程序集问题
🦀️修复 app项目模板生成biz和mem项目时,appsettings.RpcConfig.Endpoints中的地址http://会被生成http:,缺失//导致远程地址不正确的问题
修复 dbconfig配置SqlServer数据库连接字符串无法连接SqlServer2022的问题
修复 app应用模板生成sys项目类型时,appconfig.EnumListAssemblyNames多配置ZhonTai.Admin程序集导致前端生成枚举契约不正确的问题
调整 Framework框架模板ImConfig.Servers和Server地址6010端口更改为17010
💥移除 app项目模板CacheKeys缓存键自动扫描特性[ScanCacheKeys]
优化 网关项目模板支持国际化
优化 即时通讯服务端模板支持国际化