FPSMS-frontend
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 

49 行
1.6 KiB

  1. import { fetchBomCombo } from "@/app/api/bom";
  2. import { fetchPrinterCombo } from "@/app/api/settings/printer";
  3. import { fetchAllJobTypes, type SearchJoResultRequest } from "@/app/api/jo/actions";
  4. import GeneralLoading from "@/components/General/GeneralLoading";
  5. import PageTitleBar from "@/components/PageTitleBar";
  6. import JoWorkbenchSearch from "@/components/JoWorkbench/JoWorkbenchSearch";
  7. import { I18nProvider, getServerI18n } from "@/i18n";
  8. import { Metadata } from "next";
  9. import React, { Suspense } from "react";
  10. export const metadata: Metadata = {
  11. title: "Job Order",
  12. };
  13. const Jo: React.FC = async () => {
  14. const { t } = await getServerI18n("jo");
  15. const today = new Date();
  16. const todayStr = today.toISOString().split("T")[0];
  17. const defaultInputs: SearchJoResultRequest = {
  18. code: "",
  19. itemName: "",
  20. planStart: `${todayStr}T00:00`,
  21. planStartTo: `${todayStr}T23:59:59`,
  22. joSearchStatus: "all",
  23. };
  24. const [bomCombo, printerCombo, jobTypes] = await Promise.all([
  25. fetchBomCombo(),
  26. fetchPrinterCombo(),
  27. fetchAllJobTypes(),
  28. ]);
  29. return (
  30. <>
  31. <PageTitleBar title={t("Search Job Order/ Create Job Order")} className="mb-4" />
  32. <I18nProvider namespaces={["jo", "common", "purchaseOrder", "dashboard"]}>
  33. <Suspense fallback={<GeneralLoading />}>
  34. <JoWorkbenchSearch
  35. defaultInputs={defaultInputs}
  36. bomCombo={bomCombo ?? []}
  37. printerCombo={printerCombo ?? []}
  38. jobTypes={jobTypes ?? []}
  39. />
  40. </Suspense>
  41. </I18nProvider>
  42. </>
  43. );
  44. };
  45. export default Jo;