Dcat Admin:自制頁面與如何引入靜態(tài)資源文件

通過自定義類,自定義模板來實(shí)現(xiàn)特定需求,如何引入js,css文件,如果在自定義的類或者模板里,添加css,js代碼?

接下來以自定義的動作類來進(jìn)行舉例說明,創(chuàng)建一個(gè)全局動作類

php artisan admin:action
選擇0,可以應(yīng)用到任何位置
Which type of action would you like to make?:
  [0] default
  [1] grid-batch
  [2] grid-row
  [3] grid-tool
  [4] form-tool
  [5] show-tool
  [6] tree-row
  [7] tree-tool
 > 0

在這個(gè)類里,引入相應(yīng)的 JS,CSS靜態(tài)資源文件,有兩種辦法。

1. 通過注冊組件的方式

在Dcat 框架中,靜態(tài)資源的存儲位置目錄是在

public/vendor/dcat-admin/dcat/plugins

所有的JS組件和對應(yīng)的css文件默認(rèn)都放在這里,當(dāng)然我們也可以在其它目錄上傳資源文件。

先進(jìn)入app\Admin\bootstrap.php文件
官方手冊:https://learnku.com/docs/dcat-admin/2.x/static-resources/9720#3c8750

在bootstrap.php 做兩件事:
(1)注冊路徑別名
(2)注冊組件

注冊路徑別名,可以先把前面的目錄綁定到變量上,這樣后面就可以少寫一些代碼了。

Admin::asset()->alias('@jiemo','vendor/dcat-admin/dcat/plugins');

然后注冊組件
使用Admin::asset()方法,返回Dcat\Admin\Layout\Asset對象.
繼續(xù)調(diào)用alias()方法,注冊組件,將自己想引入的js和css文件,如下所示放入到數(shù)組里。

Admin::asset()->alias('@market',[
    'js'=>[
      '@jiemo/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js',
    ],
    'css'=>[
        '@jiemo/bootstrap-datetimepicker/bootstrap-datetimepicker.min.css',
    ],
]);

在類里使用

在自定義的類中,比如在html()方法里,通過Admin::requireAssets()方法引入注冊的靜態(tài)資源文件組件。

這樣js和css文件就會被直接引入。

public function html(){
        Admin::requireAssets(['@market']);
}

第二個(gè)辦法:在類里單獨(dú)加載

第二個(gè)辦法將使用Admin::js() 和Admin::css()方法

在類里,先定義兩個(gè)靜態(tài)成員屬性,將想引入的js和css文件路徑 加入到類屬性里。

class AdminTable extends Action
{

    public static $js=[
        'vendor/dcat-admin/dcat/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js'
    ];

    public static $css=[
        'vendor/dcat-admin/dcat/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.css'
    ];

通過Admin::js() 和Admin::css()方法,引入對應(yīng)的靜態(tài)資源文件。

public function html(){
        Admin::js(static::$js);
        Admin::css(static::$css);

也可以根據(jù)需求,直接填寫相對路徑,通過Admin::js(),Admin::css() 方法

class UserController extend Controller
{
    public function index()
    {
        Admin::css('/assets/css/index.css');

        Admin::css([
            '/assets/css/index2.css'
        ]);
    }
}

動態(tài)添加JS,css代碼

如果添加動態(tài)的js,css代碼,有下面兩個(gè)方法可以使用

Admin::script()
Admin:style()

使用說明:
在script()方法中,直接傳入一個(gè)多行字符串,就可以了。

    public function index()
    {
        Admin::script(
            <<<JS
    console.log('Hello world!');
JS            
        );
    }

css代碼也一樣

    public function index()
    {
        Admin::style(
            <<<CSS
    body {
        color: #333;
    }
CSS            
        );
    }

最后渲染的時(shí)候,就可以看到加入的js和css代碼了。

在自定義模板中引入靜態(tài)資源和代碼

之前的操作都是在Dcat Admin定義的類中,引入靜態(tài)資源,如果直接在自定義的模板里,引入資源文件,可以如下操作:

使用admin_asset()函數(shù),后面添加的路徑從vendor開始,這塊要記住。

// 引入css
<link rel="stylesheet" href="{{ admin_asset("vendor/dcat-admin/dcat-admin/main.min.css") }}">

// 引入js
<script src="{{ admin_asset('vendor/dcat-admin/dcat-admin/main.min.js')}}"></script>

在模板中寫動態(tài)JS代碼

模板里JS代碼,就必需要寫在Dcat.ready()方法內(nèi)部了,它的使用就像jquery一樣。

<script>
Dcat.ready(function () {
   console.log('所有js都加載完成了'); 
});
</script>

關(guān)于Dcat JS組件的用法,可以看官方手冊:https://learnku.com/docs/dcat-admin/2.x/js-component/8087#82eb9e

通過npm 安裝 新的js組件

測試過后發(fā)現(xiàn),通過npm安裝,或者下接下載相關(guān)組件,然后手動上傳到dcat框架的組件目錄就可以了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容