Browse Source

菜单图标允许为空

jqh 5 years ago
parent
commit
68391643a5

+ 1 - 1
database/migrations/2016_01_04_173148_create_admin_tables.php

@@ -47,7 +47,7 @@ class CreateAdminTables extends Migration
             $table->integer('parent_id')->default(0);
             $table->integer('order')->default(0);
             $table->string('title', 50);
-            $table->string('icon', 50);
+            $table->string('icon', 50)->nullable();
             $table->string('uri', 50)->nullable();
 
             $table->timestamps();

+ 2 - 2
src/Controllers/MenuController.php

@@ -40,7 +40,7 @@ class MenuController extends Controller
 
                     $form->select('parent_id', trans('admin.parent_id'))->options($menuModel::selectOptions());
                     $form->text('title', trans('admin.title'))->required();
-                    $form->icon('icon', trans('admin.icon'))->default('fa-bars')->help($this->iconHelp());
+                    $form->icon('icon', trans('admin.icon'))->help($this->iconHelp());
                     $form->text('uri', trans('admin.uri'));
                     $form->multipleSelect('roles', trans('admin.roles'))
                         ->options($roleModel::all()->pluck('name', 'id'));
@@ -126,7 +126,7 @@ class MenuController extends Controller
             return $menuModel::selectOptions();
         });
         $form->text('title', trans('admin.title'))->required();
-        $form->icon('icon', trans('admin.icon'))->default('fa-bars')->help($this->iconHelp());
+        $form->icon('icon', trans('admin.icon'))->help($this->iconHelp());
         $form->text('uri', trans('admin.uri'));
         $form->multipleSelect('roles', trans('admin.roles'))
             ->options(function () use ($roleModel) {

+ 6 - 4
src/Form/Field/Icon.php

@@ -6,7 +6,7 @@ use Dcat\Admin\Admin;
 
 class Icon extends Text
 {
-    protected $default = 'fa-pencil';
+    protected $default = null;
 
     public function render()
     {
@@ -15,9 +15,11 @@ setTimeout(function () {
     $('{$this->getElementClassSelector()}').iconpicker({placement:'bottomLeft'});
 }, 10);
 JS;
-
-        $this->prepend('<i class="fa fa-pencil fa-fw"></i>')
-            ->defaultAttribute('style', 'width: 200px');
+        if (is_null($this->default)) {
+            $this->default('');
+        }
+ 
+        $this->defaultAttribute('style', 'width: 200px');
 
         return parent::render();
     }

+ 9 - 0
src/Grid/Column.php

@@ -396,6 +396,15 @@ class Column
     /**
      * Set column filter.
      *
+     * @example
+     *      $grid->username()->filter(
+     *          Grid\Column\Filter\StartWith::make(__('admin.username'))
+     *      );
+     *
+     *      $grid->created_at()->filter(
+     *          Grid\Column\Filter\Equal::make(__('admin.created_at'))->date()
+     *      );
+     *
      * @param Grid\Column\Filter $builder
      *
      * @return $this

+ 5 - 4
src/Models/Repositories/Administrator.php

@@ -28,21 +28,22 @@ class Administrator extends EloquentRepository
             return $model;
         }
 
+        $roleModel = config('admin.database.roles_model');
+
         $items = collect($items);
 
+        $roleKeyName = (new $roleModel)->getKeyName();
+
         $roleIds = $items
             ->pluck('roles')
             ->flatten(1)
-            ->keyBy('id')
+            ->keyBy($roleKeyName)
             ->keys()
             ->toArray();
 
-        $roleModel = config('admin.database.roles_model');
         $permissions = $roleModel::getPermissionId($roleIds);
 
         if (!$permissions->isEmpty()) {
-            $roleKeyName = (new $roleModel)->getKeyName();
-
             $items = $items->map(function ($v) use ($roleKeyName, $permissions) {
                 $v['permissions'] = [];