feat: implement inquriy file upload

This commit is contained in:
Dayoung 2025-05-16 15:58:17 +09:00
parent 1d77fec86d
commit 96c725b459
5 changed files with 17 additions and 22 deletions

View File

@ -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

View File

@ -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'),
} }

View File

@ -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>

View File

@ -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>) => {

View File

@ -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()