diff --git a/apps/st/src/components/statistics/verification/ApprovalInputDialog.tsx b/apps/st/src/components/statistics/verification/ApprovalInputDialog.tsx index d9bab2b14..a7e8fe506 100644 --- a/apps/st/src/components/statistics/verification/ApprovalInputDialog.tsx +++ b/apps/st/src/components/statistics/verification/ApprovalInputDialog.tsx @@ -1,162 +1,162 @@ -"use client"; - -import { useEffect, useState } from "react"; - -import { - Button, - Dialog, - DialogClose, - DialogContent, - DialogFooter, - DialogHeader, - DialogTitle, - Input, - Label, -} from "@common/components"; - -export interface ApprovalFormData { - lastCfmtnPicNm: string; - lastCfmtnPicTelNo: string; - lastCfmtnPicDeptNm: string; - lastCfmtnPicJbgdNm: string; -} - -export interface ApprovalInputDialogProps { - open: boolean; - onOpenChange: (open: boolean) => void; - onConfirm?: (data: ApprovalFormData) => void | Promise; -} - -export function ApprovalInputDialog({ - open, - onOpenChange, - onConfirm, -}: ApprovalInputDialogProps) { - const [lastCfmtnPicNm, setLastCfmtnPicNm] = useState(""); - const [lastCfmtnPicTelNo, setLastCfmtnPicTelNo] = useState(""); - const [lastCfmtnPicDeptNm, setLastCfmtnPicDeptNm] = useState(""); - const [lastCfmtnPicJbgdNm, setLastCfmtnPicJbgdNm] = useState(""); - - const [isSubmitting, setIsSubmitting] = useState(false); - - const resetForm = () => { - setLastCfmtnPicNm(""); - setLastCfmtnPicTelNo(""); - setLastCfmtnPicDeptNm(""); - setLastCfmtnPicJbgdNm(""); - }; - - const handleDialogOpenChange = (nextOpen: boolean) => { - if (!nextOpen) resetForm(); - onOpenChange(nextOpen); - }; - - useEffect(() => { - if (!open) { - resetForm(); - } - }, [open]); - - const handleConfirm = async () => { - try { - setIsSubmitting(true); - const formData: ApprovalFormData = { - lastCfmtnPicNm: lastCfmtnPicNm.trim(), - lastCfmtnPicTelNo: lastCfmtnPicTelNo.trim(), - lastCfmtnPicDeptNm: lastCfmtnPicDeptNm.trim(), - lastCfmtnPicJbgdNm: lastCfmtnPicJbgdNm.trim(), - }; - await onConfirm?.(formData); - } finally { - setIsSubmitting(false); - } - }; - - return ( - - - - 승인 정보 입력 - -
-
- - { - setLastCfmtnPicNm(e.target.value); - }} - className="!text-[1.3rem]" - placeholder="담당자명을 입력하세요." - disabled={isSubmitting} - /> -
-
- - { - setLastCfmtnPicTelNo(e.target.value); - }} - className="!text-[1.3rem]" - placeholder="전화번호를 입력하세요." - disabled={isSubmitting} - /> -
-
- - { - setLastCfmtnPicDeptNm(e.target.value); - }} - className="!text-[1.3rem]" - placeholder="부서명을 입력하세요." - disabled={isSubmitting} - /> -
-
- - { - setLastCfmtnPicJbgdNm(e.target.value); - }} - className="!text-[1.3rem]" - placeholder="직급명을 입력하세요." - disabled={isSubmitting} - /> -
-
- - - - - - -
-
- ); -} +"use client"; + +import { useEffect, useState } from "react"; + +import { + Button, + Dialog, + DialogClose, + DialogContent, + DialogFooter, + DialogHeader, + DialogTitle, + Input, + Label, +} from "@common/components"; + +export interface ApprovalFormData { + lastCfmtnPicNm: string; + lastCfmtnPicTelnoCn: string; + lastCfmtnPicDeptNm: string; + lastCfmtnPicJbgdNm: string; +} + +export interface ApprovalInputDialogProps { + open: boolean; + onOpenChange: (open: boolean) => void; + onConfirm?: (data: ApprovalFormData) => void | Promise; +} + +export function ApprovalInputDialog({ + open, + onOpenChange, + onConfirm, +}: ApprovalInputDialogProps) { + const [lastCfmtnPicNm, setLastCfmtnPicNm] = useState(""); + const [lastCfmtnPicTelnoCn, setLastCfmtnPicTelnoCn] = useState(""); + const [lastCfmtnPicDeptNm, setLastCfmtnPicDeptNm] = useState(""); + const [lastCfmtnPicJbgdNm, setLastCfmtnPicJbgdNm] = useState(""); + + const [isSubmitting, setIsSubmitting] = useState(false); + + const resetForm = () => { + setLastCfmtnPicNm(""); + setLastCfmtnPicTelnoCn(""); + setLastCfmtnPicDeptNm(""); + setLastCfmtnPicJbgdNm(""); + }; + + const handleDialogOpenChange = (nextOpen: boolean) => { + if (!nextOpen) resetForm(); + onOpenChange(nextOpen); + }; + + useEffect(() => { + if (!open) { + resetForm(); + } + }, [open]); + + const handleConfirm = async () => { + try { + setIsSubmitting(true); + const formData: ApprovalFormData = { + lastCfmtnPicNm: lastCfmtnPicNm.trim(), + lastCfmtnPicTelnoCn: lastCfmtnPicTelnoCn.trim(), + lastCfmtnPicDeptNm: lastCfmtnPicDeptNm.trim(), + lastCfmtnPicJbgdNm: lastCfmtnPicJbgdNm.trim(), + }; + await onConfirm?.(formData); + } finally { + setIsSubmitting(false); + } + }; + + return ( + + + + 승인 정보 입력 + +
+
+ + { + setLastCfmtnPicNm(e.target.value); + }} + className="!text-[1.3rem]" + placeholder="담당자명을 입력하세요." + disabled={isSubmitting} + /> +
+
+ + { + setLastCfmtnPicTelnoCn(e.target.value); + }} + className="!text-[1.3rem]" + placeholder="전화번호를 입력하세요." + disabled={isSubmitting} + /> +
+
+ + { + setLastCfmtnPicDeptNm(e.target.value); + }} + className="!text-[1.3rem]" + placeholder="부서명을 입력하세요." + disabled={isSubmitting} + /> +
+
+ + { + setLastCfmtnPicJbgdNm(e.target.value); + }} + className="!text-[1.3rem]" + placeholder="직급명을 입력하세요." + disabled={isSubmitting} + /> +
+
+ + + + + + +
+
+ ); +} diff --git a/apps/st/src/entities/statistics/api/input/statistics-input-status-service.ts b/apps/st/src/entities/statistics/api/input/statistics-input-status-service.ts index 1293af423..abd8e733e 100644 --- a/apps/st/src/entities/statistics/api/input/statistics-input-status-service.ts +++ b/apps/st/src/entities/statistics/api/input/statistics-input-status-service.ts @@ -15,7 +15,12 @@ export class StatisticsInputStatusApiService implements StatisticsInputStatusSer ): Promise { const response = await stClient.get( `${ENDPOINT.ST_SERVICE.INPUT}/stats-input-status`, - { params: param }, + { + params: param, + paramsSerializer: { + indexes: null, + }, + }, ); return response.data; } diff --git a/apps/st/src/entities/statistics/model/input/statistics-input-status-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-input-status-interface.ts index b2fa0aebd..fc0629f2a 100644 --- a/apps/st/src/entities/statistics/model/input/statistics-input-status-interface.ts +++ b/apps/st/src/entities/statistics/model/input/statistics-input-status-interface.ts @@ -6,7 +6,8 @@ export interface StatsInputStatusListRequestParams { sewerBzmnCd?: string | null; statsYr: string; statsCd?: string | null; - laeSbmsnSttsCd?: string | null; + /** 지자체 제출 상태 코드 목록 (쿼리스트링 lclgvSbmsnSttsCd=2&lclgvSbmsnSttsCd=3 형태로 전송) */ + lclgvSbmsnSttsCd?: string[] | null; } export interface StatsInputStatusList { @@ -46,37 +47,43 @@ export interface ReportSearchRequestDto { /** 통계 검증 리포트 현황 조회 ResponseDto */ export interface ReportStatusResponseDto { - ctpvNm?: string; - sggNm?: string; - sewerBzmnCd?: string; - statsCd?: string; - menuTabName?: string; - laeSbmsnSttsCd?: string; - laeSbmsnSttsNm?: string; - laeSbmsnYmd?: string; - statPicSbmsnSttsCd?: string; - statPicSbmsnSttsNm?: string; - ctpvSbmsnYmd?: string; - pbcpSbmsnSttsCd?: string; - pbcpSbmsnSttsNm?: string; - pbcpCfmtnYmd?: string; - laePicNm?: string; - laePicTelNo?: string; - laeKbrdrDeptNm?: string; - laeKbrdrJbgdNm?: string; - laeIdfrNm?: string; - laeIdfrTelNo?: string; - laeIdfrDeptNm?: string; - laeIdfrJbgdNm?: string; - mctpvIdfrNm?: string; - mctpvIdfrTelNo?: string; - mctpvIdfrDeptNm?: string; - mctpvIdfrJbgdNm?: string; - lastCfmtnPicNm?: string; - lastCfmtnPicTelNo?: string; - lastCfmtnPicDeptNm?: string; - lastCfmtnPicJbgdNm?: string; - rjctOpnnCn?: string; + ctpvNm?: string | null; + sggNm?: string | null; + sewerBzmnCd?: string | null; + statsCd?: string | null; + menuTabName?: string | null; + lclgvSbmsnSttsCd?: string | null; + lclgvSbmsnSttsNm?: string | null; + lclgvSbmsnYmd?: string | null; + mctpvPicSbmsnSttsCd?: string | null; + mctpvPicSbmsnSttsNm?: string | null; + ctpvSbmsnYmd?: string | null; + pbcpSbmsnSttsCd?: string | null; + pbcpSbmsnSttsNm?: string | null; + pbcpCfmtnYmd?: string | null; + lclgvPicNm?: string | null; + lclgvPicTelnoCn?: string | null; + lclgvKbrdrDeptNm?: string | null; + lclgvKbrdrJbgdNm?: string | null; + lclgvIdfrNm?: string | null; + lclgvIdfrTelnoCn?: string | null; + lclgvIdfrDeptNm?: string | null; + lclgvIdfrJbgdNm?: string | null; + mctpvIdfrNm?: string | null; + mctpvIdfrTelnoCn?: string | null; + mctpvIdfrDeptNm?: string | null; + mctpvIdfrJbgdNm?: string | null; + pbcpPicNm?: string | null; + pbcpPicTelnoCn?: string | null; + rvwrDeptNm?: string | null; + rvwrJbgdNm?: string | null; + lastCfmtnPicNm?: string | null; + lastCfmtnPicTelnoCn?: string | null; + lastCfmtnPicDeptNm?: string | null; + lastCfmtnPicJbgdNm?: string | null; + splmntRsltCn?: string | null; + splmntOpnnCn?: string | null; + rjctOpnnCn?: string | null; } export type ReportStatusListApiResponse = ApiResponse< diff --git a/apps/st/src/entities/statistics/model/statistics-approval-interface.ts b/apps/st/src/entities/statistics/model/statistics-approval-interface.ts index 110c7a8f0..93b248037 100644 --- a/apps/st/src/entities/statistics/model/statistics-approval-interface.ts +++ b/apps/st/src/entities/statistics/model/statistics-approval-interface.ts @@ -4,7 +4,7 @@ export interface ApproveRequest { statsCd: string; mdfrUuid: string; lastCfmtnPicNm?: string; - lastCfmtnPicTelNo?: string; + lastCfmtnPicTelnoCn?: string; lastCfmtnPicDeptNm?: string; lastCfmtnPicJbgdNm?: string; } diff --git a/apps/st/src/entities/statistics/model/statistics-verification-report/statistics-verification-report-columns.ts b/apps/st/src/entities/statistics/model/statistics-verification-report/statistics-verification-report-columns.ts index 585850a35..31bb02d40 100644 --- a/apps/st/src/entities/statistics/model/statistics-verification-report/statistics-verification-report-columns.ts +++ b/apps/st/src/entities/statistics/model/statistics-verification-report/statistics-verification-report-columns.ts @@ -27,51 +27,51 @@ export const statisticsVerificationReportColumnInfo: ColumnInfo = { editable: false, }, { - name: "laePicNm", - fieldName: "laePicNm", + name: "lclgvPicNm", + fieldName: "lclgvPicNm", header: { text: "지자체작성자" }, styleName: READ_ONLY_STYLE, editable: false, }, { - name: "laePicTelNo", - fieldName: "laePicTelNo", + name: "lclgvPicTelnoCn", + fieldName: "lclgvPicTelnoCn", header: { text: "연락처" }, width: 130, styleName: READ_ONLY_STYLE, editable: false, }, { - name: "laeKbrdrDeptNm", - fieldName: "laeKbrdrDeptNm", + name: "lclgvKbrdrDeptNm", + fieldName: "lclgvKbrdrDeptNm", header: { text: "부서" }, styleName: READ_ONLY_STYLE, editable: false, }, { - name: "laeKbrdrJbgdNm", - fieldName: "laeKbrdrJbgdNm", + name: "lclgvKbrdrJbgdNm", + fieldName: "lclgvKbrdrJbgdNm", header: { text: "직급" }, styleName: READ_ONLY_STYLE, editable: false, }, { - name: "laeIdfrNm", - fieldName: "laeIdfrNm", + name: "lclgvIdfrNm", + fieldName: "lclgvIdfrNm", header: { text: "지자체승인자" }, styleName: READ_ONLY_STYLE, editable: false, }, { - name: "laeIdfrDeptNm", - fieldName: "laeIdfrDeptNm", + name: "lclgvIdfrDeptNm", + fieldName: "lclgvIdfrDeptNm", header: { text: "부서" }, styleName: READ_ONLY_STYLE, editable: false, }, { - name: "laeIdfrJbgdNm", - fieldName: "laeIdfrJbgdNm", + name: "lclgvIdfrJbgdNm", + fieldName: "lclgvIdfrJbgdNm", header: { text: "직급" }, styleName: READ_ONLY_STYLE, editable: false, @@ -122,13 +122,13 @@ export const statisticsVerificationReportColumnInfo: ColumnInfo = { "ctpvNm", "sggNm", "menuTabName", - "laePicNm", - "laePicTelNo", - "laeKbrdrDeptNm", - "laeKbrdrJbgdNm", - "laeIdfrNm", - "laeIdfrDeptNm", - "laeIdfrJbgdNm", + "lclgvPicNm", + "lclgvPicTelnoCn", + "lclgvKbrdrDeptNm", + "lclgvKbrdrJbgdNm", + "lclgvIdfrNm", + "lclgvIdfrDeptNm", + "lclgvIdfrJbgdNm", "lastCfmtnPicNm", "lastCfmtnPicDeptNm", "lastCfmtnPicJbgdNm",