Files
frontend/apps/wr/app/store/matDmd/coMatRvw/index.tsx
T
2025-07-14 14:51:50 +09:00

207 lines
5.2 KiB
TypeScript

import { fetchType, getFetchWithCount, putFectch } from "@/components/lib/api";
import toast from "react-hot-toast";
import type { CommonTableProps } from "../../common/type/header";
import {
constCostHeadListExport,
coRvwHeadListExport,
coRvwNodeListExport,
rateFeeHeadListExport,
} from "./headList";
import type { DedMatUpdateType, DmdCoReqType } from "./type";
const coRvwHeadList = coRvwHeadListExport;
const coRvwNodeList = coRvwNodeListExport;
const rateFeeHeadList = rateFeeHeadListExport;
const constCostHeadList = constCostHeadListExport;
export type coRvwState = {
coRvw: {
isInit: boolean;
coMatRvwRes: DmdCoReqType[];
coRvwHeadList: CommonTableProps[];
coRvwNodeList: CommonTableProps[];
rateFeeHeadList: CommonTableProps[];
constCostHeadList: CommonTableProps[];
coMatRvwCount:number;
};
};
export const coRvwStateExport: coRvwState = {
coRvw: {
isInit: false,
coMatRvwRes: [],
coRvwHeadList: coRvwHeadList,
coRvwNodeList: coRvwNodeList,
rateFeeHeadList: rateFeeHeadList,
constCostHeadList: constCostHeadList,
coMatRvwCount:1
},
};
export type coRvwType = coRvwState & coRvwActions;
type coRvwActions = {
coMatRvwInit: (
pageNo: number,
pageCnt: number,
startYear: string,
endYear: string
) => void;
coMatRvwUpdate: (
splyCd: string,
dmdCd: string,
data: DedMatUpdateType
) => void;
coMatRvwSearch: (
pageNo: number,
pageCnt: number,
startYear: string,
endYear: string,
sggCd: string,
dmdCoNm: string
) => void;
coMatRvwInqua: (
pageNo: number,
pageCnt: number,
startYear: string,
endYear: string,
sggCd: string
) => void;
};
const coMatInit = async (
pageNo: number,
pageCnt: number,
startYear: string,
endYear: string
) => {
const url = `/reuseFc/request/infoList/Sub/${pageNo}/${pageCnt}/${startYear}/${endYear}`;
const coMatRvwRes = await getFetchWithCount(fetchType.WR, url);
return coMatRvwRes;
};
export const coRvwActionsExport: (set: any) => coRvwActions = (set: any) => {
return {
coMatRvwInit: async (
pageNo: number,
pageCnt: number,
startYear: string,
endYear: string
) => {
const coMatRvwRes = await coMatInit(pageNo, pageCnt, startYear, endYear);
return set((state: coRvwState) => ({
...state,
coRvw: {
...state.coRvw,
init: false,
coMatRvwRes: coMatRvwRes.data,
coMatRvwCount:coMatRvwRes.count
},
}));
},
coMatRvwUpdate: async (
splyCd: string,
dmdCd: string,
data: DedMatUpdateType
) => {
try {
const response = await putFectch(
`/reuseFc/request/cst/${splyCd}/${dmdCd}`,
data
);
if (response.status === 200) {
if(data.flg ==='Sub'){
toast.success("매칭 검토로 저장되었습니다.");
}else{
toast.success("매칭 검토완료로 저장되었습니다.");
}
const coMatRvwRes = await coMatInit(
1,
10,
new Date().getFullYear().toString(),
new Date().getFullYear().toString()
);
return set((state: coRvwState) => ({
...state,
coRvw: {
...state.coRvw,
coMatRvwRes: coMatRvwRes.data,
coMatRvwCount:coMatRvwRes.count,
init: false,
},
}));
} else {
toast.error("매칭 검토 저장에 실패했습니다.");
}
} catch (e) {
toast.error("매칭 검토 저장 오류입니다.");
console.error("coMatRvwUpdate error", e);
}
},
coMatRvwSearch: async (
pageNo: number,
pageCnt: number,
startYear: string,
endYear: string,
sggCd: string,
dmdCoNm: string
) => {
let url = `/reuseFc/request/infoList/Sub/${pageNo}/${pageCnt}/${startYear}/${endYear}`;
if (sggCd.length > 0) {
url += `/${sggCd}`;
} else {
url += `/0`;
}
if (dmdCoNm?.length > 0) {
url += `/${dmdCoNm}`;
} else {
url += `/0`;
}
console.log(" url ", url);
const coMatRvwRes = await getFetchWithCount(fetchType.WR, url);
return set((state: coRvwState) => ({
...state,
coRvw: {
...state.coRvw,
coMatRvwRes: coMatRvwRes.data,
coMatRvwCount:coMatRvwRes.count,
},
}));
},
coMatRvwInqua: async (
pageNo: number,
pageCnt: number,
startYear: string,
endYear: string,
sggCd: string
) => {
try {
let url = `/reuseFc/request/infoList/Sub/${pageNo}/${pageCnt}/${startYear}/${endYear}`;
if (sggCd.length > 0) {
url += `/${sggCd}/0`;
} else if (sggCd === "0") {
url += `/0/0`;
}
const coMatRvwRes = await getFetchWithCount(fetchType.WR, url);
return set((state: coRvwState) => ({
...state,
coRvw: {
...state.coRvw,
coMatRvwRes: coMatRvwRes.data,
coMatRvwCount:coMatRvwRes.count,
},
}));
} catch (e) {
console.log(" error ", e);
}
},
};
};