index.tsx 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import React, { useCallback, useEffect, useState } from "react";
  2. import styles from "./index.module.scss";
  3. import { useDispatch } from "react-redux";
  4. import { A2_APIgetList1, A2_APIgetList2 } from "@/store/action/A2Dict";
  5. import A2Table1 from "./A2Table1";
  6. import { Button } from "antd";
  7. import { A2Tab1_1 } from "@/types/api/A2Dict";
  8. import A2Tab1Add from "./A2Tab1Add";
  9. import A2Table3 from "./A2Table3";
  10. import { A5TableType } from "@/types";
  11. import A5Add from "@/pages/A5Section/A5Add";
  12. function A2Tab1() {
  13. const dispatch = useDispatch();
  14. const getListFu1 = useCallback(() => {
  15. dispatch(A2_APIgetList1());
  16. }, [dispatch]);
  17. const getListFu2 = useCallback(() => {
  18. dispatch(A2_APIgetList2());
  19. }, [dispatch]);
  20. useEffect(() => {
  21. getListFu1();
  22. getListFu2();
  23. }, [getListFu1, getListFu2]);
  24. // 职能 和 状态的信息
  25. const [addInfo1, setAddInfo1] = useState({} as A2Tab1_1);
  26. // 阶段的信息
  27. const [addInfo2, setAddInfo2] = useState({} as A5TableType);
  28. return (
  29. <div className={styles.A2Tab1}>
  30. <div className="A2tableBox">
  31. <div className="A2tableBoxBtn">
  32. <h3>职能</h3>
  33. <Button
  34. type="primary"
  35. onClick={() => setAddInfo1({ id: -1, type: "job" } as A2Tab1_1)}
  36. >
  37. 新增
  38. </Button>
  39. </div>
  40. <A2Table1
  41. editFu={(item) => setAddInfo1(item)}
  42. upTaleFu={() => getListFu1()}
  43. type="job"
  44. />
  45. </div>
  46. <div className="A2tableBox">
  47. <div className="A2tableBoxBtn">
  48. <h3>状态</h3>
  49. <Button
  50. type="primary"
  51. onClick={() => setAddInfo1({ id: -1, type: "status" } as A2Tab1_1)}
  52. >
  53. 新增
  54. </Button>
  55. </div>
  56. <A2Table1
  57. editFu={(item) => setAddInfo1(item)}
  58. upTaleFu={() => getListFu1()}
  59. type="status"
  60. />
  61. </div>
  62. <div className="A2tableBox">
  63. <div className="A2tableBoxBtn">
  64. <h3>阶段</h3>
  65. <Button
  66. type="primary"
  67. onClick={() =>
  68. setAddInfo2({ id: "-1", parentId: "0" } as A5TableType)
  69. }
  70. >
  71. 新增
  72. </Button>
  73. </div>
  74. <A2Table3
  75. editFu={(item) => setAddInfo2(item)}
  76. upTaleFu={() => getListFu2()}
  77. myType="字典"
  78. />
  79. </div>
  80. {/* 新增职能 和 状态 */}
  81. {addInfo1.id ? (
  82. <A2Tab1Add
  83. info={addInfo1}
  84. closeFu={() => setAddInfo1({} as A2Tab1_1)}
  85. addFu={() => getListFu1()}
  86. />
  87. ) : null}
  88. {/* 新增和编辑 阶段*/}
  89. {addInfo2.id ? (
  90. <A5Add
  91. myType="字典"
  92. info={addInfo2}
  93. closeFu={() => setAddInfo2({} as A5TableType)}
  94. addFu={() => getListFu2()}
  95. />
  96. ) : null}
  97. </div>
  98. );
  99. }
  100. const MemoA2Tab1 = React.memo(A2Tab1);
  101. export default MemoA2Tab1;