feat: implement inquriy file upload
This commit is contained in:
parent
1d77fec86d
commit
96c725b459
@ -8,7 +8,8 @@ NEXT_PUBLIC_QSP_API_URL=http://1.248.227.176:8120
|
|||||||
|
|
||||||
#1:1문의 api
|
#1:1문의 api
|
||||||
# NEXT_PUBLIC_INQUIRY_API_URL=http://1.248.227.176:38080
|
# NEXT_PUBLIC_INQUIRY_API_URL=http://1.248.227.176:38080
|
||||||
NEXT_PUBLIC_INQUIRY_API_URL=http://172.23.4.129:8110
|
# NEXT_PUBLIC_INQUIRY_API_URL=http://172.23.4.129:8110
|
||||||
|
NEXT_PUBLIC_INQUIRY_API_URL=http://172.30.1.93:8120
|
||||||
|
|
||||||
|
|
||||||
#QPARTNER 로그인 api
|
#QPARTNER 로그인 api
|
||||||
|
|||||||
@ -6,7 +6,7 @@ export async function GET(request: Request) {
|
|||||||
const { searchParams } = new URL(request.url)
|
const { searchParams } = new URL(request.url)
|
||||||
const params = {
|
const params = {
|
||||||
compCd: searchParams.get('compCd'),
|
compCd: searchParams.get('compCd'),
|
||||||
qnoNo: searchParams.get('qnoNo'),
|
qnaNo: searchParams.get('qnoNo'),
|
||||||
langCd: searchParams.get('langCd'),
|
langCd: searchParams.get('langCd'),
|
||||||
loginId: searchParams.get('loginId'),
|
loginId: searchParams.get('loginId'),
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,7 +63,7 @@ export default function Detail() {
|
|||||||
<div className="file-list-tit">ファイル添付</div>
|
<div className="file-list-tit">ファイル添付</div>
|
||||||
<ul className="file-list">
|
<ul className="file-list">
|
||||||
{inquiryDetail?.listFile?.map((file) => (
|
{inquiryDetail?.listFile?.map((file) => (
|
||||||
<li className="file-item">
|
<li className="file-item" key={file.fileNo}>
|
||||||
<button className="file-item-bx" onClick={() => downloadFile(Number(file.encodeFileNo))}>
|
<button className="file-item-bx" onClick={() => downloadFile(Number(file.encodeFileNo))}>
|
||||||
<div className="file-item-name">{file.srcFileNm} </div>
|
<div className="file-item-name">{file.srcFileNm} </div>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@ -23,7 +23,7 @@ const badgeStyle = [
|
|||||||
]
|
]
|
||||||
export default function ListTable() {
|
export default function ListTable() {
|
||||||
const [offset, setOffset] = useState(0)
|
const [offset, setOffset] = useState(0)
|
||||||
const [hasMore, setHasMore] = useState(true)
|
const [hasMore, setHasMore] = useState(false)
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
@ -35,20 +35,13 @@ export default function ListTable() {
|
|||||||
const { session } = useSessionStore()
|
const { session } = useSessionStore()
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (inquiryList.length > 0) {
|
if (!inquiryList) return
|
||||||
if (offset === 0) {
|
setHeldInquiryList(inquiryList)
|
||||||
setHeldInquiryList(inquiryList)
|
setHasMore(inquiryList.length > offset + 10)
|
||||||
} else {
|
}, [inquiryList, offset])
|
||||||
const remainingList = heldInquiryList.slice(offset, offset + 10)
|
|
||||||
if (JSON.stringify(remainingList) !== JSON.stringify(inquiryList)) {
|
console.log('heldInquiryList:: ', heldInquiryList)
|
||||||
setHeldInquiryList((prev) => [...prev, ...inquiryList])
|
console.log('inquiryList:: ', inquiryList)
|
||||||
}
|
|
||||||
}
|
|
||||||
setHasMore(inquiryList.length > offset + 10)
|
|
||||||
} else {
|
|
||||||
setHeldInquiryList([])
|
|
||||||
}
|
|
||||||
}, [inquiryList, offset, setHeldInquiryList])
|
|
||||||
|
|
||||||
const handleMyInquiry = () => {
|
const handleMyInquiry = () => {
|
||||||
setInquiryListRequest({ ...inquiryListRequest, schRegId: inquiryListRequest.schRegId ? null : session.userId })
|
setInquiryListRequest({ ...inquiryListRequest, schRegId: inquiryListRequest.schRegId ? null : session.userId })
|
||||||
@ -57,6 +50,8 @@ export default function ListTable() {
|
|||||||
const handleLoadMore = () => {
|
const handleLoadMore = () => {
|
||||||
setOffset(offset + 10)
|
setOffset(offset + 10)
|
||||||
setInquiryListRequest({ ...inquiryListRequest, startRow: offset, endRow: offset + 10 })
|
setInquiryListRequest({ ...inquiryListRequest, startRow: offset, endRow: offset + 10 })
|
||||||
|
|
||||||
|
setHeldInquiryList((prev) => [...prev, ...inquiryList])
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleFilter = (e: React.ChangeEvent<HTMLSelectElement>) => {
|
const handleFilter = (e: React.ChangeEvent<HTMLSelectElement>) => {
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
import { InquiryList, Inquiry, InquiryRequest, InquirySaveResponse } from '@/types/Inquiry'
|
import { InquiryList, Inquiry, InquirySaveResponse } from '@/types/Inquiry'
|
||||||
import { axiosInstance } from '@/libs/axios'
|
import { axiosInstance } from '@/libs/axios'
|
||||||
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
|
import { useInfiniteQuery, useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
|
||||||
import { useInquiryFilterStore } from '@/store/inquiryFilterStore'
|
import { useInquiryFilterStore } from '@/store/inquiryFilterStore'
|
||||||
import { useSessionStore } from '@/store/session'
|
|
||||||
export function useInquiry(
|
export function useInquiry(
|
||||||
qnoNo?: number,
|
qnoNo?: number,
|
||||||
compCd?: string,
|
compCd?: string,
|
||||||
@ -15,7 +15,6 @@ export function useInquiry(
|
|||||||
saveInquiry: (formData: FormData) => Promise<InquirySaveResponse>
|
saveInquiry: (formData: FormData) => Promise<InquirySaveResponse>
|
||||||
downloadFile: (encodeFileNo: number) => Promise<File>
|
downloadFile: (encodeFileNo: number) => Promise<File>
|
||||||
} {
|
} {
|
||||||
// const { session } = useSessionStore()
|
|
||||||
const queryClient = useQueryClient()
|
const queryClient = useQueryClient()
|
||||||
const { inquiryListRequest } = useInquiryFilterStore()
|
const { inquiryListRequest } = useInquiryFilterStore()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user