Merge "feat: Add administrator link in header in user center page"
This commit is contained in:
commit
c1b971fbc0
@ -152,13 +152,8 @@ class AvatarDropdown extends React.Component {
|
|||||||
shape="circle"
|
shape="circle"
|
||||||
icon={<UserOutlined />}
|
icon={<UserOutlined />}
|
||||||
className={styles.avatar}
|
className={styles.avatar}
|
||||||
onClick={() => {
|
href="/user/center"
|
||||||
const { rootStore } = this.props;
|
|
||||||
rootStore.routing.push('/user/center');
|
|
||||||
}}
|
|
||||||
/>
|
/>
|
||||||
{/* <Avatar size="small" className={styles.avatar} src={currentUser.avatar} alt="avatar" /> */}
|
|
||||||
{/* <span className={styles.name}>{currentUser.name}</span> */}
|
|
||||||
</div>
|
</div>
|
||||||
</HeaderDropdown>
|
</HeaderDropdown>
|
||||||
);
|
);
|
||||||
|
@ -12,32 +12,25 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
import React from 'react';
|
import React, { PureComponent } from 'react';
|
||||||
import { Button, Col, Row } from 'antd';
|
import { Button, Col, Row } from 'antd';
|
||||||
import { isUserCenterPage } from 'utils';
|
|
||||||
import Avatar from './AvatarDropdown';
|
import Avatar from './AvatarDropdown';
|
||||||
import styles from './index.less';
|
import styles from './index.less';
|
||||||
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
export class GlobalHeaderRight extends PureComponent {
|
||||||
const gotoConsole = (type, props) => {
|
get isAdminPage() {
|
||||||
const { rootStore } = props;
|
const { isAdminPage = false } = this.props;
|
||||||
rootStore.clearData();
|
return isAdminPage;
|
||||||
if (type === 0) {
|
|
||||||
rootStore.routing.push('/base/overview');
|
|
||||||
} else {
|
|
||||||
rootStore.routing.push('/base/overview-admin');
|
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
const GlobalHeaderRight = (props) => {
|
get isUserCenterPage() {
|
||||||
const {
|
const { isUserCenterPage = false } = this.props;
|
||||||
isAdminPage = false,
|
return isUserCenterPage;
|
||||||
rootStore: { hasAdminPageRole = false } = {},
|
}
|
||||||
location: { pathname },
|
|
||||||
} = props;
|
renderConsole() {
|
||||||
let linkRender = null;
|
if (this.isAdminPage || this.isUserCenterPage) {
|
||||||
if (isAdminPage || isUserCenterPage(pathname)) {
|
return (
|
||||||
linkRender = (
|
|
||||||
<Button
|
<Button
|
||||||
type="link"
|
type="link"
|
||||||
href="/base/overview"
|
href="/base/overview"
|
||||||
@ -46,8 +39,16 @@ const GlobalHeaderRight = (props) => {
|
|||||||
{t('Console')}
|
{t('Console')}
|
||||||
</Button>
|
</Button>
|
||||||
);
|
);
|
||||||
} else if (hasAdminPageRole) {
|
}
|
||||||
linkRender = (
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
renderAdministrator() {
|
||||||
|
const { rootStore: { hasAdminPageRole = false } = {} } = this.props;
|
||||||
|
if (!hasAdminPageRole || this.isAdminPage) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return (
|
||||||
<Button
|
<Button
|
||||||
type="link"
|
type="link"
|
||||||
href="/base/overview-admin"
|
href="/base/overview-admin"
|
||||||
@ -58,21 +59,26 @@ const GlobalHeaderRight = (props) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderExtra() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
return (
|
return (
|
||||||
<div className={styles.right}>
|
<div className={styles.right}>
|
||||||
<Row
|
<Row justify="space-between" align="middle" gutter={10}>
|
||||||
justify="space-between"
|
<Col>
|
||||||
align="middle"
|
{this.renderConsole()}
|
||||||
gutter={10}
|
{this.renderAdministrator()}
|
||||||
// wrap={false}
|
</Col>
|
||||||
>
|
{this.renderExtra()}
|
||||||
<Col>{linkRender}</Col>
|
|
||||||
<Col>
|
<Col>
|
||||||
<Avatar menu />
|
<Avatar menu />
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default GlobalHeaderRight;
|
export default GlobalHeaderRight;
|
||||||
|
@ -44,6 +44,11 @@ export class BaseLayout extends Component {
|
|||||||
return isAdminPage(pathname);
|
return isAdminPage(pathname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get isUserCenterPage() {
|
||||||
|
const { pathname } = this.props.location;
|
||||||
|
return isUserCenterPage(pathname);
|
||||||
|
}
|
||||||
|
|
||||||
get rootStore() {
|
get rootStore() {
|
||||||
return this.props.rootStore;
|
return this.props.rootStore;
|
||||||
}
|
}
|
||||||
@ -65,11 +70,8 @@ export class BaseLayout extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get originMenu() {
|
get originMenu() {
|
||||||
const {
|
|
||||||
location: { pathname },
|
|
||||||
} = this.props;
|
|
||||||
let ret = [];
|
let ret = [];
|
||||||
if (isUserCenterPage(pathname)) {
|
if (this.isUserCenterPage) {
|
||||||
ret = renderUserMenu(i18n.t);
|
ret = renderUserMenu(i18n.t);
|
||||||
} else if (this.isAdminPage) {
|
} else if (this.isAdminPage) {
|
||||||
ret = renderAdminMenu(i18n.t);
|
ret = renderAdminMenu(i18n.t);
|
||||||
@ -223,7 +225,11 @@ export class BaseLayout extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
renderHeader = () => (
|
renderHeader = () => (
|
||||||
<GlobalHeader {...this.props} isAdminPage={this.isAdminPage} />
|
<GlobalHeader
|
||||||
|
{...this.props}
|
||||||
|
isAdminPage={this.isAdminPage}
|
||||||
|
isUserCenterPage={this.isUserCenterPage}
|
||||||
|
/>
|
||||||
);
|
);
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
@ -19,7 +19,7 @@ import globalUserStore from 'stores/keystone/user';
|
|||||||
import ProfileIcon from 'asset/image/profile.svg';
|
import ProfileIcon from 'asset/image/profile.svg';
|
||||||
import styles from './styles.less';
|
import styles from './styles.less';
|
||||||
|
|
||||||
class Index extends Component {
|
export class Overview extends Component {
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.fetchData();
|
this.fetchData();
|
||||||
}
|
}
|
||||||
@ -34,7 +34,7 @@ class Index extends Component {
|
|||||||
renderInfoItem(item) {
|
renderInfoItem(item) {
|
||||||
return (
|
return (
|
||||||
<Row className={styles.user_info_detail_item}>
|
<Row className={styles.user_info_detail_item}>
|
||||||
<Col span={6}>{t(item.label)}</Col>
|
<Col span={6}>{item.label}</Col>
|
||||||
<Col span={18}>{item.value}</Col>
|
<Col span={18}>{item.value}</Col>
|
||||||
</Row>
|
</Row>
|
||||||
);
|
);
|
||||||
@ -75,13 +75,18 @@ class Index extends Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderExtra() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<Layout.Content className={styles.content}>
|
<Layout.Content className={styles.content}>
|
||||||
<Row className={styles.user_info_card}>{this.renderUserInfo()}</Row>
|
<Row className={styles.user_info_card}>{this.renderUserInfo()}</Row>
|
||||||
|
{this.renderExtra()}
|
||||||
</Layout.Content>
|
</Layout.Content>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default inject('rootStore')(observer(Index));
|
export default inject('rootStore')(observer(Overview));
|
||||||
|
Loading…
Reference in New Issue
Block a user