From 75a3cf3f73784faab4df9aa6846941fcf390a18d Mon Sep 17 00:00:00 2001 From: basssy Date: Thu, 14 Nov 2024 14:18:21 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AC=BC=EA=B1=B4=EC=83=81=EC=84=B8=20?= =?UTF-8?q?=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=EA=B0=84=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EA=B3=B5=EC=9C=A0=20=EB=B0=A9=EC=8B=9D=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/management/StuffDetail.jsx | 118 +++++++++--------- src/components/management/StuffHeader.jsx | 43 ++----- .../management/StuffSearchCondition.jsx | 4 - src/locales/ja.json | 4 +- src/locales/ko.json | 4 +- 5 files changed, 77 insertions(+), 96 deletions(-) diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx index 93328de3..6378aeec 100644 --- a/src/components/management/StuffDetail.jsx +++ b/src/components/management/StuffDetail.jsx @@ -18,6 +18,7 @@ import WindSelectPop from './popup/WindSelectPop' import { useCommonCode } from '@/hooks/common/useCommonCode' import StuffPlanQGrid from './StuffPlanQGrid' import { floorPlanObjectState } from '@/store/floorPlanObjectAtom' +import { ManagementContext } from '@/app/management/ManagementProvider' export default function StuffDetail() { const setFloorPlanObjectNo = useSetRecoilState(floorPlanObjectState) //견적서 화면용 물건번호리코일 @@ -96,7 +97,7 @@ export default function StuffDetail() { const objectNo = searchParams.get('objectNo') //url에서 물건번호 꺼내서 바로 set const [editMode, setEditMode] = useState('NEW') - const [detailData, setDetailData] = useState({}) + const { managementState, setManagementState } = useContext(ManagementContext) const [planGridProps, setPlanGridProps] = useState({ planGridData: [], @@ -289,9 +290,9 @@ export default function StuffDetail() { promiseGet({ url: `/api/object/${objectNo}/detail` }).then((res) => { if (res.status === 200) { if (res.data != null) { - setDetailData(res.data) + setManagementState(res.data) } else { - setDetailData({}) + setManagementState({}) } if (isNotEmptyArray(res.data.planList)) { setPlanGridProps({ ...planGridProps, planGridData: res.data.planList }) @@ -299,7 +300,7 @@ export default function StuffDetail() { setPlanGridProps({ ...planGridProps, planGridData: [] }) } } else { - setDetailData({}) + setManagementState({}) setPlanGridProps({ ...planGridProps, planGridData: [] }) } }) @@ -415,7 +416,7 @@ export default function StuffDetail() { }, [commonCode]) useEffect(() => { - if (isObjectNotEmpty(detailData)) { + if (isObjectNotEmpty(managementState)) { // 도도부현API get({ url: '/api/object/prefecture/list' }).then((res) => { if (!isEmptyArray(res)) { @@ -449,18 +450,17 @@ export default function StuffDetail() { setFavoriteStoreList(favList) setShowSaleStoreList(favList) - if (detailData.firstAgentId != null) { - form.setValue('saleStoreId', detailData.firstAgentId) - setSelOptions(detailData.firstAgentId) + if (managementState.firstAgentId != null) { + form.setValue('saleStoreId', managementState.firstAgentId) + setSelOptions(managementState.firstAgentId) } else { - form.setValue('saleStoreId', detailData.saleStoreId) - setSelOptions(detailData.saleStoreId) + form.setValue('saleStoreId', managementState.saleStoreId) + setSelOptions(managementState.saleStoreId) } //상세데이터의 1차점 아이디로 2차점 목록 조회하기 - let data = detailData?.firstAgentId ? detailData.firstAgentId : detailData.saleStoreId - // url = `/api/object/saleStore/${session?.storeId}/list?firstFlg=0&userId=${session?.userId}` + let data = managementState?.firstAgentId ? managementState.firstAgentId : managementState.saleStoreId url = `/api/object/saleStore/${data}/list?firstFlg=0&userId=${session?.userId}` get({ url: url }).then((res) => { @@ -502,74 +502,74 @@ export default function StuffDetail() { //상세데이터가 1차점이면 1차점에 세팅 //상세데이터가 2차점이면 2차점에 세팅하고 세션으로 1차점 세팅 - if (detailData.saleStoreLevel === '1') { - setSelOptions(detailData.saleStoreId) - form.setValue('saleStoreId', detailData.saleStoreId) - form.setValue('saleStoreLevel', detailData.saleStoreLevel) + if (managementState.saleStoreLevel === '1') { + setSelOptions(managementState.saleStoreId) + form.setValue('saleStoreId', managementState.saleStoreId) + form.setValue('saleStoreLevel', managementState.saleStoreLevel) } else { - setOtherSelOptions(detailData.saleStoreId) - form.setValue('otherSaleStoreId', detailData.saleStoreId) - form.setValue('otherSaleStoreLevel', detailData.saleStoreLevel) + setOtherSelOptions(managementState.saleStoreId) + form.setValue('otherSaleStoreId', managementState.saleStoreId) + form.setValue('otherSaleStoreLevel', managementState.saleStoreLevel) form.setValue('saleStoreLevel', '1') } //설계의뢰No. - form.setValue('planReqNo', detailData.planReqNo) + form.setValue('planReqNo', managementState.planReqNo) //담당자 - form.setValue('receiveUser', detailData.receiveUser) + form.setValue('receiveUser', managementState.receiveUser) //물건구분objectStatusId - setSelectObjectStatusId(detailData.objectStatusId) - form.setValue('objectStatusId', detailData.objectStatusId) + setSelectObjectStatusId(managementState.objectStatusId) + form.setValue('objectStatusId', managementState.objectStatusId) //물건명 - form.setValue('objectName', detailData.objectName) + form.setValue('objectName', managementState.objectName) //경칭코드 - setSelHonorificCode(detailData.objectNameOmit) - form.setValue('objectNameOmit', detailData.objectNameOmit) + setSelHonorificCode(managementState.objectNameOmit) + form.setValue('objectNameOmit', managementState.objectNameOmit) //물건명 후리가나 - form.setValue('objectNameKana', detailData.objectNameKana) + form.setValue('objectNameKana', managementState.objectNameKana) //우편번호 - form.setValue('zipNo', detailData.zipNo) + form.setValue('zipNo', managementState.zipNo) //도도부현 / 주소 - setPrefValue(detailData.prefId) - form.setValue('prefId', detailData.prefId) - form.setValue('prefName', detailData.prefName) - form.setValue('address', detailData.address) + setPrefValue(managementState.prefId) + form.setValue('prefId', managementState.prefId) + form.setValue('prefName', managementState.prefName) + form.setValue('address', managementState.address) //발전시뮬 - form.setValue('areaId', detailData.areaId) + form.setValue('areaId', managementState.areaId) //기준풍속 - form.setValue('standardWindSpeedId', detailData.standardWindSpeedId) + form.setValue('standardWindSpeedId', managementState.standardWindSpeedId) //수직적설량 - form.setValue('verticalSnowCover', detailData.verticalSnowCover) + form.setValue('verticalSnowCover', managementState.verticalSnowCover) //한랭지대책시행 coldRegionFlg 1이면 true - form.setValue('coldRegionFlg', detailData.coldRegionFlg === '1' ? true : false) + form.setValue('coldRegionFlg', managementState.coldRegionFlg === '1' ? true : false) //면조도구분 surfaceType null로 내려오면 셋팅 안하고 저장할때 필수값 체크하도록 // form.setValue('surfaceType', 'Ⅱ') // form.setValue('surfaceType', 'Ⅲ・Ⅳ') - form.setValue('surfaceType', detailData.surfaceType) + form.setValue('surfaceType', managementState.surfaceType) //염해지역용아이템사용 saltAreaFlg 1이면 true - form.setValue('saltAreaFlg', detailData.saltAreaFlg === '1' ? true : false) + form.setValue('saltAreaFlg', managementState.saltAreaFlg === '1' ? true : false) //설치높이 - form.setValue('installHeight', detailData.installHeight) + form.setValue('installHeight', managementState.installHeight) //계약조건 null로 내려오면 0으로 디폴트셋팅 - if (detailData.conType === null) { + if (managementState.conType === null) { form.setValue('conType', '0') } else { - form.setValue('conType', detailData.conType) + form.setValue('conType', managementState.conType) } //메모 - form.setValue('remarks', detailData.remarks) + form.setValue('remarks', managementState.remarks) }) } - }, [detailData, session]) + }, [managementState, session]) //경칭선택 변경 이벤트 const onChangeHonorificCode = (key) => { @@ -1189,9 +1189,9 @@ export default function StuffDetail() { return alert(getMessage('stuff.detail.save.valierror2')) } - let detail_sort = Object.keys(detailData) + let detail_sort = Object.keys(managementState) .sort() - .reduce((obj, key) => ((obj[key] = detailData[key]), obj), {}) + .reduce((obj, key) => ((obj[key] = managementState[key]), obj), {}) let params_sort = Object.keys(params) .sort() .reduce((obj, key) => ((obj[key] = params[key]), obj), {}) @@ -1313,7 +1313,7 @@ export default function StuffDetail() { // 물건삭제 const onDelete = () => { - const specificationConfirmDate = detailData.specificationConfirmDate + const specificationConfirmDate = managementState.specificationConfirmDate if (specificationConfirmDate != null) { alert(getMessage('stuff.detail.delete.message1')) } else { @@ -1860,8 +1860,7 @@ export default function StuffDetail() {
- {/* {detailData?.tempFlg === '1' && form.watch('planReqNo') ? ( */} - {detailData?.tempFlg === '1' && form.watch('planReqNo') ? ( + {managementState?.tempFlg === '1' && form.watch('planReqNo') ? ( ) : null}
- {detailData?.tempFlg === '1' ? ( + {managementState?.tempFlg === '1' ? ( <>
- {/* {detailData?.tempFlg === '0' ? ( */} - {detailData?.tempFlg === '0' ? ( + {managementState?.tempFlg === '0' ? ( <> {/* 진짜R 플랜시작 */}
@@ -2355,7 +2359,7 @@ export default function StuffDetail() {
diff --git a/src/components/management/StuffHeader.jsx b/src/components/management/StuffHeader.jsx index 581163b6..f32c971c 100644 --- a/src/components/management/StuffHeader.jsx +++ b/src/components/management/StuffHeader.jsx @@ -1,40 +1,21 @@ 'use client' -import React, { useState, useEffect } from 'react' -import { useAxios } from '@/hooks/useAxios' -import { useRouter, useSearchParams } from 'next/navigation' -import { globalLocaleStore } from '@/store/localeAtom' -import { useRecoilValue } from 'recoil' +import { useContext } from 'react' import { useMessage } from '@/hooks/useMessage' import dayjs from 'dayjs' - +import { ManagementContext } from '@/app/management/ManagementProvider' export default function StuffHeader() { const { getMessage } = useMessage() - const router = useRouter() - const searchParams = useSearchParams() - const objectNo = searchParams.get('objectNo') //url에서 물건번호 꺼내서 바로 set - const globalLocaleState = useRecoilValue(globalLocaleStore) - const { get } = useAxios(globalLocaleState) - const [headerData, setHeaderData] = useState({}) - useEffect(() => { - get({ url: `/api/object/${objectNo}/detail` }).then((res) => { - if (res != null && res != '') { - setHeaderData(res) - } else { - alert(getMessage('stuff.detail.header.notExistObjectNo')) - router.push('/management/stuff') - } - }) - }, [objectNo]) + const { managementState } = useContext(ManagementContext) //물건번호 복사 const copyObjectNo = async (objectNo) => { await navigator.clipboard.writeText(objectNo) - alert(getMessage('stuff.detail.header.message2')) + alert(getMessage('stuff.detail.header.successCopy')) try { } catch (error) { - alert(getMessage('stuff.detail.header.message3')) + alert(getMessage('stuff.detail.header.failCopy')) } } @@ -43,31 +24,31 @@ export default function StuffHeader() {
{getMessage('stuff.detail.header.objectNo')}
- {headerData.objectNo}{' '} + {managementState?.objectNo}{' '}
{getMessage('stuff.detail.header.specificationConfirmDate')}
-
{headerData.specificationConfirmDate}
+
{managementState?.specificationConfirmDate}
{getMessage('stuff.detail.header.lastEditDatetime')}
- {headerData?.lastEditDatetime ? `${dayjs(headerData.lastEditDatetime).format('YYYY.MM.DD HH:mm:ss')}` : ''}{' '} - {headerData?.lastEditUserName ? `(${headerData.lastEditUserName})` : null} + {managementState?.lastEditDatetime ? `${dayjs(managementState.lastEditDatetime).format('YYYY.MM.DD HH:mm:ss')}` : ''}{' '} + {managementState?.lastEditUserName ? `(${managementState.lastEditUserName})` : null}
{getMessage('stuff.detail.header.createDatetime')}
- {headerData?.createDatetime ? `${dayjs(headerData.lastEditDatetime).format('YYYY.MM.DD')}` : ''}{' '} - {headerData?.createUserName ? `(${headerData.createUserName})` : null} + {managementState?.createDatetime ? `${dayjs(managementState.lastEditDatetime).format('YYYY.MM.DD')}` : ''}{' '} + {managementState?.createUserName ? `(${managementState.createUserName})` : null}
diff --git a/src/components/management/StuffSearchCondition.jsx b/src/components/management/StuffSearchCondition.jsx index f82d83f3..6a16695a 100644 --- a/src/components/management/StuffSearchCondition.jsx +++ b/src/components/management/StuffSearchCondition.jsx @@ -223,10 +223,6 @@ export default function StuffSearchCondition() { } }) } - // setStuffSearch({ - // ...stuffSearch, - // code: 'S', - // }) } else { if (session?.storeLvl === '1') { allList = res diff --git a/src/locales/ja.json b/src/locales/ja.json index f849816e..fad3e4df 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -617,8 +617,8 @@ "stuff.temp.subTitle": "商品情報", "stuff.temp.subTitle2": "作図", "stuff.detail.header.notExistObjectNo": "存在しないものです。", - "stuff.detail.header.message2": "商品番号がコピーされました。", - "stuff.detail.header.message3": "存在しないものです。", + "stuff.detail.header.successCopy": "商品番号がコピーされました。", + "stuff.detail.header.failCopy": "存在しないものです。", "stuff.detail.header.objectNo": "商品番号のコピーに失敗しました。", "stuff.detail.header.specificationConfirmDate": "仕様拡張日", "stuff.detail.header.lastEditDatetime": "更新日時", diff --git a/src/locales/ko.json b/src/locales/ko.json index e22241bc..1220279b 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -627,8 +627,8 @@ "stuff.temp.subTitle": "물건정보", "stuff.temp.subTitle2": "도면작성", "stuff.detail.header.notExistObjectNo": "존재하지 않는 물건입니다.", - "stuff.detail.header.message2": "물건번호가 복사되었습니다.", - "stuff.detail.header.message3": "물건번호 복사에 실패했습니다.", + "stuff.detail.header.successCopy": "물건번호가 복사되었습니다.", + "stuff.detail.header.failCopy": "물건번호 복사에 실패했습니다.", "stuff.detail.header.objectNo": "물건번호", "stuff.detail.header.specificationConfirmDate": "사양확장일", "stuff.detail.header.lastEditDatetime": "갱신일시",