지도점검등록 및 현황 페이징 수정,

This commit is contained in:
jyha00
2025-07-04 13:10:23 +09:00
parent 57beda429a
commit f592ab31d8
9 changed files with 107 additions and 76 deletions
@@ -315,7 +315,7 @@ export default function Page() {
</Tooltip>
</TooltipProvider>
<Button
size={"sm"}
onClick={() => {
@@ -344,7 +344,7 @@ export default function Page() {
rainChkData={rainChkgdn.rainChk}
pageNation={rainPageNation}
onPageChange={rainPageChange}
/>
pageCount={rainChkgdn.rainChkCount} />
) : (
<RswtChkgdTable
detaiRswtlUpdate={setUpdateRSwtDetail}
@@ -353,6 +353,7 @@ export default function Page() {
rswtChkData={rswtChkgdn.rswtChkRes}
pageNation={rswtPageNation}
onPageChange={rswtPageChange}
pageCount={rswtChkgdn.rswtChkCount}
/>
)}
</ListDiv>
@@ -1,6 +1,8 @@
"use client";
import { useWrStore } from "@/app/store";
import { commonCd, rainPageSize } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn";
import { rswtPageSize } from "@/app/store/prfmncReg/chkgdnReg/rswrtChkgdn";
import {
excelDownload,
yearOptions
@@ -39,6 +41,8 @@ export default function Page() {
});
const [selFcltDiv, setSelFcltDiv] = useState("RNB");
const [rainPageNation, setRainPageNation] = useState(1);
const [rswtPageNation, setRswtPageNation] = useState(1);
const [isModal, setIsModal] = useState({
open: false,
data: {},
@@ -47,29 +51,43 @@ export default function Page() {
const cellClick = () => {
if (searchYear) {
if (selFcltDiv === "RNB") {
rainChkSttnSearch(searchYear, "0");
rainChkSttnSearch(rainPageNation, rainPageSize, searchYear, commonCd);
} else {
rswtChkSttnSearch(searchYear, "0");
rswtChkSttnSearch(rswtPageNation, rswtPageSize, searchYear, commonCd);
}
}
};
const rainPageChange = (pageNo: number) => {
if (pageNo > 0) {
setRainPageNation(pageNo);
rainChkSttnInit(pageNo, rainPageSize, searchYear, commonCd);
}
};
const rswtPageChange = (pageNo: number) => {
if (pageNo > 0) {
setRswtPageNation(pageNo);
rswtChkSttnInit(pageNo, rswtPageSize, searchYear, commonCd);
}
};
useEffect(() => {
if (!rainChkSttn.isInit) {
isRainSttn(true)
rainChkSttnInit(new Date().getFullYear().toString(), "0");
rainChkSttnInit(1, rainPageSize, new Date().getFullYear().toString(), commonCd);
setIsModal({ data: {}, open: false });
}
}, [rainChkSttn.isInit, rainChkSttnInit]);
}, [rainChkSttn.isInit, rainChkSttnInit, rainPageSize]);
useEffect(() => {
if (!rswtChkSttn.isInit) {
setIsModal({ data: {}, open: false });
rswtChkSttnInit(new Date().getFullYear().toString(), "0");
rswtChkSttnInit(1, rswtPageSize, new Date().getFullYear().toString(), commonCd);
isRswtSttn(true)
}
}, [rswtChkSttn.isInit, rswtChkSttnInit])
}, [rswtChkSttn.isInit, rswtChkSttnInit, rswtPageSize])
const handleClick = useCallback(
@@ -163,6 +181,9 @@ export default function Page() {
detailUp={() => { }}
handleClick={handleClick}
rainChkData={rainChkSttn.rainChkRes}
pageNation={rainPageNation}
onPageChange={rainPageChange}
pageCount={rainChkSttn.rainChkCount}
/>
) : (
<RswtChkgdTable
@@ -170,6 +191,9 @@ export default function Page() {
deleteRswtData={() => { }}
handleRswtClick={handleClick}
rswtChkData={rswtChkSttn.rswtChkRes}
pageNation={rswtPageNation}
onPageChange={rswtPageChange}
pageCount={rswtChkSttn.rswtChkCount}
/>
)}
</ListDiv>
@@ -181,7 +205,7 @@ export default function Page() {
setIsModal({ open: !open, data: {} });
}}
bodyClass={"w-[80vw] max-w-none"}
body={<ChkgdModal type={selFcltDiv} obj={isModal.data} />}
body={<ChkgdModal type={selFcltDiv} obj={isModal.data} setIsModal={() => { }} />}
></UiModal>
<Toaster position="top-center" />
</ContentsDiv>
@@ -24,7 +24,7 @@ import {
import type { TableUpperProps } from "@/app/store/common/type/header";
import toast from "react-hot-toast";
export const rainPageSize = 10;
export const rainPageSize = 5;
export const commonCd = "41";
export type rainChkZodType = z.infer<typeof rainChkZod>;
@@ -132,7 +132,6 @@ const initFetch = async (
) => {
const currentYear = new Date().getFullYear().toString();
console.log("cnt ", cnt);
const rainRes = await getCountFetch(
"wr",
`/reuseChk/rainy` +
@@ -142,7 +141,6 @@ const initFetch = async (
(sgg ? `/${sgg}` : "/0")
);
console.log(" rainRes ", rainRes);
return rainRes;
};
@@ -193,7 +191,6 @@ export const rainChkgdnActionsExport: (set: any) => rainChkgdnActions = (
toast.error("지도점검 등록이 실패되었습니다.");
}
} catch (error) {
console.log(error);
toast.error("지도점검 등록이 실패되었습니다.");
} finally {
set((state: rainChkgdnType) => ({ rainChkgdn: { ...state.rainChkgdn, isLoading: false } }));
@@ -28,7 +28,7 @@ import { type chHeadType } from "../rainChkgdn/headList";
import type { TableUpperProps } from "@/app/store/common/type/header";
import toast from "react-hot-toast";
export const rswtPageSize = 10;
export const rswtPageSize = 5;
const rswtChkHeadList = rswtChkHeadListExport;
const rswtDetailHeadList = rswtDetailHeadListExport;
@@ -43,7 +43,6 @@ export type rswtChkgdnState = {
rswtChkgdn: {
rswtChkHeadList: TableUpperProps[];
rswtDetailHeadList: TableUpperProps[];
rswtHeadNm: chHeadType[];
excelList: SheetParameter[];
rswtChkRes: rswtChkZodType[];
@@ -241,7 +240,6 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
try {
set((state: rswtChkgdnType) => (
{ rswtChkgdn: { ...state.rswtChkgdn, isLoading: true } }));
console.log('excelData ', excelData)
const res = await postFectch("/reuseChk/reuseWater", excelData);
if (res.ok) {
ToastFormUi({
@@ -1,8 +1,8 @@
import type { rainChkZodType } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn";
import { getFetch } from "@/components/lib/api";
import { getCountFetch, getFetch } from "@/components/lib/api";
import type { SelectDataType } from "@common/business_components/ui";
import { rainChkgdnHeadSttnExport, ruseSttnHeadListExport, splSttnHeadListExport } from "./headList";
import { rainMainHeadNmExport, type chHeadType } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList";
import { rainMainHeadNmExport, type chHeadType } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList";
import { buildingExcelRainSttn } from "./excel";
import type { TableUpperProps } from "@/app/store/common/type/header";
@@ -24,20 +24,21 @@ export type rainChkSttnState = {
rainChkRes: rainChkZodType[];
fcltDiv: SelectDataType[];
rainChkgdnHeadList: TableUpperProps[];
rainHeadNm:chHeadType[];
rainHeadNm: chHeadType[];
ruseHeadList: TableUpperProps[];
splHeadList: TableUpperProps[];
sttnExcelList:[]
sttnExcelList: []
isInit: boolean;
isSttn:boolean;
isSttn: boolean;
rainChkCount: number;
};
};
type rainChkSttnActions = {
rainChkSttnInit: (searchTxt: string, sggCd: string) => void;
rainChkSttnSearch: (searchTxt: string, sggCd: string) => void;
isRainSttn:(isSttn:boolean) => void;
getRainSttnExcel:(excelList:rainChkZodType[]) => void;
rainChkSttnInit: (pageNo: number, cnt: number, searchTxt: string, sggCd: string) => void;
rainChkSttnSearch: (pageNo: number, cnt: number, searchTxt: string, sggCd: string) => void;
isRainSttn: (isSttn: boolean) => void;
getRainSttnExcel: (excelList: rainChkZodType[]) => void;
};
export type rainChkSttnType = rainChkSttnState & rainChkSttnActions;
@@ -49,18 +50,23 @@ export const rainChkSttnStateExport: rainChkSttnState = {
rainChkgdnHeadList: rainChkgdnHeadList,
ruseHeadList: ruseHeadList,
splHeadList: splHeadList,
rainHeadNm:rainHeadNm,
rainHeadNm: rainHeadNm,
isInit: false,
sttnExcelList:[],
isSttn:false,
sttnExcelList: [],
isSttn: false,
rainChkCount: 1,
},
};
const initFetch = async (txt: string | undefined, sgg: string | undefined) => {
const initFetch = async (pageNo: number, cnt: number, txt: string | undefined, sgg: string | undefined) => {
const currentYear = new Date().getFullYear().toString();
const rainRes = await getFetch(
const rainRes = await getCountFetch(
"wr",
`/reuseChk/rainy/` + (txt ? `${txt}` : currentYear) + (sgg ? `/${sgg}` : "/0")
`/reuseChk/rainy` +
(pageNo ? `/${pageNo}` : "/1") +
(cnt ? `/${cnt}` : "/5") +
(txt ? `/${txt}` : `/${currentYear}`) +
(sgg ? `/${sgg}` : "/0")
);
return rainRes;
};
@@ -68,48 +74,50 @@ export const rainChkSttnActionsExport: (set: any) => rainChkSttnActions = (
set: any
) => {
return {
rainChkSttnInit: async (searchTxt: string, sggCd: string) => {
rainChkSttnInit: async (pageNo: number, cnt: number, searchTxt: string, sggCd: string) => {
try {
const rainChkRes = await initFetch(searchTxt, sggCd);
const rainChkRes = await initFetch(pageNo, cnt, searchTxt, sggCd);
return set((state: rainChkSttnState) => ({
...state,
rainChkSttn: {
...state.rainChkSttn,
rainChkRes:rainChkRes
rainChkRes: rainChkRes.data,
rainChkCount: rainChkRes.count,
isSttn: true
},
}));
} catch (error) {
console.log(error);
}
},
rainChkSttnSearch: async (searchTxt: string, sggCd: string) => {
rainChkSttnSearch: async (pageNo: number, cnt: number, searchTxt: string, sggCd: string) => {
try {
const rainChkRes = await initFetch(searchTxt, sggCd);
const rainChkRes = await initFetch(pageNo, cnt, searchTxt, sggCd);
return set((state: rainChkSttnState) => ({
...state,
rainChkSttn: {
...state.rainChkSttn,
rainChkRes:rainChkRes
rainChkRes: rainChkRes
},
}));
} catch (error) {
console.log(error);
}
},isRainSttn :(isSttn:boolean) =>{
}, isRainSttn: (isSttn: boolean) => {
try {
return set((state: rainChkSttnState) => ({
...state,
rainChkSttn: {
...state.rainChkSttn,
isSttn:isSttn
isSttn: isSttn
},
}));
} catch (error) {
console.log(error);
}
},getRainSttnExcel: async (excelList:rainChkZodType[]) => {
}, getRainSttnExcel: async (excelList: rainChkZodType[]) => {
try {
const excelData = buildingExcelRainSttn(excelList)
@@ -118,7 +126,7 @@ export const rainChkSttnActionsExport: (set: any) => rainChkSttnActions = (
...state,
rainChkSttn: {
...state.rainChkSttn,
sttnExcelList:excelData
sttnExcelList: excelData
},
}));
} catch (error) {
@@ -3,7 +3,7 @@ import { rswtChkSttnHeadListExport, rswtDetailSttnHeadListExport } from "./headL
import type { TableUpperProps } from "@/app/store/common/type/header";
import type { chHeadType } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList";
import type { rswtChkZodType } from "@/app/store/prfmncReg/chkgdnReg/rswrtChkgdn";
import { getFetch } from "@/components/lib/api";
import { getCountFetch, getFetch } from "@/components/lib/api";
import { buildingExcelRswtSttn } from "./excel";
const rswtChkHeadList = rswtChkSttnHeadListExport;
@@ -20,14 +20,15 @@ export type rswtChkSttnState = {
rswtChkRes: rswtChkZodType[];
isInit: boolean;
isSttn: boolean;
rswtChkCount: number;
};
};
type rswtChkSttnActions = {
rswtChkSttnInit: (searchTxt: string, sggCd: string) => void;
rswtChkSttnInit: (pageNo: number, cnt: number, searchTxt: string, sggCd: string) => void;
isRswtSttn: (isSttn: boolean) => void;
getRswtSttnExcel: (excelList: rswtChkZodType[]) => void;
rswtChkSttnSearch: (searchTxt: string, sggCd: string) => void;
rswtChkSttnSearch: (pageNo: number, cnt: number, searchTxt: string, sggCd: string) => void;
};
export type rswtChkSttnType = rswtChkSttnState & rswtChkSttnActions;
@@ -41,15 +42,18 @@ export const rswtChkStateExport: rswtChkSttnState = {
rswtChkRes: [],
isInit: false,
isSttn: false,
rswtChkCount: 1,
},
};
const initFetch = async (year: string | undefined, sgg: string | undefined) => {
const initFetch = async (pageNo: number, cnt: number, year: string | undefined, sgg: string | undefined) => {
const currentYear = new Date().getFullYear().toString();
const rswtChkRes = await getFetch(
const rswtChkRes = await getCountFetch(
"wr",
`/reuseChk/reuseWater/` +
(year ? `${year}` : currentYear) +
`/reuseChk/reuseWater` +
(pageNo ? `/${pageNo}` : "/1") +
(cnt ? `/${cnt}` : "/20") +
(year ? `/${year}` : `/${currentYear}`) +
(sgg ? `/${sgg}` : "/0")
);
return rswtChkRes;
@@ -60,14 +64,15 @@ export const rswtChkSttnActionsExport: (set: any) => rswtChkSttnActions = (
set: any
) => {
return {
rswtChkSttnInit: async (searchTxt: string, sggCd: string) => {
rswtChkSttnInit: async (pageNo: number, cnt: number, searchTxt: string, sggCd: string) => {
try {
const rswtChkRes = await initFetch(searchTxt, sggCd);
const rswtChkRes = await initFetch(pageNo, cnt, searchTxt, sggCd);
return set((state: rswtChkSttnState) => ({
...state,
rswtChkSttn: {
...state.rswtChkSttn,
rswtChkRes: rswtChkRes,
rswtChkRes: rswtChkRes.data,
rswtChkCount: rswtChkRes.count,
isInit: false,
},
}));
@@ -104,15 +109,16 @@ export const rswtChkSttnActionsExport: (set: any) => rswtChkSttnActions = (
console.log(error);
}
},
rswtChkSttnSearch: async (searchTxt: string, sggCd: string) => {
rswtChkSttnSearch: async (pageNo: number, cnt: number, searchTxt: string, sggCd: string) => {
try {
const rswtChkRes = await initFetch(searchTxt, sggCd);
const rswtChkRes = await initFetch(pageNo, cnt, searchTxt, sggCd);
return set((state: rswtChkSttnState) => ({
...state,
rswtChkSttn: {
...state.rswtChkSttn,
rswtChkRes: rswtChkRes
rswtChkRes: rswtChkRes.data,
rswtChkCount: rswtChkRes.count,
},
}));
} catch (error) {
@@ -1,16 +1,14 @@
import { useWrStore } from "@/app/store";
import { ScrollArea, Title } from "@common/business_components/ui";
import { Button } from "@common/components/ui";
import { useEffect, useState } from "react";
import { headMakeprfmnc } from "@/app/ruseFcltMng/prfmncReg/chkgdnReg/TableHead";
import { GuideDetailsTable } from "@/components/ui/table/chkgdTable/guideDetailTable/guideDetailTable";
import type { TableUpperProps } from "@/app/store/common/type/header";
import type { splRuseWaterType } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList";
import type { rswtrPolutionsZode } from "@/app/store/prfmncReg/chkgdnReg/rswrtChkgdn/headList";
import { GuideDetailsTable } from "@/components/ui/table/chkgdTable/guideDetailTable/guideDetailTable";
import { ScrollArea, Title } from "@common/business_components/ui";
import { Button } from "@common/components/ui";
import React, { useEffect, useState } from "react";
import type { z } from "zod";
import React from "react";
import type { TableUpperProps } from "@/app/store/common/type/header";
export default function ChkgdModal({ type, obj ,setIsModal }: { type: string; obj: any , setIsModal:(open:boolean)=>void}) {
export default function ChkgdModal({ type, obj, setIsModal }: { type: string; obj: any, setIsModal: (open: boolean) => void }) {
const {
rainChkgdn,
rswtChkgdn,
@@ -253,7 +251,8 @@ export default function ChkgdModal({ type, obj ,setIsModal }: { type: string; ob
</div>
<div className="flex justify-between">
<h3 className="text-2xl font-bold text-gray-900 mt-2 ml-6">
{`(${obj.bdstNm})`}
{type === "RNB"
? `(${obj.bdstNm})` : `(${obj.building.bdstNm})`}
</h3>
{!rainChkSttn.isSttn ? (
<Button className="" onClick={allDataUpdate}>
@@ -273,7 +272,7 @@ export default function ChkgdModal({ type, obj ,setIsModal }: { type: string; ob
<GuideDetailsTable
chgRes={guidData || []}
headList={headList.splHeadList}
upheadList={type === "RNB"? rainChkgdn.rainSplHeadNm :rswtChkgdn.rswtSplHeadNm}
upheadList={type === "RNB" ? rainChkgdn.rainSplHeadNm : rswtChkgdn.rswtSplHeadNm}
type={""}
setChGuidData={(data) => {
setChGuidData(data);
@@ -287,7 +286,7 @@ export default function ChkgdModal({ type, obj ,setIsModal }: { type: string; ob
<GuideDetailsTable
chgRes={guidData || []}
headList={headList.ruseHeadList}
upheadList={type === "RNB"? rainChkgdn.rainRuseHeadNm :rswtChkgdn.rswtRuseHeadNm}
upheadList={type === "RNB" ? rainChkgdn.rainRuseHeadNm : rswtChkgdn.rswtRuseHeadNm}
type={""}
setChGuidData={(data) => {
setChGuidData(data);
@@ -25,6 +25,7 @@ export default function RainChkgdTable({
rainChkData,
pageNation,
onPageChange,
pageCount,
}: {
detailUp: (data: rainChkZodType[]) => void;
handleClick?: (data: any) => void;
@@ -32,6 +33,7 @@ export default function RainChkgdTable({
rainChkData?: rainChkZodType[];
pageNation: number;
onPageChange: (page: number) => void;
pageCount: number;
}) {
const { code, rainChkgdn, rainChkSttn, getRainSttnExcel } = useWrStore((state) => state);
const [makeTableData, setMakeTableData] = useState<any[]>([]);
@@ -74,7 +76,7 @@ export default function RainChkgdTable({
useEffect(() => {
setSelectedIds([])// 셀렉트 초기화를 위한 작업
if (rainChkData&&rainChkData.length>0) {
if (rainChkData && rainChkData.length > 0) {
const rainChg = rainChkData?.map((item: any) => {
const bud = tableData([item.building], { code });
@@ -86,7 +88,7 @@ export default function RainChkgdTable({
});
setMakeTableData(rainChkTableData(rainChg));
}else{
} else {
setMakeTableData([]);
}
}, [rainChkData, code]);
@@ -170,14 +172,8 @@ export default function RainChkgdTable({
})
}
}, [rainChkSttn.isSttn, rainChkgdn.rainChkgdnHeadList, rainChkSttn.rainChkgdnHeadList]);
useEffect(() =>{
console.log('rainChkgdn.count ', rainChkgdn.rainChkCount)
},[rainChkgdn.rainChkCount])
return (
<>
<LoadingOverlay isLoading={rainChkgdn.isLoading}></LoadingOverlay>
@@ -202,7 +198,7 @@ export default function RainChkgdTable({
</TableBody>
</Table>
<UiPageNations
total={rainChkgdn.rainChkCount||20}
total={pageCount}
cur={pageNation}
pageSize={rainPageSize}
onPageChange={onPageChange}
@@ -25,6 +25,7 @@ export default function RswtChkgdTable({
rswtChkData,
pageNation,
onPageChange,
pageCount,
}: {
detaiRswtlUpdate: (data: rswtrChkDetailsZodType[]) => void;
handleRswtClick?: (data: any) => void;
@@ -32,6 +33,7 @@ export default function RswtChkgdTable({
rswtChkData: rswtChkZodType[];
pageNation: number;
onPageChange: (page: number) => void;
pageCount: number;
}) {
const { code, rswtChkgdn, rswtChkSttn, rswtChkgdnInit, rswtChkPolAndGuide, getRswtSttnExcel } = useWrStore(
(state) => state
@@ -152,7 +154,7 @@ export default function RswtChkgdTable({
</TableBody>
</Table>
<UiPageNations
total={rswtChkgdn.rswtChkCount}
total={pageCount}
cur={pageNation}
pageSize={rswtPageSize}
onPageChange={onPageChange}