feat: rbac接入完成,file接入完成
This commit is contained in:
@@ -10,7 +10,7 @@ import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, D
|
||||
import { Label } from '@/components/ui/label'
|
||||
import { Checkbox } from '@/components/ui/checkbox'
|
||||
|
||||
import { getUserList, createUser, updateUser, deleteUser } from '@/api/system/user'
|
||||
import { getUserList, createUser, updateUser, deleteUser, getUserDetail, assignUserRoles } from '@/api/system/user'
|
||||
import { getRoleList } from '@/api/system/role'
|
||||
import type { SystemUser, SystemRole } from '@/api/system'
|
||||
|
||||
@@ -64,20 +64,26 @@ export default function UserManage() {
|
||||
setDialogOpen(true)
|
||||
}
|
||||
|
||||
const openEditDialog = (user: SystemUser) => {
|
||||
const openEditDialog = async (user: SystemUser) => {
|
||||
setEditingUser(user)
|
||||
setFormData({
|
||||
account: user.account, name: user.name, phone: user.phone || '', clientId: '',
|
||||
roleIds: user.roles || []
|
||||
roleIds: []
|
||||
})
|
||||
setDialogOpen(true)
|
||||
|
||||
const detail = await getUserDetail(user.id)
|
||||
if (detail) {
|
||||
setFormData(prev => ({ ...prev, roleIds: detail.roleIds || [] }))
|
||||
}
|
||||
}
|
||||
|
||||
const handleSave = async () => {
|
||||
if (editingUser) {
|
||||
await updateUser({ id: editingUser.id, ...formData })
|
||||
await updateUser({ id: editingUser.id, account: formData.account, name: formData.name, phone: formData.phone })
|
||||
await assignUserRoles({ userId: editingUser.id, roleIds: formData.roleIds })
|
||||
} else {
|
||||
await createUser({ ...formData, password: '123' }) // 默认密码
|
||||
await createUser({ ...formData, password: '123' })
|
||||
}
|
||||
setDialogOpen(false)
|
||||
fetchUsers()
|
||||
@@ -172,11 +178,12 @@ export default function UserManage() {
|
||||
<TableCell>{user.phone || '-'}</TableCell>
|
||||
<TableCell>
|
||||
<div className="flex gap-1 flex-wrap">
|
||||
{user.roles?.map(code => {
|
||||
const role = allRoles.find(r => r.code === code)
|
||||
{user.roles?.map(roleObj => {
|
||||
const name = typeof roleObj === 'string' ? roleObj : roleObj.name
|
||||
const key = typeof roleObj === 'string' ? roleObj : roleObj.id
|
||||
return (
|
||||
<Badge key={code} variant="default" className="text-[10px] h-5 font-normal bg-emerald-500 hover:bg-emerald-600 text-white">
|
||||
{role ? role.name : code}
|
||||
<Badge key={key} variant="default" className="text-[10px] h-5 font-normal bg-emerald-500 hover:bg-emerald-600 text-white">
|
||||
{name}
|
||||
</Badge>
|
||||
)
|
||||
}) || <span className="text-muted-foreground text-xs">无角色</span>}
|
||||
|
||||
Reference in New Issue
Block a user