wr: 하수재이용시설등록 수정
This commit is contained in:
@@ -31,7 +31,6 @@ import { btnClass } from "@/app/store/common/code";
|
||||
import { Tabs, TabsList, TabsTrigger, TabsContent } from "@common/components";
|
||||
import { useCallback, useEffect, useRef, useState } from "react";
|
||||
import ListDiv from "@common/business_components/ui/list_div";
|
||||
import { tableData } from "@/components/lib/func/common";
|
||||
import type {
|
||||
customPbnst,
|
||||
fcBizType,
|
||||
@@ -56,7 +55,6 @@ import { useAlertStore } from "@/src/shared/lib";
|
||||
export default function PublicReuseFaciltyInsert() {
|
||||
const {
|
||||
auth,
|
||||
code,
|
||||
pbnst,
|
||||
pubHasuInit,
|
||||
pbnstInsert,
|
||||
@@ -112,11 +110,11 @@ export default function PublicReuseFaciltyInsert() {
|
||||
useInitRef.current = true;
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (useInitRef.current == true && laeSeCd !== undefined) {
|
||||
pubHasuInit("1", laeSeCd); //page: string, sggOrCity: string
|
||||
}
|
||||
}, [useInitRef.current, laeSeCd]);
|
||||
// useEffect(() => {
|
||||
// if (useInitRef.current == true && laeSeCd !== undefined) {
|
||||
// pubHasuInit(1, laeSeCd);
|
||||
// }
|
||||
// }, [useInitRef.current, laeSeCd]);
|
||||
|
||||
const onSubmit = async (valuse: { items: PbnstRegArrrayType }) => {
|
||||
const data = writeRgtrAndMdfr(valuse.items);
|
||||
@@ -156,7 +154,7 @@ export default function PublicReuseFaciltyInsert() {
|
||||
message += "하수재이용 시설 사업 ";
|
||||
}
|
||||
alert(message + "오류 입니다 ");
|
||||
pubHasuInit("1", laeSeCd);
|
||||
pubHasuInit(1, laeSeCd);
|
||||
}
|
||||
};
|
||||
if (await confirm(t("isUpdatetMsg"))) {
|
||||
@@ -233,10 +231,12 @@ export default function PublicReuseFaciltyInsert() {
|
||||
}, [items]);
|
||||
|
||||
useEffect(() => {
|
||||
if (code.sggCd.length && pbnstHasuRes.length > 0) {
|
||||
setbdstTable(tableData(pbnstHasuRes, { code }));
|
||||
if (pbnstHasuRes.length > 0) {
|
||||
setbdstTable(pbnstHasuRes);
|
||||
} else {
|
||||
setbdstTable([]);
|
||||
}
|
||||
}, [code, pbnstHasuRes]);
|
||||
}, [pbnstHasuRes]);
|
||||
|
||||
const cellClick = (val: number | undefined) => {
|
||||
if (val === undefined) return;
|
||||
@@ -288,7 +288,8 @@ export default function PublicReuseFaciltyInsert() {
|
||||
}, [pbnstRes, append, selectRow]);
|
||||
|
||||
useEffect(() => {
|
||||
pubHasuInit(String(pageNation), laeSeCd); // 해당 지자체의 하수처리시설 조회
|
||||
if (laeSeCd === undefined) return;
|
||||
pubHasuInit(pageNation, laeSeCd); // 해당 지자체의 하수처리시설 조회
|
||||
isResetPage(false);
|
||||
setSelectRow(undefined);
|
||||
setSelectedRowIndex(-1);
|
||||
@@ -316,9 +317,9 @@ export default function PublicReuseFaciltyInsert() {
|
||||
// size={"sm"}
|
||||
onClick={() => {
|
||||
if (searchTxt && searchTxt?.length > 0) {
|
||||
pubHasuSearch(String(pageNation), laeSeCd, searchTxt);
|
||||
pubHasuSearch(pageNation, laeSeCd, searchTxt);
|
||||
} else {
|
||||
pubHasuInit(String(pageNation), laeSeCd);
|
||||
pubHasuInit(pageNation, laeSeCd);
|
||||
}
|
||||
isResetPage(true);
|
||||
}}
|
||||
|
||||
@@ -75,7 +75,7 @@ async function handler(
|
||||
if (refreshToken) {
|
||||
response.cookies.set(REFRESH_TOKEN, refreshToken, {
|
||||
httpOnly: true,
|
||||
sameSite: "strict", // 다른 사이트에서 들어오는 모든 요청에 대해 쿠키를 보내지 않는 가장 강력한 설정
|
||||
sameSite: "lax", // 다른 사이트에서 들어오는 모든 요청에 대해 쿠키를 보내지 않는 가장 강력한 설정
|
||||
domain: getCookieDomain(),
|
||||
path: "/",
|
||||
});
|
||||
|
||||
@@ -5,6 +5,7 @@ import {
|
||||
getFetch,
|
||||
postFectch,
|
||||
putFectch,
|
||||
getFetchWithCount
|
||||
} from "@/components/lib/api";
|
||||
import { DEFAULT_LIST_SIZE, SITE_ID } from "@/src/shared/config";
|
||||
import type { chHeadType } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList";
|
||||
@@ -61,10 +62,11 @@ export type pubFacState = {
|
||||
dmdComList: any[];
|
||||
apiMessage: string;
|
||||
pbnstHasuResCount: number;
|
||||
fclts: any[] | null;
|
||||
};
|
||||
};
|
||||
type pubFacActions = {
|
||||
pubHasuInit: (page: string, sggOrCity: string) => void;
|
||||
pubHasuInit: (page: number, sggOrCity: string) => void;
|
||||
pbnstRegClick: (pubHasuRes: pubHasuType) => void;
|
||||
//pbnstReg: (txt: string | undefined) => void;
|
||||
pbnstInsert(pbnstRes: customPbnst): Promise<string>;
|
||||
@@ -73,7 +75,7 @@ type pubFacActions = {
|
||||
fileDownLoadName: (atflCd: string, fileName: string) => void;
|
||||
pbnstRuseFcltUpdate: (ruseRes: customPbnst[]) => void;
|
||||
pbnstRuseBizUpdate: (ruseRes: fcBizType[]) => void;
|
||||
pubHasuSearch: (page: string, sggOrCity: string, searchTxt: string) => void;
|
||||
pubHasuSearch: (page: number, sggOrCity: string, searchTxt: string) => void;
|
||||
getFcOrgwts: (fcltPkList: string[], size: number) => void;
|
||||
};
|
||||
export type pubFacType = pubFacState & pubFacActions;
|
||||
@@ -98,38 +100,59 @@ export const pubFacStateExport: pubFacState = {
|
||||
dmdComList: [],
|
||||
apiMessage: "",
|
||||
pbnstHasuResCount: 1,
|
||||
fclts: null,
|
||||
},
|
||||
};
|
||||
// 재사용시설에 대한 정보 조회
|
||||
export const checkWrRegList = async () => {
|
||||
export const checkWrRegList = async (get: any, set: any) => {
|
||||
const { pbnst } = get();
|
||||
|
||||
if (Array.isArray(pbnst.fclts)) {
|
||||
return pbnst.fclts;
|
||||
}
|
||||
|
||||
const wrRegList = await getFetch("wr", `/reuseFc/pubFc`);
|
||||
return wrRegList;
|
||||
const fclts = Array.isArray(wrRegList) ? wrRegList : [];
|
||||
|
||||
set((state: pubFacState) => ({
|
||||
...state,
|
||||
pbnst: {
|
||||
...state.pbnst,
|
||||
fclts,
|
||||
},
|
||||
}));
|
||||
|
||||
return fclts;
|
||||
};
|
||||
// 하수처리시설 정보 조회
|
||||
const hasuListFetch = async (
|
||||
page: string,
|
||||
get: any,
|
||||
set: any,
|
||||
page: number = 1,
|
||||
sggOrCity: string, // 해당 지자체의 하수처리시설 조회
|
||||
searchTxt?: string
|
||||
) => {
|
||||
const checkWrRegListRes = await checkWrRegList(); // 재사용시설에 대한 정보 조회
|
||||
const wrData = await checkWrRegList(get, set); // 재사용시설에 대한 정보 조회
|
||||
const wrBscFctCdSet = new Set(
|
||||
wrData
|
||||
.map((wrItem: any) => (typeof wrItem === "string" ? wrItem.trim() : ""))
|
||||
);
|
||||
|
||||
let url = `/prcsFclt/ruseInfo/${page ? page : 1}/${DEFAULT_LIST_SIZE}/A/${sggOrCity ? sggOrCity : "11"}/0/1/SW`;
|
||||
|
||||
const data = checkWrRegListRes.filter((item: string) => item !== "");
|
||||
if (searchTxt) {
|
||||
url = url + `/${searchTxt}`;
|
||||
let url = `/prcsFclt/ruseInfo/reg/${page}/${DEFAULT_LIST_SIZE}/A/${sggOrCity ? sggOrCity : "0"}/0/1/SW`;
|
||||
if (searchTxt?.trim()) {
|
||||
url += `?swtrmtFcltNm=${encodeURIComponent(searchTxt.trim())}`;
|
||||
}
|
||||
const rainRes = await postFectch(url, data, fetchType.COMMON); // fo
|
||||
const fcltRes = await getFetchWithCount(fetchType.COMMON, url); // fo
|
||||
|
||||
const hasuList = rainRes.data.map((item: any) => {
|
||||
const hasuList = fcltRes.data.map((item: any) => {
|
||||
return {
|
||||
...item,
|
||||
fctCpc: Number(item.fctCpc) || 0,
|
||||
ruse: item.ruse === false ? "N" : "Y",
|
||||
ruse: item?.bscFctCd && wrBscFctCdSet.has(item.bscFctCd) ? "Y" : "N",
|
||||
};
|
||||
});
|
||||
|
||||
return { data: hasuList, count: rainRes.count };
|
||||
return { data: hasuList, count: fcltRes.count };
|
||||
};
|
||||
|
||||
const initFetch = async (ruseFcltPk: string | undefined) => {
|
||||
@@ -172,12 +195,12 @@ export const writeRgtrAndMdfr = (data: customPbnst[]) => {
|
||||
|
||||
return data;
|
||||
};
|
||||
export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => {
|
||||
export const pubFacActionsExport: (set: any, get: any) => pubFacActions = (set: any, get: any) => {
|
||||
return {
|
||||
// 하수처리시설을 조회한다(운영실태)
|
||||
pubHasuInit: async (page: string, sggOrCity: string) => {
|
||||
pubHasuInit: async (page: number, sggOrCity: string) => {
|
||||
try {
|
||||
const pbnstHasuRes = await hasuListFetch(page, sggOrCity); // /prcsFclt/ruseInfo
|
||||
const pbnstHasuRes = await hasuListFetch(get, set, page, sggOrCity); // /prcsFclt/ruseInfo
|
||||
return set((state: pubFacState) => ({
|
||||
...state,
|
||||
pbnst: {
|
||||
@@ -192,12 +215,12 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => {
|
||||
},
|
||||
// 하수처리시설을 조회한다(운영실태) (처리시설명 포함)
|
||||
pubHasuSearch: async (
|
||||
page: string,
|
||||
page: number,
|
||||
sggOrCity: string,
|
||||
searchTxt: string
|
||||
) => {
|
||||
try {
|
||||
const pbnstHasuRes = await hasuListFetch(page, sggOrCity, searchTxt);
|
||||
const pbnstHasuRes = await hasuListFetch(get, set, page, sggOrCity, searchTxt);
|
||||
return set((state: pubFacState) => ({
|
||||
...state,
|
||||
pbnst: {
|
||||
|
||||
@@ -47,7 +47,7 @@ export type pbnstSttnState = {
|
||||
pbnstSttnResCount: number;
|
||||
excelList: [];
|
||||
fclts: string[];
|
||||
isInit: boolean;
|
||||
isInit: boolean; // wr 하수재이용시설 조회했는지 점검
|
||||
};
|
||||
};
|
||||
|
||||
@@ -254,6 +254,7 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
|
||||
return set((state: pbnstSttnState) => ({
|
||||
pbnstSttn: {
|
||||
...state.pbnstSttn,
|
||||
isInit: true, // wr 하수재이용시설을 조회 여부??
|
||||
fclts: fclts,
|
||||
},
|
||||
}));
|
||||
|
||||
@@ -346,7 +346,7 @@ export const StoreZus = (
|
||||
return {
|
||||
...initState,
|
||||
...comFcltSearchAction(set),
|
||||
...pubFacActionsExport(set),
|
||||
...pubFacActionsExport(set, get),
|
||||
...rainFacActionsExport(set),
|
||||
...rswtFacActionsExport(set),
|
||||
...matDmdActionsExport(set),
|
||||
|
||||
@@ -66,9 +66,9 @@ export const tableData = (data: any, code: comCodeState) => {
|
||||
...item,
|
||||
sggText: sggText ?? "없음",
|
||||
cityText: cityText ?? "없음",
|
||||
bdsgUsgText: bdsgUsgText,
|
||||
lawTrgtYn: lawTrgtYn,
|
||||
grntchBdstCertGrdText: grntchBdstCertGrdText,
|
||||
bdsgUsgText: bdsgUsgText, // 건물용도명
|
||||
lawTrgtYn: lawTrgtYn, // 법정대상 여부
|
||||
grntchBdstCertGrdText: grntchBdstCertGrdText, // 녹색건축인증등급명
|
||||
};
|
||||
} else {
|
||||
returnData = {
|
||||
|
||||
Reference in New Issue
Block a user