diff --git a/src/AppConfig.js b/src/AppConfig.js
index 381ce19a..67dd6c84 100644
--- a/src/AppConfig.js
+++ b/src/AppConfig.js
@@ -25,7 +25,7 @@ if (isDev) {
}
debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' :
window.location.search.indexOf('debug=s') !== -1 ? 'student' :
- window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin'
+ window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'student'
}
window._debugType = debugType;
export function initAxiosInterceptors(props) {
diff --git a/src/forge/Component/DeleteModal/Index.jsx b/src/forge/Component/DeleteModal/Index.jsx
index 7e631dac..c3c13689 100644
--- a/src/forge/Component/DeleteModal/Index.jsx
+++ b/src/forge/Component/DeleteModal/Index.jsx
@@ -1,7 +1,7 @@
import React from 'react';
import { AlignCenter } from '../layout';
-import { Modal , Button } from 'antd';
-import './Index.scss';
+import { Button } from 'antd';
+import Modals from '../PublicModal/Index';
function DeleteBox({
visible ,
@@ -12,24 +12,22 @@ function DeleteBox({
content
}) {
return(
-
- }
+ }
+ onCancel={onCancel}
+ visible={visible}
>
{content}
-
{subTitle}
+
{subTitle}
-
+
)
}
export default DeleteBox;
\ No newline at end of file
diff --git a/src/forge/Component/EAccount.scss b/src/forge/Component/EAccount.scss
index d0fd2ef2..6fe44ab3 100644
--- a/src/forge/Component/EAccount.scss
+++ b/src/forge/Component/EAccount.scss
@@ -1,6 +1,6 @@
.ant-modal-mask{
- z-index: 1001;
+ z-index: 1031;
}
.ant-modal-wrap{
- z-index: 1002;
+ z-index: 1032;
}
\ No newline at end of file
diff --git a/src/forge/Component/ProfileModal/Index.jsx b/src/forge/Component/ProfileModal/Index.jsx
index fe3d6b7f..8b15f1c7 100644
--- a/src/forge/Component/ProfileModal/Index.jsx
+++ b/src/forge/Component/ProfileModal/Index.jsx
@@ -1,16 +1,54 @@
-import React from 'react';
-import { Modal } from 'antd';
+import React , { useEffect , useState } from 'react';
+import Modals from '../PublicModal/Index';
+import { Button } from 'antd';
+import axios from 'axios';
import './Index.scss';
-function ProfileModal({visible}) {
+function ProfileModal({visible,onCancel,history}) {
+ const [ modalVis , setModalVis ] = useState(visible);
+
+ useEffect(()=>{
+ axios.interceptors.response.use((response) => {
+ if (response && response.data.status === 411) {
+ setModalVis(true);
+ }
+ return response;
+ }, (error) => {
+ });
+ },[])
+
+ useEffect(()=>{
+ setModalVis(visible);
+ },[visible])
+
+ function onOk(){
+ onCancel();
+ setModalVis(false);
+ setTimeout(function(){
+ window.open(`/settings/profile`,"_blank");
+ },200)
+ }
+
+ function onNo() {
+ onCancel();
+ setModalVis(false);
+ }
+
return(
-
+
+
+
+ }
>
您目前的个人资料不完整,需要补充资料以进行后续操作。是否前往补充个人信息?
-
+
)
}
export default ProfileModal;
\ No newline at end of file
diff --git a/src/forge/Component/ProfileModal/Profile.jsx b/src/forge/Component/ProfileModal/Profile.jsx
new file mode 100644
index 00000000..e63c1286
--- /dev/null
+++ b/src/forge/Component/ProfileModal/Profile.jsx
@@ -0,0 +1,17 @@
+import React from 'react';
+
+function Profile({children,sureFunc,showCompeleteDialog , completeProfile, className}) {
+
+ function checkProfile() {
+ if(!completeProfile){
+ showCompeleteDialog && showCompeleteDialog();
+ }else{
+ sureFunc();
+ }
+ }
+
+ return(
+ {children}
+ )
+}
+export default Profile;
\ No newline at end of file
diff --git a/src/forge/Component/PublicModal/Index.jsx b/src/forge/Component/PublicModal/Index.jsx
new file mode 100644
index 00000000..d0fb8c5e
--- /dev/null
+++ b/src/forge/Component/PublicModal/Index.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import { Modal } from 'antd';
+import './Index.scss';
+
+function Modals({title,children,btn,onCancel,visible}) {
+ return(
+
+ {children}
+
+ )
+}
+export default Modals;
\ No newline at end of file
diff --git a/src/forge/Component/DeleteModal/Index.scss b/src/forge/Component/PublicModal/Index.scss
similarity index 78%
rename from src/forge/Component/DeleteModal/Index.scss
rename to src/forge/Component/PublicModal/Index.scss
index 7df79ebf..a147125e 100644
--- a/src/forge/Component/DeleteModal/Index.scss
+++ b/src/forge/Component/PublicModal/Index.scss
@@ -32,14 +32,23 @@
border-top: none;
text-align: center;
padding-bottom: 40px;
- button{
+ button,a{
width: 120px;
margin:0px 20px;
+ &.ant-btn{
+ border-color: #D0D0D0;
+ color: #666;
+ }
&.ant-btn-danger{
background-color: #fff;
color: #DF0002;
border-color: #D0D0D0;
}
+ &.ant-btn.ant-btn-primary{
+ background-color: #fff;
+ color: #466AFF;
+ border-color: #D0D0D0;
+ }
}
}
}
\ No newline at end of file
diff --git a/src/forge/Head/AddProjectModal.jsx b/src/forge/Head/AddProjectModal.jsx
index 8e3073e3..81f1d27c 100644
--- a/src/forge/Head/AddProjectModal.jsx
+++ b/src/forge/Head/AddProjectModal.jsx
@@ -1,6 +1,7 @@
import React, { useState , forwardRef, useEffect } from 'react';
import { Form , Modal , Input , Radio } from 'antd';
import Axios from 'axios';
+import CheckProfile from '../Component/ProfileModal/Profile';
export default Form.create()(
forwardRef((props)=>{
@@ -77,7 +78,7 @@ export default Form.create()(
- setVisible(true)}>加入项目
+ setVisible(true)}>加入项目
)
})
diff --git a/src/forge/Head/Header.js b/src/forge/Head/Header.js
index 499549d2..447d17f5 100644
--- a/src/forge/Head/Header.js
+++ b/src/forge/Head/Header.js
@@ -10,6 +10,7 @@ import HeadSearch from '../Component/HeadSearch';
import AddProjectModal from './AddProjectModal';
import '../../modules/tpm/TPMIndex.css';
+import CheckProfile from '../Component/ProfileModal/Profile';
import './header.scss';
const $ = window.$
@@ -225,15 +226,14 @@ class NewHeader extends Component {
checkProfile=(url)=>{
const { showCompeleteDialog , completeProfile } = this.props;
- if(completeProfile){
+ if(!completeProfile){
showCompeleteDialog && showCompeleteDialog();
}else{
- this.props.history.push(url);
+ window.location.href(url);
}
}
addMenu=(list)=>{
- console.log(this.props);
return(
list && list.length >0 &&
@@ -242,11 +242,15 @@ class NewHeader extends Component {
list.map((item,key)=>{
return(
(item.name !=="加入课堂" && item.name !=="加入开发项目") &&
-
{item.name}
+
+ {window.location.href=item.url}}>{item.name}
+
)
})
}
-
+
+
+
)
diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx
index dd6e8c8a..fe2c226d 100644
--- a/src/forge/Main/CoderDepot.jsx
+++ b/src/forge/Main/CoderDepot.jsx
@@ -20,6 +20,7 @@ import DrawerPanel from '../Component/DrawerPanel';
import UpdateDescModal from './sub/UpdateDescModal';
import Nodata from '../Nodata';
import Invite from './sub/Invite';
+import CheckProfile from '../Component/ProfileModal/Profile';
/**
* projectDetail.type:0是托管项目,1是镜像项目,2是同步镜像项目(为2时不支持在线创建、在线上传、在线修改、在线删除、创建合并请求等功能)
*/
@@ -364,11 +365,11 @@ function CoderDepot(props){
}
diff --git a/src/forge/Merge/merge.js b/src/forge/Merge/merge.js
index 03b3b74b..1e1285e4 100644
--- a/src/forge/Merge/merge.js
+++ b/src/forge/Merge/merge.js
@@ -8,6 +8,7 @@ import MergeItem from "./MergeItem";
import './Index.scss';
import axios from "axios";
+import CheckProfile from '../Component/ProfileModal/Profile';
const Search = Input.Search;
/**
@@ -256,9 +257,9 @@ class merge extends Component {
{
data && data.user_admin_or_developer &&
- this.checkOperation()}>
+ this.checkOperation()}>
+ 新建合并请求
-
+
}
diff --git a/src/forge/Order/Milepost.js b/src/forge/Order/Milepost.js
index d25657b7..5f6efeeb 100644
--- a/src/forge/Order/Milepost.js
+++ b/src/forge/Order/Milepost.js
@@ -4,6 +4,7 @@ import { Dropdown, Icon, Menu, Pagination, Typography, Popconfirm, Spin } from '
import NoneData from '../Nodata';
import axios from 'axios';
import './order.css';
+import CheckProfile from '../Component/ProfileModal/Profile';
const { Text } = Typography;
@@ -187,7 +188,7 @@ class Milepost extends Component {
{
data && data.user_admin_or_member ?
- 新的里程碑
+ {this.props.history.push(`/${owner}/${projectsId}/milestones/new`)}}>新的里程碑
: ''
}
diff --git a/src/forge/Order/order.js b/src/forge/Order/order.js
index 82cc40fe..290bb03e 100644
--- a/src/forge/Order/order.js
+++ b/src/forge/Order/order.js
@@ -1,12 +1,12 @@
import React, { Component } from "react";
import { Input, Dropdown, Menu, Icon, Pagination, Spin, DatePicker, Checkbox } from "antd";
-import { Link } from 'react-router-dom';
import "./order.css";
import './index.scss';
import moment from 'moment';
import NoneData from "../Nodata";
import OrderItem from "./OrderItem";
+import CheckProfile from '../Component/ProfileModal/Profile';
import axios from "axios";
@@ -351,9 +351,9 @@ class order extends Component {
if(data && data.user_admin_or_member){
const { projectsId , owner } = this.props.match.params;
return(
-
+ {window.open(`/${owner}/${projectsId}/issues/new`,'_blank')}}>
+ 创建易修
-
+
)
}
}
diff --git a/src/forge/SecuritySetting/Index.scss b/src/forge/SecuritySetting/Index.scss
index 674c48a7..1024ec2a 100644
--- a/src/forge/SecuritySetting/Index.scss
+++ b/src/forge/SecuritySetting/Index.scss
@@ -126,7 +126,6 @@
}
.deleteBox{
.ant-modal-header{
- background-color: rgba(223, 0, 2, 0.06);
border-bottom: none;
.ant-modal-title{
text-align: left;
diff --git a/src/forge/Team/List.jsx b/src/forge/Team/List.jsx
index 7753aa5e..8d1cf9cd 100644
--- a/src/forge/Team/List.jsx
+++ b/src/forge/Team/List.jsx
@@ -6,6 +6,7 @@ import './Index.scss';
import Item from './ListItem';
import Right from './RightBox';
import NoData from '../Nodata';
+import CheckProfile from '../Component/ProfileModal/Profile';
import { Menu , Pagination , Dropdown , Spin } from 'antd';
import axios from 'axios';
@@ -61,8 +62,12 @@ function List(props){
)
const menu_new=(
)
diff --git a/src/forge/comments/comments.js b/src/forge/comments/comments.js
index a66ea03a..7de4bdbd 100644
--- a/src/forge/comments/comments.js
+++ b/src/forge/comments/comments.js
@@ -76,6 +76,8 @@ class comments extends Component {
content: "",
reply_content: undefined,
});
+ this.state.new_journal_id = result.data.id;
+ this.getjournalslist(page, limit);
this.setState({
showFiles: false,
content: "",
@@ -86,10 +88,13 @@ class comments extends Component {
journal_spin: false,
attachment_clean: false,
});
- this.state.new_journal_id = result.data.id;
- this.getjournalslist(page, limit);
}
- this.props.showNotification(result.data.message);
+ this.setState({
+ journal_spin: false
+ });
+ if(result && result.data.status !== 411){
+ this.props.showNotification(result.data.message);
+ }
})
.catch((error) => {
this.setState({
diff --git a/src/forge/users/Index.scss b/src/forge/users/Index.scss
index 3595aa84..8139ebae 100644
--- a/src/forge/users/Index.scss
+++ b/src/forge/users/Index.scss
@@ -218,6 +218,7 @@ ul.ant-menu.menuStyle{
border-bottom: 2px solid transparent!important;
position: relative;
a{
+ font-size: 16px;
& >i{
font-size: 15px!important;
margin-right: 8px;
diff --git a/src/forge/users/InfosUser.js b/src/forge/users/InfosUser.js
index e79e1021..dbe42e81 100644
--- a/src/forge/users/InfosUser.js
+++ b/src/forge/users/InfosUser.js
@@ -1,6 +1,6 @@
import React, { Component } from "react";
-import { Link } from "react-router-dom";
import { Menu, Input, Spin, Pagination, Popover, Button, Divider } from "antd";
+import CheckProfile from '../Component/ProfileModal/Profile';
import axios from "axios";
import ListItem from "../Main/IndexItem";
@@ -115,14 +115,15 @@ class InfosUser extends Component {
newItem =()=> (
);
+
category_button=(category)=>{
const { current_user, user } = this.props;
const button_lists =
@@ -187,7 +188,7 @@ class InfosUser extends Component {
{current_user && user && current_user.login === user.login && (
diff --git a/src/forge/users/Material/Index.scss b/src/forge/users/Material/Index.scss
index 14a0e30d..b24d3eb1 100644
--- a/src/forge/users/Material/Index.scss
+++ b/src/forge/users/Material/Index.scss
@@ -14,4 +14,11 @@
.ant-form-item-label{
width: 92px;
}
+}
+.infosRightMenu{
+ .ant-menu-item{
+ a{
+ font-size: 16px;
+ }
+ }
}
\ No newline at end of file
diff --git a/src/forge/users/Team.jsx b/src/forge/users/Team.jsx
index bf401d2c..6ab3f2b5 100644
--- a/src/forge/users/Team.jsx
+++ b/src/forge/users/Team.jsx
@@ -5,7 +5,7 @@ import Search from '../Component/Search';
import Item from './Team-item';
import Nodata from '../Nodata';
import axios from 'axios';
-import { Link } from 'react-router-dom';
+import CheckProfile from '../Component/ProfileModal/Profile';
const limit = 15;
function Team(props){
@@ -48,6 +48,7 @@ function Team(props){
)
+
return(
@@ -57,7 +58,7 @@ function Team(props){
{
checkIfLogin() &&
- 新建组织
+ {this.props.history.push('/organize/new')}}>新建组织
}
排序
diff --git a/src/modules/tpm/TPMIndexHOC.js b/src/modules/tpm/TPMIndexHOC.js
index 18e904f7..b9215568 100644
--- a/src/modules/tpm/TPMIndexHOC.js
+++ b/src/modules/tpm/TPMIndexHOC.js
@@ -155,7 +155,7 @@ export function TPMIndexHOC(WrappedComponent) {
this.initCommonState(response.data)
this.setState({
tpmLoading: false,
- completeProfile:!response.data.profile_completed
+ completeProfile:response.data.profile_completed
})
if (this.props.match.path === "/" && response.data.login) {
this.props.history.push(`/${response.data.login}`);
@@ -226,7 +226,11 @@ export function TPMIndexHOC(WrappedComponent) {
return (
-
+ {this.setState({showCP:false})}}
+ history={this.props.history}
+ />
{isRender === true ? this.hideLoginDialog()}
{...this.props}