@@ -10,13 +10,15 @@ import Link from "next/link"; | |||||
import { Suspense } from "react"; | import { Suspense } from "react"; | ||||
import RoughScheduleLoading from "@/components/RoughScheduleSetting/RoughScheduleLoading"; | import RoughScheduleLoading from "@/components/RoughScheduleSetting/RoughScheduleLoading"; | ||||
import RoughScheduleSetting from "@/components/RoughScheduleSetting/RoughScheduleSetting"; | import RoughScheduleSetting from "@/components/RoughScheduleSetting/RoughScheduleSetting"; | ||||
import RoughScheduleSettingWrapper from "@/components/RoughScheduleSetting/RoughScheduleSettingWrapper"; | |||||
import { I18nProvider } from "@/i18n"; | import { I18nProvider } from "@/i18n"; | ||||
export const metadata: Metadata = { | export const metadata: Metadata = { | ||||
title: "Demand Forecast Setting", | title: "Demand Forecast Setting", | ||||
}; | }; | ||||
const roughScheduleSetting: React.FC = async () => { | const roughScheduleSetting: React.FC = async () => { | ||||
const project = TypeEnum.PRODUCT | |||||
//const project = TypeEnum.PRODUCT | |||||
const project = "common" | |||||
const { t } = await getServerI18n(project); | const { t } = await getServerI18n(project); | ||||
// preloadClaims(); | // preloadClaims(); | ||||
@@ -40,11 +42,11 @@ const roughScheduleSetting: React.FC = async () => { | |||||
{t("Create product")} | {t("Create product")} | ||||
</Button> */} | </Button> */} | ||||
</Stack> | </Stack> | ||||
<I18nProvider namespaces={[ "common", "project"]}> | |||||
<Suspense fallback={<RoughScheduleLoading.Loading />}> | |||||
<RoughScheduleSetting /> | |||||
</Suspense> | |||||
<Suspense fallback={<RoughScheduleSettingWrapper.Loading />}> | |||||
<I18nProvider namespaces={[ "common", "project",]}> | |||||
<RoughScheduleSetting items={[]} /> | |||||
</I18nProvider> | </I18nProvider> | ||||
</Suspense> | |||||
</> | </> | ||||
); | ); | ||||
}; | }; | ||||
@@ -7,6 +7,10 @@ import { BASE_API_URL } from "../../../../config/api"; | |||||
export { default } from "../../../../components/CreateEquipmentType/CreateEquipmentType"; | export { default } from "../../../../components/CreateEquipmentType/CreateEquipmentType"; | ||||
// import { TypeInputs, UomInputs, WeightUnitInputs } from "./actions"; | // import { TypeInputs, UomInputs, WeightUnitInputs } from "./actions"; | ||||
export type EquipmentTypeResultResponse = { | |||||
records: EquipmentTypeResult[]; | |||||
total: number; | |||||
} | |||||
export type EquipmentTypeResult = { | export type EquipmentTypeResult = { | ||||
id: string | number | id: string | number | ||||
@@ -42,4 +42,4 @@ export const saveItem = async (data: CreateItemInputs) => { | |||||
}); | }); | ||||
revalidateTag("items"); | revalidateTag("items"); | ||||
return item | return item | ||||
}; | |||||
}; |
@@ -18,6 +18,11 @@ export type ItemQc = { | |||||
isActive: boolean | undefined; | isActive: boolean | undefined; | ||||
} | } | ||||
export type ItemsResultResponse = { | |||||
records: ItemsResult[]; | |||||
total: number; | |||||
} | |||||
export type ItemsResult = { | export type ItemsResult = { | ||||
id: string | number | id: string | number | ||||
code: string; | code: string; | ||||
@@ -12,7 +12,7 @@ import PendingInspectionChart from "./chart/PendingInspectionChart"; | |||||
import PendingStorageChart from "./chart/PendingStorageChart"; | import PendingStorageChart from "./chart/PendingStorageChart"; | ||||
import ApplicationCompletionChart from "./chart/ApplicationCompletionChart"; | import ApplicationCompletionChart from "./chart/ApplicationCompletionChart"; | ||||
import OrderCompletionChart from "./chart/OrderCompletionChart"; | import OrderCompletionChart from "./chart/OrderCompletionChart"; | ||||
import DashboardBox from "./DashboardBox"; | |||||
import DashboardBox from "./Dashboardbox"; | |||||
import CollapsibleCard from "./CollapsibleCard"; | import CollapsibleCard from "./CollapsibleCard"; | ||||
type Props = {}; | type Props = {}; | ||||
@@ -4,7 +4,7 @@ import { useCallback, useEffect, useMemo, useState } from "react"; | |||||
import { useRouter, useSearchParams } from "next/navigation"; | import { useRouter, useSearchParams } from "next/navigation"; | ||||
import { useTranslation } from "react-i18next"; | import { useTranslation } from "react-i18next"; | ||||
import { | import { | ||||
SaveDetailSchedule, | |||||
//SaveDetailSchedule, | |||||
saveItem, | saveItem, | ||||
} from "@/app/api/settings/item/actions"; | } from "@/app/api/settings/item/actions"; | ||||
import { | import { | ||||
@@ -157,7 +157,7 @@ const DetailScheduleDetailView: React.FC<Props> = ({ | |||||
{/* </Typography>*/} | {/* </Typography>*/} | ||||
{/*</Grid>*/} | {/*</Grid>*/} | ||||
<DetailInfoCard | <DetailInfoCard | ||||
recordDetails={formProps.formState.defaultValues} | |||||
recordDetails={formProps.formState.defaultValues as SaveDetailSchedule} | |||||
isEditing={isEdit} | isEditing={isEdit} | ||||
/> | /> | ||||
<Stack | <Stack | ||||
@@ -24,6 +24,7 @@ import { GridRenderCellParams } from "@mui/x-data-grid"; | |||||
type Props = { | type Props = { | ||||
apiRef: MutableRefObject<GridApiCommunity> | apiRef: MutableRefObject<GridApiCommunity> | ||||
isEdit: boolean | |||||
}; | }; | ||||
type EntryError = | type EntryError = | ||||
| { | | { | ||||
@@ -214,43 +215,81 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
{ id: 1, code: "MH0040", type: "Material", name: "大豆油(1噸/桶)", inStockQty: 54.44 , | { id: 1, code: "MH0040", type: "Material", name: "大豆油(1噸/桶)", inStockQty: 54.44 , | ||||
purchaseQty1: 972.12, purchaseQty2: 972.12, purchaseQty3: 972.12, | purchaseQty1: 972.12, purchaseQty2: 972.12, purchaseQty3: 972.12, | ||||
purchaseQty4: 972.12, purchaseQty5: 972.12, purchaseQty6: 972.12, | purchaseQty4: 972.12, purchaseQty5: 972.12, purchaseQty6: 972.12, | ||||
purchaseQty7: 972.12, overallPurchaseQty: 6804.84 | |||||
purchaseQty7: 972.12, overallPurchaseQty: 6804.84, | |||||
purchaseQty: 972.12 | |||||
}, | }, | ||||
{ id: 2, code: "GI3236", type: "Material", name: "清水(煮過牛腩)", inStockQty: 317.52 , | { id: 2, code: "GI3236", type: "Material", name: "清水(煮過牛腩)", inStockQty: 317.52 , | ||||
purchaseQty1: 3175.2, purchaseQty2: 3175.2, purchaseQty3: 3175.2, | purchaseQty1: 3175.2, purchaseQty2: 3175.2, purchaseQty3: 3175.2, | ||||
purchaseQty4: 3175.2, purchaseQty5: 3175.2, purchaseQty6: 3175.2, | purchaseQty4: 3175.2, purchaseQty5: 3175.2, purchaseQty6: 3175.2, | ||||
purchaseQty7: 3175.2, overallPurchaseQty: 22226.4 | |||||
purchaseQty7: 3175.2, overallPurchaseQty: 22226.4, | |||||
purchaseQty: 3175.2 | |||||
}, | }, | ||||
{ id: 3, code: "MG1700", type: "Material", name: "STERILTOM 意大利茄粒", inStockQty: 9.00 , | { id: 3, code: "MG1700", type: "Material", name: "STERILTOM 意大利茄粒", inStockQty: 9.00 , | ||||
purchaseQty1: 90, purchaseQty2: 90, purchaseQty3: 90, | purchaseQty1: 90, purchaseQty2: 90, purchaseQty3: 90, | ||||
purchaseQty4: 90, purchaseQty5: 90, purchaseQty6: 90, | purchaseQty4: 90, purchaseQty5: 90, purchaseQty6: 90, | ||||
purchaseQty7: 90, overallPurchaseQty: 630 | |||||
purchaseQty7: 90, overallPurchaseQty: 630, | |||||
purchaseQty: 90 | |||||
}, | }, | ||||
{ id: 4, code: "FA0533", type: "Material", name: "乾蔥茸", inStockQty: 6.04 , | { id: 4, code: "FA0533", type: "Material", name: "乾蔥茸", inStockQty: 6.04 , | ||||
purchaseQty1: 60.4, purchaseQty2: 60.4, purchaseQty3: 60.4, | purchaseQty1: 60.4, purchaseQty2: 60.4, purchaseQty3: 60.4, | ||||
purchaseQty4: 60.4, purchaseQty5: 60.4, purchaseQty6: 60.4, | purchaseQty4: 60.4, purchaseQty5: 60.4, purchaseQty6: 60.4, | ||||
purchaseQty7: 60.4, overallPurchaseQty: 422.8 | |||||
purchaseQty7: 60.4, overallPurchaseQty: 422.8, | |||||
purchaseQty: 60.4 | |||||
}, | }, | ||||
{ id: 5, code: "FA0210", type: "Material", name: "薑茸", inStockQty: 6.04 , | { id: 5, code: "FA0210", type: "Material", name: "薑茸", inStockQty: 6.04 , | ||||
purchaseQty1: 66.45, purchaseQty2: 66.45, purchaseQty3: 66.45, | purchaseQty1: 66.45, purchaseQty2: 66.45, purchaseQty3: 66.45, | ||||
purchaseQty4: 66.45, purchaseQty5: 66.45, purchaseQty6: 66.45, | purchaseQty4: 66.45, purchaseQty5: 66.45, purchaseQty6: 66.45, | ||||
purchaseQty7: 66.45, overallPurchaseQty: 465.15 | |||||
purchaseQty7: 66.45, overallPurchaseQty: 465.15, | |||||
purchaseQty: 66.45 | |||||
}, | }, | ||||
{ id: 6, code: "FA0608", type: "Material", name: "粗蒜茸", inStockQty: 6.04 , | { id: 6, code: "FA0608", type: "Material", name: "粗蒜茸", inStockQty: 6.04 , | ||||
purchaseQty1: 78.55, purchaseQty2: 78.55, purchaseQty3: 78.55, | purchaseQty1: 78.55, purchaseQty2: 78.55, purchaseQty3: 78.55, | ||||
purchaseQty4: 78.55, purchaseQty5: 78.55, purchaseQty6: 78.55, | purchaseQty4: 78.55, purchaseQty5: 78.55, purchaseQty6: 78.55, | ||||
purchaseQty7: 78.55, overallPurchaseQty: 549.85 | |||||
purchaseQty7: 78.55, overallPurchaseQty: 549.85, | |||||
purchaseQty: 78.55 | |||||
}, | |||||
{ id: 7, code: "FA0056", type: "Material", name: "洋蔥肉", inStockQty: 241.98 , | |||||
purchaseQty1: 2419.8, purchaseQty2: 2419.8, purchaseQty3: 2419.8, | |||||
purchaseQty4: 2419.8, purchaseQty5: 2419.8, purchaseQty6: 2419.8, | |||||
purchaseQty7: 2419.8, overallPurchaseQty: 17038.4, | |||||
purchaseQty: 2419.8 | |||||
}, | |||||
{ id: 8, code: "PP1188", type: "Material", name: "咖喱膽", inStockQty: 36.00 , | |||||
purchaseQty1: 0, purchaseQty2: 0, purchaseQty3: 0, | |||||
purchaseQty4: 0, purchaseQty5: 0, purchaseQty6: 0, | |||||
purchaseQty7: 0, overallPurchaseQty: 0, | |||||
purchaseQty: 0 | |||||
}, | |||||
{ id: 11, code: "NA0476", type: "Material", name: "2磅份量三邊覆合袋 (0.1x225x260mm)個計", inStockQty: 600.00 , | |||||
purchaseQty1: 6000, purchaseQty2: 6000, purchaseQty3: 6000, | |||||
purchaseQty4: 6000, purchaseQty5: 6000, purchaseQty6: 6000, | |||||
purchaseQty7: 6000, overallPurchaseQty: 42000, | |||||
purchaseQty: 6000 | |||||
}, | |||||
{ id: 12, code: "MH0040",type: "Material", name: "大豆油(1噸/桶)", inStockQty: 0, | |||||
purchaseQty1: 0, purchaseQty2: 0, purchaseQty3: 0, | |||||
purchaseQty4: 0, purchaseQty5: 0, purchaseQty6: 0, | |||||
purchaseQty7: 0, overallPurchaseQty: 0, | |||||
purchaseQty: 0 | |||||
}, | |||||
{ id: 13, code: "FA0161",type: "Material", name: "洋蔥粒", inStockQty: 0, | |||||
purchaseQty1: 28.15, purchaseQty2: 28.15, purchaseQty3: 28.15, | |||||
purchaseQty4: 28.15, purchaseQty5: 28.15, purchaseQty6: 28.15, | |||||
purchaseQty7: 28.15, overallPurchaseQty: 197.05, | |||||
purchaseQty: 28.15 | |||||
}, | |||||
{ id: 14, code: "MG1288", type: "Material",name: "炸紅蔥頭", inStockQty: 0, | |||||
purchaseQty1: 0, purchaseQty2: 0, purchaseQty3: 0, | |||||
purchaseQty4: 0, purchaseQty5: 0, purchaseQty6: 0, | |||||
purchaseQty7: 0, overallPurchaseQty: 0, | |||||
purchaseQty: 0 | |||||
}, | |||||
{ id: 15, code: "MG0066", type: "Material",name: "咖哩料(5斤x16包+2斤/包)", inStockQty: 0, | |||||
purchaseQty1: 241.98, purchaseQty2: 241.98, purchaseQty3: 241.98, | |||||
purchaseQty4: 241.98, purchaseQty5: 241.98, purchaseQty6: 241.98, | |||||
purchaseQty7: 241.98, overallPurchaseQty: 17038.4, | |||||
purchaseQty: 241.98 | |||||
}, | }, | ||||
{ id: 7, code: "FA0056", type: "Material", name: "洋蔥肉", inStockQty: 241.98 , purchaseQty: 2419.8 }, | |||||
{ id: 8, code: "PP1188", type: "Material", name: "咖喱膽", inStockQty: 36.00 , purchaseQty: 0 }, | |||||
{ id: 9, code: "PP8001", type: "Material", name: "咖哩汁箱料粉", inStockQty: 77.42 , purchaseQty: 774.2 }, | |||||
{ id: 10, code: "PP1096", type: "Material", name: "白麵撈", inStockQty: 60.00 , purchaseQty: 0 }, | |||||
{ id: 11, code: "NA0476", type: "Material", name: "2磅份量三邊覆合袋 (0.1x225x260mm)個計", inStockQty: 600.00 , purchaseQty: 6000 }, | |||||
{ id: 12, code: "MH0040",type: "Material", name: "大豆油(1噸/桶)", inStockQty: 0, purchaseQty: 972.12 }, | |||||
{ id: 13, code: "FA0161",type: "Material", name: "洋蔥粒", inStockQty: 0, purchaseQty: 28.15 }, | |||||
{ id: 14, code: "MG1288", type: "Material",name: "炸紅蔥頭", inStockQty: 0, purchaseQty: 6.05 }, | |||||
{ id: 15, code: "MG0066", type: "Material",name: "咖哩料(5斤x16包+2斤/包)", inStockQty: 0, purchaseQty: 241.98 }, | |||||
{ id: 16, code: "MH0040", type: "Material",name: "星加坡綠富貴花牌幼白麵粉 (50磅/包)", inStockQty: 0, purchaseQty: 250.00 }, | |||||
], | ], | ||||
[] | [] | ||||
); | ); | ||||
@@ -298,7 +337,7 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
]) | ]) | ||||
const updatePagingController = (updatedObj) => { | |||||
const updatePagingController = (updatedObj: { index: number, pageNum: number, pageSize: number, totalCount: number }) => { | |||||
setPagingController((prevState) => { | setPagingController((prevState) => { | ||||
return prevState.map((item, index) => { | return prevState.map((item, index) => { | ||||
if (index === updatedObj?.index){ | if (index === updatedObj?.index){ | ||||
@@ -77,11 +77,17 @@ const EquipmentSearch: React.FC<Props> = ({ equipments }) => { | |||||
[filteredEquipments] | [filteredEquipments] | ||||
); | ); | ||||
interface ApiResponse<T> { | |||||
records: T[]; | |||||
total: number; | |||||
} | |||||
const refetchData = useCallback( | const refetchData = useCallback( | ||||
async (filterObj: SearchQuery) => { | async (filterObj: SearchQuery) => { | ||||
const authHeader = axiosInstance.defaults.headers["Authorization"]; | const authHeader = axiosInstance.defaults.headers["Authorization"]; | ||||
if (!authHeader) { | if (!authHeader) { | ||||
return; // Exit the function if the token is not set | |||||
return; | |||||
} | } | ||||
const params = { | const params = { | ||||
pageNum: pagingController.pageNum, | pageNum: pagingController.pageNum, | ||||
@@ -89,21 +95,21 @@ const EquipmentSearch: React.FC<Props> = ({ equipments }) => { | |||||
...filterObj, | ...filterObj, | ||||
}; | }; | ||||
try { | try { | ||||
const response = await axiosInstance.get<EquipmentResult[]>( | |||||
const response = await axiosInstance.get<ApiResponse<EquipmentResult>>( | |||||
`${NEXT_PUBLIC_API_URL}/Equipment/getRecordByPage`, | `${NEXT_PUBLIC_API_URL}/Equipment/getRecordByPage`, | ||||
{ params } | { params } | ||||
); | ); | ||||
console.log(response); | console.log(response); | ||||
if (response.status == 200) { | if (response.status == 200) { | ||||
setFilteredEquipments(response.data.records); | setFilteredEquipments(response.data.records); | ||||
setTotalCount(response.data.total) | |||||
return response; // Return the data from the response | |||||
setTotalCount(response.data.total); | |||||
return response; | |||||
} else { | } else { | ||||
throw "400"; | throw "400"; | ||||
} | } | ||||
} catch (error) { | } catch (error) { | ||||
console.error("Error fetching equipment types:", error); | console.error("Error fetching equipment types:", error); | ||||
throw error; // Rethrow the error for further handling | |||||
throw error; | |||||
} | } | ||||
}, | }, | ||||
[axiosInstance, pagingController.pageNum, pagingController.pageSize] | [axiosInstance, pagingController.pageNum, pagingController.pageSize] | ||||
@@ -12,7 +12,7 @@ import { TypeEnum } from "@/app/utils/typeEnum"; | |||||
import axios from "axios"; | import axios from "axios"; | ||||
import { BASE_API_URL, NEXT_PUBLIC_API_URL } from "@/config/api"; | import { BASE_API_URL, NEXT_PUBLIC_API_URL } from "@/config/api"; | ||||
import axiosInstance from "@/app/(main)/axios/axiosInstance"; | import axiosInstance from "@/app/(main)/axios/axiosInstance"; | ||||
import { EquipmentTypeResultResponse } from "@/app/api/settings/equipmentType"; | |||||
type Props = { | type Props = { | ||||
equipmentTypes: EquipmentTypeResult[]; | equipmentTypes: EquipmentTypeResult[]; | ||||
}; | }; | ||||
@@ -85,7 +85,7 @@ const EquipmentTypeSearch: React.FC<Props> = ({ equipmentTypes }) => { | |||||
...filterObj, | ...filterObj, | ||||
}; | }; | ||||
try { | try { | ||||
const response = await axiosInstance.get<EquipmentTypeResult[]>( | |||||
const response = await axiosInstance.get<EquipmentTypeResultResponse>( | |||||
`${NEXT_PUBLIC_API_URL}/EquipmentType/getRecordByPage`, | `${NEXT_PUBLIC_API_URL}/EquipmentType/getRecordByPage`, | ||||
{ params } | { params } | ||||
); | ); | ||||
@@ -29,8 +29,8 @@ import { QcItemWithChecks } from "@/app/api/qc"; | |||||
import { GridEditInputCell } from "@mui/x-data-grid"; | import { GridEditInputCell } from "@mui/x-data-grid"; | ||||
import { StockInLine } from "@/app/api/po"; | import { StockInLine } from "@/app/api/po"; | ||||
import { stockInLineStatusMap } from "@/app/utils/formatUtil"; | import { stockInLineStatusMap } from "@/app/utils/formatUtil"; | ||||
import { PickOrderApprovalInput } from "@/app/api/pickorder/actions"; | |||||
import { StockOutLine } from "@/app/api/pickorder"; | |||||
import { PickOrderApprovalInput } from "@/app/api/pickOrder/actions"; | |||||
import { StockOutLine } from "@/app/api/pickOrder"; | |||||
interface Props { | interface Props { | ||||
// approvalDefaultValues: StockInLine; | // approvalDefaultValues: StockInLine; | ||||
@@ -40,11 +40,11 @@ import { | |||||
fetchStockOutLineClient, | fetchStockOutLineClient, | ||||
PickOrderApprovalInput, | PickOrderApprovalInput, | ||||
PickOrderQcInput, | PickOrderQcInput, | ||||
} from "@/app/api/pickorder/actions"; | |||||
} from "@/app/api/pickOrder/actions"; | |||||
import { | import { | ||||
PickOrderLineWithSuggestedLot, | PickOrderLineWithSuggestedLot, | ||||
StockOutLine, | StockOutLine, | ||||
} from "@/app/api/pickorder"; | |||||
} from "@/app/api/pickOrder"; | |||||
import { Pageable } from "@/app/utils/fetchUtil"; | import { Pageable } from "@/app/utils/fetchUtil"; | ||||
import { QrCodeInfo } from "@/app/api/qrcode"; | import { QrCodeInfo } from "@/app/api/qrcode"; | ||||
import { QrCode } from "../QrCode"; | import { QrCode } from "../QrCode"; | ||||
@@ -37,7 +37,7 @@ type SearchParamNames = keyof SearchQuery; | |||||
const RSOverview: React.FC<Props> = ({ type, defaultInputs }) => { | const RSOverview: React.FC<Props> = ({ type, defaultInputs }) => { | ||||
const [filteredSchedules, setFilteredSchedules] = useState<ProdScheduleResult[]>([]); | const [filteredSchedules, setFilteredSchedules] = useState<ProdScheduleResult[]>([]); | ||||
const { t } = useTranslation("scheduling"); | |||||
const { t } = useTranslation("schedule"); | |||||
const router = useRouter(); | const router = useRouter(); | ||||
// const [filterObj, setFilterObj] = useState({}); | // const [filterObj, setFilterObj] = useState({}); | ||||
// const [tempSelectedValue, setTempSelectedValue] = useState({}); | // const [tempSelectedValue, setTempSelectedValue] = useState({}); | ||||
@@ -14,7 +14,7 @@ import { useTranslation } from "react-i18next"; | |||||
import axiosInstance from "@/app/(main)/axios/axiosInstance"; | import axiosInstance from "@/app/(main)/axios/axiosInstance"; | ||||
import Qs from 'qs'; | import Qs from 'qs'; | ||||
import EditableSearchResults from "@/components/SearchResults/EditableSearchResults"; // Make sure to import Qs | import EditableSearchResults from "@/components/SearchResults/EditableSearchResults"; // Make sure to import Qs | ||||
import { ItemsResultResponse } from "@/app/api/settings/item"; | |||||
type Props = { | type Props = { | ||||
items: ItemsResult[]; | items: ItemsResult[]; | ||||
}; | }; | ||||
@@ -63,7 +63,7 @@ const RSSOverview: React.FC<Props> = ({ items }) => { | |||||
const searchCriteria: Criterion<SearchParamNames>[] = useMemo( | const searchCriteria: Criterion<SearchParamNames>[] = useMemo( | ||||
() => { | () => { | ||||
var searchCriteria: Criterion<SearchParamNames>[] = [ | var searchCriteria: Criterion<SearchParamNames>[] = [ | ||||
{ label: t("Finished Goods Name"), paramName: "fgName", type: "text" }, | |||||
{ label: t("Finished Goods Name"), paramName: "name", type: "text" }, | |||||
{ | { | ||||
label: t("Exclude Date"), | label: t("Exclude Date"), | ||||
paramName: "excludeDate", | paramName: "excludeDate", | ||||
@@ -100,7 +100,7 @@ const RSSOverview: React.FC<Props> = ({ items }) => { | |||||
// }, | // }, | ||||
{ | { | ||||
field: "name", | field: "name", | ||||
label: "Finished Goods Name", | |||||
label: t("Finished Goods Name"), | |||||
type: 'input', | type: 'input', | ||||
}, | }, | ||||
{ | { | ||||
@@ -153,7 +153,7 @@ const RSSOverview: React.FC<Props> = ({ items }) => { | |||||
} | } | ||||
try { | try { | ||||
const response = await axiosInstance.get<ItemsResult[]>(`${NEXT_PUBLIC_API_URL}/items/getRecordByPage`, { | |||||
const response = await axiosInstance.get<ItemsResultResponse>(`${NEXT_PUBLIC_API_URL}/items/getRecordByPage`, { | |||||
params, | params, | ||||
paramsSerializer: (params) => { | paramsSerializer: (params) => { | ||||
return Qs.stringify(params, { arrayFormat: 'repeat' }); | return Qs.stringify(params, { arrayFormat: 'repeat' }); | ||||
@@ -175,7 +175,7 @@ const RSSOverview: React.FC<Props> = ({ items }) => { | |||||
//setFilteredItems(items ?? []); | //setFilteredItems(items ?? []); | ||||
setFilterObj({}); | setFilterObj({}); | ||||
setTempSelectedValue({}); | setTempSelectedValue({}); | ||||
refetchData(); | |||||
refetchData(filterObj); | |||||
}, [items]); | }, [items]); | ||||
return ( | return ( | ||||
@@ -10,7 +10,7 @@ type Props = { | |||||
// type: TypeEnum; | // type: TypeEnum; | ||||
}; | }; | ||||
const RoughScheduleSettingWrapper: ({}: {}) => Promise<JSX.Element> = async ({ | |||||
const RoughScheduleSettingWrapper: React.FC & SubComponents = async ({ | |||||
// type, | // type, | ||||
}) => { | }) => { | ||||
// console.log(type) | // console.log(type) | ||||
@@ -66,5 +66,8 @@ | |||||
"Equipment Type Details":"設備類型詳情", | "Equipment Type Details":"設備類型詳情", | ||||
"Save":"儲存", | "Save":"儲存", | ||||
"Cancel":"取消", | "Cancel":"取消", | ||||
"Equipment Details":"設備詳情" | |||||
"Equipment Details":"設備詳情", | |||||
"Exclude Date":"排除日期", | |||||
"Finished Goods Name":"成品名稱" | |||||
} | } |
@@ -78,5 +78,7 @@ | |||||
"Job Priority": "工單優先順序", | "Job Priority": "工單優先順序", | ||||
"Job Date": "工單日期", | "Job Date": "工單日期", | ||||
"Job Qty": "工單數量", | "Job Qty": "工單數量", | ||||
"mat": "物料" | |||||
"mat": "物料", | |||||
"Product Count(s)": "產品數量", | |||||
"Schedule Period To": "排程期間至" | |||||
} | } |