index.tsx 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. import AuthButton from "@/components/AuthButton";
  2. import BreadTit from "@/components/BreadTit";
  3. import LookObjTable from "@/components/LookObjTable";
  4. import history, { urlParameter } from "@/utils/history";
  5. import { Button } from "antd";
  6. import React, { useCallback, useEffect, useRef } from "react";
  7. import { useLocation } from "react-router-dom";
  8. import styles from "./index.module.scss";
  9. import {
  10. getObj1InfoTableAPI2,
  11. object1infoOutAPI,
  12. statusObj,
  13. } from "@/store/action/object1";
  14. import { useDispatch, useSelector } from "react-redux";
  15. import { RootState } from "@/store";
  16. function LookObject1() {
  17. const dispatch = useDispatch();
  18. // 获取地址栏参数
  19. const location = useLocation();
  20. const urlParamRef = useRef<any>({});
  21. useEffect(() => {
  22. urlParamRef.current = urlParameter(location.search);
  23. // console.log("地址栏参数", urlParamRef.current);
  24. }, [location]);
  25. // 点击返回
  26. const cancelFu = () => {
  27. history.push({
  28. pathname: `/object`,
  29. state: {
  30. k: urlParamRef.current.k ? urlParamRef.current.k : "1",
  31. d: urlParamRef.current.d,
  32. },
  33. });
  34. };
  35. const getInfo = useCallback(async () => {
  36. const id = urlParamRef.current.id;
  37. const res1 = await object1infoOutAPI(id);
  38. const res2 = await getObj1InfoTableAPI2(id);
  39. const info = res1.data;
  40. info.statusTxt = statusObj[info.status];
  41. const list = res2.data;
  42. dispatch({ type: "object1/getLookInfo", payload: { info, list } });
  43. }, [dispatch]);
  44. useEffect(() => {
  45. getInfo();
  46. }, [getInfo]);
  47. const { info, list: tableList } = useSelector(
  48. (state: RootState) => state.object1Store.lookInfo
  49. );
  50. return (
  51. <div className={styles.LookObject1}>
  52. <div className="breadTit">
  53. <BreadTit>
  54. <div className="breadTitRow">藏品登记</div>
  55. <div className="splitStr">/</div>
  56. <div className="breadTitRow active">查看</div>
  57. </BreadTit>
  58. </div>
  59. <div className="objectSonMain">
  60. <div className="topTit">登记信息</div>
  61. <div className="topInfo">
  62. <div className="topInfoRow">
  63. <div>
  64. <div className="one">登记编号:</div>
  65. <div>{info.num}</div>
  66. </div>
  67. <div>
  68. <div className="one">登记人员:</div>
  69. <div>{info.creatorName}</div>
  70. </div>
  71. </div>
  72. <div className="topInfoRow">
  73. <div>
  74. <div className="one">藏品来源:</div>
  75. <div>{info.sourceName}</div>
  76. </div>
  77. <div>
  78. <div className="one">审核结果:</div>
  79. <div>{info.statusTxt}</div>
  80. </div>
  81. </div>
  82. <div className="topInfoTex" title="666">
  83. <span>登记说明:</span>
  84. {info.description ? info.description : "-"}
  85. </div>
  86. <div className="topInfoTex" title="666">
  87. <span>审核说明:</span>
  88. {info.reason ? info.reason : "-"}
  89. </div>
  90. </div>
  91. <br />
  92. <div className="topTit">藏品信息</div>
  93. <div className="goodsInfo">
  94. {/* 封装的表格信息 */}
  95. <LookObjTable data={tableList} y={340} />
  96. </div>
  97. <div className="backBtn">
  98. {info.status === 2 ? (
  99. <AuthButton
  100. type="primary"
  101. onClick={() =>
  102. history.push(
  103. `/object/1/add?k=${urlParamRef.current.k}&d=${urlParamRef.current.d}&id=${urlParamRef.current.id}`
  104. )
  105. }
  106. >
  107. 编辑
  108. </AuthButton>
  109. ) : null}
  110. &emsp;
  111. <Button onClick={cancelFu}>返回</Button>
  112. </div>
  113. </div>
  114. </div>
  115. );
  116. }
  117. const MemoLookObject1 = React.memo(LookObject1);
  118. export default MemoLookObject1;