Commit a824d62a authored by 张烨's avatar 张烨

feat: 登录名展示

parent 79a8bb89
...@@ -10,7 +10,7 @@ import connectHistoryHoc from '@/containers/connectHistoryHoc'; ...@@ -10,7 +10,7 @@ import connectHistoryHoc from '@/containers/connectHistoryHoc';
class AvatarDropdown extends React.Component { class AvatarDropdown extends React.Component {
/* eslint-disable no-unused-vars */ /* eslint-disable no-unused-vars */
onMenuClick = event => { onMenuClick = event => {
const { logout, history } = this.props; const { logout, history, loginName } = this.props;
switch (event.key) { switch (event.key) {
case 'logout': case 'logout':
setAuthority([]); setAuthority([]);
...@@ -24,9 +24,10 @@ class AvatarDropdown extends React.Component { ...@@ -24,9 +24,10 @@ class AvatarDropdown extends React.Component {
render() { render() {
const { const {
loginName,
currentUser = { currentUser = {
avatar: logo, avatar: logo,
name: '测试人员', name: '',
}, },
} = this.props; } = this.props;
const menuHeaderDropdown = ( const menuHeaderDropdown = (
...@@ -55,7 +56,7 @@ class AvatarDropdown extends React.Component { ...@@ -55,7 +56,7 @@ class AvatarDropdown extends React.Component {
</Menu.Item> </Menu.Item>
</Menu> </Menu>
); );
return currentUser && currentUser.name ? ( return currentUser ? (
<HeaderDropdown overlay={menuHeaderDropdown}> <HeaderDropdown overlay={menuHeaderDropdown}>
<span className={`${styles.action} ${styles.account}`}> <span className={`${styles.action} ${styles.account}`}>
<Avatar <Avatar
...@@ -64,7 +65,9 @@ class AvatarDropdown extends React.Component { ...@@ -64,7 +65,9 @@ class AvatarDropdown extends React.Component {
src={currentUser.avatar} src={currentUser.avatar}
alt="avatar" alt="avatar"
/> />
<span className={`${styles.name} anticon`}>{currentUser.name}</span> <span className={`${styles.name} anticon`}>
{currentUser.name || loginName || '管理员'}
</span>
</span> </span>
</HeaderDropdown> </HeaderDropdown>
) : ( ) : (
......
...@@ -4,6 +4,7 @@ import { ...@@ -4,6 +4,7 @@ import {
LOAD_REPOS_SUCCESS, LOAD_REPOS_SUCCESS,
SET_AUTHORITY, SET_AUTHORITY,
SET_USER_MODE, SET_USER_MODE,
SET_LOGIN_NAME,
} from './constants'; } from './constants';
export function loadRepos() { export function loadRepos() {
...@@ -40,3 +41,10 @@ export function setUserMode(userMode) { ...@@ -40,3 +41,10 @@ export function setUserMode(userMode) {
userMode, userMode,
}; };
} }
export function setLoginName(loginName) {
return {
type: SET_LOGIN_NAME,
loginName,
};
}
...@@ -3,3 +3,4 @@ export const LOAD_REPOS_SUCCESS = 'App/LOAD_REPOS_SUCCESS'; ...@@ -3,3 +3,4 @@ export const LOAD_REPOS_SUCCESS = 'App/LOAD_REPOS_SUCCESS';
export const LOAD_REPOS_ERROR = 'App/LOAD_REPOS_ERROR'; export const LOAD_REPOS_ERROR = 'App/LOAD_REPOS_ERROR';
export const SET_AUTHORITY = 'App/SET_AUTHORITY'; export const SET_AUTHORITY = 'App/SET_AUTHORITY';
export const SET_USER_MODE = 'App/SET_USER_MODE'; export const SET_USER_MODE = 'App/SET_USER_MODE';
export const SET_LOGIN_NAME = 'App/SET_LOGIN_NAME';
...@@ -11,6 +11,7 @@ const mapState = store => { ...@@ -11,6 +11,7 @@ const mapState = store => {
global: storeObj.global, global: storeObj.global,
auth: storeObj.global.auth, auth: storeObj.global.auth,
userMode: storeObj.global.userMode, userMode: storeObj.global.userMode,
loginName: storeObj.global.loginName,
}; };
}; };
const mapDispatch = dispatch => ({ const mapDispatch = dispatch => ({
...@@ -20,6 +21,7 @@ const mapDispatch = dispatch => ({ ...@@ -20,6 +21,7 @@ const mapDispatch = dispatch => ({
dispatch(actionCreators.setAuth([])); dispatch(actionCreators.setAuth([]));
}, },
setUserMode: userMode => dispatch(actionCreators.setUserMode(userMode)), setUserMode: userMode => dispatch(actionCreators.setUserMode(userMode)),
setLoginName: loginName => dispatch(actionCreators.setLoginName(loginName)),
}); });
const appConnector = connect( const appConnector = connect(
......
...@@ -6,6 +6,7 @@ import { ...@@ -6,6 +6,7 @@ import {
LOAD_REPOS_SUCCESS, LOAD_REPOS_SUCCESS,
SET_AUTHORITY, SET_AUTHORITY,
SET_USER_MODE, SET_USER_MODE,
SET_LOGIN_NAME,
} from './constants'; } from './constants';
export const initialState = fromJS({ export const initialState = fromJS({
...@@ -17,6 +18,7 @@ export const initialState = fromJS({ ...@@ -17,6 +18,7 @@ export const initialState = fromJS({
repositories: false, repositories: false,
}, },
userMode: '', userMode: '',
loginName: '',
}); });
/* eslint-disable default-case, no-param-reassign */ /* eslint-disable default-case, no-param-reassign */
...@@ -52,6 +54,10 @@ const appReducer = (state = initialState, action) => { ...@@ -52,6 +54,10 @@ const appReducer = (state = initialState, action) => {
return state.merge({ return state.merge({
userMode: action.userMode, userMode: action.userMode,
}); });
case SET_LOGIN_NAME:
return state.merge({
loginName: action.loginName,
});
default: default:
return state; return state;
} }
......
...@@ -21,7 +21,13 @@ const LoginMessage = ({ content }) => ( ...@@ -21,7 +21,13 @@ const LoginMessage = ({ content }) => (
); );
const Login = props => { const Login = props => {
const { userLogin = {}, submitting, setAuth, setUserMode } = props; const {
userLogin = {},
submitting,
setAuth,
setUserMode,
setLoginName,
} = props;
const { status, type: loginType } = userLogin; const { status, type: loginType } = userLogin;
const history = useHistory(); const history = useHistory();
const [loading, setLoading] = useState(false); const [loading, setLoading] = useState(false);
...@@ -41,6 +47,7 @@ const Login = props => { ...@@ -41,6 +47,7 @@ const Login = props => {
if (pass === true) { if (pass === true) {
localStorage.setItem('token', token?.access_token || ''); localStorage.setItem('token', token?.access_token || '');
setUserMode(userMode); setUserMode(userMode);
setLoginName(loginName);
if (userMode === USER_MODE.ADMIN || userMode === USER_MODE.SUPER) { if (userMode === USER_MODE.ADMIN || userMode === USER_MODE.SUPER) {
const authority = [AUTHORITY.LOGIN, AUTHORITY[userMode]]; const authority = [AUTHORITY.LOGIN, AUTHORITY[userMode]];
setAuthority(authority); setAuthority(authority);
......
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