침입수 파일업로드

This commit is contained in:
2025-08-22 20:53:31 +09:00
parent 68c99ad6c0
commit 3d0dccaa35
2 changed files with 22 additions and 6 deletions
@@ -1,5 +1,5 @@
'use client'
import { postData } from '@/components/lib/api'
import { postData , postMutiPart} from '@/components/lib/api'
import FileUploadForm from '@/components/ui/fileUploadForm'
import FormSection from '@/components/ui/formSection'
import { DateMonthPicker, filePicked, downloadExcel } from '@common/business_components/ui'
@@ -52,6 +52,11 @@ const IrSetting = () => {
const [sggCd, setSggCd] = useState<string>('0'); // 시군구 코드 상태
const [sggName, setSggName] = useState<string>(''); // 시군구 이름 상태
const [swtrmtFcltNm, setSwtrmtFcltNm] = useState<string>(''); // 하수처리시설명 상태
const [file, setFile] = useState(null);
const handleFileChange = (e) => {
setFile(e.target.files[0]);
};
const { data: userInfo } = useQuery({
queryKey: [ENDPOINT.USER_SERVICE.USERS],
@@ -140,7 +145,16 @@ const IrSetting = () => {
setIsLoadingResult(true); // 로딩 상태 시작
console.log("Submitting combined analysis data to backend:", analysisData);
// 추후 API 엔드포인트에 맞게 URL 수정 필요
const data = await postData('v1/inftwtAnls', analysisData);
// const data = await postData('v1/inftwtAnls', analysisData);
const jsonBlob = new Blob([JSON.stringify(analysisData)], {
type: 'application/json'
});
const formData = new FormData();
formData.append('data', jsonBlob);
if (file) {
formData.append('inpFile', file);
}
const data = await postMutiPart('v1/inftwtAnls/savewithfile', formData);
console.log("Response from backend:", data);
if (data) {
setIsLoadingResult(false); // 로딩 상태 시작
@@ -318,8 +332,8 @@ const IrSetting = () => {
anlsInfo: input2, // 분석정보
rgtr: tokenManager.getToken(AUTH_USER_ID) || null, // 등록자 (사용자 ID)
rgtrNm: userInfo?.userName, // 등록자 (사용자 ID)
atflCd: file1?.atflCd, // 첨부파일CD (오수관망도)
atflId: file1?.atflId, // 첨부파일ID (오수관망도)
//atflCd: file1?.atflCd, // 첨부파일CD (오수관망도)
//atflId: file1?.atflId, // 첨부파일ID (오수관망도)
atflInpNm: file1?.file?.name, // 오수관망도 파일명
atflHrPttnNm: file3?.file?.name, // 오수량 시간패턴 파일명
atflMpngNm: file2?.file?.name, // 수용가-맨홀 매칭결과 파일명
@@ -397,7 +411,7 @@ const IrSetting = () => {
showPreview={true}
accept={".inp"}
fileIdx={0} />
</FormSection>
</FormSection><input type="file" onChange={handleFileChange} />
<FormSection name='suyeonga' form={form} titleNm='▷ 수용가-맨홀 매칭결과' required={true}>
<div className="flex items-center">
<FileUploadForm
+3 -1
View File
@@ -1,4 +1,5 @@
import { useEffect, useState } from "react";
import axios from 'axios';
const BASE_URL = process.env.NEXT_PUBLIC_SEWERAGE_API_URL || '';
@@ -52,7 +53,8 @@ export const postMutiPart = async (url: string, data: FormData): Promise<any> =>
method: "POST",
body: data,
};
const res = await fetch(`${BASE_URL}/${url}`, options);
//const res = await fetch(`${BASE_URL}/${url}`, options);
const res = await axios.post(`${BASE_URL}/${url}`, data);
const resData = await res.json();
return resData;
};