207 lines
5.2 KiB
TypeScript
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);
|
|
}
|
|
},
|
|
};
|
|
};
|