mirror of
https://github.com/YMFE/yapi.git
synced 2025-02-17 13:49:43 +08:00
fix:修改了header和登录框的逻辑
This commit is contained in:
parent
cff1e476f8
commit
719d6fcb25
@ -1,7 +1,8 @@
|
|||||||
import {
|
import {
|
||||||
LOGIN,
|
LOGIN,
|
||||||
REGISTER
|
REGISTER,
|
||||||
} from '../actionTypes.js';
|
LOGIN_TYPE
|
||||||
|
} from '../constants/action-types.js';
|
||||||
// import Server from '../server/listRequest';
|
// import Server from '../server/listRequest';
|
||||||
|
|
||||||
const loginActions = (data) => {
|
const loginActions = (data) => {
|
||||||
@ -20,7 +21,15 @@ const regActions = (data) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const loginTypeAction = (index) => {
|
||||||
|
return{
|
||||||
|
type: LOGIN_TYPE,
|
||||||
|
index
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
loginActions,
|
loginActions,
|
||||||
regActions
|
regActions,
|
||||||
|
loginTypeAction
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import PropTypes from 'prop-types'
|
|||||||
import { connect } from 'react-redux'
|
import { connect } from 'react-redux'
|
||||||
import { Link } from 'react-router-dom'
|
import { Link } from 'react-router-dom'
|
||||||
import { Icon } from 'antd'
|
import { Icon } from 'antd'
|
||||||
|
import { loginTypeAction } from '../../actions/login';
|
||||||
|
|
||||||
const ToolUser = (props)=> (
|
const ToolUser = (props)=> (
|
||||||
<ul>
|
<ul>
|
||||||
@ -13,43 +14,69 @@ const ToolUser = (props)=> (
|
|||||||
</ul>
|
</ul>
|
||||||
);
|
);
|
||||||
ToolUser.propTypes={
|
ToolUser.propTypes={
|
||||||
user:PropTypes.string.isRequired,
|
user:PropTypes.string,
|
||||||
msg:PropTypes.string.isRequired
|
msg:PropTypes.string
|
||||||
};
|
};
|
||||||
|
|
||||||
const ToolGuest = ()=>
|
const ToolGuest = (props)=> (
|
||||||
(
|
<ul>
|
||||||
<ul>
|
<li onClick={e => props.onLogin(e)}><Link to={`/Login`}>登录</Link></li>
|
||||||
<li><Link to={`/Login`}>登录</Link></li>
|
<li onClick={e => props.onReg(e)}><Link to={`/Login`}>注册</Link></li>
|
||||||
<li>注册</li>
|
</ul>
|
||||||
</ul>
|
);
|
||||||
);
|
ToolGuest.propTypes={
|
||||||
|
onLogin:PropTypes.func,
|
||||||
|
onReg:PropTypes.func
|
||||||
|
}
|
||||||
|
|
||||||
class Header extends Component {
|
class Header extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
|
this.state={
|
||||||
|
guestToolShow:true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
handleLogin = (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
this.props.loginTypeAction("1");
|
||||||
|
this.setState({
|
||||||
|
guestToolShow:false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
handleReg = (e)=>{
|
||||||
|
e.preventDefault();
|
||||||
|
this.props.loginTypeAction("2");
|
||||||
|
this.setState({
|
||||||
|
guestToolShow:false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
hideGuestTool = (e)=>{
|
||||||
|
e.preventDefault();
|
||||||
|
this.setState({
|
||||||
|
guestToolShow:true
|
||||||
|
})
|
||||||
}
|
}
|
||||||
render () {
|
render () {
|
||||||
const { login, user, msg } = this.props;
|
const { login, user, msg } = this.props;
|
||||||
|
console.log(this.state.guestToolShow);
|
||||||
return (
|
return (
|
||||||
<acticle className="header-box">
|
<acticle className="header-box">
|
||||||
<div className="content">
|
<div className="content">
|
||||||
<h1>YAPI</h1>
|
<h1>YAPI</h1>
|
||||||
<ul className="nav-toolbar">
|
<ul className="nav-toolbar">
|
||||||
<li>
|
<li onClick={this.hideGuestTool}>
|
||||||
<Link to={`/ProjectGroups`}>分组</Link>
|
<Link to={`/ProjectGroups`}>分组</Link>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li onClick={this.hideGuestTool}>
|
||||||
<a>我的项目</a>
|
<a>我的项目</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li onClick={this.hideGuestTool}>
|
||||||
<a>文档</a>
|
<a>文档</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul className="user-toolbar">
|
<ul className="user-toolbar">
|
||||||
{login?<ToolUser user={user} msg={msg}/>:<ToolGuest/>}
|
{login?<ToolUser user={user} msg={msg}/>:(this.state.guestToolShow?<ToolGuest onLogin={this.handleLogin} onReg={this.handleReg}/>:'')}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</acticle>
|
</acticle>
|
||||||
)
|
)
|
||||||
@ -57,16 +84,20 @@ class Header extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Header.propTypes={
|
Header.propTypes={
|
||||||
user: PropTypes.string.isRequired,
|
user: PropTypes.string,
|
||||||
msg: PropTypes.string.isRequired,
|
msg: PropTypes.string,
|
||||||
login:PropTypes.bool.isRequired
|
login:PropTypes.bool,
|
||||||
|
loginTypeAction:PropTypes.func
|
||||||
};
|
};
|
||||||
|
|
||||||
export default connect(
|
export default connect(
|
||||||
() => ({
|
(state) => {
|
||||||
user: "王亮",
|
return{
|
||||||
msg: "暂无消息",
|
user: state.login.userName,
|
||||||
login:false
|
msg: "暂无消息",
|
||||||
})
|
login:state.login.isLogin
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{loginTypeAction}
|
||||||
)(Header)
|
)(Header)
|
||||||
|
|
||||||
|
@ -7,3 +7,7 @@ export const FETCH_CURR_GROUP = 'FETCH_CURR_GROUP'
|
|||||||
|
|
||||||
// login
|
// login
|
||||||
export const LOGIN = 'LOGIN';
|
export const LOGIN = 'LOGIN';
|
||||||
|
export const REGISTER = 'REGISTER';
|
||||||
|
|
||||||
|
//header
|
||||||
|
export const LOGIN_TYPE = 'LOGIN_TYPE';
|
@ -1,19 +1,27 @@
|
|||||||
import './Login.scss'
|
import './Login.scss'
|
||||||
import React, { Component } from 'react'
|
import React, { Component } from 'react'
|
||||||
|
import { connect } from 'react-redux'
|
||||||
import PropTypes from 'prop-types'
|
import PropTypes from 'prop-types'
|
||||||
import { Tabs } from 'antd';
|
import { Tabs } from 'antd';
|
||||||
import LoginForm from './login';
|
import LoginForm from './login';
|
||||||
import RegForm from './reg';
|
import RegForm from './reg';
|
||||||
const TabPane = Tabs.TabPane;
|
const TabPane = Tabs.TabPane;
|
||||||
|
|
||||||
|
|
||||||
class LoginWrap extends Component {
|
class LoginWrap extends Component {
|
||||||
|
constructor(props){
|
||||||
|
super(props);
|
||||||
|
}
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
form: PropTypes.object
|
form: PropTypes.object,
|
||||||
|
loginWrapActiveKey:PropTypes.string
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
const { loginWrapActiveKey } = this.props;
|
||||||
return (
|
return (
|
||||||
<Tabs defaultActiveKey="1" className="login-form">
|
<Tabs defaultActiveKey={loginWrapActiveKey} className="login-form">
|
||||||
<TabPane tab="登录" key="1">
|
<TabPane tab="登录" key="1">
|
||||||
<LoginForm/>
|
<LoginForm/>
|
||||||
</TabPane>
|
</TabPane>
|
||||||
@ -25,4 +33,8 @@ class LoginWrap extends Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default LoginWrap;
|
export default connect(
|
||||||
|
state =>({
|
||||||
|
loginWrapActiveKey: state.login.loginWrapActiveKey
|
||||||
|
})
|
||||||
|
)(LoginWrap)
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
import {
|
import {
|
||||||
LOGIN
|
LOGIN,
|
||||||
|
LOGIN_TYPE
|
||||||
} from '../../constants/action-types';
|
} from '../../constants/action-types';
|
||||||
|
|
||||||
const initialState = {
|
const initialState = {
|
||||||
isLogin: false,
|
isLogin: false,
|
||||||
userName: null,
|
userName: null,
|
||||||
uid: null
|
uid: null,
|
||||||
|
loginWrapActiveKey:"1"
|
||||||
};
|
};
|
||||||
|
|
||||||
export default (state = initialState, action) => {
|
export default (state = initialState, action) => {
|
||||||
@ -17,6 +19,12 @@ export default (state = initialState, action) => {
|
|||||||
userName: action.userName
|
userName: action.userName
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
case LOGIN_TYPE: {
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
loginWrapActiveKey: action.index
|
||||||
|
};
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user