Skip to content

v1.3.0-beta(20251109) ​

1. 登录密码传输升级:支持 AES-GCM 加密,提升安全性 ​

为强化系统账户安全,登录相关密码参数现已全面支持 AES-GCM 加密传输。前后端交互时,用户密码字段(password)将以 AES-GCM 算法进行加密后发送,最大限度保障密码信息不被窃取或篡改。

sz-admin 登录请求 AES-GCM 加密 password 字段网络请求截图

一、登录请求示例 ​

前端登录请求体示例:

  • 加密字段:password
  • 随机因子字段:iv
  • 其他辅助参数:clientId、requestId 等

后端会依据 iv 参数完成解密过程,确保密码传输安全可靠。

二、登录请求数限制参数优化 ​

在参数管理模块新增和优化了如下登录安全管控参数:

参数名称Key说明
登录请求次数限制sys.login.requestLimit某时间周期内的登录请求次数限制,按 requestId(Ip+UA)判断,0为不限制
登录次数计数周期(分)sys.login.requestCycle登录请求次数统计的周期,单位为分钟,默认 10 分钟

sz-admin 登录请求次数限制参数 sys.login.requestLimit 配置截图

  • sys.login.requestLimit:限制一段时间内的登录请求次数。若超限,将触发登录保护措施。requestId 由客户端 IP 和 UserAgent 组合生成。
  • sys.login.requestCycle:指定登录请求次数的统计时间范围,默认值为 10 分钟,可根据实际需求灵活调整。

2. 【代码生成器】多文件上传(fileUpload)功能 ​

本次升级,代码生成器新增对多文件上传的支持,涉及后端接口类型变更、前端表单与列表渲染方式,以及数据库表结构调整。请务必阅读并据此更新相关模块,避免兼容性问题。

一、后端类型调整 ​

新增 Java 类型 List<UploadResult> 用于后端服务存储文件。只需在字段定义中选择该类型,代码生成器将在表单中使用 <upload-files> 组件进行多文件上传渲染。 增加java类型List<UploadResult> 用于后端服务的存储,设置此类型后生成的Form表单将使用<upload-files>组件进行渲染。

sz-admin 代码生成器 List<UploadResult> 多文件上传字段类型配置截图

二、前端表单增强 ​

设置字段类型为 List<UploadResult> 后,表单展示样式升级为“多文件上传”。用户可通过拖拽或选择方式上传多个文件。上传区域及回显效果如下:

sz-admin upload-files 多文件拖拽上传组件渲染效果截图

重要说明: 在使用 <upload-files> 组件时,需通过 dir 属性指定目标文件夹路径。 代码生成器生成的默认上传目录为 tmp,如需自定义上传存储目录,例如按业务归类(如 "teacher"),请在代码相应位置调整 dir 属性的赋值。

示例代码:

vue
<upload-files
  v-model:modelValue="fileUrls"
  :limit="5" 				// 指定文件上传数量,代码生成器默认指定5个
  :file-size="3"  			// 指定单文件大小3M,代码生成器默认指定3M
  :dir="'teacher'"          // 指定上传目标文件夹,代码生成器默认指定tmp文件夹
  :debug="true"
  @all-success="handleAllSuccess"
/>

建议在不同业务场景下合理规划上传目录(dir),以便于文件管理和归档。如需修改默认上传路径,请手动调整前端赋值逻辑。

三、列表页面回显方式 ​

需要在前端指定组件类型为 fileUpload,此项配置后,ProTable 列表页面会自动采用 slot + <file-download-list> 回显附件列表:

sz-admin ProTable fileUpload 字段组件类型配置截图

列表页面的附件列表展示效果如下:

sz-admin FileDownloadList 列表页附件回显展示效果截图

四、数据库结构变更注意事项 ​

此次升级需调整表结构,将 url 字段类型由原 varchar 修改为 json,即:

url json DEFAULT NULL COMMENT '文件地址(JSON)'

此举带来不兼容性更新,如需升级请确保先备份数据再做迁移及历史兼容性处理。

存储后的 JSON 结构示例 ​

每个附件对应一个对象,整体保存为 JSON 数组,如下所示:

json
[
    {
        "url": "https://minioapi.szadmin.cn/test/teacher/20251021/bg1.png",
        "etag": "73be62dc9778dc13478c59f0c236feca",
        "size": 105636,
        "dirTag": "teacher",
        "fileId": 158,
        "filename": "bg1.png",
        "metaData": {
            "original-filename": "bg1.png"
        },
        "objectName": "teacher/20251021/bg1.png",
        "contextType": "image/png"
    },
    {
        "url": "https://minioapi.szadmin.cn/test/teacher/20251021/bg7.png",
        "etag": "6b6857c36b4fded86645d0ed2662869b",
        "size": 66861,
        "dirTag": "teacher",
        "fileId": 156,
        "filename": "bg7.png",
        "metaData": {
            "original-filename": "bg7.png"
        },
        "objectName": "teacher/20251021/bg7.png",
        "contextType": "image/png"
    },
    {
        "url": "https://minioapi.szadmin.cn/test/teacher/20251021/bg10.png",
        "etag": "9a546cb494af380c9e2cf5efac2ae362",
        "size": 87531,
        "dirTag": "teacher",
        "fileId": 157,
        "filename": "bg10.png",
        "metaData": {
            "original-filename": "bg10.png"
        },
        "objectName": "teacher/20251021/bg10.png",
        "contextType": "image/png"
    }
]

3. 账户管理新增账户类型 ​

本次升级账户管理模块,新增了账户类型管理功能,为系统账户的身份和权限提供更灵活的控制。 通过账户类型,可精准指定“超级管理员账户”,并针对超管账户自动提升其数据权限与菜单权限,实现更高的系统管控能力。

sz-admin 账户管理新增账户类型权限角色体系截图

一、账户类型管理功能说明 ​

  • 系统账户的身份由账户类型决定。可在账户管理页面,对账户类型进行选择与配置。
  • 新增“超级管理员账户”类型,该类型账户拥有更高的数据和菜单访问权限,适合平台级运维及系统配置管理场景。

二、超级管理员权限配置 ​

  • 超管账户的权限受账户类型与角色参数双重控制。系统支持通过参数管理模块进行超级管理员角色的配置。
  • 参数 key:sys.admin.superAdminRoleId
    • 用于指定拥有超级管理员权责的角色 ID,对应的角色将被赋予超管账户的特权。

sz-admin 超级管理员角色 ID 参数 sys.admin.superAdminRoleId 配置截图

4. 重构角色权限管理(破坏性更新) ​

此次升级对角色权限管理模块进行了重构,涉及数据表结构调整与权限配置合并,属于破坏性更新。原有权限配置可能失效,请升级后务必参考新版方案重新进行角色和权限设置,谨防数据丢失。

一、调整内容与迁移说明 ​

  • 数据权限角色已删除,相关功能已合并至系统角色管理。
  • 数据权限管理菜单已移除,数据权限配置入口合并到【角色管理】-【权限按钮】页面完成。
  • 只有开启数据权限的菜单才能进行配置,并且需要代码声明的对应实现,详见 数据权限-使用指南

二、全新权限配置交互说明 ​

新版的权限设置页面,采用目录(菜单)与属性结构的分区样式。

  • 左侧为目录和菜单,支持菜单分组、筛选。
  • 右侧为当前选中菜单的权限配置区:包括功能权限(按钮、操作)和数据权限(访问范围)。
  • 数据权限的开关需在菜单管理中配置,仅开启数据权限的菜单才能在角色编辑页面配置数据范围,且需后台代码声明相应实现。

具体交互效果如下:

1. 功能权限启用但数据权限未启用 ​

sz-admin 角色权限管理功能权限启用数据权限未启用状态截图

仅可勾选功能层面的操作,数据权限配置不可用。

2. 数据权限启用(非自定义模式) ​

sz-admin 角色权限管理数据权限启用非自定义模式配置截图

3. 数据权限启用(自定义模式) ​

sz-admin 角色权限管理数据权限启用自定义模式配置截图

支持针对用户、部门等维度灵活自定义数据访问范围,可精细化授权权限颗粒。

4. 功能权限与数据权限均未启用,仅设置菜单外链 ​

sz-admin 角色管理仅菜单外链功能权限与数据权限均未启用截图

仅保留菜单授权功能,如外部链接等,其他权限与数据范围控制关闭。

三、数据库变更注意事项 ​

  • 表 sys_data_role_menu、sys_data_role 标记为废弃,相关业务已合并至 sys_role 和 sys_data_role_relation 表。

5. [ImportExcel] 组件模板信息功能优化 ​

本次对 ImportExcel 组件的模板区域进行了升级优化,实现了更加灵活的模板文件下载配置。


一、模板区域结构调整说明 ​

组件升级后,模板信息区域需显示模板的“标识”及“文件名”,并通过下载按钮提供模板文件下载入口。通过指定标识和文件名,系统能够准确定位并下载唯一的模板文件。

sz-admin ImportExcel 组件模板标识与文件名管理功能截图


二、使用方式说明 ​

在调用 ImportExcel 组件时,需通过参数指定模板标识(alias)和模板文件名(fileName)。组件接口会自动根据这两个参数查询模板文件,并完成下载。

示例代码:

vue
// 导入
const ImportExcelRef = ref<InstanceType<typeof ImportExcel>>();
const importData = () => {
  const params = {
    title: '教师统计',
    tempApi: downloadTemplate,
    importApi: importTeacherStatisticsExcelApi,
    getTableList: proTableRef.value?.getTableList,
    alias: 'jstj',  // 指定模板标识
    fileName: '教师统计模板.xlsx'  // 指定模板文件名
  };
  ImportExcelRef.value?.acceptParams(params);
};

注意:alias 和 fileName 应与【模板文件管理】模块中的标识和模板名称保持一致。


三、模板文件管理操作说明 ​

模板文件的标识和文件名来源于【模板文件管理】模块,需提前在系统中进行相关配置。 下图为标识和模板文件名管理操作示例:

sz-admin 模板文件管理标识与模板名称配置示例截图

sz-admin 模板文件管理标识与模板名称配置示例截图二

  • 标识:唯一标记模板文件(如 ‘jstj’)。
  • 模板名称:实际上传的模板文件名(如 ‘教师统计模板.xlsx’)。
  • 备注:可用于区分不同用途模板,便于后续维护。

新增模板文件时,请确保标识和文件名参数正确填写,以便 ImportExcel 组件能正常完成模板定位和下载。

6. 菜单管理操作优化说明 ​

本次对菜单管理操作进行全面优化,无论是目录、菜单还是按钮类型,其创建所需属性均进行了大幅精简,移除非必要字段,目的是提升用户创建效率。


一、属性精简及权限标识逻辑调整 ​

  • 简化菜单创建:不同类型所需属性更精炼,仅需填写必填项即可完成创建。
  • 权限标识调整:移除目录、菜单类型上的权限标识,将权限标识配置逻辑完全转移到按钮类型,只有按钮支持单独设置权限标识,更接近权限实际管控场景。
  • 更合理的权限查询:查询权限标识统一由按钮决定,简化权限配置和后续维护。

二、菜单路由名称优化及升级提示 ​

  • 所有系统组件相关菜单的路由名称进行了简化。例如,角色管理由 /system/roleManage 更改为 /system/role 等。此更改可能导致原有路由失效,升级后请及时检查和修正引用路径。
  • 路由名称的简化有助于统一风格和便于快速定位。

三、不同菜单类型创建所需属性示例 ​

1. 目录类型 ​

sz-admin 菜单管理目录类型创建必填属性截图

  • 必填属性:上级、类型、图标、名称、显示状态、排序

2. 菜单类型 ​

sz-admin 菜单管理菜单类型创建必填属性截图

  • 必填属性:上级、类型、图标、名称、路由相关(名称、地址、组件路径)、显示状态、是否外链、是否全屏/缓存、固定标签页、排序

3. 按钮类型 ​

sz-admin 菜单管理按钮类型创建必填属性截图

  • 必填属性:上级、类型、名称、权限标识、显示状态、排序

只有按钮类型可设置权限标识,目录与菜单类型不能再独立设置权限标识。


7. 【代码生成器】数据权限功能优化 ​

代码生成器现已全面支持自动创建数据权限,让数据权限集成更加高效、便捷。在“生成信息”Tab页下,新增了“自动创建数据权限”选项,且默认开启。启用该功能后,生成的菜单项会自动配置数据权限,并在后台自动生成数据权限控制相关的声明和实现代码。

sz-admin 代码生成器自动创建数据权限功能配置截图

一、功能说明与使用要点 ​

  • 自动创建数据权限:开启后,代码生成器会为新建的菜单自动配置数据权限,无需手动二次设置。
  • 后端自动实现声明:关联的实体、查询将自动集成数据权限控制,提升开发效率与规范性。
  • 风险提示:大部分 SQL 查询将会自动受数据权限控制影响。对于特殊或复杂的 SQL 场景,请务必验证生成结果,复杂情况下有可能导致部分查询无效或异常,建议开发者谨慎使用本功能并根据实际需求对代码进行必要调整。

二、角色权限与数据权限配置 ​

生成代码后,进入“角色管理”,即可为各角色分配对应菜单的访问权限,并灵活调整每个角色的数据权限范围,实现精细化的数据管控。

sz-admin 角色管理为角色分配菜单与数据权限范围配置截图