content.jsx 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import React, { Component } from 'react';
  2. import '../content.less';
  3. import LeftTab from './leftTab';
  4. import TechAchievement from './techAchievement';
  5. class Content extends Component {
  6. constructor() {
  7. super();
  8. this.state = {
  9. loading: false,
  10. component: 'div'
  11. };
  12. }
  13. componentWillMount() {
  14. if (window.location.hash) {
  15. this.getKey(window.location.hash.substr(1));
  16. } else {
  17. this.getKey("orgTechAchievement");
  18. };
  19. }
  20. getKey(key) {
  21. switch (key) {
  22. case 'orgTechAchievement':
  23. require.ensure([], () => {
  24. const TechAchievement = require('./techAchievement').default;
  25. this.setState({
  26. component: TechAchievement,
  27. listApiUrl: '/api/admin/achievement/orgList',
  28. detailApiUrl: '/api/admin/achievement/orgDetail'
  29. });
  30. });
  31. break;
  32. case 'userTechAchievement':
  33. require.ensure([], () => {
  34. const TechAchievement = require('./techAchievement').default;
  35. this.setState({
  36. component: TechAchievement,
  37. listApiUrl: '/api/admin/achievement/userList',
  38. detailApiUrl: '/api/admin/achievement/userDetail'
  39. });
  40. });
  41. break;
  42. case 'userAchievementOrder':
  43. require.ensure([], () => {
  44. const AchievementOrder = require('./achievementOrder').default;
  45. this.setState({
  46. component: AchievementOrder,
  47. listApiUrl: '/api/admin/portal/order/userAchievementOrderList',
  48. detailApiUrl: '/api/admin/achievement/userDetail'
  49. });
  50. });
  51. break;
  52. case 'orgAchievementOrder':
  53. require.ensure([], () => {
  54. const AchievementOrder = require('./achievementOrder').default;
  55. this.setState({
  56. component: AchievementOrder,
  57. listApiUrl: '/api/admin/portal/order/orgAchievementOrderList',
  58. detailApiUrl: '/api/admin/achievement/orgDetail'
  59. });
  60. });
  61. break;
  62. };
  63. window.location.hash = key;
  64. }
  65. render() {
  66. return (
  67. <div className="manage-content">
  68. <LeftTab handlekey={this.getKey.bind(this)} />
  69. <div className="content-right">
  70. <this.state.component
  71. data-listApiUrl={this.state.listApiUrl}
  72. data-detailApiUrl={this.state.detailApiUrl} />
  73. </div>
  74. </div>
  75. )
  76. }
  77. }
  78. export default Content;