diff --git a/src/components/estimate/popup/EstimateCopyPop.jsx b/src/components/estimate/popup/EstimateCopyPop.jsx index 564a1aae..8a21f5c6 100644 --- a/src/components/estimate/popup/EstimateCopyPop.jsx +++ b/src/components/estimate/popup/EstimateCopyPop.jsx @@ -2,6 +2,8 @@ import { useEffect, useState, useContext, useRef } from 'react' import { useMessage } from '@/hooks/useMessage' import { useAxios } from '@/hooks/useAxios' +import { useRecoilValue } from 'recoil' +import { globalLocaleStore } from '@/store/localeAtom' import Select from 'react-select' import { SessionContext } from '@/app/SessionProvider' import { isEmptyArray, isObjectNotEmpty } from '@/util/common-utils' @@ -10,24 +12,35 @@ import { useEstimateController } from '@/hooks/floorPlan/estimate/useEstimateCon export default function EstimateCopyPop({ planNo, setEstimateCopyPopupOpen }) { const { getMessage } = useMessage() const { get } = useAxios() - + const globalLocale = useRecoilValue(globalLocaleStore) const { handleEstimateCopy, estimateContextState } = useEstimateController(planNo, true) const { session } = useContext(SessionContext) + // storeLvl 기반 동적 라벨 + const lvl = session?.storeLvl || '1' + const nextLvl = Number(lvl) + 1 + const saleStoreLabel = globalLocale === 'ko' + ? `${lvl}차 판매점명 / ID` + : `${lvl}次販売店名/ID` + const otherSaleStoreLabel = globalLocale === 'ko' + ? `${nextLvl}차+하위 판매점명 / ID` + : `${nextLvl}次下位販売店名/ID` + const [saleStoreList, setSaleStoreList] = useState([]) // 판매점 리스트 const [favoriteStoreList, setFavoriteStoreList] = useState([]) //즐겨찾기한 판매점목록 const [showSaleStoreList, setShowSaleStoreList] = useState([]) //보여줄 판매점목록 const [otherSaleStoreList, setOtherSaleStoreList] = useState([]) const [originOtherSaleStoreList, setOriginOtherSaleStoreList] = useState([]) - const [saleStoreId, setSaleStoreId] = useState('') //선택한 1차점 - const [otherSaleStoreId, setOtherSaleStoreId] = useState('') //선택한 1차점 이외 + const [saleStoreId, setSaleStoreId] = useState('') //선택한 상위점 + const [saleStoreName, setSaleStoreName] = useState('') //선택한 상위점명 + const [otherSaleStoreId, setOtherSaleStoreId] = useState('') //선택한 하위점 const [sendPlanNo, setSendPlanNo] = useState('1') const [copyReceiveUser, setCopyReceiveUser] = useState('') - const ref = useRef() //2차점 자동완성 초기화용 + const ref = useRef() //하위점 자동완성 초기화용 useEffect(() => { let url @@ -40,8 +53,9 @@ export default function EstimateCopyPop({ planNo, setEstimateCopyPopupOpen }) { if (session.storeLvl === '1') { url = `/api/object/saleStore/${session?.storeId}/list?firstFlg=1&userId=${session?.userId}` } else { - //T01 or 1차점만 복사버튼 노출됨으로 - // url = `/api/object/saleStore/${session?.storeId}/list?firstFlg=1&userId=${session?.userId}` + // 2차+ 판매점: 자기 자신이 상위점, 하위점 목록 조회 + setSaleStoreId(session?.storeId) + url = `/api/object/saleStore/${session?.storeId}/childList?storeLvl=${session?.storeLvl}&userId=${session?.userId}` } } @@ -91,7 +105,14 @@ export default function EstimateCopyPop({ planNo, setEstimateCopyPopupOpen }) { setOtherSaleStoreList(otherList) } else { - //T01 or 1차점만 복사버튼 노출됨으로 + // 2차+ 판매점: 자기 자신은 상위점명으로, 나머지는 하위점 선택 목록으로 설정 + const myself = res.find((row) => row.saleStoreId === session?.storeId) + if (myself) { + setSaleStoreName(myself.saleStoreName) + } + otherList = res.filter((row) => row.saleStoreId !== session?.storeId) + setOtherSaleStoreList(otherList) + setOriginOtherSaleStoreList(otherList) } } } @@ -119,7 +140,7 @@ export default function EstimateCopyPop({ planNo, setEstimateCopyPopupOpen }) { } } - // 1차점 변경 이벤트 + // 상위점 변경 이벤트 const onSelectionChange = (key) => { if (isObjectNotEmpty(key)) { if (key.saleStoreId === saleStoreId) { @@ -154,7 +175,7 @@ export default function EstimateCopyPop({ planNo, setEstimateCopyPopupOpen }) { } } - // 2차점 변경 이벤트 + // 하위점 변경 이벤트 const onSelectionChange2 = (key) => { if (isObjectNotEmpty(key)) { if (key.saleStoreId === otherSaleStoreId) { @@ -169,7 +190,7 @@ export default function EstimateCopyPop({ planNo, setEstimateCopyPopupOpen }) { } } - //2차점 자동완성 초기화 + //하위점 자동완성 초기화 const handleClear = () => { if (ref.current) { ref.current.clearValue() @@ -198,7 +219,7 @@ export default function EstimateCopyPop({ planNo, setEstimateCopyPopupOpen }) {