leftTab.jsx 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import React from 'react';
  2. import { Menu, Icon } from 'antd';
  3. import './leftTab.less';
  4. const SubMenu = Menu.SubMenu;
  5. const MenuItemGroup = Menu.ItemGroup;
  6. import {getMenu} from './publicMenu.jsx'
  7. const LeftTab = React.createClass({
  8. getInitialState() {
  9. return {
  10. current: '',
  11. subKey: '',
  12. };
  13. },
  14. handleClick(e) {
  15. this.props.handlekey(e.key);
  16. this.setState({
  17. current: e.key,
  18. });
  19. },
  20. componentWillMount() {
  21. let me_=this;
  22. var ids=window.location.href.indexOf('rid=')
  23. var idk=window.location.href.substr(ids+4)
  24. var rid=idk.split('#')
  25. var menu=getMenu(rid);
  26. let cur,sub;
  27. if(menu[0].subMenus.length){
  28. cur=menu[0].subMenus[0].url.split('#');
  29. sub=menu[0].url;
  30. }else{
  31. cur=menu[0].url.split('#');
  32. sub=''
  33. };
  34. this.setState({
  35. current:rid.length>1?rid[1]:cur[1],
  36. subKey:sub
  37. });
  38. var htmlMenu=[];
  39. for(var j=0;j<menu.length;j++){
  40. if(menu[j].subMenus.length){
  41. htmlMenu.push(
  42. <SubMenu key={menu[j].url} title={<span>{menu[j].name}</span>}>
  43. {
  44. menu[j].subMenus.map(function(item){
  45. let urls=item.url.split('#');
  46. return <Menu.Item key={urls[1]}>{item.name}</Menu.Item>
  47. })
  48. }
  49. </SubMenu>
  50. );
  51. }else{
  52. let urlt=menu[j].url.split('#');
  53. htmlMenu.push(
  54. <Menu.Item key={urlt[1]}>{menu[j].name}</Menu.Item>
  55. )
  56. }
  57. };
  58. this.setState({
  59. htmlMenus:htmlMenu
  60. })
  61. const _me = this;
  62. if (window.location.hash&&menu[0].subMenus.length) {
  63. let theKey = window.location.hash.substr(1);
  64. menu.map(function (item1) {
  65. item1.subMenus.map(function (item2) {
  66. let urls=item2.url.split('#')
  67. if (theKey == urls[1]) {
  68. _me.state.subKey = item1.url
  69. };
  70. });
  71. });
  72. this.state.current = theKey;
  73. }else{
  74. this.state.current = window.location.hash.substr(1);
  75. };
  76. },
  77. render() {
  78. return (
  79. <Menu onClick={this.handleClick}
  80. selectedKeys={[this.state.current]}
  81. defaultOpenKeys={[this.state.subKey]}
  82. mode="vertical"
  83. className="account-left"
  84. mode="inline">
  85. {this.state.htmlMenus}
  86. </Menu>
  87. );
  88. },
  89. });
  90. export default LeftTab;