This commit is contained in:
caishi 2022-04-02 23:52:25 +08:00
parent e0c9ab70b9
commit ba56a106b4
4 changed files with 165 additions and 91 deletions

View File

@ -95,79 +95,84 @@ const Join: FC<PageProps> = ({
if (globalSetting?.setting?.is_local) {
if (!user?.userInfo?.is_shixun_marker) isShixunsHidden = true;
}
// const JoinOverlay = (joinProps: any) => {
// return <>
// <Row justify="space-around" className="pt5 pb5">
// <Col className={styles.joinCol}>
// {
// user.userInfo?.user_identity !== '学生' &&
// !isClassroomsHidden &&
// <Menu.Item {...joinProps}>
// <a onClick={() => handleAddVerify('/classrooms/new')}>
// {
// user.userInfo?.main_site ?
// '新建教学课堂' :
// '新建课堂'
// }
// </a>
// </Menu.Item>
// }
// {
// !isShixunsHidden &&
// <Menu.Item {...joinProps}>
// <a onClick={() => handleAddVerify('/shixuns/new', VerifyType.Shixuns)}>
// 新建实践项目
// </a>
// </Menu.Item>
// }
// {
// (
// user.userInfo?.main_site && user.navigationInfo?.top ||
// (
// !user.userInfo?.main_site && user.navigationInfo?.top && !isPathsHidden &&
// (user.userInfo?.admin || user.userInfo?.is_teacher || user.userInfo?.business)
// )
// ) &&
// <Menu.Item {...joinProps}>
// <a onClick={() => handleAddVerify('/paths/new')}>新建实践课程</a>
// </Menu.Item>
// }
// {
// !globalSetting?.setting?.is_local &&
// user.userInfo?.main_site &&
// <Menu.Item {...joinProps}>
// <a onClick={() => handleAddVerify(`${user.navigationInfo?.top?.old_url}/projects/new`, VerifyType.Projects)}>新建开发项目</a>
// </Menu.Item>
// }
// </Col>
// <Col>
// <div className={styles.joinBoard}></div>
// </Col>
// <Col className={styles.joinCol}>
// {
// !isClassroomsHidden &&
// // user.userInfo?.main_site &&
// <Menu.Item {...joinProps}>
// <a onClick={() => handleJoinVerify(VerifyType.Classrooms)}>
// {
// user.userInfo?.main_site ?
// '加入教学课堂' :
// '加入课堂'
// }
// </a>
// </Menu.Item>
// }
// {
// user.userInfo?.main_site &&
// !globalSetting?.setting?.is_local &&
// <Menu.Item {...joinProps}>
// <a onClick={() => handleJoinVerify(VerifyType.Projects)}>
// 加入开发项目
// </a>
// </Menu.Item>
// }
// </Col>
// </Row>
// </>
// }
const JoinOverlay = (joinProps: any) => {
return <>
<Row justify="space-around" className="pt5 pb5">
<Col className={styles.joinCol}>
{
user.userInfo?.user_identity !== '学生' &&
!isClassroomsHidden &&
<Menu.Item {...joinProps}>
<a onClick={() => handleAddVerify('/classrooms/new')}>
{
user.userInfo?.main_site ?
'新建教学课堂' :
'新建课堂'
}
</a>
</Menu.Item>
}
{
!isShixunsHidden &&
<Menu.Item {...joinProps}>
<a onClick={() => handleAddVerify('/shixuns/new', VerifyType.Shixuns)}>
</a>
</Menu.Item>
}
{
(
user.userInfo?.main_site && user.navigationInfo?.top ||
(
!user.userInfo?.main_site && user.navigationInfo?.top && !isPathsHidden &&
(user.userInfo?.admin || user.userInfo?.is_teacher || user.userInfo?.business)
)
) &&
<Menu.Item {...joinProps}>
<a onClick={() => handleAddVerify('/paths/new')}></a>
</Menu.Item>
}
{
!globalSetting?.setting?.is_local &&
user.userInfo?.main_site &&
<Menu.Item {...joinProps}>
<a onClick={() => handleAddVerify(`${user.navigationInfo?.top?.old_url}/projects/new`, VerifyType.Projects)}></a>
</Menu.Item>
}
</Col>
<Col>
<div className={styles.joinBoard}></div>
</Col>
<Col className={styles.joinCol}>
{
!isClassroomsHidden &&
// user.userInfo?.main_site &&
<Menu.Item {...joinProps}>
<a onClick={() => handleJoinVerify(VerifyType.Classrooms)}>
{
user.userInfo?.main_site ?
'加入教学课堂' :
'加入课堂'
}
</a>
</Menu.Item>
}
{
user.userInfo?.main_site &&
!globalSetting?.setting?.is_local &&
<Menu.Item {...joinProps}>
<a onClick={() => handleJoinVerify(VerifyType.Projects)}>
</a>
</Menu.Item>
}
</Col>
</Row>
</>
}

View File

@ -6,7 +6,24 @@
border-radius: 34px;
cursor: pointer;
}
.currentMenu{
width: 120px;
text-align: center;
padding: 0;
[class~='currentName']{
padding: 0 8px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
display: block;
}
li{
border-bottom: 1px solid #eee;
}
li:last-child{
border-top: none;
}
}
.rightMenu {
width: 120px;
text-align: center;

View File

@ -14,7 +14,7 @@ import {
import { Menu, Row, Col, Dropdown, message, Modal } from 'antd';
import styles from './index.less';
import { isLogin } from '@/utils/authority';
import { LoginOut } from '@/service/user';
import { LoginOut , ForgeLoginOut } from '@/service/user';
import ENV from '@/utils/env';
import { handleVerify } from '@/utils/verifyLogin';
import { checkIsClientExam } from '@/utils/util';
@ -254,12 +254,63 @@ const User: FC<PageProps> = ({
}
};
const OwnerDownMenu=()=>{
return (
<Menu className={styles.currentMenu}>
<Menu.Item>
<span className={styles.currentName} title={user.userInfo?.username}>{user.userInfo?.username}</span>
</Menu.Item>
{
globalSetting?.setting?.personal && globalSetting?.setting?.personal.map(function(item:any,key:number){
return(
<li key={key}><a href={item.url} target="_blank">{item.name}</a></li>
)
})
}
{/* <li><Link to={`/settings/profile`}>设置</Link></li> */}
<Menu.Item>
<a onClick={async () => {
const res = await ForgeLoginOut({});
if (res?.status === 1) {
dispatch({
type: 'user/getUserInfo',
payload: {
...payload,
},
});
delCookie('autologin');
window.location.reload();
}
}}
>退</a>
</Menu.Item>
</Menu>
)
}
const educoderloginysl=()=>{
//退出账号时清除登录页面的下次自动登录(用户再次打开登录页面时下次自动登录框不勾选)
// cookie.remove("autologin");
delCookie("autologin");
//退出账号
// var url = `/accounts/logout.json`;
// axios.get((url)).then((result) => {
// if (result !== undefined) {
// window.location.href = "/";
// }
// }).catch((error) => {
// console.log(error);
// })
}
if (isLogin()) {
return (
<Dropdown
className={`${styles.height67} pr25`}
overlay={DropdownMenu}
placement="bottomRight"
className={`mr25`}
overlay={OwnerDownMenu}
placement="bottomLeft"
>
<section>
<aside>
@ -268,21 +319,16 @@ const User: FC<PageProps> = ({
shixunHomeworks.actionTabs.type === 1 ? styles.classromediv : ''
}
>
<img
className={`${styles.userPic} current ml15`}
src={`${ENV?.FORGE_SERVER}/images/${user.userInfo?.image_url}`}
alt=""
onClick={() =>
history.push(
checkIsClientExam()
? '/account/profile'
: `/users/${user.userInfo?.login}/classrooms`,
)
}
/>
{checkIsClientExam() && (
<span className="ml10 font16">{user.userInfo?.username}</span>
)}
<a href={`${globalSetting?.setting?.common?.main_site_url}/${user.userInfo?.login}`}>
<img
className={`${styles.userPic} current ml15`}
src={`${ENV?.FORGE_SERVER}/images/${user.userInfo?.image_url}`}
alt=""
/>
{/* {checkIsClientExam() && (
<span className="ml10 font16">{user.userInfo?.username}</span>
)} */}
</a>
</div>
</aside>
</section>

View File

@ -7,6 +7,12 @@ export async function ForgeLogin(params: any) {
body: { ...params },
});
}
export async function ForgeLoginOut(params: any) {
return Fetch(`${ENV.FORGE_SERVER}/api/accounts/logout.json`, {
method: 'get',
// body: { ...params },
});
}
export async function LoginIn(params: any) {
return Fetch('/api/accounts/login.json', {
method: 'post',