BaseMenuController.php
4.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
* 重写laravel-admin Menu 控制类
+-----------------------------------------------------------------------------------------------------------------------
*
* PHP version 7
*
* @package App\Admin\Rewrite\Controllers
* @package App\Admin\Rewrite\Controllers
* @author Richer <yangzi1028@163.com>
* @date 2020年3月23日,14:20:56
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
namespace App\Admin\Rewrite\Controllers;
//use Encore\Admin\Form;
use App\Admin\Rewrite\Form;
use Encore\Admin\Controllers\MenuController as EncoreMenuController;
use Encore\Admin\Layout\Column;
use Encore\Admin\Layout\Content;
use Encore\Admin\Layout\Row;
use Encore\Admin\Widgets\Box;
/**
* Class BaseMenuController
*
* @package App\Admin\Rewrite\Controllers
* @package App\Admin\Rewrite\Controllers
* @author Richer <yangzi1028@163.com>
* @date 2020年3月23日,14:20:56
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
class BaseMenuController extends EncoreMenuController
{
/**
* Index interface.
*
* @param Content $content
*
* @return Content
*/
public function index(Content $content)
{
return $content
->title(trans('admin.menu'))
->description(trans('admin.list'))
->row(function (Row $row) {
$row->column(6, $this->treeView()->render());
$row->column(6, function (Column $column) {
$form = new \Encore\Admin\Widgets\Form();
$form->action(admin_url('auth/menu'));
$menuModel = config('admin.database.menu_model');
$permissionModel = config('admin.database.permissions_model');
$roleModel = config('admin.database.roles_model');
$form->select('parent_id', trans('admin.parent_id'))->options($menuModel::selectOptions());
$form->text('title', trans('admin.title'))->rules('required');
$form->icon('icon', trans('admin.icon'))->default('fa-bars')->rules('required')->help($this->iconHelp());
$form->text('uri', trans('admin.uri'));
$form->multipleSelect('roles', trans('admin.roles'))->options($roleModel::all()->pluck('name', 'id'));
if ((new $menuModel())->withPermission()) {
$form->select('permission', trans('admin.permission'))->options($permissionModel::pluck('name', 'slug'));
}
// 增加隐藏字段
$form->radio('visible', trans('admin.visible'))->options(['1'=> trans('admin.yes'),'0'=> trans('admin.no'),])->default('1');
$form->hidden('_token')->default(csrf_token());
$column->append((new Box(trans('admin.new'), $form))->style('success'));
});
});
}
/**
* Make a form builder.
*
* @return Form
*/
public function form()
{
$menuModel = config('admin.database.menu_model');
$permissionModel = config('admin.database.permissions_model');
$roleModel = config('admin.database.roles_model');
$form = new Form(new $menuModel());
//$form->display('id', '#');
$form->select('parent_id', trans('admin.parent_id'))->options($menuModel::selectOptions());
$form->text('title', trans('admin.title'))->rules('required');
$form->icon('icon', trans('admin.icon'))->default('fa-bars')->rules('required')->help($this->iconHelp());
$form->text('uri', trans('admin.uri'));
$form->checkbox('roles', trans('admin.roles'))->options($roleModel::all()->pluck('name', 'id'));
if ($form->model()->withPermission()) {
$form->select('permission', trans('admin.permission'))->options($permissionModel::pluck('name', 'slug'));
}
// 增加隐藏字段
$form->radio('visible', trans('admin.visible'))->options(['1'=> trans('admin.yes'),'0'=> trans('admin.no')])->default('1');
$form->display('created_at', trans('admin.created_at'));
$form->display('updated_at', trans('admin.updated_at'));
return $form;
}
}