diff --git a/apps/as/src/pages/instl-sncn/ui/cnfm-regist-page.tsx b/apps/as/src/pages/instl-sncn/ui/cnfm-regist-page.tsx index 7c5978b4b..8e1e9af50 100644 --- a/apps/as/src/pages/instl-sncn/ui/cnfm-regist-page.tsx +++ b/apps/as/src/pages/instl-sncn/ui/cnfm-regist-page.tsx @@ -8,6 +8,7 @@ import axios from "axios"; import { type HttpResponse, Upload } from "tus-js-client"; import { AUTH_USER_ID, CLAIM_NAME, ENDPOINT, PROXY_HOST } from "@/shared/config"; +import { deleteAttachment } from "@/shared/lib/attach"; import { getCookie, setCookie, useAlertStore, useUserStore } from "@/shared/lib"; import type { AcntgSeMngTreeDto } from "@/entities/acntg"; @@ -236,6 +237,28 @@ function CnfmRegistPage() { upload.start(); }; + /** 기타첨부파일 삭제 핸들러: 백엔드에 DELETE 요청을 보내 소프트삭제 처리 후 상태 갱신 */ + const handleDeleteEtcFile = async (fileId: string, atflId: string) => { + try { + if (atflId) { + await deleteAttachment(atflId); + } + } catch (error) { + console.error("기타 첨부파일 삭제 실패", error); + alert("파일 삭제 중 오류가 발생했습니다."); + return; + } + + setEtcFiles((prev) => { + const next = prev.filter((x) => x.id !== fileId); + if (next.length === 0) { + setEtcFileGroupId(""); + etcFileGroupIdRef.current = ""; + } + return next; + }); + }; + const handleRequiredFileChange = (key: RequiredAttachKey, e: React.ChangeEvent) => { const file = e.target.files?.[0]; if (!file) return; @@ -286,7 +309,7 @@ function CnfmRegistPage() { name: file.name, ext, size: toFileSizeText(file.size), - uploader: "(로그인 사용자)", + uploader: userInfo?.userName ?? "알 수 없음", atflCd: uploadedAtflCd, atflId: uploadedAtflId, }); @@ -747,7 +770,7 @@ function CnfmRegistPage() { - - - - + - + - +
+ * 사업명 @@ -761,7 +784,7 @@ function CnfmRegistPage() { + * 사업기간 @@ -783,7 +806,7 @@ function CnfmRegistPage() {
+ * 사업내용 @@ -796,12 +819,12 @@ function CnfmRegistPage() {
구분구분
{taskSeComCdNm}
신청 지자체신청 지자체 {userInfo?.enoNm ?? "\u00A0"} @@ -809,7 +832,7 @@ function CnfmRegistPage() {
사업구분*사업구분
{[ @@ -841,31 +864,31 @@ function CnfmRegistPage() { - - + + - + - + - + - - + + - + - + - +
신청자이름신청자이름 {userInfo?.userName ?? "\u00A0"} 전화번호전화번호 {userInfo?.mphn ?? userInfo?.telno ?? "\u00A0"}
부서부서 {userInfo?.instSeNm ?? "\u00A0"} 이메일이메일 {userInfo?.email ?? "\u00A0"}
설계자이름설계자이름 setDsgnrNm(e.target.value)} /> 전화번호전화번호
소속소속 이메일이메일

개인정보 동의

-
-

[개인정보 수집·이용 목적]

-
    -
  • 수집항목: 소속기관, 성명, 전화번호, 이메일, IP Address, 접속 기기 정보
  • -
  • 수집목적: 하수도 시설물 설치인가 신청 및 처리 목적
  • -
  • 보유기간: 관련 법령에 따른 의무 보유 기간 준수
  • -
-

- ※ 개인정보 제공에 동의하지 않을 수 있으나, 미동의 시 서비스 이용이 제한될 수 있습니다. -

+
+

[ 개인정보 수집항목 ]

+
+ * 필수항목 : 소속기관, 소속부서, 담당자, 직급, 사무실 번호, FAX 번호
+ ․ 선택항목 : 휴대폰 번호, 이메일 주소
+ ․ 기타항목 : IP Address, 쿠키, 시스템 접속 및 이용 기록
+ ※ 시스템 이용과정에서 기타 항목의 정보들이 자동으로 생성되어 수집될 수 있습니다. +
+ +

[ 개인정보 이용목적 ]

+
+ ․ 국가하수도정보시스템 웹서비스 이용에 따른 본인 확인 절차에 이용
+ ․ 국가하수도정보시스템 사용에 필요한 권한 부여
+ ․ 사용자별 맞춤 컨텐츠 (처리시설의 운영 데이터 조회, 수질현황 데이터 조회, 예산 편성 / 예산편성 등) 제공에 이용 +
+ +
● 개인정보의 보유 및 이용기간
+
+ ․ 수집된 고객의 개인정보는 2년 동안 보유하며 그 이후에는 문서를 파쇄합니다.
+ ․ 정보제공자가 개인정보 파쇄를 요청할 경우 즉시 파쇄합니다. +
+ +
+
● 개인정보 제공 거부에 따른 제한사항
+
+ ․ 귀하는 개인정보 제공 동의를 거부할 권리가 있으나, 동의 거부 시 국가하수도정보시스템 이용 서비스에 제한이 있을 수 있습니다. +
+
-