diff --git a/src/components/pdf/SurveySaleDownloadPdf.tsx b/src/components/pdf/SurveySaleDownloadPdf.tsx index 8d8adf9..02ba732 100644 --- a/src/components/pdf/SurveySaleDownloadPdf.tsx +++ b/src/components/pdf/SurveySaleDownloadPdf.tsx @@ -1,27 +1,29 @@ 'use client' -import { useEffect, useRef, useState } from 'react' +import { useEffect, useRef } from 'react' import generatePDF, { Margin, Resolution } from 'react-to-pdf' import { useParams, useRouter } from 'next/navigation' import { useSurvey } from '@/hooks/useSurvey' import { radioEtcData, roofMaterial, selectBoxOptions, supplementaryFacilities } from '../survey-sale/detail/RoofForm' +import { useSpinnerStore } from '@/store/spinnerStore' export default function SurveySaleDownloadPdf() { const params = useParams() const id = params.id + const router = useRouter() const { surveyDetail, isLoadingSurveyDetail } = useSurvey(Number(id)) - const [isLoading, setIsLoading] = useState(false) - const router = useRouter() + const { setIsShow } = useSpinnerStore() const targetRef = useRef(null) const isGeneratedRef = useRef(false) - // useEffect(() => { - // if (isLoadingSurveyDetail || !surveyDetail || isGeneratedRef.current) return - // isGeneratedRef.current = true - // handleDownPdf() - // }, [surveyDetail?.id, isLoadingSurveyDetail]) + useEffect(() => { + setIsShow(true) + if (isLoadingSurveyDetail || !surveyDetail || isGeneratedRef.current) return + isGeneratedRef.current = true + handleDownPdf() + }, [surveyDetail?.id, isLoadingSurveyDetail]) const handleDownPdf = () => { const options = { @@ -47,6 +49,7 @@ export default function SurveySaleDownloadPdf() { } generatePDF(targetRef, options).then(() => { + setIsShow(false) router.push(`/survey-sale/${id}`) }) } @@ -56,11 +59,9 @@ export default function SurveySaleDownloadPdf() { return ( <> - {/* */}
-
+
HWJ 現地調査シート1/2 @@ -449,8 +448,8 @@ export default function SurveySaleDownloadPdf() { boxSizing: 'border-box', }} > - {surveyDetail?.detailInfo?.houseStructure ? '木製' : ''} - {surveyDetail?.detailInfo?.houseStructureEtc ? ` ${surveyDetail?.detailInfo?.houseStructureEtc}` : '-'} + {radioEtcData.houseStructure.find((structure) => structure.id.toString() === surveyDetail?.detailInfo?.houseStructure)?.label ?? + (surveyDetail?.detailInfo?.houseStructureEtc ? ` ${surveyDetail?.detailInfo?.houseStructureEtc}` : '-')} @@ -479,10 +478,12 @@ export default function SurveySaleDownloadPdf() { boxSizing: 'border-box', }} > - {surveyDetail?.detailInfo?.rafterMaterial === null && surveyDetail?.detailInfo?.rafterMaterialEtc === null + {/* {surveyDetail?.detailInfo?.rafterMaterial === null && surveyDetail?.detailInfo?.rafterMaterialEtc === null ? '-' : radioEtcData.rafterMaterial.find((material) => material.id.toString() === surveyDetail?.detailInfo?.rafterMaterial)?.label ?? - surveyDetail?.detailInfo?.rafterMaterialEtc} + surveyDetail?.detailInfo?.rafterMaterialEtc} */} + {radioEtcData.rafterMaterial.find((material) => material.id.toString() === surveyDetail?.detailInfo?.rafterMaterial)?.label ?? + (surveyDetail?.detailInfo?.rafterMaterialEtc ? ` ${surveyDetail?.detailInfo?.rafterMaterialEtc}` : '-')} presence.id.toString() === surveyDetail?.detailInfo?.insulationPresence) ?.label } - {surveyDetail?.detailInfo?.insulationPresenceEtc ? ` ${surveyDetail?.detailInfo?.insulationPresenceEtc}` : '-'} + {surveyDetail?.detailInfo?.insulationPresenceEtc ? `, ${surveyDetail?.detailInfo?.insulationPresenceEtc}` : ''} @@ -753,8 +754,8 @@ export default function SurveySaleDownloadPdf() { boxSizing: 'border-box', }} > - {selectBoxOptions.structureOrder.find((order) => order.id.toString() === surveyDetail?.detailInfo?.structureOrder)?.name ?? - (surveyDetail?.detailInfo?.structureOrderEtc ? ` ${surveyDetail?.detailInfo?.structureOrderEtc}` : '-')} + {radioEtcData.structureOrder.find((order) => order.id.toString() === surveyDetail?.detailInfo?.structureOrder)?.label ?? + (surveyDetail?.detailInfo?.structureOrderEtc ? `${surveyDetail?.detailInfo?.structureOrderEtc}` : '-')} @@ -792,12 +793,12 @@ export default function SurveySaleDownloadPdf() { boxSizing: 'border-box', }} > - { - selectBoxOptions.installationAvailability.find( - (availability) => availability.id.toString() === surveyDetail?.detailInfo?.installationAvailability, - )?.name - } - {surveyDetail?.detailInfo?.installationAvailabilityEtc ? ` ${surveyDetail?.detailInfo?.installationAvailabilityEtc}` : '-'} + {surveyDetail?.detailInfo?.installationAvailability === null && surveyDetail.detailInfo?.installationAvailabilityEtc === null + ? '-' + : selectBoxOptions.installationAvailability.find( + (availability) => availability.id.toString() === surveyDetail?.detailInfo?.installationAvailability, + )?.name} + {surveyDetail?.detailInfo?.installationAvailabilityEtc ? `, ${surveyDetail?.detailInfo?.installationAvailabilityEtc}` : ''} diff --git a/src/components/popup/SurveySaleSubmitPopup.tsx b/src/components/popup/SurveySaleSubmitPopup.tsx index 426d49c..8d02bfe 100644 --- a/src/components/popup/SurveySaleSubmitPopup.tsx +++ b/src/components/popup/SurveySaleSubmitPopup.tsx @@ -6,12 +6,14 @@ import { useEffect, useState } from 'react' import { useSessionStore } from '@/store/session' import { useCommCode } from '@/hooks/useCommCode' import { CommCode } from '@/types/CommCode' +// import { sendEmail } from '@/libs/mailer' +import { useSpinnerStore } from '@/store/spinnerStore' interface SubmitFormData { saleBase: string | null store: string sender: string - receiver: string[] + receiver: string[] | string reference: string | null title: string contents: string @@ -29,6 +31,7 @@ export default function SurveySaleSubmitPopup() { const params = useParams() const routeId = params.id + const { setIsShow } = useSpinnerStore() const [commCodeList, setCommCodeList] = useState([]) const { getCommCode } = useCommCode() @@ -86,10 +89,22 @@ export default function SurveySaleSubmitPopup() { const handleSubmit = () => { if (validateData(submitData)) { window.neoConfirm('送信しますか? 送信後は変更・修正することはできません。', () => { + setIsShow(true) submitSurvey({ targetId: submitData.store }) + // sendEmail({ + // to: submitData.receiver, + // subject: submitData.title, + // content: submitData.contents, + // }) + // .then(() => { if (!isSubmittingSurvey) { popupController.setSurveySaleSubmitPopup(false) } + // }) + // .catch((error) => { + // console.error('Error sending email:', error) + // alert('メール送信に失敗しました。') + // }) }) } } diff --git a/src/components/survey-sale/detail/RoofForm.tsx b/src/components/survey-sale/detail/RoofForm.tsx index 3e8dcc2..4760808 100644 --- a/src/components/survey-sale/detail/RoofForm.tsx +++ b/src/components/survey-sale/detail/RoofForm.tsx @@ -1,7 +1,14 @@ import { useState } from 'react' import type { Mode, SurveyDetailInfo, SurveyDetailRequest } from '@/types/Survey' -type RadioEtcKeys = 'houseStructure' | 'rafterMaterial' | 'waterproofMaterial' | 'insulationPresence' | 'rafterDirection' | 'leakTrace' +type RadioEtcKeys = + | 'structureOrder' + | 'houseStructure' + | 'rafterMaterial' + | 'waterproofMaterial' + | 'insulationPresence' + | 'rafterDirection' + | 'leakTrace' type SelectBoxKeys = | 'installationSystem' | 'constructionYear' @@ -9,7 +16,6 @@ type SelectBoxKeys = | 'rafterPitch' | 'rafterSize' | 'openFieldPlateKind' - | 'structureOrder' | 'installationAvailability' export const supplementaryFacilities = [ @@ -115,24 +121,6 @@ export const selectBoxOptions: Record = { + structureOrder: [ + { + id: 1, + label: '屋根材 - 防水材 - 屋根の基礎 - 垂木', //지붕재 방수재 지붕의기초 서까래 + }, + ], houseStructure: [ { id: 1, @@ -438,7 +432,7 @@ export default function RoofForm(props: {
{/* 지붕 구조의 순서 */}
屋根構造の順序
- +
{/* 지붕 제품명 설치 가능 여부 확인 */}