Releases: dcat-x/dcat-admin
Releases · dcat-x/dcat-admin
v1.1.26
修复
- DialogForm 弹窗遮罩层残留:关闭弹窗时同步隐藏 Layer shade 遮罩层,重新打开时恢复显示,解决点击关闭按钮后页面灰色遮罩无法消失的问题
- Tree 字段闭包调用错误:修复
Closure::call()将数组绑定为$this导致 PHP 8+ 报错,改为直接调用闭包
Full Changelog: v1.1.25...v1.1.26
v1.1.25
修复
- 固定列右侧行溢出:修复
fixColumns右侧固定列因overflow: visible !important导致行内容超出max-height溢出显示的问题,改用 Bootstrap dropdown 事件(show.bs.dropdown/hide.bs.dropdown)动态切换 overflow,确保下拉菜单正常展开且行不溢出
Full Changelog: v1.1.24...v1.1.25
v1.1.24
新功能
- 操作审计日志:表单保存/更新/删除操作自动记录审计日志,附带
trace_id便于链路追踪 - 日志输出控制:新增
ControlsLogEmissiontrait,支持按组配置采样率、路径白名单/黑名单(config/admin.php→log_control) - 配置健康检查增强:
admin:health-check命令新增--scope、--fail-on、--refresh、--quiet选项,支持分域检查与缓存 TTL - ErrorCode 常量类:统一
validation_failed、save_failed、update_failed错误码
优化
- 权限中间件:URI 精确匹配使用哈希索引(O(1) 查找),前缀匹配按路径首段分组加载候选
- 数据权限:角色 ID、作用域规则、隐藏列/字段均使用实例级缓存,规则异常日志自动去重
- Helper 工具方法:
buildNestedArrayO(n) 索引、matchRequestPathstrpos + array_flip、deleteByValue哈希查找、slug快速路径 - 中间件去重:重复中间件自动合并,减少不必要的执行开销
- 控制器请求级缓存:提取
HasRequestCachetrait,Menu/Permission/RoleController 共用
重构
- 提取
ControlsLogEmissiontrait,Form、Permission 中间件、DataPermission、MenuController、PermissionController 统一使用 - 检查项增加
severity字段(warning/error),inspectByScope支持分域检查 - 菜单缓存配置改为
env('ADMIN_MENU_CACHE', false)
文档
- 新建操作审计与日志控制文档 (
docs/advanced/audit-log.md) - 新建配置健康检查文档 (
docs/advanced/health-check.md) - 更新性能与缓存、权限控制、主题编译、固定列、批量过滤器等文档
修复
- 修复 release workflow 重复创建 release 冲突问题
- 修复 pint 代码风格问题(ordered_traits、unary_operator_spaces、ordered_imports 等)
Full Changelog: v1.1.23...v1.1.24
v1.1.23
Fixed
- 固定列支持折叠操作菜单,不再强制将 DropdownActions 降级为 Actions
- 固定列右侧下拉菜单添加
overflow: visible,确保菜单正常展开 - 操作列和筛选按钮下拉菜单添加
dropdown-menu-right,防止右侧溢出页面
Full Changelog: v1.1.22...v1.1.23
v1.1.22
Changed
- 将剩余 call_user_func 对象方法调用替换为直接调用
- 将 call_user_func 闭包调用替换为具名保护方法
- 大范围 PHPStan 静态分析修复(文档注释与类型安全)
- 细化权限前缀匹配缓存粒度并优化角色/权限查询缓存
- 优化权限中间件前缀匹配策略并补全角色继承支持
- 提升 PHPStan 至 level 1 并修复静态分析问题
- 优化权限链路缓存并补充回归测试
Fixed
- 优化 FixColumns 固定列 JS 实现(命名空间事件、行高同步、mouseenter/mouseleave、resize 防抖)
Tests
- 将 assertEquals 替换为 assertSame,统一使用严格相等断言(300 个文件)
- 大规模清理冗余结构性测试断言(130 个文件)
- 将结构性测试重构为行为验证,提取保护方法增强可测试性
Full Changelog: v1.1.21...v1.1.22
v1.1.21
v1.1.20
v1.1.19
What's Changed
- feat: BatchInput 新增 batchPlaceholder 方法,layer.open 显式设置 shade
Full Changelog: v1.1.18...v1.1.19
v1.1.18
What's Changed
- fix: 统一 layer 弹窗遮罩配置为 shade: [0.3, '#000']
- feat: 新增 BatchInput 批量输入过滤器,支持单条搜索与批量导入
Full Changelog: v1.1.17...v1.1.18
v1.1.17
What's Changed
- test: 第十阶段测试覆盖率提升,新增 24 个 Console 测试文件 (+247 tests, +454 assertions)
- test: 第九阶段测试覆盖率提升,新增 32 个测试文件 (+516 tests, +619 assertions)
- test: 第八阶段测试覆盖率提升,新增 30 个测试文件 (+509 tests, +559 assertions)
- test: 第七阶段测试覆盖率提升,新增 24 个测试文件 (+262 tests, +307 assertions)
- test: 第六阶段测试覆盖率提升,新增 47 个测试文件 (+425 tests, +597 assertions)
- test: 第五阶段测试覆盖率提升,新增 32 个测试文件 (+239 tests, +406 assertions)
- test: 第四阶段测试覆盖率提升,新增 35 个测试文件 (+239 tests, +312 assertions)
Full Changelog: v1.1.16...v1.1.17