超管后台 - 管理员编辑权限对应功能展示checkbox
This commit is contained in:
@@ -73,10 +73,12 @@ class Administrator extends Controller
|
||||
*/
|
||||
public function getDetail($id)
|
||||
{
|
||||
// 查询管理员信息
|
||||
$admin = AdminModel::where('id', $id)
|
||||
->where('deleteTime', 0)
|
||||
->field('id, account, name, status, authId, createTime, lastLoginTime')
|
||||
// 查询管理员信息,关联权限表
|
||||
$admin = AdminModel::alias('a')
|
||||
->leftJoin('administrator_permissions p', 'a.id = p.adminId')
|
||||
->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();
|
||||
|
||||
// 如果查不到记录
|
||||
@@ -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 = [
|
||||
'id' => $admin->id,
|
||||
'username' => $admin->account,
|
||||
'name' => $admin->name,
|
||||
'status' => $admin->status,
|
||||
'authId' => $admin->authId,
|
||||
'roleName' => $this->getRoleName($admin->authId),
|
||||
'createdAt' => $admin->createTime,
|
||||
'lastLogin' => !empty($admin->lastLoginTime) ? date('Y-m-d H:i', $admin->lastLoginTime) : '从未登录',
|
||||
'permissions' => $this->getPermissions($admin->authId)
|
||||
'id' => $admin['id'],
|
||||
'username' => $admin['account'],
|
||||
'name' => $admin['name'],
|
||||
'status' => $admin['status'],
|
||||
'authId' => $admin['authId'],
|
||||
'roleName' => $this->getRoleName($admin['authId']),
|
||||
'createdAt' => $admin['createTime'],
|
||||
'lastLogin' => !empty($admin['lastLoginTime']) ? date('Y-m-d H:i', $admin['lastLoginTime']) : '从未登录',
|
||||
'permissions' => $permissionIds, // 直接返回权限ID数组
|
||||
];
|
||||
|
||||
return json([
|
||||
|
||||
@@ -72,8 +72,9 @@ export default function EditAdminPage({ params }: { params: { id: string } }) {
|
||||
if (permissionsResponse.code === 200 && permissionsResponse.data) {
|
||||
// 如果有权限数据,则设置选中的权限
|
||||
if (permissionsResponse.data.permissions) {
|
||||
// 假设权限是存储为菜单ID的数组
|
||||
setSelectedPermissions(permissionsResponse.data.permissions.map((p: any) => p.id || p))
|
||||
// 处理权限ID数组,确保是数字类型
|
||||
const permissionIds = permissionsResponse.data.permissions.map(Number);
|
||||
setSelectedPermissions(permissionIds);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user