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