물건현황 목록화면 수정

This commit is contained in:
basssy 2024-10-31 17:57:06 +09:00
parent d077b6b50d
commit d7316560b3
3 changed files with 104 additions and 39 deletions

View File

@ -15,7 +15,7 @@ export default function MainContents() {
const { getMessage } = useMessage() const { getMessage } = useMessage()
const router = useRouter() const router = useRouter()
const globalLocaleState = useRecoilValue(globalLocaleStore) const globalLocaleState = useRecoilValue(globalLocaleStore)
const { promiseGet, get } = useAxios(globalLocaleState) const { promiseGet } = useAxios(globalLocaleState)
const sessionState = useRecoilValue(sessionStore) const sessionState = useRecoilValue(sessionStore)
@ -118,7 +118,7 @@ export default function MainContents() {
key={row.objectNo} key={row.objectNo}
className="recently-item" className="recently-item"
onClick={() => { onClick={() => {
if (row.objectNo.substring(0, 1) === 'R') { if (row.tempFlg === '0') {
router.push(`/management/stuff/detail?objectNo=${row.objectNo.toString()}`) router.push(`/management/stuff/detail?objectNo=${row.objectNo.toString()}`)
} else { } else {
router.push(`/management/stuff/tempdetail?objectNo=${row.objectNo.toString()}`) router.push(`/management/stuff/tempdetail?objectNo=${row.objectNo.toString()}`)

View File

@ -1,12 +1,11 @@
'use client' 'use client'
import React, { useEffect, useState, useRef } from 'react' import { useEffect, useState, useRef, useContext } from 'react'
import { useRouter, usePathname } from 'next/navigation' import { useRouter, usePathname } from 'next/navigation'
import { Button } from '@nextui-org/react'
import { useAxios } from '@/hooks/useAxios' import { useAxios } from '@/hooks/useAxios'
import { useMessage } from '@/hooks/useMessage' import { useMessage } from '@/hooks/useMessage'
import StuffQGrid from './StuffQGrid' import StuffQGrid from './StuffQGrid'
import { useRecoilValue, useRecoilState } from 'recoil' import { useRecoilValue, useRecoilState, useSetRecoilState } from 'recoil'
import { stuffSearchState } from '@/store/stuffAtom' import { stuffSearchState } from '@/store/stuffAtom'
import { queryStringFormatter, isEmptyArray } from '@/util/common-utils' import { queryStringFormatter, isEmptyArray } from '@/util/common-utils'
import dayjs from 'dayjs' import dayjs from 'dayjs'
@ -17,10 +16,12 @@ import KO from '@/locales/ko.json'
import JA from '@/locales/ja.json' import JA from '@/locales/ja.json'
import QPagination from '../common/pagination/QPagination' import QPagination from '../common/pagination/QPagination'
import { sessionStore } from '@/store/commonAtom' import { sessionStore } from '@/store/commonAtom'
import { SessionContext } from '@/app/SessionProvider'
export default function Stuff() { export default function Stuff() {
const sessionState = useRecoilValue(sessionStore) const sessionState = useRecoilValue(sessionStore)
const [appMessageState, setAppMessageState] = useRecoilState(appMessageStore) const { session } = useContext(SessionContext)
const setAppMessageState = useSetRecoilState(appMessageStore)
const stuffSearchParams = useRecoilValue(stuffSearchState) const stuffSearchParams = useRecoilValue(stuffSearchState)
const [stuffSearch, setStuffSearch] = useRecoilState(stuffSearchState) const [stuffSearch, setStuffSearch] = useRecoilState(stuffSearchState)
const { getMessage } = useMessage() const { getMessage } = useMessage()
@ -224,11 +225,31 @@ export default function Stuff() {
// //
useEffect(() => { useEffect(() => {
if (isObjectNotEmpty(sessionState)) { // if (isObjectNotEmpty(sessionState)) {
// sessionState if (isObjectNotEmpty(session)) {
//
if (stuffSearchParams?.code === 'S') { if (stuffSearchParams?.code === 'S') {
// const params = {
// saleStoreId: sessionState?.storeId,
// schObjectNo: stuffSearchParams?.schObjectNo,
// schAddress: stuffSearchParams?.schAddress,
// schObjectName: stuffSearchParams?.schObjectName,
// schSaleStoreName: stuffSearchParams?.schSaleStoreName,
// schReceiveUser: stuffSearchParams?.schReceiveUser,
// schDispCompanyName: stuffSearchParams?.schDispCompanyName,
// schDateType: stuffSearchParams.schDateType,
// schFromDt: dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'),
// schToDt: dayjs(new Date()).format('YYYY-MM-DD'),
// startRow: (pageNo - 1) * pageSize + 1,
// endRow: pageNo * pageSize,
// schSelSaleStoreId: stuffSearchParams?.schOtherSelSaleStoreId
// ? stuffSearchParams.schOtherSelSaleStoreId
// : stuffSearchParams.schSelSaleStoreId,
// schSortType: stuffSearchParams.schSortType,
// }
const params = { const params = {
saleStoreId: sessionState?.storeId, saleStoreId: session?.storeId,
schObjectNo: stuffSearchParams?.schObjectNo, schObjectNo: stuffSearchParams?.schObjectNo,
schAddress: stuffSearchParams?.schAddress, schAddress: stuffSearchParams?.schAddress,
schObjectName: stuffSearchParams?.schObjectName, schObjectName: stuffSearchParams?.schObjectName,
@ -260,8 +281,26 @@ export default function Stuff() {
fetchData() fetchData()
} else if (stuffSearchParams?.code === 'M') { } else if (stuffSearchParams?.code === 'M') {
// //
// const params = {
// saleStoreId: sessionState?.storeId,
// schObjectNo: stuffSearchParams.schObjectNo,
// schAddress: 'dfdfdfdfdf',
// schObjectName: '',
// schSaleStoreName: '',
// schReceiveUser: '',
// schDispCompanyName: '',
// schDateType: 'U',
// schFromDt: dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'),
// schToDt: dayjs(new Date()).format('YYYY-MM-DD'),
// startRow: (pageNo - 1) * pageSize + 1,
// endRow: pageNo * pageSize,
// schSelSaleStoreId: stuffSearchParams?.schOtherSelSaleStoreId
// ? stuffSearchParams.schOtherSelSaleStoreId
// : stuffSearchParams.schSelSaleStoreId,
// schSortType: 'R',
// }
const params = { const params = {
saleStoreId: sessionState?.storeId, saleStoreId: session?.storeId,
schObjectNo: stuffSearchParams.schObjectNo, schObjectNo: stuffSearchParams.schObjectNo,
schAddress: 'dfdfdfdfdf', schAddress: 'dfdfdfdfdf',
schObjectName: '', schObjectName: '',
@ -309,7 +348,8 @@ export default function Stuff() {
// //
async function fetchData() { async function fetchData() {
const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}` // const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}`
const apiUrl = `/api/object/list?saleStoreId=${session?.storeId}&${queryStringFormatter(stuffSearchParams)}`
await get({ url: apiUrl }).then((res) => { await get({ url: apiUrl }).then((res) => {
if (!isEmptyArray(res)) { if (!isEmptyArray(res)) {
setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt }) setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt })
@ -341,7 +381,8 @@ export default function Stuff() {
}) })
setPageNo(1) setPageNo(1)
const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}` // const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}`
const apiUrl = `/api/object/list?saleStoreId=${session?.storeId}&${queryStringFormatter(stuffSearchParams)}`
get({ url: apiUrl }).then((res) => { get({ url: apiUrl }).then((res) => {
if (!isEmptyArray(res)) { if (!isEmptyArray(res)) {
setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt }) setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt })
@ -373,7 +414,8 @@ export default function Stuff() {
}) })
setPageNo(1) setPageNo(1)
const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}` // const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}`
const apiUrl = `/api/object/list?saleStoreId=${session?.storeId}&${queryStringFormatter(stuffSearchParams)}`
get({ url: apiUrl }).then((res) => { get({ url: apiUrl }).then((res) => {
if (!isEmptyArray(res)) { if (!isEmptyArray(res)) {
setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt }) setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt })

View File

@ -1,8 +1,8 @@
'use client' 'use client'
import React, { useEffect, useRef, useState } from 'react' import { useEffect, useRef, useState, useContext } from 'react'
import { useAxios } from '@/hooks/useAxios' import { useAxios } from '@/hooks/useAxios'
import { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil' import { useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil'
import { appMessageStore, globalLocaleStore } from '@/store/localeAtom' import { appMessageStore, globalLocaleStore } from '@/store/localeAtom'
import Select from 'react-select' import Select from 'react-select'
import KO from '@/locales/ko.json' import KO from '@/locales/ko.json'
@ -15,10 +15,13 @@ import SingleDatePicker from '../common/datepicker/SingleDatePicker'
import { sessionStore } from '@/store/commonAtom' import { sessionStore } from '@/store/commonAtom'
import { useMessage } from '@/hooks/useMessage' import { useMessage } from '@/hooks/useMessage'
import { isObjectNotEmpty } from '@/util/common-utils' import { isObjectNotEmpty } from '@/util/common-utils'
import { searchState } from '@/store/boardAtom'
import { SessionContext } from '@/app/SessionProvider'
export default function StuffSearchCondition() { export default function StuffSearchCondition() {
const { session } = useContext(SessionContext)
const sessionState = useRecoilValue(sessionStore) const sessionState = useRecoilValue(sessionStore)
const [appMessageState, setAppMessageState] = useRecoilState(appMessageStore) const setAppMessageState = useSetRecoilState(appMessageStore)
const globalLocaleState = useRecoilValue(globalLocaleStore) const globalLocaleState = useRecoilValue(globalLocaleStore)
const { getMessage } = useMessage() const { getMessage } = useMessage()
const ref = useRef() const ref = useRef()
@ -128,7 +131,8 @@ export default function StuffSearchCondition() {
setDateType('U') setDateType('U')
setStartDate(dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD')) setStartDate(dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'))
setEndDate(dayjs(new Date()).format('YYYY-MM-DD')) setEndDate(dayjs(new Date()).format('YYYY-MM-DD'))
if (sessionState?.storeId === 'T01') { // if (sessionState?.storeId === 'T01') {
if (session?.storeId === 'T01') {
setSchSelSaleStoreId('') setSchSelSaleStoreId('')
handleClear1() // handleClear1() //
resetStuffRecoil() resetStuffRecoil()
@ -152,18 +156,24 @@ export default function StuffSearchCondition() {
} }
useEffect(() => { useEffect(() => {
if (isObjectNotEmpty(sessionState)) { // if (isObjectNotEmpty(sessionState)) {
if (isObjectNotEmpty(session)) {
// storeId T01 storeLvl 1 // storeId T01 storeLvl 1
let url let url
if (sessionState?.storeId === 'T01') { // if (sessionState?.storeId === 'T01') {
if (session?.storeId === 'T01') {
//T01 //T01
url = `/api/object/saleStore/${sessionState?.storeId}/firstList?userId=${sessionState?.userId}` // url = `/api/object/saleStore/${sessionState?.storeId}/firstList?userId=${sessionState?.userId}`
url = `/api/object/saleStore/${session?.storeId}/firstList?userId=${session?.userId}`
} else { } else {
if (sessionState.storeLvl === '1') { // if (sessionState.storeLvl === '1') {
if (session.storeLvl === '1') {
//T01 1 //T01 1
url = `/api/object/saleStore/${sessionState?.storeId}/list?firstFlg=1&userId=${sessionState?.userId}` // url = `/api/object/saleStore/${sessionState?.storeId}/list?firstFlg=1&userId=${sessionState?.userId}`
url = `/api/object/saleStore/${session?.storeId}/list?firstFlg=1&userId=${sessionState?.userId}`
} else { } else {
url = `/api/object/saleStore/${sessionState?.storeId}/list?firstFlg=1&userId=${sessionState?.userId}` // url = `/api/object/saleStore/${sessionState?.storeId}/list?firstFlg=1&userId=${sessionState?.userId}`
url = `/api/object/saleStore/${session?.storeId}/list?firstFlg=1&userId=${session?.userId}`
} }
} }
@ -177,22 +187,26 @@ export default function StuffSearchCondition() {
let allList let allList
let favList let favList
let otherList let otherList
if (sessionState?.storeId === 'T01') { // if (sessionState?.storeId === 'T01') {
if (session?.storeId === 'T01') {
allList = res allList = res
allList.sort((a, b) => (a.saleStoreId !== 'T01') - (b.saleStoreId !== 'T01') || a.saleStoreId - b.saleStoreId) allList.sort((a, b) => (a.saleStoreId !== 'T01') - (b.saleStoreId !== 'T01') || a.saleStoreId - b.saleStoreId)
favList = res.filter((row) => row.saleStoreId === 'T01' || row.priority !== 'B') favList = res.filter((row) => row.saleStoreId === 'T01' || row.priority !== 'B')
setSchSelSaleStoreList(allList) setSchSelSaleStoreList(allList)
setFavoriteStoreList(favList) setFavoriteStoreList(favList)
setShowSaleStoreList(favList) setShowSaleStoreList(favList)
setSchSelSaleStoreId(sessionState?.storeId) // setSchSelSaleStoreId(sessionState?.storeId)
setSchSelSaleStoreId(session?.storeId)
setStuffSearch({ setStuffSearch({
...stuffSearch, ...stuffSearch,
code: 'S', code: 'S',
schSelSaleStoreId: sessionState?.storeId, // schSelSaleStoreId: sessionState?.storeId,
schSelSaleStoreId: session?.storeId,
}) })
//T01 2 //T01 2 1 storeId
url = `/api/object/saleStore/${sessionState?.storeId}/list?firstFlg=0&userId=${sessionState?.userId}` // url = `/api/object/saleStore/${sessionState?.storeId}/list?firstFlg=0&userId=${sessionState?.userId}`
url = `/api/object/saleStore/${session?.storeId}/list?firstFlg=0&userId=${session?.userId}`
get({ url: url }).then((res) => { get({ url: url }).then((res) => {
if (!isEmptyArray(res)) { if (!isEmptyArray(res)) {
@ -208,7 +222,8 @@ export default function StuffSearchCondition() {
} }
}) })
} else { } else {
if (sessionState?.storeLvl === '1') { // if (sessionState?.storeLvl === '1') {
if (session?.storeLvl === '1') {
allList = res allList = res
favList = res.filter((row) => row.priority !== 'B') favList = res.filter((row) => row.priority !== 'B')
otherList = res.filter((row) => row.firstAgentYn === 'N') otherList = res.filter((row) => row.firstAgentYn === 'N')
@ -235,7 +250,8 @@ export default function StuffSearchCondition() {
setOtherSaleStoreList(otherList) setOtherSaleStoreList(otherList)
// 2 // 2
setOtherSaleStoreId(sessionState?.storeId) // setOtherSaleStoreId(sessionState?.storeId)
setOtherSaleStoreId(session?.storeId)
setStuffSearch({ setStuffSearch({
...stuffSearch, ...stuffSearch,
code: 'S', code: 'S',
@ -246,7 +262,8 @@ export default function StuffSearchCondition() {
} }
}) })
} }
}, [sessionState]) // }, [sessionState])
}, [session])
// 1 .. // 1 ..
const handleClear1 = () => { const handleClear1 = () => {
@ -279,7 +296,8 @@ export default function StuffSearchCondition() {
stuffSearch.schSelSaleStoreId = key.saleStoreId stuffSearch.schSelSaleStoreId = key.saleStoreId
//T01 1 //T01 1
// 1 saleStoreId 2 API // 1 saleStoreId 2 API
let url = `/api/object/saleStore/${key.saleStoreId}/list?firstFlg=0&userId=${sessionState?.userId}` // let url = `/api/object/saleStore/${key.saleStoreId}/list?firstFlg=0&userId=${sessionState?.userId}`
let url = `/api/object/saleStore/${key.saleStoreId}/list?firstFlg=0&userId=${session?.userId}`
let otherList let otherList
get({ url: url }).then((res) => { get({ url: url }).then((res) => {
if (!isEmptyArray(res)) { if (!isEmptyArray(res)) {
@ -470,7 +488,8 @@ export default function StuffSearchCondition() {
<td colSpan={3}> <td colSpan={3}>
<div className="form-flex-wrap"> <div className="form-flex-wrap">
<div className="select-wrap mr5" style={{ flex: 1 }}> <div className="select-wrap mr5" style={{ flex: 1 }}>
{sessionState?.storeId === 'T01' && ( {/* {sessionState?.storeId === 'T01' && ( */}
{session?.storeId === 'T01' && (
<Select <Select
id="long-value-select1" id="long-value-select1"
instanceId="long-value-select1" instanceId="long-value-select1"
@ -483,7 +502,7 @@ export default function StuffSearchCondition() {
onChange={onSelectionChange} onChange={onSelectionChange}
getOptionLabel={(x) => x.saleStoreName} getOptionLabel={(x) => x.saleStoreName}
getOptionValue={(x) => x.saleStoreId} getOptionValue={(x) => x.saleStoreId}
value={showSaleStoreList.filter(function (option) { value={schSelSaleStoreList.filter(function (option) {
if (stuffSearch?.code === 'S' && schSelSaleStoreId === '') { if (stuffSearch?.code === 'S' && schSelSaleStoreId === '') {
return false return false
} else if (stuffSearch?.code === 'S' && schSelSaleStoreId !== '') { } else if (stuffSearch?.code === 'S' && schSelSaleStoreId !== '') {
@ -498,11 +517,13 @@ export default function StuffSearchCondition() {
} }
} }
})} })}
isDisabled={sessionState?.storeLvl !== '1' ? true : sessionState?.storeId !== 'T01' ? true : false} // isDisabled={sessionState?.storeLvl !== '1' ? true : sessionState?.storeId !== 'T01' ? true : false}
isDisabled={session?.storeLvl !== '1' ? true : session?.storeId !== 'T01' ? true : false}
isClearable={true} isClearable={true}
/> />
)} )}
{sessionState?.storeId !== 'T01' && sessionState?.storeLvl === '1' && ( {/* {sessionState?.storeId !== 'T01' && sessionState?.storeLvl === '1' && ( */}
{session?.storeId !== 'T01' && session?.storeLvl === '1' && (
<Select <Select
id="long-value-select1" id="long-value-select1"
instanceId="long-value-select1" instanceId="long-value-select1"
@ -529,11 +550,13 @@ export default function StuffSearchCondition() {
} }
} }
})} })}
isDisabled={sessionState?.storeLvl !== '1' ? true : sessionState?.storeId !== 'T01' ? true : false} // isDisabled={sessionState?.storeLvl !== '1' ? true : sessionState?.storeId !== 'T01' ? true : false}
isDisabled={session?.storeLvl !== '1' ? true : session?.storeId !== 'T01' ? true : false}
isClearable={false} isClearable={false}
/> />
)} )}
{sessionState?.storeId !== 'T01' && sessionState?.storeLvl !== '1' && ( {/* {sessionState?.storeId !== 'T01' && sessionState?.storeLvl !== '1' && ( */}
{session?.storeId !== 'T01' && session?.storeLvl !== '1' && (
<Select <Select
id="long-value-select1" id="long-value-select1"
instanceId="long-value-select1" instanceId="long-value-select1"