113 lines
3.1 KiB
TypeScript
113 lines
3.1 KiB
TypeScript
import { fetchType, getFetch, getFetchWithCount } from "@/components/lib/api";
|
|
import type { CommonTableProps } from "../../common/type/header";
|
|
import {
|
|
rainSttHeadListExport,
|
|
rainSttNodeListExport,
|
|
} from "../../ruseFcltMng/fcltSttn/rainSttn/headList";
|
|
import type { customRainBdst } from "../../ruseFcltMng/fcltReg/rainReg";
|
|
|
|
|
|
export const rainMapSize = 15
|
|
export type rainMapState = {
|
|
rainMap: {
|
|
rainMapRes: customRainBdst[];
|
|
rainMapCount: number;
|
|
isInit: boolean;
|
|
rainSttHeadList: CommonTableProps[];
|
|
rainSttNodeList: CommonTableProps[];
|
|
};
|
|
};
|
|
|
|
type rainMapActions = {
|
|
rainMapInit: (page: number, total: number, cityOrSgg:string) => void;
|
|
rainMapSearch: (page: number, total: number, cityOrSgg:string, searchTxt?:string) =>void
|
|
rainMapDetile:(featureCd:string) => Promise<customRainBdst | undefined>;
|
|
};
|
|
|
|
export type rainMapType = rainMapState & rainMapActions;
|
|
|
|
export const rainMapStateExport: rainMapState = {
|
|
rainMap: {
|
|
isInit: false,
|
|
rainMapRes: [],
|
|
rainMapCount: 1,
|
|
rainSttHeadList: rainSttHeadListExport,
|
|
rainSttNodeList: rainSttNodeListExport,
|
|
},
|
|
};
|
|
|
|
export const rainMapActionsExport: (set: any) => rainMapActions = (
|
|
set: any
|
|
) => {
|
|
return {
|
|
rainMapInit: async (page: number, total: number, cityOrSgg:string) => {
|
|
try {
|
|
const rainMapRes = await getFetchWithCount(
|
|
fetchType.WR,
|
|
`/reuseFc/rainyInfoList` +
|
|
(page ? `/${page}` : "/1") +
|
|
(total ? `/${total}` : "/20") +
|
|
(cityOrSgg ? `/${cityOrSgg}` : "/0")
|
|
);
|
|
|
|
set((state: rainMapState) => {
|
|
return {
|
|
...state,
|
|
rainMap: {
|
|
...state.rainMap,
|
|
rainMapRes: rainMapRes.data,
|
|
rainMapCount: rainMapRes.count,
|
|
isInit: false,
|
|
},
|
|
};
|
|
});
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|
|
},
|
|
rainMapSearch: async (page: number, total: number, cityOrSgg:string, searchTxt?:string) => {
|
|
try {
|
|
const rainMapRes = await getFetchWithCount(
|
|
fetchType.WR,
|
|
`/reuseFc/rainyInfoList` +
|
|
(page ? `/${page}` : "/1") +
|
|
(total ? `/${total}` : "/20") +
|
|
(cityOrSgg ? `/${cityOrSgg}` : "/0") +
|
|
(searchTxt ? `/${searchTxt}` : "")
|
|
);
|
|
|
|
set((state: rainMapState) => {
|
|
return {
|
|
...state,
|
|
rainMap: {
|
|
...state.rainMap,
|
|
rainMapRes: rainMapRes.data,
|
|
rainMapCount: rainMapRes.count,
|
|
},
|
|
};
|
|
});
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|
|
},
|
|
rainMapDetile: async (featureCd: string) => {
|
|
try {
|
|
console.log('featureCd ', featureCd)
|
|
|
|
const rainDetail = await getFetch(fetchType.WR,
|
|
`/reuseFc/rainyInfoList/1/3/0/${featureCd}` )
|
|
|
|
if(rainDetail&&rainDetail.length>0){
|
|
|
|
return rainDetail[0];
|
|
}else{
|
|
return null;
|
|
}
|
|
} catch (error) {
|
|
console.log(error);
|
|
throw error; // 호출부에서 catch 가능하도록
|
|
}
|
|
}
|
|
}
|
|
};
|