dcat的一些自定义视图修改封装

<?php
namespace xxxx;

use Dcat\Admin\Admin;
class CustomViewService
{

    /**
     * Desc:修复侧边菜单折叠时点击不收起的bug
     */
    public function fixSidebarBug()
    {
        Admin::script(
            <<<JS
                $(".nav-sidebar .nav-item").on("click",function(){
                    if($("body").hasClass("sidebar-collapse")){
                            $(".main-sidebar").removeClass("sidebar-focused");
                    }
                })
JS
        );
        return $this;
    }
    /**
     * Desc:覆盖dcat默认视图文件
     */
    public function coverDefaultView()
    {
        app('view')->prependNamespace('admin', resource_path('views/laravel-admin'));
        return $this;
    }

    /**
     * @Desc 追加一个my.css覆盖后台样式
     */
    public function coverStyle()
    {
        Admin::asset()->alias('@my-assets', 'assets');
        Admin::css('@my-assets/my.css?v='.mt_rand());
        return $this;
    }

    /**
     * 底部授权移除.
     * @param bool $is
     */
    public function removeFooter($is=true)
    {
        if ($is) {
            Admin::style(
                <<<'CSS'
.main-footer {
    display: none;
}
CSS
            );
        }
    }


}

在 app/Admin/bootstrap.php 中使用

app(CustomViewService::class)
    ->coverDefaultView() // `views/laravel-admin`下同名模板覆盖模板,方便自定义登录页或者改其他模板文件
    ->coverStyle() // 追加一个my.css用来定义样式
    ->removeFooter(); // 隐藏底部dcat字样

dcat的一些自定义视图修改封装

关于为什么不直接在 bootstrap 里面加,而是单独在 CustomViewService 里面加。

因为全写 bootstrap 里面多了之后乱七八糟不好找,拆分到不同的 service 里面方便修改,CustomViewService 管 dcat 的自定义视图,TableService 管表格初始化全局设置,FormService 管表单,MenuService 管菜单,NavbarService 管顶部导航栏,按需注册 Admin::navbar

dcat的一些自定义视图修改封装

dcat的一些自定义视图修改封装

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。