本次版本主要更新了全新菜单样式、全组件异步渲染功能以及诸多其他功能的优化。
页面组件
1.组件异步加载
这个版本对异步加载功能进行了优化,使其支持了静态资源按需加载的特性。 目前内置的所有组件都支持使用异步渲染功能,并且支持在页面的任意位置上使用,具体用法请参考文档 异步加载。
效果
2.全新菜单样式以及布局
本次版本增加了新的菜单样式,在配置文件config/admin.php
中加上配置参数admin.layout.sidebar_style
,默认值为light
'layout' => [
// 支持 light、primary、dark
'sidebar_style' => 'light',
...
],
...
效果如下
3.权限配置功能优化
配置权限路径时支持填写路由别名,如 admin.users.show
表格
1.行内编辑增加保存成功后刷新页面参数
// 第二个参数设置为 true,保存成功后刷新页面
$grid->column($field)->switch(null, true);
$grid->column($field)->select([...], true);
$grid->column($field)->checkbox([...], true);
$grid->column($field)->radio([...], true);
// 第三个参数设置为 true,保存成功后刷新页面
$grid->column($field)->switchGroup([...], null, true);
2.表格搜索相关功能支持关联关系字段查询
所有涉及搜索的功能,包括:过滤器(Filter)、快捷搜索、规格筛选器、列过滤器等,全部支持关联关系字段查询。 并且如果项目中安装了dcat/laravel-wherehasin,则会优先使用whereHasIn
方法进行搜索。
// 快捷搜索
$grid->quickSerach(['user.name']);
// 过滤器
$grid->filter(function ($filter) {
$filter->like('user.name');
});
// 列过滤器
$grid->column($field)->filter(
Grid\Column\Filter\Equal::make()->setColumnName('user.name');
);
// 规格筛选器
$grid->selector(function ($selector) {
$selector->select('user.id', [...]);
});
3.过滤器表单增加表格选择器 (selectTable)
具体使用请参考文档过滤器 - 表格选择器
此功能可用于替代
弹窗选择器,弹窗选择器即将在
2.0
中废弃
use App\Admin\Renderable\UserTable;
use Dcat\Admin\Models\Administrator;
$filter->equal('user_id')
->selectTable(UserTable::make(['id' => ...])) // 设置渲染类实例,并传递自定义参数
->title('弹窗标题')
->dialogWidth('50%') // 弹窗宽度,默认 800px
->model(Administrator::class, 'id', 'name'); // 设置编辑数据显示
3.过滤器增加忽略筛选项功能 (ignore)
此功能由@llz贡献
$filter->equal('column')->ignore();
4.规格筛选器选中后跳转到第一页
优化规格筛选器功能,筛选以及取消筛选后跳转到第一页
表单
1.增加颜色选择器 (color)
$form->color('field');
2.增加表格选择器 (selectTable)
具体使用请参考文档表格选择器
此功能可用于替代
弹窗选择器,弹窗选择器即将在
2.0
中废弃
use App\Admin\Renderable\UserTable;
use Dcat\Admin\Models\Administrator;
$form->selectTable($field)
->title('弹窗标题')
->dialogWidth('50%') // 弹窗宽度,默认 800px
->from(UserTable::make(['id' => $form->getKey()])) // 设置渲染类实例,并传递自定义参数
->model(Administrator::class, 'id', 'name'); // 设置编辑数据显示
效果
3.增加json表单 (array)
如果某一个字段存储的是json
格式的二维数组,并且字段比较多,可以使用array
表单组件来实现快速的编辑:
$form->array('column_name', function ($table) {
$table->text('key');
$table->text('value');
$table->textarea('desc');
})->saveAsJson();
4.增加Checkbox::canCheckAll 方法
启用选中全部功能
$form->checkbox($field)->options([...])->canCheckAll();;
5.增加百度地图组件并优化地图配置参数
在这个版本中配置文件增加了admin.map
参数,用于配置地图表单key,用法如下
'map' => [
'provider' => 'baidu',
'keys' => [
'tencent' => env('TENCENT_MAP_API_KEY'),
'google' => env('GOOGLE_API_KEY'),
'baidu' => env('BAIDU_MAP_API_KEY'),
],
],
6.增加 saveAsString、saveAsJson 方法
saveAsString
方法可以把表单值转化为string
类型保存,当保存的数据库字段值不允许为null
时非常有用; saveAsJson
可以把表单值保存为json
格式。
$form->text('nickname')->saveAsString();
$form->multipleSelect('user')->saveAsJson();
7.增加forgetIgnored方法
撤销忽略字段
$form->ignore(['user']);
$form->submitted(function (Form $form) {
$form->forgetIgnored(['user']);
});
7.优化currency、number等诸多表单宽度显示
优化表单字段的默认宽度显示
8.优化currency表单保存时忽略逗号
优化currency表单保存时忽略逗号
9.移除表单提交自动过滤disable、readonly字段功能
从这个版本开始,不再自动过滤disable
和readonly
表单
其他
1.数据详情字段增加html方法
通过html
方法可以在详情页插入一段不显示label
的HTML
代码,此功能由@Lila贡献
// 传入字符串
$show->html('<br/>');
// 传入视图
$show->html(view(...));
// 传入闭包
$show->html(function () {
// 获取字段信息
$id = $this->id;
$username = $this->username;
return view(..., ['id' => $id]);
});
2.移除 montserrat 字体
BUG修复
- 修复数据详情
dot
、prepend
方法不支持json
以及关联关系字段问题#383 - 表单 dateRange 字段设为 disable 时提交报错问题#405
- 修复启用了多应用之后无法生成路由缓存问题#409
- 修复图表组件chartMarginTop方法变量赋值错误问题
- 修复表格过滤器select联动无法默认选中第二个表单问题#422
- 修复
list
表单无法支持xxx.xxx
格式问题#452 - 修复表单动态显示
!=
判断异常问题#457
简介
Dcat Admin是一个基于laravel-admin二次开发而成的后台系统构建工具,只需很少的代码即可快速构建出一个功能完善的高颜值后台系统。内置丰富的后台常用组件,开箱即用,让开发者告别冗杂的HTML代码,对后端开发者非常友好。
在线演示站点 | 官方文档 | Gitee主页 | Github主页