index.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import React, { useCallback, useEffect, useState } from "react";
  2. import styles from "./index.module.scss";
  3. import { Button } from "antd";
  4. import { useDispatch } from "react-redux";
  5. import { A5_APIgetList } from "@/store/action/A5Section";
  6. import { A5TableType } from "@/types";
  7. import A5Add from "./A5Add";
  8. import A2Table3 from "../A2Dict/A2Tab1/A2Table3";
  9. function A5Section() {
  10. const dispatch = useDispatch();
  11. const getListFu = useCallback(() => {
  12. dispatch(A5_APIgetList());
  13. }, [dispatch]);
  14. useEffect(() => {
  15. getListFu();
  16. }, [getListFu]);
  17. // 新增和编辑
  18. const [addInfo, setAddInfo] = useState({} as A5TableType);
  19. return (
  20. <div className={styles.A5Section}>
  21. <div className="pageTitle">部门管理</div>
  22. <div className="A5Main">
  23. <div className="A5Top">
  24. <Button
  25. type="primary"
  26. onClick={() =>
  27. setAddInfo({ id: "-1", parentId: "0" } as A5TableType)
  28. }
  29. >
  30. 新增
  31. </Button>
  32. </div>
  33. {/* 表格主体 */}
  34. <div className="A5tableBox">
  35. <A2Table3
  36. editFu={(item) => setAddInfo(item)}
  37. upTaleFu={() => getListFu()}
  38. myType="部门"
  39. />
  40. </div>
  41. </div>
  42. {addInfo.id ? (
  43. <A5Add
  44. info={addInfo}
  45. closeFu={() => setAddInfo({} as A5TableType)}
  46. addFu={() => getListFu()}
  47. />
  48. ) : null}
  49. </div>
  50. );
  51. }
  52. const MemoA5Section = React.memo(A5Section);
  53. export default MemoA5Section;