index.tsx 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  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={() => setAddInfo1({ id: -1, type: "main" } as A2Tab1_1)}
  68. >
  69. 新增
  70. </Button>
  71. </div>
  72. <A2Table1
  73. editFu={(item) => setAddInfo1(item)}
  74. upTaleFu={() => getListFu1()}
  75. type="main"
  76. />
  77. </div>
  78. <div className="A2tableBox">
  79. <div className="A2tableBoxBtn">
  80. <h3>业务部门</h3>
  81. <Button
  82. type="primary"
  83. onClick={() => setAddInfo1({ id: -1, type: "dept" } as A2Tab1_1)}
  84. >
  85. 新增
  86. </Button>
  87. </div>
  88. <A2Table1
  89. editFu={(item) => setAddInfo1(item)}
  90. upTaleFu={() => getListFu1()}
  91. type="dept"
  92. />
  93. </div>
  94. <div className="A2tableBox">
  95. <div className="A2tableBoxBtn">
  96. <h3>阶段</h3>
  97. <Button
  98. type="primary"
  99. onClick={() =>
  100. setAddInfo2({ id: "-1", parentId: "0" } as A5TableType)
  101. }
  102. >
  103. 新增
  104. </Button>
  105. </div>
  106. <A2Table3
  107. editFu={(item) => setAddInfo2(item)}
  108. upTaleFu={() => getListFu2()}
  109. myType="字典"
  110. />
  111. </div>
  112. {/* 新增职能、状态、签订主体、业务部门 */}
  113. {addInfo1.id ? (
  114. <A2Tab1Add
  115. info={addInfo1}
  116. closeFu={() => setAddInfo1({} as A2Tab1_1)}
  117. addFu={() => getListFu1()}
  118. />
  119. ) : null}
  120. {/* 新增和编辑 阶段*/}
  121. {addInfo2.id ? (
  122. <A5Add
  123. myType="字典"
  124. info={addInfo2}
  125. closeFu={() => setAddInfo2({} as A5TableType)}
  126. addFu={() => getListFu2()}
  127. />
  128. ) : null}
  129. </div>
  130. );
  131. }
  132. const MemoA2Tab1 = React.memo(A2Tab1);
  133. export default MemoA2Tab1;