Commit 753dc958 authored by afc163's avatar afc163

Refactor Login code

parent e783edb5
......@@ -69,11 +69,11 @@ const proxy = {
'GET /api/profile/basic': getProfileBasicData,
'GET /api/profile/advanced': getProfileAdvancedData,
'POST /api/login/account': (req, res) => {
const { password, userName } = req.body;
res.send({ status: password === '888888' && userName === 'admin' ? 'ok' : 'error', type: 'account' });
},
'POST /api/login/mobile': (req, res) => {
res.send({ status: 'ok', type: 'mobile' });
const { password, userName, type } = req.body;
res.send({
status: password === '888888' && userName === 'admin' ? 'ok' : 'error',
type,
});
},
'POST /api/register': (req, res) => {
res.send({ status: 'ok' });
......
import { routerRedux } from 'dva/router';
import { fakeAccountLogin, fakeMobileLogin } from '../services/api';
import { fakeAccountLogin } from '../services/api';
export default {
namespace: 'login',
......@@ -9,7 +9,7 @@ export default {
},
effects: {
*accountSubmit({ payload }, { call, put }) {
*login({ payload }, { call, put }) {
yield put({
type: 'changeSubmitting',
payload: true,
......@@ -19,25 +19,10 @@ export default {
type: 'changeLoginStatus',
payload: response,
});
yield put({
type: 'changeSubmitting',
payload: false,
});
},
*mobileSubmit(_, { call, put }) {
yield put({
type: 'changeSubmitting',
payload: true,
});
const response = yield call(fakeMobileLogin);
yield put({
type: 'changeLoginStatus',
payload: response,
});
yield put({
type: 'changeSubmitting',
payload: false,
});
// Login successfully
if (response.status === 'ok') {
yield put(routerRedux.push('/'));
}
},
*logout(_, { put }) {
yield put({
......@@ -56,6 +41,7 @@ export default {
...state,
status: payload.status,
type: payload.type,
submitting: false,
};
},
changeSubmitting(state, { payload }) {
......
import React, { Component } from 'react';
import { connect } from 'dva';
import { routerRedux, Link } from 'dva/router';
import { Link } from 'dva/router';
import { Form, Input, Tabs, Button, Icon, Checkbox, Row, Col, Alert } from 'antd';
import styles from './Login.less';
......@@ -17,20 +17,12 @@ export default class Login extends Component {
type: 'account',
}
componentWillReceiveProps(nextProps) {
if (nextProps.login.status === 'ok') {
this.props.dispatch(routerRedux.push('/'));
}
}
componentWillUnmount() {
clearInterval(this.interval);
}
onSwitch = (key) => {
this.setState({
type: key,
});
onSwitch = (type) => {
this.setState({ type });
}
onGetCaptcha = () => {
......@@ -47,13 +39,15 @@ export default class Login extends Component {
handleSubmit = (e) => {
e.preventDefault();
const { type } = this.state;
this.props.form.validateFields({ force: true },
(err, values) => {
if (!err) {
this.props.dispatch({
type: `login/${type}Submit`,
payload: values,
type: 'login/login',
payload: {
...values,
type: this.state.type,
},
});
}
}
......
......@@ -67,13 +67,6 @@ export async function fakeAccountLogin(params) {
});
}
export async function fakeMobileLogin(params) {
return request('/api/login/mobile', {
method: 'POST',
body: params,
});
}
export async function fakeRegister(params) {
return request('/api/register', {
method: 'POST',
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment