邮箱绑定

This commit is contained in:
caishi 2021-03-19 09:33:22 +08:00
parent c3eb6edddc
commit 741a461f7e
4 changed files with 105 additions and 2 deletions

View File

@ -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) {

View File

@ -0,0 +1,9 @@
.ant-modal-mask{
z-index: 10000;
}
.ant-modal-wrap{
z-index: 10001;
.ant-form-explain{
position: absolute;
}
}

View File

@ -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(
<Modal
visible={visible}
title="提示"
width="500px"
closable={false}
footer={
<Button type="primary" onClick={onSure}>确定</Button>
}
centered
>
<div>
<p className="mb15 edu-txt-center" style={{maxWidth:"350px",margin:"0px auto"}}>
{
email ?
`平台已检测到您已绑定邮箱${email},请您确认如下操作`
:
"平台已检测到您未绑定邮箱,为不影响使用协同开发功能,请先绑定邮箱"
}
</p>
<Form {...layout}>
<Form.Item label="邮箱">
{getFieldDecorator("email",{
rules:[{required:true,message:"请输入邮箱账号"}]
})(
<Input placeholder="请输入您的邮箱账号" width="220px" disabled={email}/>
)}
</Form.Item>
<Form.Item label="密码">
{getFieldDecorator("password",{
rules:[{required:true,message:"请输入邮箱密码"}]
})(
<Input.Password placeholder="请输入您的邮箱密码" width="220px"/>
)}
</Form.Item>
</Form>
</div>
</Modal>
)
}
export default Form.create()(forwardRef(EducoderAccount));

View File

@ -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 (
<div className="indexHOC">
<EducoderAccount visible={giteaVisible} email={email} onOk={this.onOk}/>
{isRender === true ? <LoginDialog
Modifyloginvalue={() => this.hideLoginDialog()}
{...this.props}