Слияние кода завершено, страница обновится автоматически
import * as React from 'react';
import './index.less';
import { Tooltip, Icon, Badge } from 'component/antd';
import { adminMenu, topicMenu, clusterMenu, expertMenu, userMenu, alarmMenu } from '../../constants/left-menu';
import { NavLink } from 'react-router-dom';
import { observer } from 'mobx-react';
import { ILeftMenu } from 'types/base-type';
import { users } from 'store/users';
import { order } from 'store/order';
interface ILeftMenuProps {
mode?: 'admin' | 'user' | 'topic' | 'cluster' | 'expert' | 'alarm';
}
@observer
export class LeftMenu extends React.Component<ILeftMenuProps> {
public isUser = window.location.pathname.includes('/user'); // 判断是否为详情
public state = {
status: 'k-open',
};
public open = () => {
const { status } = this.state;
const newStatus = !status ? 'k-open' : '';
this.setState({
status: newStatus,
});
}
public componentDidMount() {
if (this.isUser) {
order.getApplyOrderList(0);
order.getApprovalList(0);
}
}
public render() {
const { status } = this.state;
const { mode } = this.props;
let menu = topicMenu;
switch (mode) {
case 'admin' :
menu = adminMenu;
break;
case 'cluster' :
menu = clusterMenu;
break;
case 'expert' :
menu = expertMenu;
break;
case 'user' :
menu = userMenu;
break;
case 'topic' :
menu = topicMenu;
break;
case 'alarm':
menu = alarmMenu;
}
return (
<div className={`left-menu ${status}`}>
<ul>
{
menu.map((m: ILeftMenu, i) => {
if (m.hide) {
return null;
}
const cnt = (
<Badge
count={m.class === 'approval' ? order.approval : m.class === 'apply' ? order.apply : 0}
overflowCount={999}
key={i}
>
<li key={i} className={m.class ? 'approval' : ''}>
<NavLink exact={true} to={m.href} activeClassName="active">
<i className={m.i} />
{status ? <span>{m.title}</span> : null}
</NavLink>
</li>
</Badge>
);
if (!status) {
return <Tooltip placement="right" title={m.title} key={m.i} >{cnt}</Tooltip>;
}
return cnt;
})
}
</ul>
<div className="k-float-op" onClick={this.open}>
<Icon type={status ? 'double-left' : 'double-right'} />
</div>
</div>
);
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )