From 741a461f7e5b5c2a87291f74398f85843f9b16be Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 19 Mar 2021 09:33:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=82=AE=E7=AE=B1=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/forge/Component/EAccount.scss | 9 ++++ src/forge/Component/EducoderAccount.jsx | 65 +++++++++++++++++++++++++ src/modules/tpm/TPMIndexHOC.js | 31 +++++++++++- 4 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 src/forge/Component/EAccount.scss create mode 100644 src/forge/Component/EducoderAccount.jsx diff --git a/src/AppConfig.js b/src/AppConfig.js index a5a063b0..174bac5a 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -56,7 +56,7 @@ window._debugType = debugType; export function initAxiosInterceptors(props) { initOnlineOfflineListener(); var proxy = "http://localhost:3000"; - proxy = "https://testforgeplus.trustie.net"; + proxy = "https://testforgeplus.educoder.net"; const requestMap = {}; window.setfalseInRequestMap = function (keyName) { diff --git a/src/forge/Component/EAccount.scss b/src/forge/Component/EAccount.scss new file mode 100644 index 00000000..6f0bb97f --- /dev/null +++ b/src/forge/Component/EAccount.scss @@ -0,0 +1,9 @@ +.ant-modal-mask{ + z-index: 10000; +} +.ant-modal-wrap{ + z-index: 10001; + .ant-form-explain{ + position: absolute; + } +} \ No newline at end of file diff --git a/src/forge/Component/EducoderAccount.jsx b/src/forge/Component/EducoderAccount.jsx new file mode 100644 index 00000000..b9b2f7af --- /dev/null +++ b/src/forge/Component/EducoderAccount.jsx @@ -0,0 +1,65 @@ +import React , {forwardRef, useEffect} from 'react'; +import { Modal , Form , Input , Button } from 'antd'; +import './EAccount.scss'; + +function EducoderAccount({form , visible , onOk , email}){ + const { getFieldDecorator, validateFields , setFieldsValue } = form; + + useEffect(()=>{ + if(email){ + setFieldsValue({email}) + } + },[email]) + + function onSure(){ + validateFields((error,values)=>{ + if(!error){ + onOk(values); + } + }) + } + const layout = { + labelCol: { span: 5 }, + wrapperCol: { span: 18 }, + }; + return( + 确定 + } + centered + > +
+

+ { + email ? + `平台已检测到您已绑定邮箱${email},请您确认如下操作` + : + "平台已检测到您未绑定邮箱,为不影响使用协同开发功能,请先绑定邮箱" + } +

+
+ + {getFieldDecorator("email",{ + rules:[{required:true,message:"请输入邮箱账号"}] + })( + + )} + + + {getFieldDecorator("password",{ + rules:[{required:true,message:"请输入邮箱密码"}] + })( + + )} + +
+
+
+ ) +} +export default Form.create()(forwardRef(EducoderAccount)); \ No newline at end of file diff --git a/src/modules/tpm/TPMIndexHOC.js b/src/modules/tpm/TPMIndexHOC.js index 0084c333..309d4ec5 100644 --- a/src/modules/tpm/TPMIndexHOC.js +++ b/src/modules/tpm/TPMIndexHOC.js @@ -8,6 +8,7 @@ import './TPMIndex.css'; import LoginDialog from '../login/LoginDialog'; import AccountProfile from '../user/AccountProfile'; import AccountPhoneemail from '../user/AccountPhoneemail'; +import EducoderAccount from '../../forge/Component/EducoderAccount'; export function TPMIndexHOC(WrappedComponent) { return class II extends React.Component { @@ -28,6 +29,8 @@ export function TPMIndexHOC(WrappedComponent) { dataquerys: {}, isloginCancel: undefined, mygetHelmetapi: null, + giteaVisible:false, + email:undefined } } @@ -165,6 +168,12 @@ export function TPMIndexHOC(WrappedComponent) { if (this.props.match.path === "/" && response.data.login) { this.props.history.push(`/users/${response.data.login}`); } + if(!response.data.has_gitea_user){ + this.setState({ + giteaVisible:true, + email:response.data.email + }) + } } }).catch((error) => { console.log(error) @@ -345,8 +354,27 @@ export function TPMIndexHOC(WrappedComponent) { } } + onOk =(values)=>{ + let url = `/accounts/gitea_regsiter.json`; + const { email , current_user } = this.state; + if(email){ + url = `/register.json`; + } + axios.post(url,{ + login:current_user && current_user.login, + ...values + }).then(result=>{ + if(result && result.data && result.data.status === 1){ + this.setState({ + giteaVisible:false, + email:undefined + }) + window.location.reload(); + } + }).catch(error=>{}) + } render() { - let { Footerdown, isRender, AccountProfiletype, AccountPhoneemailtype, current_user } = this.state; + let { email , giteaVisible , Footerdown, isRender, AccountProfiletype, AccountPhoneemailtype, current_user } = this.state; const common = { showLoginDialog: this.showLoginDialog, @@ -372,6 +400,7 @@ export function TPMIndexHOC(WrappedComponent) { }; return (
+ {isRender === true ? this.hideLoginDialog()} {...this.props}