AdminForm.php
3.9 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
115
116
117
118
119
120
121
122
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
* 管理端表单 trait层:渲染生成 管理员 form 表单
+-----------------------------------------------------------------------------------------------------------------------
*
* PHP version 7
*
* @category App\Admin\Forms\User
* @package App\Admin\Forms\User
* @author Richer <yangzi1028@163.com>
* @date 2021年11月3日14:06:25
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
namespace App\Admin\Forms\User;
use App\Admin\Rewrite\Admin;
use App\Models\Admin\Role;
use App\Models\Admin\UserRole;
use App\Models\Area\County;
use App\Models\Traits\AreaTrait;
use App\Models\User\User;
use Encore\Admin\Form;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Hash;
/**
* Class AdminForm.
*
* @category App\Admin\Forms\User
* @package App\Admin\Forms\User
* @author Richer <yangzi1028@163.com>
* @date 2021年11月3日14:06:25
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
trait AdminForm
{
use AreaTrait;
/**
* 渲染表单字段
*
* @param Int $id 用户id
*
* @return void
*/
public function renderFormFields($id)
{
$userTable = config('admin.database.users_table');
$permissionModel = config('admin.database.permissions_model');
$roleModel = config('admin.database.roles_model');
$this->form->display('id', 'ID');
$this->form->text('username', trans('admin.username'))
->creationRules(['required', "unique:admin_users"])
->updateRules(['required', "unique:admin_users,username,{{id}}"]);
$this->form->text('name', trans('admin.name'))->rules('required');
$this->form->image('avatar', trans('admin.avatar'));
$this->form->password('password', trans('admin.password'))->rules('required|confirmed');
$this->form->password('password_confirmation', trans('admin.password_confirmation'))->rules('required')
->default(function ($form) {
return $form->model()->password;
});
$this->form->ignore(['password_confirmation']);
// $this->formMultipleSelectField($this->form, 'roles', trans('admin.roles'), $roleModel::all()->pluck('name', 'id'), 1);
// $this->form->radio('role_id', trans('admin.roles'))->options(Role::all()->pluck('name', 'id'))->required();
$this->form->multipleSelect('roles', trans('admin.roles'))->options(Role::all()->pluck('name', 'id'));
// $this->form->multipleSelect('permissions', trans('admin.permissions'))->options(Per::all()->pluck('name', 'id'));
$this->form->display('created_at', trans('admin.created_at'));
$this->form->display('updated_at', trans('admin.updated_at'));
// 渲染生成地区选择
Admin::script("$(document.body).append(`<script src='/assets/admin/js/module/admin-user.js?t=1'>`);");
$this->form->saving(function (Form $form) {
if ($form->password && $form->model()->password != $form->password) {
$form->password = Hash::make($form->password);
}
});
$this->form->saved(function (Form $form) {
//
});
}
/**
* 保存前回调
*
* @return void
*/
public function saving()
{
parent::saving();
//保存前回调
$this->form->saving(function (Form $form) {
//
});
}
/**
* 保存后回调
*
* @return void
*/
protected function saved()
{
parent::saved();
// 保存后回调
$this->form->saved(function (Form $form) {
//
});
}
}