114 lines
3.1 KiB
TypeScript
114 lines
3.1 KiB
TypeScript
import { fetchType, getFetch, getFetchWithCount } from "@/components/lib/api";
|
|
import type { CommonTableProps } from "../../common/type/header";
|
|
import type { customHtdflBdst } from "../../ruseFcltMng/fcltReg/htdflReg";
|
|
import { htdflSttHeadListExport, htdflSttNodeListExport } from "../../ruseFcltMng/fcltSttn/htdflSttn/headList";
|
|
|
|
export const htdfMapSize = 15;
|
|
export type htdfMapState = {
|
|
htdfMap: {
|
|
htdfMapRes: customHtdflBdst[];
|
|
htdfMapCount: number;
|
|
isInit: boolean;
|
|
htdfSttHeadList: CommonTableProps[];
|
|
htdfSttNodeList: CommonTableProps[];
|
|
};
|
|
};
|
|
|
|
type htdfMapActions = {
|
|
htdfMapInit: (page: number, total: number, cityOrSgg: string) => void;
|
|
htdfMapSearch: (page: number, total: number, cityOrSgg:string, searchTxt?:string) =>void
|
|
htdfMapDetile:(featureCd:string) => Promise<customHtdflBdst | undefined>;
|
|
|
|
};
|
|
|
|
export type htdfMapType = htdfMapState & htdfMapActions;
|
|
|
|
export const htdfMapStateExport: htdfMapState = {
|
|
htdfMap: {
|
|
isInit: false,
|
|
htdfMapRes: [],
|
|
htdfMapCount: 1,
|
|
htdfSttHeadList: htdflSttHeadListExport,
|
|
htdfSttNodeList: htdflSttNodeListExport,
|
|
},
|
|
};
|
|
|
|
export const htdfMapActionsExport: (set: any) => htdfMapActions = (
|
|
set: any
|
|
) => {
|
|
return {
|
|
htdfMapInit: async (page: number, total: number, cityOrSgg: string) => {
|
|
try {
|
|
const htdfMapRes = await getFetchWithCount(
|
|
fetchType.WR,
|
|
`/drain/facilityList` +
|
|
(page ? `/${page}` : "/1") +
|
|
(total ? `/${total}` : "/20") +
|
|
(cityOrSgg ? `/${cityOrSgg}` : "/0")
|
|
);
|
|
|
|
set((state: htdfMapState) => {
|
|
return {
|
|
...state,
|
|
htdfMap: {
|
|
...state.htdfMap,
|
|
htdfMapRes: htdfMapRes.data,
|
|
htdfMapCount: htdfMapRes.count,
|
|
isInit: false,
|
|
},
|
|
};
|
|
});
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|
|
},
|
|
htdfMapSearch: async (
|
|
page: number,
|
|
total: number,
|
|
cityOrSgg: string,
|
|
searchTxt?: string
|
|
) => {
|
|
try {
|
|
const htdfMapRes = await getFetchWithCount(
|
|
fetchType.WR,
|
|
`/drain/facilityList` +
|
|
(page ? `/${page}` : "/1") +
|
|
(total ? `/${total}` : "/20") +
|
|
(cityOrSgg ? `/${cityOrSgg}` : "/0") +
|
|
(searchTxt ? `/${searchTxt}` : "")
|
|
);
|
|
|
|
set((state: htdfMapState) => {
|
|
return {
|
|
...state,
|
|
htdfMap: {
|
|
...state.htdfMap,
|
|
htdfMapRes: htdfMapRes.data,
|
|
htdfMapCount: htdfMapRes.count,
|
|
},
|
|
};
|
|
});
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|
|
},
|
|
htdfMapDetile: async (featureCd: string) => {
|
|
try {
|
|
const htdfDetail = await getFetch(
|
|
fetchType.WR,
|
|
`/drain/facilityList/1/3/0/${featureCd}`
|
|
);
|
|
|
|
if (htdfDetail && htdfDetail.length > 0) {
|
|
return htdfDetail[0];
|
|
} else {
|
|
return null;
|
|
}
|
|
} catch (error) {
|
|
console.log(error);
|
|
throw error; // 호출부에서 catch 가능하도록
|
|
}
|
|
},
|
|
};
|
|
};
|