노후 하수관로 구현 작업 완료

This commit is contained in:
JIeunhuh
2025-05-27 13:18:55 +09:00
parent 92710d1ac7
commit 83845d6860
3 changed files with 21 additions and 16 deletions
+7 -2
View File
@@ -9,8 +9,13 @@ export const postData = async (url: string, data: object): Promise<any> => {
body: JSON.stringify(data),
};
const res = await fetch(`${BASE_URL}/${url}`, options);
const resData = await res.json();
return resData;
if (res.ok) {
const text = await res.text();
if (text) {
return JSON.parse(text); // JSON 데이터가 있으면 파싱하여 반환
}
return true; // 응답 본문이 비어 있으면 true 반환
}
};
export const postMutiPart = async (url: string, data: FormData): Promise<any> => {
+1 -1
View File
@@ -13,7 +13,7 @@ import { deleteData, getData, postData } from '@/components/lib/api'
const Page = () => {
// 조회조건
const [fromDate, setFromDate] = useState(new Date())
const [fromDate, setFromDate] = useState(()=>{const date = new Date(); date.setDate(date.getDate()-7); return date})
const [toDate, setToDate] = useState(new Date())
const [manageYear, setManageYear] = useState('')
const [mngQu, setMngQu] = useState('')
+13 -13
View File
@@ -5,13 +5,13 @@ import React, { useEffect, useState } from 'react'
import OperFileUploadForm from '../../components/ui/operFileUploadForm'
import ListDiv from '@common/business_components/ui/list_div'
import ContentLayout from '@/components/ui/contentLayout'
import { tableHeadlist } from '..'
import { tableHeadlistOldPp } from '..'
import { handleDownload } from '@/components/lib/utils/fileDownload'
import { searchData } from '@/components/lib/common/apiHelpers'
import { formatDate } from '@/components/lib/utils/date'
import { deleteData, getData, postData } from '@/components/lib/api'
const Page = () => {
const [fromDate, setFromDate] = useState<Date>(new Date());
const [fromDate, setFromDate] = useState<Date>(()=>{const date = new Date(); date.setDate(date.getDate()-7); return date});
const [toDate, setToDate] = useState<Date>(new Date());
const [manageYear, setManageYear] = useState('')
const [mngQu, setMngQu] = useState('')
@@ -19,8 +19,7 @@ const Page = () => {
const [pjNm, setpjNm] = useState('')
const [fileNm, setFileNm] = useState('')
const [atflId, setAtflId] = useState('')
const [atflCd, setAtflCd] = useState('')
const [sbmrgPrevntBizSn, setSbmrgPrevntBizSn] = useState('')
const [dcrpPplMtncBizSn, setDcrpPplMtncBizSn] = useState('')
const [tableData, setTableData] = useState<any>([{}])
const [curPage, setCurPage] = useState(1)
// 데이터 조회
@@ -30,7 +29,7 @@ const Page = () => {
fromMngYr: manageYear,
toMngYr: mngQu,
toRegDt: formatDate(toDate),
atflNm: pjNm,
dcrpPplMtncBizNm: pjNm,
rgtrNm: usr,
page: curPage - 1,
size: '10'
@@ -52,14 +51,14 @@ const Page = () => {
}
// 파일 삭제
const isDeleteFile = async () => {
if (fileNm === '' || fileNm === undefined) {
if (dcrpPplMtncBizSn === '' || dcrpPplMtncBizSn === undefined) {
alert('삭제할 파일을 선택해주세요')
return false
}
const data = await getData(`/attach-service/api/v1/atfl/attachments/${atflId}`)
const data = await deleteData(`/attach-service/api/v1/atfl/attachments/${atflId}`)
if (data) {
const delData = await deleteData(`v1/sbmrgPrevnt/${sbmrgPrevntBizSn}`)
if (delData) {
const delData = await deleteData(`v1/dcrpPpl/${dcrpPplMtncBizSn}`)
if (delData.status == 200) {
alert('삭제되었습니다.')
fetchData()
} else {
@@ -74,9 +73,10 @@ const Page = () => {
mngYr: year,
mngQu: quater,
atflCd: cd,
atflId: id
atflId: id,
dcrpPplMtncBizNm: fileNm
})
if (data.ok) { setAtflId(data.atflId); setAtflCd(data.atflCd) }
if (data) {alert('파일이 등록되었습니다.');fetchData() }
}
return (
<ContentLayout title='노후 하수관로 정비사업'>
@@ -119,7 +119,7 @@ const Page = () => {
<Input
className='w-[100px]'
value={pjNm}
onChange={(e) => setpjNm(e.target.value)}
onChange={(e) => {setpjNm(e.target.value)}}
/>
</div>
</div>
@@ -137,7 +137,7 @@ const Page = () => {
<Button className="px-4 py-2 bg-blue-600 text-white rounded-sm text-sm font-medium hover:bg-blue-700 !mr-[1.2rem]" size="sm" onClick={isDeleteFile}>삭제</Button>
</div>
</div>
<UiTable headName='' tableData={tableData} headlist={tableHeadlist} pageSize={10} total={20} children={undefined} cellClick={(index) => { if (index != null) { const fileName = tableData[index]?.fileNm ?? ""; setFileNm(fileName); setSbmrgPrevntBizSn(tableData[index]?.sbmrgPrevntBizSn) } }} onPageChange={async (page:number)=>{setCurPage(page); await fetchData()}}></UiTable>
<UiTable headName='' tableData={tableData} headlist={tableHeadlistOldPp} pageSize={10} total={20} children={undefined} cellClick={(index) => { if (index != null) { const fileName = tableData[index]?.dcrpPplMtncBizNm ?? ""; setFileNm(fileName); const id = tableData[index]?.atflId ?? ''; setAtflId(id); setDcrpPplMtncBizSn(tableData[index]?.dcrpPplMtncBizSn) } }} onPageChange={async (page:number)=>{setCurPage(page); await fetchData()}}></UiTable>
</ListDiv>
<ListDiv className="mt-4">
<OperFileUploadForm title='노후 하수관로 정비사업 주진현황 등록' onSubmit={async (file, year, quater, cd, id) => { await registFile(file, year, quater, cd, id) }} />