This commit is contained in:
LittleBoy 2024-08-28 22:53:02 +08:00
parent 2939228cfa
commit 1e0c687a9b

View File

@ -12,7 +12,7 @@ import {IconExit, IconUser} from "@douyinfe/semi-icons";
import styled from "@emotion/styled";
import useConfig from "@/hooks/useConfig.ts";
import {IconRoles} from "@/components/icons";
import {setCurrentRole} from "@/contexts/auth";
// import {setCurrentRole} from "@/contexts/auth";
const {Header, Content, Sider} = Layout;
@ -42,15 +42,10 @@ export const HeaderUserAvatar = () => {
<Avatar color="orange" size="default"><IconUser /></Avatar>
<div>
<Typography.Title heading={6}>{user?.username}</Typography.Title>
<div style={{maxWidth:250,overflow:'hidden',whiteSpace:'nowrap',textOverflow:'ellipsis'}}>
<div title={user?.department} style={{maxWidth:150,overflow:'hidden',whiteSpace:'nowrap',textOverflow:'ellipsis'}}>
<Typography.Text
type="quaternary"
size={'small'}>Department:{user?.department?.toUpperCase() || "N/A"}</Typography.Text>
</div>
<div>
<Typography.Text
type="quaternary"
size={'small'}>Role:{user?.role?.toUpperCase()}</Typography.Text>
size={'small'}>{user?.department?.toUpperCase() || "N/A"}</Typography.Text>
</div>
</div>
</Space>
@ -66,36 +61,22 @@ export const HeaderUserAvatar = () => {
<Avatar color="orange" size="small"><IconUser /></Avatar>
</Dropdown>)
}
const RoleList: UserRole[] = ['root', 'ro', 'fo','staff']
// const RoleList: UserRole[] = ['root', 'ro', 'fo','staff']
const RoleSwitcher = ()=>{
const {user, updateUser} = useAuth()
const {user} = useAuth()
// update user role
const changeRole = (role:UserRole)=>{
updateUser({role}).then(()=>{
setCurrentRole(role)
})
}
// const changeRole = (role:UserRole)=>{
// updateUser({role}).then(()=>{
// setCurrentRole(role)
// })
// }
return (<>
{user?.origin_role == 'root' && (<Dropdown
clickToHide
render={
<Dropdown.Menu>
{RoleList.map((key) => (
<Dropdown.Item
active={user?.role == key} key={key}
onClick={() => changeRole(key)}
><span>{key.toUpperCase()}</span></Dropdown.Item>
))}
</Dropdown.Menu>
}
>
<Button theme="borderless">
<Space style={{transform:'translateY(3px)'}}>
<IconRoles size={20} color={'white'} />
<span style={{color:'white'}}>{user?.role?.toUpperCase()}</span>
</Space>
</Button>
</Dropdown>) }
<Button theme="borderless">
<Space style={{transform:'translateY(3px)'}}>
<IconRoles size={20} color={'white'} />
<span style={{color:'white'}}>{user?.role?.toUpperCase()}</span>
</Space>
</Button>
</>)
}
export const CommonHeader: React.FC<CommonHeaderProps> = ({children, title, rightExtra}) => {