超管后台 - 管理员编辑权限对应功能展示checkbox

This commit is contained in:
柳清爽
2025-04-10 18:23:17 +08:00
parent c51d090d28
commit 04895ffd7c
2 changed files with 32 additions and 15 deletions

View File

@@ -73,10 +73,12 @@ class Administrator extends Controller
*/ */
public function getDetail($id) public function getDetail($id)
{ {
// 查询管理员信息 // 查询管理员信息,关联权限表
$admin = AdminModel::where('id', $id) $admin = AdminModel::alias('a')
->where('deleteTime', 0) ->leftJoin('administrator_permissions p', 'a.id = p.adminId')
->field('id, account, name, status, authId, createTime, lastLoginTime') ->where('a.id', $id)
->where('a.deleteTime', 0)
->field('a.id, a.account, a.name, a.status, a.authId, a.createTime, a.lastLoginTime, p.permissions')
->find(); ->find();
// 如果查不到记录 // 如果查不到记录
@@ -88,17 +90,31 @@ class Administrator extends Controller
]); ]);
} }
// 解析权限数据
$permissionIds = [];
if (!empty($admin['permissions'])) {
$permissions = json_decode($admin['permissions'], true);
$permissions = json_decode($permissions, true);
if (isset($permissions['ids'])) {
$permissionIds = is_string($permissions['ids']) ? explode(',', $permissions['ids']) : $permissions['ids'];
// 确保所有ID都是整数
$permissionIds = array_map('intval', $permissionIds);
}
}
// 格式化数据 // 格式化数据
$data = [ $data = [
'id' => $admin->id, 'id' => $admin['id'],
'username' => $admin->account, 'username' => $admin['account'],
'name' => $admin->name, 'name' => $admin['name'],
'status' => $admin->status, 'status' => $admin['status'],
'authId' => $admin->authId, 'authId' => $admin['authId'],
'roleName' => $this->getRoleName($admin->authId), 'roleName' => $this->getRoleName($admin['authId']),
'createdAt' => $admin->createTime, 'createdAt' => $admin['createTime'],
'lastLogin' => !empty($admin->lastLoginTime) ? date('Y-m-d H:i', $admin->lastLoginTime) : '从未登录', 'lastLogin' => !empty($admin['lastLoginTime']) ? date('Y-m-d H:i', $admin['lastLoginTime']) : '从未登录',
'permissions' => $this->getPermissions($admin->authId) 'permissions' => $permissionIds, // 直接返回权限ID数组
]; ];
return json([ return json([

View File

@@ -72,8 +72,9 @@ export default function EditAdminPage({ params }: { params: { id: string } }) {
if (permissionsResponse.code === 200 && permissionsResponse.data) { if (permissionsResponse.code === 200 && permissionsResponse.data) {
// 如果有权限数据,则设置选中的权限 // 如果有权限数据,则设置选中的权限
if (permissionsResponse.data.permissions) { if (permissionsResponse.data.permissions) {
// 假设权限是存储为菜单ID数组 // 处理权限ID数组,确保是数字类型
setSelectedPermissions(permissionsResponse.data.permissions.map((p: any) => p.id || p)) const permissionIds = permissionsResponse.data.permissions.map(Number);
setSelectedPermissions(permissionIds);
} }
} }
} }