diff --git a/src/components/RoughSchedule/RoughSchedileSearchView.tsx b/src/components/RoughSchedule/RoughSchedileSearchView.tsx index 78edb79..1692a85 100644 --- a/src/components/RoughSchedule/RoughSchedileSearchView.tsx +++ b/src/components/RoughSchedule/RoughSchedileSearchView.tsx @@ -191,6 +191,7 @@ const RSOverview: React.FC = ({ records }) => { setPagingController={setPagingController} pagingController={pagingController} isAutoPaging={false} + hasCollapse={false} /> ); diff --git a/src/components/RoughScheduleDetail/ViewByBomDetails.tsx b/src/components/RoughScheduleDetail/ViewByBomDetails.tsx index de89134..3f2ea8e 100644 --- a/src/components/RoughScheduleDetail/ViewByBomDetails.tsx +++ b/src/components/RoughScheduleDetail/ViewByBomDetails.tsx @@ -9,7 +9,7 @@ import { GridRowSelectionModel, useGridApiRef, } from "@mui/x-data-grid"; -import {MutableRefObject, useCallback, useMemo, useState} from "react"; +import {MutableRefObject, useCallback, useEffect, useMemo, useState} from "react"; import { useFormContext } from "react-hook-form"; import { useTranslation } from "react-i18next"; import InputDataGrid, { TableRow } from "../InputDataGrid/InputDataGrid"; @@ -252,11 +252,69 @@ const ViewByBomDetails: React.FC = ({ apiRef, isEdit }) => { [] ); - const [pagingController, setPagingController] = useState({ - pageNum: 1, - pageSize: 10, - totalCount: 0, - }) + const [pagingController, setPagingController] = useState([ + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + ]) + + const updatePagingController = (updatedObj) => { + setPagingController((prevState) => { + return prevState.map((item, index) => { + if (index === updatedObj?.index){ + return { + ...item, + pageNum: item.pageNum, + pageSize: item.pageSize, + totalCount: item.totalCount, + }; + } + else + return item + }); + }); + }; + + useEffect(()=>{ + console.log("[debug] pagingController", pagingController) + },[]) const overallColumns = useMemo[]>( () => [ @@ -355,12 +413,13 @@ const ViewByBomDetails: React.FC = ({ apiRef, isEdit }) => { Overall + index={7} items={fakeOverallRecords} isMockUp={true} columns={overallColumns} - setPagingController={setPagingController} - pagingController={pagingController} - isAutoPaging={false} + setPagingController={updatePagingController} + pagingController={pagingController[7]} + isAutoPaging={true} isHideButton={true} isEdit={false} /> @@ -371,11 +430,12 @@ const ViewByBomDetails: React.FC = ({ apiRef, isEdit }) => { {date} + index={index} items={fakeRecords[index]} // Use the corresponding records for the day columns={columns} - setPagingController={setPagingController} - pagingController={pagingController} - isAutoPaging={false} + setPagingController={updatePagingController} + pagingController={pagingController[index]} + isAutoPaging={true} isHideButton={true} isEdit={isEdit} /> diff --git a/src/components/RoughScheduleDetail/ViewByFGDetails.tsx b/src/components/RoughScheduleDetail/ViewByFGDetails.tsx index 6881499..1abc932 100644 --- a/src/components/RoughScheduleDetail/ViewByFGDetails.tsx +++ b/src/components/RoughScheduleDetail/ViewByFGDetails.tsx @@ -382,11 +382,65 @@ const ViewByFGDetails: React.FC = ({ apiRef, isEdit }) => { [] ); - const [pagingController, setPagingController] = useState({ - pageNum: 1, - pageSize: 10, - totalCount: 0, - }) + const [pagingController, setPagingController] = useState([ + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + { + pageNum: 1, + pageSize: 10, + totalCount: 0, + }, + ]) + + const updatePagingController = (updatedObj) => { + setPagingController((prevState) => { + return prevState.map((item, index) => { + if (index === updatedObj?.index){ + return { + ...item, + pageNum: item.pageNum, + pageSize: item.pageSize, + totalCount: item.totalCount, + }; + } + else + return item + }); + }); + }; const columns = useMemo[]>( () => [ @@ -507,14 +561,16 @@ const ViewByFGDetails: React.FC = ({ apiRef, isEdit }) => { Overall + index={7} items={fakeOverallRecords} isMockUp={true} columns={overallColumns} - setPagingController={setPagingController} - pagingController={pagingController} + setPagingController={updatePagingController} + pagingController={pagingController[7]} isAutoPaging={false} isHideButton={true} isEdit={isEdit} + hasCollapse={true} /> {dayPeriod.map((date, index) => ( @@ -526,11 +582,12 @@ const ViewByFGDetails: React.FC = ({ apiRef, isEdit }) => { items={fakeRecords[index]} // Use the corresponding records for the day isMockUp={true} columns={columns} - setPagingController={setPagingController} - pagingController={pagingController} + setPagingController={updatePagingController} + pagingController={pagingController[index]} isAutoPaging={false} isHideButton={false} isEdit={isEdit} + hasCollapse={true} /> ))} diff --git a/src/components/RoughScheduleSetting/RoughScheduleSetting.tsx b/src/components/RoughScheduleSetting/RoughScheduleSetting.tsx index da01857..cc7f881 100644 --- a/src/components/RoughScheduleSetting/RoughScheduleSetting.tsx +++ b/src/components/RoughScheduleSetting/RoughScheduleSetting.tsx @@ -99,7 +99,7 @@ const RSSOverview: React.FC = ({ items }) => { // buttonIcon: , // }, { - field: "fgName", + field: "name", label: "Finished Goods Name", type: 'input', }, @@ -195,6 +195,7 @@ const RSSOverview: React.FC = ({ items }) => { setPagingController={setPagingController} pagingController={pagingController} isAutoPaging={false} + hasCollapse={false} /> ); diff --git a/src/components/SearchResults/EditableSearchResults.tsx b/src/components/SearchResults/EditableSearchResults.tsx index e43d0f5..2308ab6 100644 --- a/src/components/SearchResults/EditableSearchResults.tsx +++ b/src/components/SearchResults/EditableSearchResults.tsx @@ -48,12 +48,13 @@ interface Props { isMockUp?: Boolean, columns: Column[], noWrapper?: boolean, - setPagingController: (value: { pageNum: number; pageSize: number; totalCount: number }) => void, + setPagingController: (value: { pageNum: number; pageSize: number; totalCount: number, index?: number}) => void, pagingController: { pageNum: number; pageSize: number; totalCount: number }, isAutoPaging: boolean } function EditableSearchResults({ + index, items, isMockUp, columns, @@ -63,6 +64,7 @@ function EditableSearchResults({ isAutoPaging = true, isEdit = true, isHideButton = false, + hasCollapse = false, }: Props) { const [page, setPage] = useState(0); const [rowsPerPage, setRowsPerPage] = useState(10); @@ -74,13 +76,13 @@ function EditableSearchResults({ },[items]) const handleChangePage = (_event: unknown, newPage: number) => { setPage(newPage); - setPagingController({ ...pagingController, pageNum: newPage + 1 }); + setPagingController({ ...pagingController, pageNum: newPage + 1 }, (index ?? -1)); }; const handleChangeRowsPerPage = (event: React.ChangeEvent) => { setRowsPerPage(+event.target.value); setPage(0); - setPagingController({ ...pagingController, pageSize: +event.target.value, pageNum: 1 }); + setPagingController({ ...pagingController, pageSize: +event.target.value, pageNum: 1 , index: index}); }; const handleEditClick = (id: number) => { @@ -126,7 +128,6 @@ function EditableSearchResults({ const { row } = props; const [open, setOpen] = useState(false); console.log(row) - console.log(row.lines) return ( <> @@ -140,13 +141,15 @@ function EditableSearchResults({ setEditingRowId(null)}> - setOpen(!open)} + { + hasCollapse && setOpen(!open)} > - {open ? : } - + {open ? : } + + } ) : ( <> @@ -158,13 +161,15 @@ function EditableSearchResults({ onClick={() => handleDeleteClick(row.id as number)}> - setOpen(!open)} + { + hasCollapse && setOpen(!open)} > - {open ? : } + {open ? : } + } )} @@ -220,21 +225,24 @@ function EditableSearchResults({ })} - - - - - - - - - - -
-
-
+ { + hasCollapse && + + + + + + + + + + +
+
+
+ }
)