diff --git a/src/components/estimate/Estimate.jsx b/src/components/estimate/Estimate.jsx index 749892e4..14285f61 100644 --- a/src/components/estimate/Estimate.jsx +++ b/src/components/estimate/Estimate.jsx @@ -569,6 +569,20 @@ export default function Estimate({ params }) { } }, [itemChangeYn, state.itemList]) + //안건명 인풋 변경 + const handleBlurObjectName = (e) => { + setState({ objectName: e.target.value }) + } + + //담당자 인풋 변경 + const handleBlurCharger = (e) => { + setState({ charger: e.target.value }) + } + + useEffect(() => { + console.log('상세정보???????????', state) + console.log('업뎃날짜시간???????????', state.lastEditDatetime) + }, [state]) return (
@@ -594,7 +608,8 @@ export default function Estimate({ params }) {
{getMessage('estimate.detail.lastEditDatetime')}
-
{state?.lastEditDatetime ? `${dayjs(state.lastEditDatetime).format('YYYY.MM.DD HH:mm')}` : ''}
+ {/*
{state?.lastEditDatetime ? `${dayjs(state.lastEditDatetime).format('YYYY.MM.DD HH:mm')}` : ''}
*/} +
{state?.lastEditDatetime ? `${dayjs(state?.lastEditDatetime).format('HH:mm:ss')}` : ''}
@@ -645,10 +660,11 @@ export default function Estimate({ params }) { type="text" className="input-light" defaultValue={state?.charger} - onChange={(e) => { - //담당자 charger - setState({ charger: e.target.value }) - }} + // onChange={(e) => { + // //담당자 charger + // setState({ charger: e.target.value }) + // }} + onBlur={handleBlurCharger} /> @@ -665,10 +681,11 @@ export default function Estimate({ params }) { type="text" className="input-light" defaultValue={state?.objectName} - onChange={(e) => { - //안건명 objectName - setState({ objectName: e.target.value }) - }} + // onChange={(e) => { + // //안건명 objectName + // setState({ objectName: e.target.value }) + // }} + onBlur={handleBlurObjectName} />
@@ -688,7 +705,7 @@ export default function Estimate({ params }) { }} getOptionLabel={(x) => x.clCodeNm} getOptionValue={(x) => x.clCode} - isClearable={true} + isClearable={false} isSearchable={false} value={honorificCodeList.filter(function (option) { return option.clCodeNm === state.objectNameOmit diff --git a/src/hooks/floorPlan/estimate/useEstimateController.js b/src/hooks/floorPlan/estimate/useEstimateController.js index e3883125..7def3c44 100644 --- a/src/hooks/floorPlan/estimate/useEstimateController.js +++ b/src/hooks/floorPlan/estimate/useEstimateController.js @@ -47,6 +47,7 @@ export const useEstimateController = (planNo) => { const [isLoading, setIsLoading] = useState(false) const [state, setState] = useReducer(reducer, defaultEstimateData) + const [newState, setNewState] = useState({}) useEffect(() => { if (planNo && !isLoading) { @@ -66,7 +67,8 @@ export const useEstimateController = (planNo) => { item.delFlg = '0' }) } - + console.log('조회 결과::::', res) + console.log('수정일::::', res.lastEditDatetime) setState(res) } }) @@ -142,24 +144,41 @@ export const useEstimateController = (planNo) => { const handleEstimateSubmit = async () => { //0. 필수체크 let flag = true + if (estimateData.charger.trim().length === 0) { + flag = false + return alert(getMessage('estimate.detail.save.requiredCharger')) + } + + if (estimateData.objectName.trim().length === 0) { + flag = false + return alert(getMessage('estimate.detail.save.requiredObjectName')) + } + + if (isNaN(Date.parse(estimateData.estimateDate))) { + flag = false + return alert(getMessage('estimate.detail.save.requiredEstimateDate')) + } // console.log('첨부파일:::::', estimateData.fileList) //첨부파일을 첨부안했는데 //아이템 fileUploadFlg가1(첨부파일 필수)이 1개라도 있는데 후일 자료 제출(fileFlg) 체크안했으면(0) alert 저장안돼 + let fileFlg = true if (estimateData.fileList.length < 1) { if (estimateData.itemList.length > 1) { estimateData.itemList.map((row) => { if (row.fileUploadFlg === '1') { - if (estimateData.fileFlg === '0') { - alert(getMessage('estimate.detail.save.requiredMsg')) - flag = false + if (fileFlg) { + if (estimateData.fileFlg === '0') { + fileFlg = false + return alert(getMessage('estimate.detail.save.requiredFileUpload')) + } } } }) } } - if (flag) { + if (flag && fileFlg) { //1. 첨부파일 저장시작 const formData = new FormData() formData.append('file', estimateData.fileList) @@ -184,8 +203,7 @@ export const useEstimateController = (planNo) => { return alert(getMessage('estimate.detail.save.requiredItem')) } - // console.log('최종 남은 아이템정보:::', estimateData.itemList) - console.log('최종 정보::;', estimateData) + // console.log('최종 정보::;', estimateData) //2. 상세데이터 저장 // return diff --git a/src/locales/ja.json b/src/locales/ja.json index d1d56038..7bda9175 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -887,8 +887,11 @@ "estimate.detail.productFeaturesPopup.requiredStoreId": "一次販売店は必須です.", "estimate.detail.productFeaturesPopup.requiredReceiveUser": "担当者は必須です.", "estimate.detail.save.alertMsg": "保存されている見積書で製品を変更した場合、図面や回路には反映されません.", - "estimate.detail.save.requiredMsg": "ファイル添付が必須のアイテムがあります。ファイルを添付するか、後日添付をチェックしてください.", + "estimate.detail.save.requiredFileUpload": "ファイル添付が必須のアイテムがあります。ファイルを添付するか、後日添付をチェックしてください.", "estimate.detail.save.requiredItem": "製品は1つ以上登録する必要があります.", + "estimate.detail.save.requiredCharger": "担当者は必須です.", + "estimate.detail.save.requiredObjectName": "案件名は必須です.", + "estimate.detail.save.requiredEstimateDate": "見積日は必須です.", "estimate.detail.reset.confirmMsg": "保存した見積書情報が初期化され、図面情報が反映されます。本当に初期化しますか?", "simulator.title.sub1": "物件番号", "simulator.title.sub2": "作成日", diff --git a/src/locales/ko.json b/src/locales/ko.json index 5ed1f4fc..54f672a5 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -897,8 +897,11 @@ "estimate.detail.productFeaturesPopup.requiredStoreId": "1차 판매점은 필수값 입니다.", "estimate.detail.productFeaturesPopup.requiredReceiveUser": "담당자는 필수값 입니다.", "estimate.detail.save.alertMsg": "저장되었습니다. 견적서에서 제품을 변경할 경우, 도면 및 회로에 반영되지 않습니다.", - "estimate.detail.save.requiredMsg": "파일첨부가 필수인 아이템이 있습니다. 파일을 첨부하거나 후일첨부를 체크해주십시오.", + "estimate.detail.save.requiredFileUpload": "파일첨부가 필수인 아이템이 있습니다. 파일을 첨부하거나 후일첨부를 체크해주십시오.", "estimate.detail.save.requiredItem": "제품은 1개이상 등록해야 됩니다.", + "estimate.detail.save.requiredCharger": "담당자는 필수값 입니다.", + "estimate.detail.save.requiredObjectName": "안건명은 필수값 입니다.", + "estimate.detail.save.requiredEstimateDate": "견적일은 필수값 입니다.", "estimate.detail.reset.confirmMsg": "저장된 견적서 정보가 초기화되고, 도면정보가 반영됩니다. 정말로 초기화 하시겠습니까?", "simulator.title.sub1": "물건번호", "simulator.title.sub2": "작성일",