From 105e1c61b8199053b9c01f36cf670d4e7033d184 Mon Sep 17 00:00:00 2001 From: caishi Date: Wed, 1 Sep 2021 17:46:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E8=B5=84=E6=96=99=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=AE=8C=E5=96=84-=E5=BC=B9=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/forge/Component/DeleteModal/Index.jsx | 22 ++++---- src/forge/Component/EAccount.scss | 4 +- src/forge/Component/ProfileModal/Index.jsx | 52 ++++++++++++++++--- src/forge/Component/ProfileModal/Profile.jsx | 17 ++++++ src/forge/Component/PublicModal/Index.jsx | 19 +++++++ .../{DeleteModal => PublicModal}/Index.scss | 11 +++- src/forge/Head/AddProjectModal.jsx | 3 +- src/forge/Head/Header.js | 14 +++-- src/forge/Main/CoderDepot.jsx | 5 +- src/forge/Merge/merge.js | 5 +- src/forge/Order/Milepost.js | 3 +- src/forge/Order/order.js | 6 +-- src/forge/SecuritySetting/Index.scss | 1 - src/forge/Team/List.jsx | 9 +++- src/forge/comments/comments.js | 11 ++-- src/forge/users/Index.scss | 1 + src/forge/users/InfosUser.js | 9 ++-- src/forge/users/Material/Index.scss | 7 +++ src/forge/users/Team.jsx | 5 +- src/modules/tpm/TPMIndexHOC.js | 8 ++- 21 files changed, 163 insertions(+), 51 deletions(-) create mode 100644 src/forge/Component/ProfileModal/Profile.jsx create mode 100644 src/forge/Component/PublicModal/Index.jsx rename src/forge/Component/{DeleteModal => PublicModal}/Index.scss (78%) diff --git a/src/AppConfig.js b/src/AppConfig.js index 381ce19ac..67dd6c84b 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 7e631dac6..c3c136899 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 d0fd2ef25..6fe44ab3a 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 fe3d6b7fb..8b15f1c72 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 000000000..e63c1286d --- /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 000000000..d0fb8c5ef --- /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 7df79ebf5..a147125ef 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 8e3073e30..81f1d27cc 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 499549d22..447d17f5e 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 dd6e8c8a7..fe2c226da 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){
{ projectDetail.type !== 2 && pullsFlag && - urlLink(`/${owner}/${projectsId}/pulls/new`)} >+ 合并请求 + urlLink(`/${owner}/${projectsId}/pulls/new`)} >+ 合并请求 } { issuesFlag && - urlLink(`/${owner}/${projectsId}/issues/new`)} >+ 任务 + urlLink(`/${owner}/${projectsId}/issues/new`)} >+ 任务 }
} diff --git a/src/forge/Merge/merge.js b/src/forge/Merge/merge.js index 03b3b74b2..1e1285e4e 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 d25657b7a..5f6efeeb9 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 82cc40fea..290bb03e3 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 674c48a7f..1024ec2ab 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 7753aa5e9..8d1cf9cdb 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=( - 新建托管项目 - 新建镜像项目 + + {props.history.push(`/deposit/new/${OIdentifier}`)}}>新建托管项目 + + + {props.history.push(`/mirror/new/${OIdentifier}`)}}>新建镜像项目 + ) diff --git a/src/forge/comments/comments.js b/src/forge/comments/comments.js index a66ea03a1..7de4bdbd2 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 3595aa844..8139ebaec 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 e79e1021e..dbe42e819 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 =()=> ( - 新建镜像项目 + {this.props.history.push('/projects/mirror/new')}}>新建镜像项目 - 新建托管项目 + {this.props.history.push('/projects/deposit/new')}} >新建托管项目 ); + 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 14a0e30d8..b24d3eb19 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 bf401d2cd..6ab3f2b53 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 18e904f7c..b9215568b 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}