diff --git a/app/Http/Controllers/Admin/RolesController.php b/app/Http/Controllers/Admin/RolesController.php index 71c193a..6fde3df 100644 --- a/app/Http/Controllers/Admin/RolesController.php +++ b/app/Http/Controllers/Admin/RolesController.php @@ -6,6 +6,7 @@ use App\Exceptions\CustomException; use App\Models\AdminRoleMenu; use App\Models\AdminRoles; use App\Services\AdminMenuService; +use App\Services\AdminTranslationService; use App\Services\ApiResponseService; use App\Services\AdminRolesService; use App\Services\OperationLogService; @@ -54,6 +55,12 @@ class RolesController extends BaseController $items = $query->latest()->forPage($page, $perPage)->get() ->each(function ($item) { $item['non_operable'] = $item['name'] == '超级管理员' ? 1 : 0; + $item['name'] + = AdminTranslationService::getTranslationTypeName( + $item['id'], + 11, + $item['name'] + ); return $item; }); @@ -163,15 +170,20 @@ class RolesController extends BaseController try { $this->validateId($id, AdminRoles::class); $data = [ - 'menu_list' => (new AdminMenuService(new OperationLogService()))->getMenuTreeCacheList( - AdminRoleMenu::getMenuIdArr($id) - ), - 'menu_ids' => AdminRoleMenu::getMenuIdArr($id), - 'item' => AdminRoles::query() + 'menu_ids' => AdminRoleMenu::getMenuIdArr($id), + 'item' => AdminRoles::query() ->where('id', $id) ->get() - ->toArray() + ->toArray(), + 'menu_list' => (new AdminMenuService( + new OperationLogService() + ))->getMenuTreeCacheList( + AdminRoleMenu::getMenuIdArr($id) + ) ]; + $Translation = AdminTranslationService::getTranslation($id, 11); + $data['item'][0]['en_name'] = $Translation['en'] ?? ''; + $data['item'][0]['tw_name'] = $Translation['zh_tw'] ?? ''; return $this->responseService->success($data); } catch (Exception $e) { return $this->responseService->systemError( diff --git a/app/Models/AdminRoles.php b/app/Models/AdminRoles.php index 3b2630e..ea64c6e 100644 --- a/app/Models/AdminRoles.php +++ b/app/Models/AdminRoles.php @@ -2,6 +2,7 @@ namespace App\Models; +use App\Services\AdminTranslationService; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsToMany; @@ -39,8 +40,17 @@ class AdminRoles extends Model { $where = ['status' => 1]; $columns = ['id', 'name']; - return self::query()->where($where)->select($columns)->get() - ->toArray(); + $data = self::query()->where($where)->select($columns)->get()->toArray( + ); + foreach ($data as $key => $item) { + $data[$key]['name'] + = AdminTranslationService::getTranslationTypeName( + $item['id'], + 11, + $item['name'] + ); + } + return $data; } public function adminUsers(): BelongsToMany diff --git a/app/Services/AdminRolesService.php b/app/Services/AdminRolesService.php index 8b5c1ec..0275dbd 100644 --- a/app/Services/AdminRolesService.php +++ b/app/Services/AdminRolesService.php @@ -69,6 +69,14 @@ final class AdminRolesService $this->addAdminRoleMenu($id, $menu_ids); } + AdminTranslationService::saveTranslation( + $data['name'], + $data['en_name'] ?? '', + $data['tw_name'] ?? '', + $id, + 11 + ); + DB::commit(); return $model; } catch (Exception $e) { @@ -161,6 +169,14 @@ final class AdminRolesService $this->addAdminRoleMenu($model->id, $menu_ids); + AdminTranslationService::saveTranslation( + $data['name'], + $data['en_name'] ?? '', + $data['tw_name'] ?? '', + $model->id, + 11 + ); + DB::commit(); return $model; } catch (Exception $e) { @@ -191,6 +207,8 @@ final class AdminRolesService $this->delAdminRoleMenu($id); + AdminTranslationService::syncDelete($id, 11); + DB::commit(); return true; } catch (Exception $e) { diff --git a/app/Services/AdminTranslationService.php b/app/Services/AdminTranslationService.php index 2146550..0465c96 100644 --- a/app/Services/AdminTranslationService.php +++ b/app/Services/AdminTranslationService.php @@ -223,6 +223,7 @@ class AdminTranslationService 8 离场原因 9 设备管理 10 模式管理 + 11 权限管理 100 - 199 告警信息 */ public static function getTranslationTypeName($type_id, $type, $name) diff --git a/app/Services/AdminUsersService.php b/app/Services/AdminUsersService.php index a7d45c8..f156abd 100644 --- a/app/Services/AdminUsersService.php +++ b/app/Services/AdminUsersService.php @@ -209,11 +209,17 @@ final class AdminUsersService : __('admin.freeze'); $item['role_name'] = $item->roles->value('name'); $item['packing_name'] = ''; - if ($is_edit) { - if (isset($item['roles'][0])) { - $item['role_id'] = $item['roles'][0]['id']; - } - //$item['packing_id'] = ''; + $item['role_id'] = 0; + if (isset($item['roles'][0])) { + $item['role_id'] = $item['roles'][0]['id']; + } + $item['role_name'] = AdminTranslationService::getTranslationTypeName( + $item['role_id'], + 11, + $item['role_name'] + ); + if (!$is_edit) { + unset($item['role_id']); } unset($item['roles']); return $item;