diff --git a/src/components/management/Stuff.jsx b/src/components/management/Stuff.jsx
index 999ea900..d9c6022e 100644
--- a/src/components/management/Stuff.jsx
+++ b/src/components/management/Stuff.jsx
@@ -240,7 +240,9 @@ export default function Stuff() {
schToDt: dayjs(new Date()).format('YYYY-MM-DD'),
startRow: (pageNo - 1) * pageSize + 1,
endRow: pageNo * pageSize,
- schSelSaleStoreId: '',
+ schSelSaleStoreId: stuffSearchParams?.schOtherSelSaleStoreId
+ ? stuffSearchParams.schOtherSelSaleStoreId
+ : stuffSearchParams.schSelSaleStoreId,
schSortType: stuffSearchParams.schSortType,
}
@@ -256,12 +258,12 @@ export default function Stuff() {
})
}
fetchData()
- } else {
+ } else if (stuffSearchParams?.code === 'M') {
//메인화면에서 진입
const params = {
saleStoreId: sessionState?.storeId,
schObjectNo: stuffSearchParams.schObjectNo,
- schAddress: '',
+ schAddress: 'dfdfdfdfdf',
schObjectName: '',
schSaleStoreName: '',
schReceiveUser: '',
@@ -271,25 +273,31 @@ export default function Stuff() {
schToDt: dayjs(new Date()).format('YYYY-MM-DD'),
startRow: (pageNo - 1) * pageSize + 1,
endRow: pageNo * pageSize,
- schSelSaleStoreId: '',
+ schSelSaleStoreId: stuffSearchParams?.schOtherSelSaleStoreId
+ ? stuffSearchParams.schOtherSelSaleStoreId
+ : stuffSearchParams.schSelSaleStoreId,
schSortType: 'R',
}
+ setStuffSearch({
+ ...params,
+ })
- async function fetchData() {
- const apiUrl = `/api/object/list?${queryStringFormatter(params)}`
- await get({
- url: apiUrl,
- }).then((res) => {
- if (!isEmptyArray(res)) {
- setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt })
- setTotalCount(res[0].totCnt)
- }
- })
- }
- fetchData()
+ // async function fetchData() {
+ // const apiUrl = `/api/object/list?${queryStringFormatter(params)}`
+ // await get({
+ // url: apiUrl,
+ // }).then((res) => {
+ // if (!isEmptyArray(res)) {
+ // setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt })
+ // setTotalCount(res[0].totCnt)
+ // }
+ // })
+ // }
+ // fetchData()
}
}
- }, [pageNo, sessionState])
+ // }, [pageNo, sessionState, stuffSearchParams])
+ }, [pageNo, stuffSearchParams])
useEffect(() => {
if (stuffSearchParams?.code === 'E') {
@@ -298,6 +306,7 @@ export default function Stuff() {
stuffSearchParams.schSortType = defaultSortType
setPageNo(1)
+
//조회를 눌렀을때
async function fetchData() {
const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}`
@@ -320,10 +329,13 @@ export default function Stuff() {
let startRow = (1 - 1) * e.target.value + 1
stuffSearchParams.startRow = startRow
stuffSearchParams.endRow = 1 * e.target.value
+ stuffSearchParams.schSelSaleStoreId = stuffSearchParams?.schOtherSelSaleStoreId
+ ? stuffSearchParams.schOtherSelSaleStoreId
+ : stuffSearchParams.schSelSaleStoreId
setPageSize(e.target.value)
setStuffSearch({
- ...stuffSearch,
- code: 'S',
+ ...stuffSearchParams,
+ // code: 'P',
startRow: startRow,
endRow: 1 * e.target.value,
})
@@ -348,6 +360,9 @@ export default function Stuff() {
stuffSearchParams.endRow = 1 * pageSize
stuffSearchParams.schSortType = e.target.value
+ stuffSearchParams.schSelSaleStoreId = stuffSearchParams?.schOtherSelSaleStoreId
+ ? stuffSearchParams.schOtherSelSaleStoreId
+ : stuffSearchParams.schSelSaleStoreId
setDefaultSortType(e.target.value)
setStuffSearch({
...stuffSearch,
@@ -358,7 +373,6 @@ export default function Stuff() {
})
setPageNo(1)
-
const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}`
get({ url: apiUrl }).then((res) => {
if (!isEmptyArray(res)) {
@@ -382,7 +396,9 @@ export default function Stuff() {
// 페이징 현재페이지 변경
const handleChangePage = (page) => {
stuffSearchParams.code = 'S'
-
+ stuffSearchParams.schSelSaleStoreId = stuffSearchParams?.schOtherSelSaleStoreId
+ ? stuffSearchParams.schOtherSelSaleStoreId
+ : stuffSearchParams.schSelSaleStoreId
setStuffSearch({
...stuffSearch,
code: 'S',
@@ -405,10 +421,7 @@ export default function Stuff() {
{getMessage('stuff.search.grid.all')}
{convertNumberToPriceDecimal(totalCount)}
-
- {/* {getMessage('stuff.search.grid.selected')} */}
- {/* {convertNumberToPriceDecimal(selectedRowDataCount)} */}
-
+
diff --git a/src/components/management/StuffSearchCondition.jsx b/src/components/management/StuffSearchCondition.jsx
index 421f806f..62e6a9f2 100644
--- a/src/components/management/StuffSearchCondition.jsx
+++ b/src/components/management/StuffSearchCondition.jsx
@@ -15,12 +15,14 @@ import SingleDatePicker from '../common/datepicker/SingleDatePicker'
import { sessionStore } from '@/store/commonAtom'
import { useMessage } from '@/hooks/useMessage'
import { isObjectNotEmpty } from '@/util/common-utils'
+import { searchState } from '@/store/boardAtom'
export default function StuffSearchCondition() {
const sessionState = useRecoilValue(sessionStore)
const [appMessageState, setAppMessageState] = useRecoilState(appMessageStore)
const globalLocaleState = useRecoilValue(globalLocaleStore)
const { getMessage } = useMessage()
const ref = useRef()
+ const ref2 = useRef()
const { get } = useAxios(globalLocaleState)
const objectNoRef = useRef(null)
@@ -59,6 +61,10 @@ export default function StuffSearchCondition() {
const [schSelSaleStoreList, setSchSelSaleStoreList] = useState([]) //판매대리점 자동완성 SELECT 전체
const [favoriteStoreList, setFavoriteStoreList] = useState([]) //즐겨찾기한 판매점목록
const [showSaleStoreList, setShowSaleStoreList] = useState([]) //보여줄 판매점목록
+
+ const [otherSaleStoreList, setOtherSaleStoreList] = useState([]) //1차점 이외 판매점목록
+ const [otherSaleStoreId, setOtherSaleStoreId] = useState('')
+
// 조회
const onSubmit = () => {
let diff = dayjs(endDate).diff(startDate, 'day')
@@ -73,7 +79,7 @@ export default function StuffSearchCondition() {
schAddress: address ? address : stuffSearch?.schAddress,
schObjectName: objectName ? objectName : stuffSearch?.schObjectName,
schDispCompanyName: dispCompanyName ? dispCompanyName : stuffSearch?.schDispCompanyName,
- schSelSaleStoreId: stuffSearch?.schSelSaleStoreId ? stuffSearch.schSelSaleStoreId : schSelSaleStoreId,
+ schSelSaleStoreId: stuffSearch?.schOtherSelSaleStoreId ? stuffSearch.schOtherSelSaleStoreId : stuffSearch.schSelSaleStoreId,
schReceiveUser: receiveUser ? receiveUser : stuffSearch?.schReceiveUser,
schDateType: stuffSearch?.schDateType ? stuffSearch.schDateType : dateType,
schFromDt: dayjs(startDate).format('YYYY-MM-DD'),
@@ -90,7 +96,7 @@ export default function StuffSearchCondition() {
schAddress: address ? address : '',
schObjectName: objectName ? objectName : '',
schDispCompanyName: dispCompanyName ? dispCompanyName : '',
- schSelSaleStoreId: schSelSaleStoreId ? schSelSaleStoreId : '',
+ schSelSaleStoreId: stuffSearch?.schOtherSelSaleStoreId ? stuffSearch.schOtherSelSaleStoreId : stuffSearch.schSelSaleStoreId,
schReceiveUser: receiveUser ? receiveUser : '',
schDateType: dateType,
schFromDt: dayjs(startDate).format('YYYY-MM-DD'),
@@ -105,6 +111,7 @@ export default function StuffSearchCondition() {
//초기화
const resetRecoil = () => {
+ //T01아니면 자동완성 초기화 막기
objectNoRef.current.value = ''
saleStoreNameRef.current.value = ''
addressRef.current.value = ''
@@ -121,49 +128,144 @@ export default function StuffSearchCondition() {
setDateType('U')
setStartDate(dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'))
setEndDate(dayjs(new Date()).format('YYYY-MM-DD'))
- setSchSelSaleStoreId('')
- handleClear() //판매대리점선택 자동완성 클리어
- resetStuffRecoil()
+ if (sessionState?.storeId === 'T01') {
+ setSchSelSaleStoreId('')
+ handleClear1() //판매대리점선택 자동완성 클리어
+ resetStuffRecoil()
+ setStuffSearch({
+ ...stuffSearch,
+ code: 'C',
+ schSelSaleStoreId: '',
+ schOtherSelSaleStoreId: '',
+ })
+ } else {
+ if (otherSaleStoreList.length > 1) {
+ handleClear2()
+ setOtherSaleStoreId('')
+ stuffSearch.schObjectNo = ''
+ stuffSearch.schDateType = 'U'
+ } else {
+ stuffSearch.schObjectNo = ''
+ stuffSearch.schDateType = 'U'
+ }
+ }
}
useEffect(() => {
if (isObjectNotEmpty(sessionState)) {
- // storeId가 T01 이거나 1차점일때만 판매대리점 선택 활성화
+ // storeId가 T01 이거나 storeLvl이 1차점일때만 판매대리점 선택 활성화
let url
if (sessionState?.storeId === 'T01') {
- // url = `/api/object/saleStore/${sessionState?.storeId}/list?userId=an1`
- url = `/api/object/saleStore/${sessionState?.storeId}/list?userId=${sessionState?.userId}`
+ //T01일떄
+ url = `/api/object/saleStore/${sessionState?.storeId}/firstList?userId=${sessionState?.userId}`
} else {
- url = `/api/object/saleStore/${sessionState?.storeId}/list`
+ if (sessionState.storeLvl === '1') {
+ //T01아닌 1차점일때
+ url = `/api/object/saleStore/${sessionState?.storeId}/list?firstFlg=1&userId=${sessionState?.userId}`
+ } else {
+ url = `/api/object/saleStore/${sessionState?.storeId}/list?firstFlg=1&userId=${sessionState?.userId}`
+ }
}
+
get({ url: url }).then((res) => {
if (!isEmptyArray(res)) {
res.map((row) => {
row.value = row.saleStoreId
row.label = row.saleStoreName
})
- const allList = res
- const favList = res.filter((row) => row.priority !== 'B')
- setSchSelSaleStoreList(allList)
- setFavoriteStoreList(favList)
- setShowSaleStoreList(favList)
+ let allList
+ let favList
+ let otherList
+ if (sessionState?.storeId === 'T01') {
+ allList = res
+ allList.sort((a, b) => (a.saleStoreId !== 'T01') - (b.saleStoreId !== 'T01') || a.saleStoreId - b.saleStoreId)
+ favList = res.filter((row) => row.saleStoreId === 'T01' || row.priority !== 'B')
+ setSchSelSaleStoreList(allList)
+ setFavoriteStoreList(favList)
+ setShowSaleStoreList(favList)
+ setSchSelSaleStoreId(sessionState?.storeId)
+ setStuffSearch({
+ ...stuffSearch,
+ code: 'S',
+ schSelSaleStoreId: sessionState?.storeId,
+ })
+
+ //T01일때 2차 판매점 호출하기
+ url = `/api/object/saleStore/${sessionState?.storeId}/list?firstFlg=0&userId=${sessionState?.userId}`
+
+ get({ url: url }).then((res) => {
+ if (!isEmptyArray(res)) {
+ res.map((row) => {
+ row.value = row.saleStoreId
+ row.label = row.saleStoreName
+ })
+
+ otherList = res
+ setOtherSaleStoreList(otherList)
+ } else {
+ setOtherSaleStoreList([])
+ }
+ })
+ } else {
+ if (sessionState?.storeLvl === '1') {
+ allList = res
+ favList = res.filter((row) => row.priority !== 'B')
+ otherList = res.filter((row) => row.firstAgentYn === 'N')
+ setSchSelSaleStoreList(allList)
+ setFavoriteStoreList(allList)
+ setShowSaleStoreList(allList)
+ setSchSelSaleStoreId(allList[0].saleStoreId)
+
+ setOtherSaleStoreList(otherList)
+
+ setStuffSearch({
+ ...stuffSearch,
+ code: 'S',
+ schSelSaleStoreId: allList[0].saleStoreId,
+ })
+ } else {
+ //201X112 그냥2차점
+ //2차점인데 34들고있는애 202X217
+ setSchSelSaleStoreList(res)
+ setFavoriteStoreList(res)
+ setShowSaleStoreList(res)
+ setSchSelSaleStoreId(res[0].saleStoreId)
+ otherList = res.filter((row) => row.firstAgentYn === 'N')
+ setOtherSaleStoreList(otherList)
+
+ //선택한 2차점 세션으로 자동셋팅
+ setOtherSaleStoreId(sessionState?.storeId)
+ setStuffSearch({
+ ...stuffSearch,
+ code: 'S',
+ schSelSaleStoreId: otherList[0].saleStoreId,
+ })
+ }
+ }
}
})
}
}, [sessionState])
- //초기화 눌렀을 때 자동완성도..
- const handleClear = () => {
+ //초기화 눌렀을 때 1차판매점 자동완성도..
+ const handleClear1 = () => {
if (ref.current) {
ref.current.clearValue()
}
}
+ const handleClear2 = () => {
+ if (ref2.current) {
+ ref2.current.clearValue()
+ }
+ }
+
//자동완성 인풋
const onInputChange = (key) => {
if (key !== '') {
setShowSaleStoreList(schSelSaleStoreList)
+ setOtherSaleStoreList([])
} else {
setShowSaleStoreList(favoriteStoreList)
}
@@ -172,15 +274,47 @@ export default function StuffSearchCondition() {
//판매대리점 자동완성 변경
const onSelectionChange = (key) => {
if (isObjectNotEmpty(key)) {
+ setOtherSaleStoreId('')
setSchSelSaleStoreId(key.saleStoreId)
- setStuffSearch({
- ...stuffSearch,
- code: 'S',
- schSelSaleStoreId: key.saleStoreId,
+ stuffSearch.schSelSaleStoreId = key.saleStoreId
+ //T01아닌 1차점은 본인으로 디폴트셋팅이고 수정할수없어서 여기안옴
+ //고른 1차점의 saleStoreId로 2차점 API호출하기
+ let url = `/api/object/saleStore/${key.saleStoreId}/list?firstFlg=0&userId=${sessionState?.userId}`
+ let otherList
+ get({ url: url }).then((res) => {
+ if (!isEmptyArray(res)) {
+ res.map((row) => {
+ row.value = row.saleStoreId
+ row.label = row.saleStoreName
+ })
+
+ otherList = res
+ setOtherSaleStoreList(otherList)
+ } else {
+ setOtherSaleStoreList([])
+ }
})
} else {
+ //X누름
setSchSelSaleStoreId('')
- setStuffSearch({ ...stuffSearch, schSelSaleStoreId: '' })
+ stuffSearch.schSelSaleStoreId = ''
+
+ //2차점 판매점목록비우기
+ setOtherSaleStoreList([])
+ }
+ }
+
+ //2차점 자동완성 변경
+ const onSelectionChange2 = (key) => {
+ if (isObjectNotEmpty(key)) {
+ setOtherSaleStoreId(key.saleStoreId)
+ stuffSearch.schOtherSelSaleStoreId = key.saleStoreId
+ } else {
+ //X누르면 검색조건에 1차점으로 셋팅
+ setOtherSaleStoreId('')
+ setSchSelSaleStoreId(schSelSaleStoreId)
+ stuffSearch.schOtherSelSaleStoreId = ''
+ stuffSearch.schSelSaleStoreId = schSelSaleStoreId
}
}
@@ -235,6 +369,8 @@ export default function StuffSearchCondition() {
+
+
@@ -283,6 +419,21 @@ export default function StuffSearchCondition() {
/>
+ | {getMessage('stuff.search.schDispCompanyName')} |
+
+
+ {
+ setDispCompanyName(dispCompanyNameRef.current.value)
+ }}
+ onKeyUp={handleByOnKeyUp}
+ />
+
+ |
| {getMessage('stuff.search.schObjectName')} |
@@ -300,63 +451,6 @@ export default function StuffSearchCondition() {
/>
- {getMessage('stuff.search.schDispCompanyName')} |
-
-
- {
- setDispCompanyName(dispCompanyNameRef.current.value)
- }}
- onKeyUp={handleByOnKeyUp}
- />
-
- |
- {getMessage('stuff.search.schSelSaleStoreId')} |
-
-
- {schSelSaleStoreList?.length > 0 && (
-
- |
-
-
| {getMessage('stuff.search.schReceiveUser')} |
@@ -372,8 +466,130 @@ export default function StuffSearchCondition() {
/>
|
- {getMessage('stuff.search.period')} |
+ {getMessage('stuff.search.schSelSaleStoreId')} |
+
+
+ {sessionState?.storeId === 'T01' && (
+
+
+ x.saleStoreName}
+ getOptionValue={(x) => x.saleStoreId}
+ isDisabled={otherSaleStoreList.length > 1 ? false : true}
+ isClearable={true}
+ value={otherSaleStoreList.filter(function (option) {
+ return option.saleStoreId === otherSaleStoreId
+ })}
+ />
+
+
+ |
+
+
+ | {getMessage('stuff.search.period')} |
+
diff --git a/src/store/stuffAtom.js b/src/store/stuffAtom.js
index c47321ae..b18fca77 100644
--- a/src/store/stuffAtom.js
+++ b/src/store/stuffAtom.js
@@ -14,7 +14,8 @@ export const stuffSearchState = atom({
schFromDt: dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'), //시작일
schToDt: dayjs(new Date()).format('YYYY-MM-DD'), //종료일
code: 'S',
- schSelSaleStoreId: '', //판매대리점 선택
+ schSelSaleStoreId: '', //1차판매대리점 선택
+ schOtherSelSaleStoreId: '', //1차 이외 판매대리점 선택
startRow: 1,
endRow: 100,
schSortType: 'R', //정렬조건 (R:최근등록일 U:최근수정일)
|