물재이용: 지도점검 조회 코드 로그인 코드로 수정

This commit is contained in:
leedj312
2025-10-29 19:36:04 +09:00
parent f8102ec13d
commit d2dca757a7
4 changed files with 81 additions and 62 deletions
@@ -1,12 +1,9 @@
"use client";
import { useWrStore } from "@/app/store";
import { commonCd, rainPageSize } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn";
import { rainPageSize } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn";
import { rswtPageSize } from "@/app/store/prfmncReg/chkgdnReg/rswrtChkgdn";
import {
excelDownload,
yearOptions
} from "@/components/lib/func/commom";
import { excelDownload, yearOptions } from "@/components/lib/func/commom";
import ChkgdModal from "@/components/ui/modal/chkgd/chkgdModal/chkgdModal";
import RainChkgdTable from "@/components/ui/table/chkgdTable/rainChkgd/rainChkgdTable";
import RswtChkgdTable from "@/components/ui/table/chkgdTable/rswtChkgd/rswtChkgdTable";
@@ -18,7 +15,7 @@ import {
SearchInput,
SelectBox,
Title,
UiModal
UiModal,
} from "@common/business_components/ui";
import ListDiv from "@common/business_components/ui/list_div";
import { Button, Label } from "@common/components/ui";
@@ -28,6 +25,7 @@ import { useTranslation } from "react-i18next";
export default function Page() {
const {
auth,
rainChkSttn,
rswtChkSttn,
rainChkSttnInit,
@@ -41,6 +39,7 @@ export default function Page() {
return state;
});
const { laeSeCd } = auth;
const [selFcltDiv, setSelFcltDiv] = useState("RNB");
const [rainPageNation, setRainPageNation] = useState(1);
const [rswtPageNation, setRswtPageNation] = useState(1);
@@ -49,7 +48,9 @@ export default function Page() {
open: false,
data: {},
});
const [searchYear, setSearchYear] = useState<string>(String(new Date().getFullYear()));
const [searchYear, setSearchYear] = useState<string>(
String(new Date().getFullYear())
);
const cellClick = () => {
if (searchYear) {
if (selFcltDiv === "RNB") {
@@ -58,11 +59,11 @@ export default function Page() {
rainPageNation,
rainPageSize,
searchYear,
commonCd,
laeSeCd,
fcltNm
);
} else {
rainChkSttnInit(rainPageNation, rainPageSize, searchYear, commonCd);
rainChkSttnInit(rainPageNation, rainPageSize, searchYear, laeSeCd);
}
} else {
if (fcltNm) {
@@ -70,11 +71,11 @@ export default function Page() {
rswtPageNation,
rswtPageSize,
searchYear,
commonCd,
laeSeCd,
fcltNm
);
} else {
rswtChkSttnInit(rswtPageNation, rswtPageSize, searchYear, commonCd);
rswtChkSttnInit(rswtPageNation, rswtPageSize, searchYear, laeSeCd);
}
}
}
@@ -84,15 +85,9 @@ export default function Page() {
if (pageNo > 0) {
setRainPageNation(pageNo);
if (fcltNm) {
rainChkSttnNmSearch(
pageNo,
rainPageSize,
searchYear,
commonCd,
fcltNm
);
rainChkSttnNmSearch(pageNo, rainPageSize, searchYear, laeSeCd, fcltNm);
} else {
rainChkSttnInit(pageNo, rainPageSize, searchYear, commonCd);
rainChkSttnInit(pageNo, rainPageSize, searchYear, laeSeCd);
}
}
};
@@ -101,38 +96,38 @@ export default function Page() {
if (pageNo > 0) {
setRswtPageNation(pageNo);
if (fcltNm) {
rswtChkNmSttnSearch(
pageNo,
rainPageSize,
searchYear,
commonCd,
fcltNm
);
rswtChkNmSttnSearch(pageNo, rainPageSize, searchYear, laeSeCd, fcltNm);
} else {
rswtChkSttnInit(pageNo, rswtPageSize, searchYear, commonCd);
rswtChkSttnInit(pageNo, rswtPageSize, searchYear, laeSeCd);
}
}
};
useEffect(() => {
if (!rainChkSttn.isInit) {
isRainSttn(true)
rainChkSttnInit(1, rainPageSize, new Date().getFullYear().toString(), commonCd);
isRainSttn(true);
rainChkSttnInit(
1,
rainPageSize,
new Date().getFullYear().toString(),
laeSeCd
);
setIsModal({ data: {}, open: false });
}
}, [rainChkSttn.isInit, rainChkSttnInit, rainPageSize]);
useEffect(() => {
if (!rswtChkSttn.isInit) {
setIsModal({ data: {}, open: false });
rswtChkSttnInit(1, rswtPageSize, new Date().getFullYear().toString(), commonCd);
isRswtSttn(true)
rswtChkSttnInit(
1,
rswtPageSize,
new Date().getFullYear().toString(),
laeSeCd
);
isRswtSttn(true);
}
}, [rswtChkSttn.isInit, rswtChkSttnInit, rswtPageSize])
}, [rswtChkSttn.isInit, rswtChkSttnInit, rswtPageSize]);
const handleClick = useCallback(
(data: any) => {
@@ -140,11 +135,14 @@ export default function Page() {
},
[isModal]
);
const { t } = useTranslation('base');
const { t } = useTranslation("base");
const excelDown = () => {
if (rainChkSttn.sttnExcelList && selFcltDiv === "RNB") {
if (!rainChkSttn.sttnExcelList || rainChkSttn.sttnExcelList.length === 0) {
toast.error(t('excelDownErrMsg'));
if (
!rainChkSttn.sttnExcelList ||
rainChkSttn.sttnExcelList.length === 0
) {
toast.error(t("excelDownErrMsg"));
return;
}
excelDownload(
@@ -155,8 +153,11 @@ export default function Page() {
3
);
} else if (rswtChkSttn.sttnExcelList && selFcltDiv === "RST") {
if (!rswtChkSttn.sttnExcelList || rswtChkSttn.sttnExcelList.length === 0) {
toast.error(t('excelDownErrMsg'));
if (
!rswtChkSttn.sttnExcelList ||
rswtChkSttn.sttnExcelList.length === 0
) {
toast.error(t("excelDownErrMsg"));
return;
}
excelDownload(
@@ -167,7 +168,7 @@ export default function Page() {
3
);
}
}
};
return (
<ContentsDiv>
@@ -177,7 +178,9 @@ export default function Page() {
<SearchDiv>
<SearchFormLeft>
<div className="col-span-2 flex flex-row space-x-2">
<Label className="w-48 mt-2 text-xl text-gray-600">{'지도점검년도'}</Label>
<Label className="w-48 mt-2 text-xl text-gray-600">
{"지도점검년도"}
</Label>
<SelectBox
className="w-full h-full text-2xl"
label=""
@@ -190,7 +193,9 @@ export default function Page() {
/>
</div>
<div className="col-span-2 flex flex-row space-x-2">
<Label className="w-28 mt-2 text-xl text-gray-600">{'시설구분'}</Label>
<Label className="w-28 mt-2 text-xl text-gray-600">
{"시설구분"}
</Label>
<SelectBox
className={"w-full h-full text-2xl"}
label={""}
@@ -198,9 +203,8 @@ export default function Page() {
selectArray={rainChkSttn.fcltDiv}
onSelectValue={(val: string | number) => {
if (val === "RST") rswtChkPolInit();
setSelFcltDiv(String(val))
}
}
setSelFcltDiv(String(val));
}}
value={selFcltDiv ?? rainChkSttn.fcltDiv[0]?.val}
/>
</div>
@@ -227,7 +231,13 @@ export default function Page() {
>
조회
</Button>
<Button color="green" size={"sm"} onClick={() => { excelDown() }}>
<Button
color="green"
size={"sm"}
onClick={() => {
excelDown();
}}
>
다운로드
</Button>
</div>
@@ -241,8 +251,8 @@ export default function Page() {
<ListDiv>
{selFcltDiv === "RNB" ? (
<RainChkgdTable
deleteData={() => { }}
detailUp={() => { }}
deleteData={() => {}}
detailUp={() => {}}
handleClick={handleClick}
rainChkData={rainChkSttn.rainChkRes}
pageNation={rainPageNation}
@@ -252,8 +262,8 @@ export default function Page() {
/>
) : (
<RswtChkgdTable
detaiRswtlUpdate={() => { }}
deleteRswtData={() => { }}
detaiRswtlUpdate={() => {}}
deleteRswtData={() => {}}
handleRswtClick={handleClick}
rswtChkData={rswtChkSttn.rswtChkRes}
pageNation={rswtPageNation}
@@ -271,7 +281,14 @@ export default function Page() {
setIsModal({ open: !open, data: {} });
}}
bodyClass={"w-[80vw] max-w-none"}
body={<ChkgdModal readonly={true} type={selFcltDiv} obj={isModal.data} setIsModal={() => { }} />}
body={
<ChkgdModal
readonly={true}
type={selFcltDiv}
obj={isModal.data}
setIsModal={() => {}}
/>
}
></UiModal>
<Toaster position="top-center" />
</ContentsDiv>
@@ -25,7 +25,6 @@ import {
} from "./headList";
export const rainPageSize = 5;
export const commonCd = "41";
export type rainChkZodType = z.infer<typeof rainChkZod>;
const fcltDiv = [
@@ -75,7 +74,7 @@ type rainChkgdnActions = {
sggCode: SelectDataType[],
sggCd:string
): Promise<void>;
rainChkExcelDataUPload(excelData: rainChkZodType[] ,year :string) : Promise<void>;
rainChkExcelDataUPload(excelData: rainChkZodType[] ,year :string,laeSeCd:string) : Promise<void>;
rainChkDelete(chkgdnSns: number[] ,year :string): Promise<void>;
rainChkHeadChange: (rainChkgdn: rainChkgdnState, isEdit: boolean) => void;
rainChkNmSearch: (
@@ -168,7 +167,7 @@ export const rainChkgdnActionsExport: (set: any) => rainChkgdnActions = (
},
}));
},
rainChkExcelDataUPload: async (excelData: rainChkZodType[] ,year:string) => {
rainChkExcelDataUPload: async (excelData: rainChkZodType[] ,year:string,laeSeCd:string) => {
set((state: rainChkgdnType) => (
{ rainChkgdn: { ...state.rainChkgdn, isLoading: true } }));
try {
@@ -178,7 +177,7 @@ export const rainChkgdnActionsExport: (set: any) => rainChkgdnActions = (
1,
rainPageSize,
year,
commonCd
laeSeCd
);
set((state: rainChkgdnState) => ({
...state,
@@ -78,7 +78,7 @@ type rswtChkgdnActions = {
sggCode: SelectDataType[],
sggCd: string,
): Promise<void>;
rswtChkExceDataUpload: (excelData: rswtChkZodType[]) => void;
rswtChkExceDataUpload: (excelData: rswtChkZodType[],laeSeCd:string) => void;
rswtChkDelete: (chkgdnSns: number[] ,year:string) => void;
rswtChkDetilsUpdate: (rswtChkDetails: rswtrChkDetailsZodType[] ,year:string) => void;
rswtChkPolAndGuide: (chkgdnSn: number) => void;
@@ -244,7 +244,7 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
console.log(error);
}
},
rswtChkExceDataUpload: async (excelData: rswtChkZodType[]) => {
rswtChkExceDataUpload: async (excelData: rswtChkZodType[],laeSeCd:string) => {
try {
set((state: rswtChkgdnType) => (
{ rswtChkgdn: { ...state.rswtChkgdn, isLoading: true } }));
@@ -256,7 +256,7 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
});
}
const currentYear = new Date().getFullYear().toString();
const rswtChkRes = await initFetch(1, rswtPageSize, currentYear, "0");
const rswtChkRes = await initFetch(1, rswtPageSize, currentYear, laeSeCd);
return set((state: rswtChkgdnState) => ({
...state,
rswtChkgdn: {
@@ -36,6 +36,7 @@ export default function ChkgdExcel({
setYearChange: (year: string) => void;
}) {
const {
auth,
rswtChkgdn,
rainChkgdn,
rainChkExcelDataUPload,
@@ -51,6 +52,7 @@ export default function ChkgdExcel({
const [file, setFile] = useState<File | null>(null);
const { laeSeCd } = auth;
const clearFile = () => {
if (fileInputRef.current) {
fileInputRef.current.value = ""; // ✅ 파일 선택 비우기
@@ -202,7 +204,8 @@ export default function ChkgdExcel({
} else {
rainChkExcelDataUPload(
excelData as rainChkZodType[],
form.getValues("chckYr")
form.getValues("chckYr"),
laeSeCd
);
setIsRegExcel(false);
setYearChange(form.getValues("chckYr"));
@@ -213,7 +216,7 @@ export default function ChkgdExcel({
return;
} else {
rswtChkExceDataUpload(excelRswtData as rswtChkZodType[]);
rswtChkExceDataUpload(excelRswtData as rswtChkZodType[], laeSeCd);
setIsRegExcel(false);
setYearChange(form.getValues("chckYr"));
}