v1.7.0 更新日志

发布时间 2020/08/23

{tip} 本次版本没有包含不兼容改动,适合所有用户升级。

升级方法

  1. composer update dcat/laravel-admin

本次版本需要重新发布静态资源以及语言包,然后按Ctrl+F5清除浏览器缓存

  1. php artisan admin:publish --assets --force
  2. php artisan admin:publish --lang --force

页面组件

1.组件异步加载

这个版本对异步加载功能进行了优化,使其支持了静态资源按需加载的特性。 目前内置的所有组件都支持使用异步渲染功能,并且支持在页面的任意位置上使用,具体用法请参考文档 异步加载

效果

v1.7.0 更新日志 - 图1

v1.7.0 更新日志 - 图2

2.全新菜单样式以及布局

本次版本增加了新的菜单样式,在配置文件config/admin.php中加上配置参数admin.layout.sidebar_style,默认值为light

  1. 'layout' => [
  2. // 支持 light、primary、dark
  3. 'sidebar_style' => 'light',
  4. ...
  5. ],
  6. ...

primary效果如下

v1.7.0 更新日志 - 图3

v1.7.0 更新日志 - 图4

3.权限配置功能优化

配置权限路径时支持填写路由别名,如 admin.users.show

v1.7.0 更新日志 - 图5

表格

1.行内编辑增加保存成功后刷新页面参数

  1. // 第二个参数设置为 true,保存成功后刷新页面
  2. $grid->column($field)->switch(null, true);
  3. $grid->column($field)->select([...], true);
  4. $grid->column($field)->checkbox([...], true);
  5. $grid->column($field)->radio([...], true);
  6. // 第三个参数设置为 true,保存成功后刷新页面
  7. $grid->column($field)->switchGroup([...], null, true);

2.表格搜索相关功能支持关联关系字段查询

所有涉及搜索的功能,包括:过滤器(Filter)、快捷搜索、规格筛选器、列过滤器等,全部支持关联关系字段查询。 并且如果项目中安装了dcat/laravel-wherehasin,则会优先使用whereHasIn方法进行搜索。

  1. // 快捷搜索
  2. $grid->quickSerach(['user.name']);
  3. // 过滤器
  4. $grid->filter(function ($filter) {
  5. $filter->like('user.name');
  6. });
  7. // 列过滤器
  8. $grid->column($field)->filter(
  9. Grid\Column\Filter\Equal::make()->setColumnName('user.name');
  10. );
  11. // 规格筛选器
  12. $grid->selector(function ($selector) {
  13. $selector->select('user.id', [...]);
  14. });

3.过滤器表单增加表格选择器 (selectTable)

具体使用请参考文档过滤器 - 表格选择器

{tip} 此功能可用于替代弹窗选择器,弹窗选择器即将在 2.0 中废弃

  1. use App\Admin\Renderable\UserTable;
  2. use Dcat\Admin\Models\Administrator;
  3. $filter->equal('user_id')
  4. ->selectTable(UserTable::make(['id' => ...])) // 设置渲染类实例,并传递自定义参数
  5. ->title('弹窗标题')
  6. ->dialogWidth('50%') // 弹窗宽度,默认 800px
  7. ->model(Administrator::class, 'id', 'name'); // 设置编辑数据显示

3.过滤器增加忽略筛选项功能 (ignore)

此功能由@llz贡献

  1. $filter->equal('column')->ignore();

4.规格筛选器选中后跳转到第一页

优化规格筛选器功能,筛选以及取消筛选后跳转到第一页

表单

1.增加颜色选择器 (color)

  1. $form->color('field');

2.增加表格选择器 (selectTable)

具体使用请参考文档表格选择器

{tip} 此功能可用于替代弹窗选择器,弹窗选择器即将在 2.0 中废弃

  1. use App\Admin\Renderable\UserTable;
  2. use Dcat\Admin\Models\Administrator;
  3. $form->selectTable($field)
  4. ->title('弹窗标题')
  5. ->dialogWidth('50%') // 弹窗宽度,默认 800px
  6. ->from(UserTable::make(['id' => $form->getKey()])) // 设置渲染类实例,并传递自定义参数
  7. ->model(Administrator::class, 'id', 'name'); // 设置编辑数据显示

效果

v1.7.0 更新日志 - 图6

3.增加json表单 (array)

如果某一个字段存储的是json格式的二维数组,并且字段比较多,可以使用array表单组件来实现快速的编辑:

  1. $form->array('column_name', function ($table) {
  2. $table->text('key');
  3. $table->text('value');
  4. $table->textarea('desc');
  5. })->saveAsJson();

v1.7.0 更新日志 - 图7

4.增加Checkbox::canCheckAll 方法

启用选中全部功能

  1. $form->checkbox($field)->options([...])->canCheckAll();;

5.增加百度地图组件并优化地图配置参数

在这个版本中配置文件增加了admin.map参数,用于配置地图表单key,用法如下

  1. 'map' => [
  2. 'provider' => 'baidu',
  3. 'keys' => [
  4. 'tencent' => env('TENCENT_MAP_API_KEY'),
  5. 'google' => env('GOOGLE_API_KEY'),
  6. 'baidu' => env('BAIDU_MAP_API_KEY'),
  7. ],
  8. ],

6.增加 saveAsString、saveAsJson 方法

saveAsString方法可以把表单值转化为string类型保存,当保存的数据库字段值不允许为null时非常有用; saveAsJson可以把表单值保存为json格式。

  1. $form->text('nickname')->saveAsString();
  2. $form->multipleSelect('user')->saveAsJson();

7.增加forgetIgnored方法

撤销忽略字段

  1. $form->ignore(['user']);
  2. $form->submitted(function (Form $form) {
  3. $form->forgetIgnored(['user']);
  4. });

8.优化currency、number等诸多表单宽度显示

优化表单字段的默认宽度显示

9.优化currency表单保存时忽略逗号

优化currency表单保存时忽略逗号

10.移除表单提交自动过滤disable、readonly字段功能

从这个版本开始,不再自动过滤disablereadonly表单

其他

1.数据详情字段增加html方法

通过html方法可以在详情页插入一段不显示labelHTML代码,此功能由@Lila贡献

  1. // 传入字符串
  2. $show->html('<br/>');
  3. // 传入视图
  4. $show->html(view(...));
  5. // 传入闭包
  6. $show->html(function () {
  7. // 获取字段信息
  8. $id = $this->id;
  9. $username = $this->username;
  10. return view(..., ['id' => $id]);
  11. });

2.移除 montserrat 字体

BUG修复

  1. 修复数据详情dotprepend方法不支持json以及关联关系字段问题#383
  2. 表单 dateRange 字段设为 disable 时提交报错问题#405
  3. 修复启用了多应用之后无法生成路由缓存问题#409
  4. 修复图表组件chartMarginTop方法变量赋值错误问题
  5. 修复表格过滤器select联动无法默认选中第二个表单问题#422
  6. 修复list表单无法支持xxx.xxx格式问题#452
  7. 修复表单动态显示!=判断异常问题#457