Merge branch 'iipbs/st/dev' of https://www.onasys.co.kr:3000/ONAANDALL/frontend into iipbs/st/dev
This commit is contained in:
@@ -4,7 +4,7 @@ import type { Dispatch, SetStateAction } from "react";
|
||||
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
||||
|
||||
import { useConfirm } from "@frontend-opensource/use-react-hooks";
|
||||
import { useQuery } from "@tanstack/react-query";
|
||||
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
||||
import dayjs from "dayjs";
|
||||
import type { RealGridReact } from "realgrid-react";
|
||||
|
||||
@@ -137,6 +137,7 @@ const DEFAULT_FILTERS: StatisticsVerificationFilterState = {
|
||||
const DEFAULT_SUB_FILTERS: StatisticsVerificationSubFilterState = {
|
||||
...DEFAULT_FILTERS,
|
||||
prcsYnList: "1,2",
|
||||
rejectCode: "0",
|
||||
pbcpAprvYn: "N",
|
||||
};
|
||||
|
||||
@@ -145,7 +146,14 @@ const APPROVAL_STATUS_OPTIONS = [
|
||||
{ label: "미승인", value: "N" },
|
||||
];
|
||||
|
||||
const REJECT_STATUS_OPTIONS = [
|
||||
{ label: "반려아님", value: "0" },
|
||||
{ label: "지자체반려", value: "1" },
|
||||
{ label: "공단반려", value: "2" },
|
||||
];
|
||||
|
||||
function StatisticsVerificationReport() {
|
||||
const queryClient = useQueryClient();
|
||||
const userInfo = useUserStore((state) => state.userInfo);
|
||||
const { setMessage: alert } = useAlertStore((state) => state);
|
||||
const { confirm } = useConfirm();
|
||||
@@ -185,6 +193,7 @@ function StatisticsVerificationReport() {
|
||||
? subFilters.statsCd
|
||||
: filters.statsCd,
|
||||
prcsYnList: subFilters.prcsYnList,
|
||||
rejectCode: subFilters.rejectCode,
|
||||
pbcpAprvYn: subFilters.pbcpAprvYn,
|
||||
laeSbmsnSttsCd: subFilters.laeSbmsnSttsCd,
|
||||
}),
|
||||
@@ -196,7 +205,7 @@ function StatisticsVerificationReport() {
|
||||
queryFn: () => CodeApi.getCode("STINPTEXCT"),
|
||||
select: (data) =>
|
||||
data
|
||||
.filter(({ lwpoCd }) => !["0", "4"].includes(lwpoCd))
|
||||
.filter(({ lwpoCd }) => !["0", "3", "4"].includes(lwpoCd))
|
||||
.map(({ lwpoCdNm: label, lwpoCd: value }) => ({
|
||||
label,
|
||||
value,
|
||||
@@ -339,6 +348,9 @@ function StatisticsVerificationReport() {
|
||||
statisticsApprovalApi.rejectStats(rejectRequests),
|
||||
onSuccess: (data) => {
|
||||
alert(data.message ?? "반려가 완료되었습니다.");
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: [ENDPOINT.ST_SERVICE.INPUTVERIFY, "verify-results"],
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
@@ -610,6 +622,12 @@ function StatisticsVerificationReport() {
|
||||
onChange={handleSubFilterChange("pbcpAprvYn")}
|
||||
options={APPROVAL_STATUS_OPTIONS}
|
||||
/>
|
||||
<FilterSelect
|
||||
label="반려상태"
|
||||
value={subFilters.rejectCode}
|
||||
onChange={handleSubFilterChange("rejectCode")}
|
||||
options={REJECT_STATUS_OPTIONS}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex items-end justify-end gap-2">
|
||||
<Button color="white" onClick={handleSubFilterReset}>
|
||||
@@ -620,7 +638,10 @@ function StatisticsVerificationReport() {
|
||||
onClick={handleReject}
|
||||
disabled={
|
||||
selectedResultRows.length === 0 ||
|
||||
selectedResultRows.some((row) => row.prcsYn !== "2")
|
||||
!selectedResultRows.every(
|
||||
(row) =>
|
||||
row.prcsYn === "1" || row.prcsYn === "2",
|
||||
)
|
||||
}
|
||||
>
|
||||
반려
|
||||
@@ -699,7 +720,7 @@ function FilterCombobox({
|
||||
onChange(list.length > 0 ? list.join(",") : undefined);
|
||||
}}
|
||||
>
|
||||
<ComboboxChips ref={anchor} className="max-w-[32rem]">
|
||||
<ComboboxChips ref={anchor} className="max-w-[24rem]">
|
||||
<ComboboxValue>
|
||||
{(values: string[]) => (
|
||||
<>
|
||||
@@ -743,7 +764,7 @@ function FilterSelect({ label, onChange, options, value }: FilterSelectProps) {
|
||||
)
|
||||
}
|
||||
>
|
||||
<SelectTrigger className="w-[16rem]">
|
||||
<SelectTrigger className="w-[12rem]">
|
||||
<SelectValue placeholder="선택" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
|
||||
@@ -112,6 +112,7 @@ export const useStatsVrfcRsltData = (
|
||||
params?.sewerBzmnCd ?? "",
|
||||
params?.statsCd ?? "",
|
||||
params?.prcsYnList ?? "",
|
||||
params?.rejectCode ?? "",
|
||||
params?.pbcpAprvYn ?? "",
|
||||
params?.laeSbmsnSttsCd ?? "",
|
||||
],
|
||||
@@ -139,6 +140,7 @@ export const useStatsVrfcRsltData = (
|
||||
sewerBzmnCd: params.sewerBzmnCd,
|
||||
statsCd: params.statsCd,
|
||||
prcsYnList: params.prcsYnList,
|
||||
rejectCode: params.rejectCode,
|
||||
pbcpAprvYn: params.pbcpAprvYn,
|
||||
laeSbmsnSttsCd: params.laeSbmsnSttsCd,
|
||||
},
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { stClient } from "@/shared/api/client";
|
||||
import { client } from "@/shared/api";
|
||||
import { ENDPOINT } from "@/shared/config";
|
||||
|
||||
import type {
|
||||
@@ -12,7 +12,7 @@ class StatisticsApprovalApiService implements StatisticsApprovalService {
|
||||
public async approveStats(
|
||||
params: ApproveRequest[],
|
||||
): Promise<ApprovalResponse> {
|
||||
const response = await stClient.post<ApprovalResponse>(
|
||||
const response = await client.post<ApprovalResponse>(
|
||||
`${ENDPOINT.ST_SERVICE.APPROVAL}/approve?type=VRFC`,
|
||||
params,
|
||||
);
|
||||
@@ -22,7 +22,7 @@ class StatisticsApprovalApiService implements StatisticsApprovalService {
|
||||
public async rejectStats(
|
||||
params: RejectRequest[],
|
||||
): Promise<ApprovalResponse> {
|
||||
const response = await stClient.post<ApprovalResponse>(
|
||||
const response = await client.post<ApprovalResponse>(
|
||||
`${ENDPOINT.ST_SERVICE.APPROVAL}/reject?type=VRFC`,
|
||||
params,
|
||||
);
|
||||
|
||||
@@ -204,6 +204,7 @@ export interface VerifyResultSearchRequest {
|
||||
laeSbmsnSttsCd?: string | null;
|
||||
vrfcMthdCd?: string;
|
||||
prcsYnList?: string; // 검증 상태 리스트 (0: 미검증, 1: 수정완료, 2:예외통과, 3: 반려)
|
||||
rejectCode?: string; // 반려 상태 (0: 반려 아님(default), 1: 지자체 반려, 2: 공단 반려)
|
||||
pbcpAprvYn?: string; // 공단 승인 여부 (Y/N)
|
||||
}
|
||||
|
||||
|
||||
+11
-2
@@ -161,7 +161,7 @@ export const statisticsVerificationResultColumnInfo: ColumnInfo = {
|
||||
width: 100,
|
||||
styleName: READ_ONLY_STYLE,
|
||||
editable: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "rsnExpln",
|
||||
fieldName: "rsnExpln",
|
||||
@@ -202,6 +202,14 @@ export const statisticsVerificationResultColumnInfo: ColumnInfo = {
|
||||
styleName: READ_ONLY_STYLE,
|
||||
editable: false,
|
||||
},
|
||||
{
|
||||
name: "stVrfRjtComNm",
|
||||
fieldName: "stVrfRjtComNm",
|
||||
header: { text: "반려상태" },
|
||||
width: 90,
|
||||
styleName: READ_ONLY_STYLE,
|
||||
editable: false,
|
||||
},
|
||||
{
|
||||
name: "rjctOpnnCn",
|
||||
fieldName: "rjctOpnnCn",
|
||||
@@ -237,8 +245,9 @@ export const statisticsVerificationResultColumnInfo: ColumnInfo = {
|
||||
"compVlCn",
|
||||
"prcsYnNm",
|
||||
"prcsOpnnExpln",
|
||||
"stVrfRjtComNm",
|
||||
"rjctOpnnCn",
|
||||
"pbcpAprvYn",
|
||||
"vrfcSn",
|
||||
],
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export const PORT = process.env.NEXT_PUBLIC_PORT || "3000";
|
||||
export const PORT = process.env.NEXT_PUBLIC_PORT || "3001";
|
||||
export const PROXY_HOST =
|
||||
process.env.NEXT_PUBLIC_PROXY_HOST || `http://localhost:${PORT}`;
|
||||
export const SERVER_API_URL = process.env.SERVER_API_URL;
|
||||
|
||||
@@ -20,7 +20,7 @@ export const useMutationWrapper = <
|
||||
if (error instanceof AxiosError) {
|
||||
if (error.response?.data?.message)
|
||||
errorMessage += `${error.response.data.message}\n`;
|
||||
if (error.response?.data?.errors[0]?.message)
|
||||
if (error.response?.data?.errors?.[0]?.message)
|
||||
errorMessage += `${error.response.data.errors[0].message}\n`;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user