您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

67 行
1.9KB

  1. import { Box, Grid, Paper, Typography } from "@mui/material";
  2. import { SeasonTicketContract } from "api/season-ticket-contract";
  3. import { useSeasonTicketContractContext } from "contexts/dashboard/SeasonTicketContractContext";
  4. import useDashboard from "hooks/useDashBoard";
  5. import useNavigateCustom from "hooks/useNavigateCustom";
  6. import { PageID, TabID } from "pages";
  7. import { useEffect } from "react";
  8. import { getPath } from "routes/path";
  9. function SeasonTicketContractCard({ data }: { data: SeasonTicketContract }) {
  10. const { navigateWhenChanged } = useNavigateCustom();
  11. const handleClick = () => {
  12. navigateWhenChanged(
  13. getPath(PageID.DASHBOARD_SEASON_TICKET_CONTRACT_DETAIL, {
  14. query: {
  15. id: data.season_ticekt_contract_record_no ?? "",
  16. },
  17. })
  18. );
  19. };
  20. return (
  21. <Paper sx={{ p: 2, cursor: "pointer" }} onClick={handleClick}>
  22. <Typography variant="h5">{data.parking_name}</Typography>
  23. <Typography variant="h6">区画:{data.room_no}</Typography>
  24. </Paper>
  25. );
  26. }
  27. export default function ContractList() {
  28. const { setHeaderTitle, setTabs } = useDashboard(
  29. PageID.DASHBOARD_SEASON_TICKET_CONTRACT_LIST,
  30. TabID.NONE
  31. );
  32. const { seasonTicketContracts } = useSeasonTicketContractContext();
  33. const { navigateWhenChanged } = useNavigateCustom();
  34. const moveToDetail = () => {
  35. navigateWhenChanged(
  36. getPath(PageID.DASHBOARD_SEASON_TICKET_CONTRACT_DETAIL, {
  37. query: {
  38. id: "test-test",
  39. },
  40. })
  41. );
  42. };
  43. useEffect(() => {
  44. setHeaderTitle("契約一覧");
  45. setTabs(null);
  46. }, [setHeaderTitle, setTabs]);
  47. return (
  48. <Box sx={{ p: 1, m: 1 }}>
  49. <Grid container spacing={2}>
  50. {seasonTicketContracts.map((item, index) => {
  51. return (
  52. <Grid item xs={12} md={6} key={index}>
  53. <SeasonTicketContractCard data={item} />
  54. </Grid>
  55. );
  56. })}
  57. </Grid>
  58. </Box>
  59. );
  60. }