From 2728ddd216014dea55a8df77dc03adbc8988786e Mon Sep 17 00:00:00 2001 From: JaguarJack Date: Fri, 31 Mar 2023 14:57:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=92=E8=89=B2=E6=9D=83=E9=99=90?= =?UTF-8?q?=E5=88=86=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Http/Controllers/RolesController.php | 8 ++++++-- .../Permissions/Http/Requests/RoleRequest.php | 20 +++++++++++++++++-- .../Permissions/views/roles/form/create.vue | 7 ++++++- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/modules/Permissions/Http/Controllers/RolesController.php b/modules/Permissions/Http/Controllers/RolesController.php index 1681265..b5084c7 100644 --- a/modules/Permissions/Http/Controllers/RolesController.php +++ b/modules/Permissions/Http/Controllers/RolesController.php @@ -39,7 +39,9 @@ class RolesController extends Controller */ public function store(RoleRequest $request) { - if (! DataRange::Personal_Choose->assert($request->get('data_range'))) { + $dataRange = $request->get('data_range'); + + if ($dataRange && ! DataRange::Personal_Choose->assert($request->get('data_range'))) { $request['departments'] = []; } @@ -70,7 +72,9 @@ class RolesController extends Controller */ public function update($id, RoleRequest $request) { - if (! DataRange::Personal_Choose->assert($request->get('data_range'))) { + $dataRange = $request->get('data_range'); + + if ($dataRange && ! DataRange::Personal_Choose->assert($request->get('data_range'))) { $request['departments'] = []; } diff --git a/modules/Permissions/Http/Requests/RoleRequest.php b/modules/Permissions/Http/Requests/RoleRequest.php index bf26cff..a6328ef 100644 --- a/modules/Permissions/Http/Requests/RoleRequest.php +++ b/modules/Permissions/Http/Requests/RoleRequest.php @@ -3,6 +3,7 @@ namespace Modules\Permissions\Http\Requests; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Rule; use Modules\Permissions\Models\Roles; class RoleRequest extends FormRequest @@ -15,9 +16,24 @@ class RoleRequest extends FormRequest public function rules(): array { return [ - 'role_name' => sprintf('required|unique:%s,%s,%s', Roles::class, 'role_name', $this->get('id')), + 'role_name' => [ + 'required', + Rule::unique('roles')->where(function ($query) { + return $query->when($this->get('id'), function ($query){ + $query->where('id', '<>', $this->get('id')); + })->where('deleted_at', 0); + }) + ], - 'identify' => sprintf('required|alpha|unique:%s,%s,%s', Roles::class, 'role_name', $this->get('id')), + 'identify' => [ + 'required', + 'alpha', + Rule::unique('roles')->where(function ($query) { + return $query->when($this->get('id'), function ($query){ + $query->where('id', '<>', $this->get('id')); + })->where('deleted_at', 0); + }) + ] ]; } diff --git a/modules/Permissions/views/roles/form/create.vue b/modules/Permissions/views/roles/form/create.vue index ec10f54..4f668bf 100644 --- a/modules/Permissions/views/roles/form/create.vue +++ b/modules/Permissions/views/roles/form/create.vue @@ -75,7 +75,7 @@ class="w-full" :props="{ label: 'permission_name', value: 'id' }" show-checkbox - :default-expand-all="true" + :default-expand-all="false" @check="selectPermissions" :empty-text="permissionLoadingText" /> @@ -189,6 +189,11 @@ beforeCreate.value = () => { // 更新前的钩子 beforeUpdate.value = () => { + const permissionIds = [] + formData.value.permissions.forEach(item => { + permissionIds.push(item) + }) + formData.value.permissions = permissionIds formData.value.parent_id = getParent(formData.value.parent_id) }