From 0d856628796ee61324208b254c549fd5b94930af Mon Sep 17 00:00:00 2001 From: "sosuke.iwabuchi" Date: Fri, 28 Jul 2023 09:41:46 +0900 Subject: [PATCH] =?UTF-8?q?=E9=A0=98=E5=8F=8E=E8=A8=BC=E7=99=BA=E8=A1=8C?= =?UTF-8?q?=E4=BE=9D=E9=A0=BC=E4=B8=80=E8=A6=A7=E3=80=80=E6=A4=9C=E7=B4=A2?= =?UTF-8?q?=E9=A0=85=E7=9B=AE=E3=82=B9=E3=83=86=E3=83=BC=E3=82=BF=E3=82=B9?= =?UTF-8?q?=E3=82=92=E3=83=97=E3=83=AB=E3=83=80=E3=82=A6=E3=83=B3=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SATE_RECEIPT-21 領収証発行依頼一覧 --- .../custom/hello-techno/list.tsx | 66 +++++++++++++++++-- 1 file changed, 60 insertions(+), 6 deletions(-) diff --git a/src/pages/dashboard/receipt-issuing-order/custom/hello-techno/list.tsx b/src/pages/dashboard/receipt-issuing-order/custom/hello-techno/list.tsx index 60b2840..de63b28 100644 --- a/src/pages/dashboard/receipt-issuing-order/custom/hello-techno/list.tsx +++ b/src/pages/dashboard/receipt-issuing-order/custom/hello-techno/list.tsx @@ -25,10 +25,22 @@ import { ReceiptIssuingOrderHTCustom, getReceiptIssuingOrders, } from "api/custom/hello-techno/receipt-issuing-order"; +import { receiptIssuingOrderStatusNames } from "api/receipt-issuing-order"; import { getFullUrl } from "api/url"; import { PageID, TabID } from "codes/page"; -import { FormProvider, RHFCheckbox, RHFTextField } from "components/hook-form"; +import { + FormProvider, + RHFCheckbox, + RHFSelect, + RHFTextField, +} from "components/hook-form"; +import RHFAutoComplete, { + AutoCompleteOption, + AutoCompleteOptionType, + getValue, +} from "components/hook-form/RHFAutoComplete"; import RHFDatePicker from "components/hook-form/RHFDatePicker"; +import { SelectOptionProps } from "components/hook-form/RHFSelect"; import { TableHeadCustom } from "components/table"; import { HeadLabelProps } from "components/table/TableHeadCustom"; import { SearchConditionContextProvider } from "contexts/SearchConditionContext"; @@ -39,6 +51,7 @@ import useDashboard from "hooks/useDashBoard"; import useNavigateCustom from "hooks/useNavigateCustom"; import useSearchConditionContext from "hooks/useSearchConditionContext"; import useTable, { UseTableReturn } from "hooks/useTable"; +import { isEqual } from "lodash"; import { useEffect, useMemo, useState } from "react"; import { useForm } from "react-hook-form"; import { getPath } from "routes/path"; @@ -114,6 +127,17 @@ function SearchBox({ table }: CommonProps) { const [openDateDialog, setOpenDateDialog] = useState(false); + const [lastSendSearchCondition, setLastSendSearchCondition] = + useState({}); + + const [statusNames, setStatusNames] = useState([]); + const statusNameOptions: SelectOptionProps[] = useMemo(() => { + return [ + { value: "", label: "-" }, + ...statusNames.map((ele) => ({ value: ele })), + ]; + }, [statusNames]); + const form = useForm({ defaultValues: { customer_name: "", @@ -128,10 +152,21 @@ function SearchBox({ table }: CommonProps) { }, }); + const { + callAPI: callReceiptIssuingOrderStatusNames, + sending: sendingReceiptIssuingOrderStatusNames, + } = useAPICall({ + apiMethod: receiptIssuingOrderStatusNames, + + onSuccess: (res) => { + setStatusNames(res.data); + }, + }); + const { callAPI: callGetReceiptIssuingOrders, makeSendData, - sending, + sending: sendingGetReceiptIssuingOrders, } = useAPICall({ apiMethod: getReceiptIssuingOrders, form, @@ -143,6 +178,7 @@ function SearchBox({ table }: CommonProps) { const includeDone = form.watch("include_done"); const orderDateFrom = form.watch("order_date_from"); const orderDateTo = form.watch("order_date_to"); + const statusName = form.watch("status"); const isSetOrderDateConditions = useMemo(() => { return !!orderDateFrom || !!orderDateTo; @@ -199,7 +235,11 @@ function SearchBox({ table }: CommonProps) { // 完了を含む場合は、条件設定しない。含まない場合は未完了のみとする done: data.include_done === "1" ? "" : "0", }); - callGetReceiptIssuingOrders(sendData); + + if (!isEqual(sendData, lastSendSearchCondition)) { + setLastSendSearchCondition(sendData); + callGetReceiptIssuingOrders(sendData); + } }; // 初期値設定 @@ -226,12 +266,21 @@ function SearchBox({ table }: CommonProps) { // バックドロップ useEffect(() => { + const sending = + sendingReceiptIssuingOrderStatusNames || sendingGetReceiptIssuingOrders; setShowBackDrop(sending); - }, [sending]); + }, [sendingGetReceiptIssuingOrders, sendingReceiptIssuingOrderStatusNames]); useEffect(() => { addCondition(form.getValues()); - }, [includeDone, orderDateFrom, orderDateTo]); + }, [includeDone, orderDateFrom, orderDateTo, statusName]); + + // ステータス名選択肢の取得 + useEffect(() => { + if (initialized) { + callReceiptIssuingOrderStatusNames({}); + } + }, [initialized]); return ( @@ -259,7 +308,12 @@ function SearchBox({ table }: CommonProps) { ステータス - + {/* */} +