You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

113 line
3.3 KiB

  1. // material-ui
  2. import * as React from 'react';
  3. import {
  4. Button
  5. } from '@mui/material';
  6. import * as DateUtils from "utils/DateUtils";
  7. import * as StatusUtils from "utils/statusUtils/PublicNoteStatusUtils";
  8. import {useNavigate} from "react-router-dom";
  9. import {FiDataGrid} from "components/FiDataGrid";
  10. // ==============================|| EVENT TABLE ||============================== //
  11. export default function SearchPublicNoticeTable({ recordList }) {
  12. const [rows, setRows] = React.useState([]);
  13. const navigate = useNavigate()
  14. const handleDetailClick = (params) => () => {
  15. navigate('/publicNotice/'+ params.id);
  16. };
  17. React.useEffect(() => {
  18. setRows(recordList);
  19. }, [recordList]);
  20. const columns = [
  21. {
  22. id: 'appNo',
  23. field: 'appNo',
  24. headerName: '申請編號',
  25. flex: 1,
  26. },
  27. {
  28. id: 'created',
  29. field: 'created',
  30. headerName: '提交日期',
  31. flex: 1,
  32. valueGetter: (params) => {
  33. return DateUtils.datetimeStr(params?.value);
  34. }
  35. },
  36. // {
  37. // id: 'contactPerson',
  38. // field: 'contactPerson',
  39. // headerName: '聯絡人',
  40. // flex: 2,
  41. // renderCell: (params) => {
  42. // let phone = JSON.parse(params.row.contactTelNo);
  43. // let faxNo = JSON.parse(params.row.contactFaxNo);
  44. // let contact = "";
  45. // if (phone) {
  46. // contact = "電話: " + phone?.countryCode + " " + phone?.phoneNumber
  47. // }
  48. // if (faxNo && faxNo?.faxNumber) {
  49. // if (contact != "")
  50. // contact = contact + ", "
  51. // contact = contact + "傳真:" + faxNo?.countryCode + " " + faxNo?.faxNumber
  52. // }
  53. // return (<>
  54. // {params?.value}<br />
  55. // {contact}
  56. // </>);
  57. // }
  58. // },
  59. {
  60. id: 'remarks',
  61. field: 'remarks',
  62. headerName: '我的備註',
  63. flex: 3,
  64. },
  65. {
  66. id: 'status',
  67. field: 'status',
  68. headerName: '狀態',
  69. width: 160,
  70. renderCell: (params) => {
  71. return [StatusUtils.getStatus(params)]
  72. },
  73. },
  74. {
  75. field: 'actions',
  76. type: 'actions',
  77. headerName: '',
  78. width: 150,
  79. cellClassName: 'actions',
  80. renderCell: (params) => {
  81. return <Button onClick={handleDetailClick(params)}>查看詳細</Button>;
  82. },
  83. }
  84. ];
  85. function handleRowDoubleClick(params) {
  86. navigate('/publicNotice/'+ params.id);
  87. }
  88. return (
  89. <div style={{ minHeight: 400, width: '100%' }}>
  90. <FiDataGrid
  91. rows={rows}
  92. columns={columns}
  93. initialState={{
  94. pagination: {
  95. paginationModel: { page: 0, pageSize: 20 },
  96. },
  97. }}
  98. onRowDoubleClick={handleRowDoubleClick}
  99. getRowHeight={() => 'auto'}
  100. />
  101. </div>
  102. );
  103. }