全新擴(kuò)展系統(tǒng)上線了!發(fā)布Dcat Admin v2.0.0-BETA 版本~

下面由laravel教程欄目給大家介紹dcat admin v2.0.0-beta 版本發(fā)布,希望對(duì)需要的朋友有所幫助!

全新擴(kuò)展系統(tǒng)上線了!發(fā)布Dcat Admin v2.0.0-BETA 版本~

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Dcat Admin?是一個(gè)基于laravel-admin二次開發(fā)而成的后臺(tái)構(gòu)建工具,只需很少的代碼即可構(gòu)建出一個(gè)功能完善的高顏值后臺(tái)系統(tǒng)。

前言

Hi,各位同學(xué)大家好!時(shí)隔多日,Dcat Admin終于迎來了2.0的第一個(gè)版本,下面簡(jiǎn)單介紹一下主要變化,歡迎大家安裝體驗(yàn),如果有問題會(huì)即時(shí)修復(fù)~

安裝

已發(fā)布 v2.0.1-beta 版本

composer require dcat/laravel-admin:v2.0.1-beta -vvv

有什么變化?

1.擴(kuò)展

我們?cè)谶@個(gè)版本中重點(diǎn)優(yōu)化了 擴(kuò)展 功能,主要簡(jiǎn)化了擴(kuò)展的使用流程,讓用戶可以通過頁面安裝、卸載、升級(jí)擴(kuò)展,并且同時(shí)支持了頁面壓縮包和composer兩種安裝方式。正式版發(fā)布時(shí)會(huì)上線應(yīng)用市場(chǎng)功能,敬請(qǐng)期待~

詳細(xì)使用文檔即將在本周內(nèi)逐步更新~

全新擴(kuò)展系統(tǒng)上線了!發(fā)布Dcat Admin v2.0.0-BETA 版本~

2.增強(qiáng)表單布局能力

在2.0中,我們對(duì)數(shù)據(jù)表單的block布局功能進(jìn)行了重構(gòu),使其支持更復(fù)雜的布局,示例

$form->block(8,?function?(FormBlockForm?$form)?{ ????$form->title('基本設(shè)置'); ????$form->showFooter(); ????$form->width(9,?2);  ????$form->column(6,?function?(FormBlockForm?$form)?{ ????????$form->display('id'); ????????$form->text('name'); ????????$form->email('email'); ????????$form->image('avatar'); ????????$form->password('password'); ????});  ????$form->column(6,?function?(FormBlockForm?$form)?{ ????????$form->text('username'); ????????$form->email('mobile'); ????????$form->textarea('description'); ????}); }); $form->block(4,?function?(FormBlockForm?$form)?{ ????$form->title('分塊2');  ????$form->text('nickname'); ????$form->number('age'); ????$form->radio('status')->options(['1'?=>?'默認(rèn)',?2?=>?'凍結(jié)'])->default(1);  ????$form->next(function?(FormBlockForm?$form)?{ ????????$form->title('分塊3');  ????????$form->date('birthday'); ????????$form->date('created_at'); ????}); });

全新擴(kuò)展系統(tǒng)上線了!發(fā)布Dcat Admin v2.0.0-BETA 版本~

2.0也支持在tab布局中嵌套使用column和rows布局,如

這個(gè)功能同時(shí)支持?jǐn)?shù)據(jù)表單和工具表單

$form->tab('標(biāo)題', function (Form $form) {     $form->column(6, function (Form $form) {         ...     });      $form->column(6, function (Form $form) {         ...     });});

3.重構(gòu)表單響應(yīng)方法

在1.0版本中表單的響應(yīng)方法只有success、Error和redirect,無法滿足一些比較復(fù)雜的場(chǎng)景,在2.0中我們讓表單的響應(yīng)方法和action的響應(yīng)方法統(tǒng)一了起來,使其支持更多功能,并減少開發(fā)者的學(xué)習(xí)成本。

在數(shù)據(jù)表單中

$form->saving(function (Form $form) {     return $form         ->response()         ->success('保存成功')         ->script('console.log("執(zhí)行JS代碼")')         ->redirect('auth/users');});

在工具表單中

public function handle(array $input){     ...      return $this         ->response()         ->alert()         ->success('成功')         ->detail('詳細(xì)內(nèi)容');}

4.JS 代碼和 php 代碼分離

這個(gè)功能是對(duì)laravel-admin2.0版本新特性的跟進(jìn),在2.0中更推薦把JS代碼放到視圖文件中,示例

<style>     .popover{z-index:29891015} </style><div> ????<div> ????????<span>{!!?$label?!!}</span> ????</div>  ????<div> ????????@include('admin::form.error')  ????????<div>  ????????????<span><span><i></i></span></span>  ????????????<input>  ????????????@if?($append) ????????????????<span>{!!?$append?!!}</span> ????????????@endif ????????</div>  ????????@include('admin::form.help-block') ????</div> </div>  <script>     $(&#39;{{ $selector }}&#39;).colorpicker({!! json_encode($options) !!}).on(&#39;colorpickerChange&#39;, function(event) {         $(this).parents(&#39;.input-group&#39;).find(&#39;.input-group-prepend i&#39;).css(&#39;background-color&#39;, event.color.toString());     }); </script>

<script> 和 <style> 標(biāo)簽中的代碼,將會(huì)被提取編譯,并實(shí)現(xiàn) Admin::script() 和 Admin::style() 同樣的處理效果,需要注意的是<script> 和 <style>必須是根標(biāo)簽,不能被包裹在其他標(biāo)簽中,否則會(huì)提取失敗!</script>

5.重構(gòu)表格列選擇器功能

在1.x中的列選擇器中有一些兼容性問題,不能兼容一些特殊類型的表格,所以2.0中我們對(duì)列選擇器功能進(jìn)行了重構(gòu),并廢棄了舊的api(responsive)。

新的列選擇器功能可以完美兼容固定列和組合表頭功能,并且支持記住用戶操作功能,會(huì)自動(dòng)記住用戶的選擇,效果如下

全新擴(kuò)展系統(tǒng)上線了!發(fā)布Dcat Admin v2.0.0-BETA 版本~

6.重構(gòu)表格事件

在1.0表格的事件設(shè)計(jì)得比較隨意、不規(guī)范,所以我們?cè)?.0中對(duì)表格事件進(jìn)行了重構(gòu),并增加了一些事件,新的表格事件用法如下

use?DcatAdminGrid;  Grid::make(new?Model(),?function?(Grid?$grid)?{ ????$grid-&gt;listen(GridEventsFetching::class,?function?(Grid?$grid)?{ ????????... ????}); });

如果你想監(jiān)聽所有的Grid

use?DcatAdminGrid; use?IlluminateSupportFacadesEvent;  Event::listen(GridEventsFetching::class,?function?(Grid?$grid)?{ ????... });  //?或者  Grid::resolving(function?(Grid?$grid)?{ ????$grid-&gt;listen(GridEventsFetching::class,?function?(Grid?$grid)?{ ????????... ????}); });

關(guān)于事件的更多用法,請(qǐng)參考相關(guān)文檔

7.表格行支持使用Model

在2.0中如果Grid表格使用的是model渲染數(shù)據(jù),則可以在數(shù)據(jù)行相關(guān)回調(diào)中直接使用model的對(duì)象,如

$grid-&gt;clolumn('avatar')-&gt;display(function?()?{ ????//?getAvatar是model中的自定義方法,這里可以直接調(diào)用 ????return?$this-&gt;getAvatar(); });

8.重構(gòu)模型樹行操作

在2.0中我們對(duì)模型樹的行操作功能進(jìn)行了重構(gòu),新的行操作功能和數(shù)據(jù)表格的行操作功能用法一致

use?DcatAdminTree;  $tree-&gt;actions(function?(TreeActions?$actions)?{ ????if?($actions-&gt;row-&gt;id?&gt;?5)?{ ????????$actions-&gt;disableDelete();?//?禁用刪除按鈕 ????}  ????//?添加新的action ????$actions-&gt;append(...); });  //?批量添加action $tree-&gt;actions([ ????new?Action1(), ????"<div>...</div>", ????... ]);

9.增加settings配置表

在新版本中增加了settings配置表,目前主要用于保存擴(kuò)展的啟用和禁用配置數(shù)據(jù),可以通過以下方式讀寫配置

//?讀取 admin_settings('key1',?'默認(rèn)值'); admin_settings('arr.k1',?'默認(rèn)值');  //?保存配置 admin_settings([ ????'key1'?=&gt;?['v1'], ????'arr.k1'?=&gt;?'v1', ]);

10.數(shù)據(jù)倉庫接口重命名

在2.0中我們對(duì)數(shù)據(jù)倉庫的接口命名做了簡(jiǎn)化處理,新的Interface如下

interface Repository{     /**      * 獲取主鍵名稱.      *      * @return string      */     public function getKeyName();      /**      * 獲取創(chuàng)建時(shí)間字段.      *      * @return string      */     public function getCreatedAtColumn();      /**      * 獲取更新時(shí)間字段.      *      * @return string      */     public function getUpdatedAtColumn();      /**      * 是否使用軟刪除.      *      * @return bool      */     public function isSoftDeletes();      /**      * 獲取Grid表格數(shù)據(jù).      *      * @param GridModel $model      *      * @return IlluminateContractsPaginationLengthAwarePaginator|Collection|array      */     public function get(GridModel $model);      /**      * 獲取編輯頁面數(shù)據(jù).      *      * @param Form $form      *      * @return array|IlluminateContractsSupportArrayable      */     public function edit(Form $form);      /**      * 獲取詳情頁面數(shù)據(jù).      *      * @param Show $show      *      * @return array|IlluminateContractsSupportArrayable      */     public function detail(Show $show);      /**      * 新增記錄.      *      * @param Form $form      *      * @return mixed      */     public function store(Form $form);      /**      * 查詢更新前的行數(shù)據(jù).      *      * @param Form $form      *      * @return array|IlluminateContractsSupportArrayable      */     public function updating(Form $form);      /**      * 更新數(shù)據(jù).      *      * @param Form $form      *      * @return bool      */     public function update(Form $form);      /**      * 刪除數(shù)據(jù).      *      * @param Form  $form      * @param array $deletingData      *      * @return mixed      */     public function delete(Form $form, array $deletingData);      /**      * 查詢刪除前的行數(shù)據(jù).      *      * @param Form $form      *      * @return array|IlluminateContractsSupportArrayable      */     public function deleting(Form $form);}

更多變動(dòng)

  • 控制器命名空間更新為DcatAdminhttpControllers
  • 廢棄操作日志
  • 廢棄分步表單(已開發(fā)成擴(kuò)展 dcat-admin/form-step)
  • 語言包目錄重命名(zh-CN更新為zh_CN)
  • google字體本地化
  • 異常處理功能重構(gòu)
  • 表單事件重構(gòu)
  • UI優(yōu)化
  • 靜態(tài)資源目錄由vendors更改為vendor

我們?cè)?.0中做了大量的細(xì)節(jié)改進(jìn),對(duì)許多功能接口都做了調(diào)整和代碼優(yōu)化,限于篇幅這里不再一一列出,詳細(xì)說明會(huì)放在1.x升級(jí)指導(dǎo)文檔中(文檔即將在這幾天內(nèi)發(fā)布)。

關(guān)于應(yīng)用市場(chǎng)和新主題

應(yīng)用市場(chǎng)會(huì)在正式版發(fā)布時(shí)同步上線;
新主題會(huì)開發(fā)成插件,也會(huì)在正式版發(fā)布時(shí)同步上線~? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊8 分享