Dcat Admin v1.7.0 发布 - 增加全新菜单样式,以及全组件异步渲染功能

版本变化#

Hi,各位同学大家好!Dcat Admin 又发布新版本了,此次版本更新主要是

  • 优化界面
  • 增加全组件异步渲染功能
  • 还有一些细节上的优化以及若干 Bug 修复

关于 2.0#

2.0 会是一个更加轻量和简洁的版本,在 2.0 版本中我们将会上线:

  1. 全新插件系统,对普通用户和开发者都更加友好(将会兼容 composer 安装和在线安装两种方式)
  2. 开发全新主题,以及更友好的主题扩展机制
  3. 重构内部一些不合理的功能设计
  4. 提炼、简化核心功能,把一些非必要的相对复杂的功能移至插件中心

关于进度

2.0 会在 1.0 的基本功能相对完善之后发布,目前仍在开发中,相信很快就能跟大家见面,感谢大家的关注!

下面简单介绍一下此次更新的主要内容

全新菜单样式#

新菜单样式体验请前往演示站点(点击网站设置可以切换样式),效果如下

界面的样式效果一直都是 Dcat Admin 的重点优化项目之一,后续也会根据用户的反馈不断改进和开发新的主题

全组件异步渲染支持#

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

定义渲染类

<?php

namespace App\Admin\Renderable;

use App\Admin\Widgets\Charts\Bar;
use Dcat\Admin\Support\LazyRenderable;

class PostChart extends LazyRenderable
{
    public function render()
    {
        // 获取外部传递的参数
        $id = $this->id;

        // 查询数据逻辑
        $data = [...];

        // 这里可以返回内置组件,也可以返回视图文件或HTML字符串
        return Bar::make($data);
    }
}

使用

public function index(Content $content)
{
    $modal = Modal::make()
         ->lg() 
         ->delay(300) // loading 效果延迟时间设置长一些,否则图表可能显示不出来
         ->title('异步加载 - 图表')
         ->body(PostChart::make())
         ->button('<button class="btn btn-white"><i class="feather icon-bar-chart-2"></i> 异步加载</button>');

    return $content->body($modal);
}

效果

异步加载表单,创建表单类如下

<?php

namespace App\Admin\Forms;

use Dcat\Admin\Contracts\LazyRenderable;
use Dcat\Admin\Traits\LazyWidget;
use Dcat\Admin\Widgets\Form;

class UserProfile extends Form implements LazyRenderable
{
    use LazyWidget;

    public function handle(array $input)
    {
        return $this->success('保存成功');
    }

    public function form()
    {
        $this->text('name')->required()->help('用户昵称');
        $this->image('avatar')->autoUpload();

        $this->password('old_password');

        $this->password('password')
            ->minLength(5)
            ->maxLength(20);
        $this->password('password_confirmation')
            ->same('password');
    }
}

使用

public function index(Content $content)
{
    $modal = Modal::make()
         ->lg() 
         ->title('异步加载 - 表单')
         ->body(UserProfile::make())
         ->button('<button class="btn btn-white"> 异步加载</button>');

    return $content->body($modal);
}

效果

表格选择器#

之前的版本中提供了弹窗选择器功能,但部分同学反映这个功能体验不是很好,所以这次版本增加了表格选择器(selectTable) 表单,用来替代弹窗选择器功能

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'); // 设置编辑数据显示

效果

权限配置功能优化#

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

更多内容#

此次版本是 Dcat Admin 发布以来更新内容最多,开发时间最长的一次,更多更新内容这里不再贴出,具体查看请前往更新日志

Dcat Admin#

Dcat Admin 是一个基于 laravel-admin 二次开发而成的后台系统构建工具,只需很少的代码即可快速构建出一个功能完善的高颜值后台系统。内置丰富的后台常用组件,开箱即用,让开发者告别冗杂的 HTML 代码,对后端开发者非常友好。

在线演示站点 | LearnKu 官方文档 | Github 主页 (如果喜欢这个项目不妨点个 star,感谢支持!) | Gitee 主页

升级方法#

composer update dcat/laravel-admin

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

php artisan admin:publish --assets --force
php artisan admin:publish --lang --force
本作品采用《CC 协议》,转载必须注明作者和本文链接
Jiangqh
本帖由系统于 4年前 自动加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 33

很不错。越来越好了。

4年前 评论

我们之前用 laravel-admin 做的一个项目,因为功能越来越多,导致左侧的菜单越来越多,需要滚动才能看全,找功能也很麻烦。希望 Dcat Admin 能够提供顶部切换模块,左侧显示模块菜单的功能。

4年前 评论
Jiangqh (楼主) 4年前

file 不关一下 debug 嘛 :neutral_face:

4年前 评论
Jiangqh (楼主) 4年前

发现个 BUG,菜单列表和权限列表都有这个问题

如果子菜单大于等于 4 个,那么删除菜单时候,如果子菜单大于 3 个,那么只会删除前两个,后面的子菜单则不会删除

页面显示没问题,数据库中的数据不对

4年前 评论
Jiangqh (楼主) 4年前
游离不2

不错,要是能跟 laravel-admin 合体就完美了

4年前 评论
Jiangqh (楼主) 4年前

流弊了,前排瓜子板凳

4年前 评论

图片上传这里有点点小问题,本地图片上传也配置了,使用:

$form->image('thumb','项目主图')->uniqueName();

提示需要安装 intervention/image,安装以后不报错,但是上传图片成功后,thumb 字段为空。

4年前 评论
小木 4年前
她来听我的演唱会 (作者) 4年前
小木 4年前
她来听我的演唱会 (作者) 4年前
llys

file
文件上传是不是出问题了
更新之前还是好的 更新完就这样了:astonished:

4年前 评论
Jiangqh (楼主) 4年前
llys (作者) 4年前

更新好勤快,很不错,继续加油 :thumbsup:

4年前 评论

反馈个问题:

file

file

$form->editor('content')->height(800)

富文本编辑器设置 height,languageUrl 这些 option 会导致富文本编辑器样式改变,因为方法内调用了 options 方法,会覆盖全局的 options 配置,可以改为调用 mergeOptions 方法

public function height(int $height)
{
    // return $this->options(['min_height' => $height]);
    return $this->mergeOptions(['min_height' => $height]);
}
4年前 评论
Jiangqh (楼主) 4年前

能搞个 Hyperf 版的吗,特别喜欢这个后台

4年前 评论

说实话, 很漂亮。感觉有那么点不实用,比如操作 table 时,右边的三个点就烦琐了, 直接上操作按钮挺好。或许没深入,哈哈。赞一个,谢谢,楼主

4年前 评论
shebaoting 4年前

怎么进行多图片上传呢?我在文档中只看到单张图片的上传。

4年前 评论
Jiangqh (楼主) 4年前

对接上七牛云之后,在 admin 后台删除图片报错:Argument 1 passed to zgldh\QiniuStorage\QiniuAdapter::logQiniuError () must be an instance of Qiniu\Http\Error, array given, called in /www/wwwroot/qi.guoyupeng.cn/vendor/zgldh/qiniu-laravel-storage/src/QiniuAdapter.php on line 341 是什么原因呢?

4年前 评论
艾特 4年前

之前有一个看的时候有一个 bug,左边菜单栏超过界面的时候上下滑动右面的界面也会跟着滑动

4年前 评论

dcatadmin 大佬,checkbox 和 multipleSelect 多选 双层循环样式,什么时候更新会有?

3年前 评论

自定义页面怎么好写 双层循环 数据

3年前 评论

未填写
文章
13
粉丝
313
喜欢
573
收藏
464
排名:171
访问:5.7 万
私信
所有博文
社区赞助商