index.tsx 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. import styles from "./index.module.scss";
  2. import LeftBar from "@/components/LeftBar";
  3. import React, { useMemo } from "react";
  4. import SpinLoding from "@/components/SpinLoding";
  5. import { Route, Switch } from "react-router-dom";
  6. import AuthRoute from "@/components/AuthRoute";
  7. import NotFound from "@/components/NotFound";
  8. const LookObject1 = React.lazy(
  9. () => import("../ObjectSon/Object1/LookObject1")
  10. );
  11. const LookObject2 = React.lazy(
  12. () => import("../ObjectSon/Object2/LookObject2")
  13. );
  14. export default function Object() {
  15. const data = useMemo(() => {
  16. return [
  17. {
  18. id: 1,
  19. name: "藏品登记",
  20. Com: React.lazy(() => import("../ObjectSon/Object1")),
  21. path: "/object",
  22. },
  23. {
  24. id: 2,
  25. name: "藏品总账",
  26. Com: React.lazy(() => import("../ObjectSon/Object2")),
  27. path: "/object/2",
  28. },
  29. {
  30. id: 3,
  31. name: "入库管理",
  32. Com: React.lazy(() => import("../ObjectSon/Object3")),
  33. path: "/object/3",
  34. },
  35. {
  36. id: 4,
  37. name: "出库管理",
  38. Com: React.lazy(() => import("../ObjectSon/Object4")),
  39. path: "/object/4",
  40. },
  41. {
  42. id: 5,
  43. name: "藏品修改",
  44. Com: React.lazy(() => import("../ObjectSon/Object5")),
  45. path: "/object/5",
  46. },
  47. {
  48. id: 6,
  49. name: "藏品注销",
  50. Com: React.lazy(() => import("../ObjectSon/Object6")),
  51. path: "/object/6",
  52. },
  53. ];
  54. }, []);
  55. const dataIn = useMemo(() => {
  56. return [
  57. {
  58. id: 1001,
  59. name: "藏品登记新增",
  60. Com: React.lazy(() => import("../ObjectSon/Object1/AddObject1")),
  61. path: "/object/1/add",
  62. },
  63. {
  64. id: 1002,
  65. name: "藏品登记审核",
  66. Com: React.lazy(() => import("../ObjectSon/Object1/AuditObject1")),
  67. path: "/object/1/audit",
  68. },
  69. ];
  70. }, []);
  71. return (
  72. <div className={styles.Object}>
  73. <div className="leftBar">
  74. <LeftBar data={data} />
  75. </div>
  76. {/* 三级路由页面 */}
  77. <div className="rightMain">
  78. <React.Suspense fallback={<SpinLoding />}>
  79. <Switch>
  80. {data.map((v, i) => (
  81. <AuthRoute
  82. exact
  83. // exact={i === 0 ? true : false}
  84. key={v.id}
  85. path={v.path}
  86. component={v.Com}
  87. />
  88. ))}
  89. {/* 查看页面,无需权限 */}
  90. <AuthRoute path="/object/1/look" component={LookObject1} />
  91. <AuthRoute path="/object/2/look" component={LookObject2} />
  92. {/* 新增 */}
  93. {dataIn.map((v) => (
  94. <AuthRoute key={v.id} path={v.path} component={v.Com} />
  95. ))}
  96. <Route path="*" component={NotFound} />
  97. </Switch>
  98. </React.Suspense>
  99. </div>
  100. </div>
  101. );
  102. }