빗물/중수도/온배수 등록 시, 지도점검 등록, 삭제 시, 실적 등록, 삭제 시 confirm 창 추가
This commit is contained in:
@@ -11,6 +11,7 @@ import {
|
||||
type rswtrChkDetailsZodType,
|
||||
} from "@/app/store/prfmncReg/chkgdnReg/rswrtChkgdn";
|
||||
import {
|
||||
confirmToast,
|
||||
excelArrayDownload,
|
||||
excelDownload,
|
||||
yearOptions,
|
||||
@@ -39,6 +40,7 @@ import {
|
||||
} from "@common/components/ui/tooltip";
|
||||
import { useCallback, useEffect, useState } from "react";
|
||||
import toast, { Toaster } from "react-hot-toast";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export default function Page() {
|
||||
const {
|
||||
@@ -201,12 +203,19 @@ export default function Page() {
|
||||
}
|
||||
}, [rainChkgdn.isSttn, rswtChkgdn.isSttn]);
|
||||
|
||||
const { t } = useTranslation('base');
|
||||
const clickDelete = (data: number[], selFcltDiv: string) => {
|
||||
if (data.length > 0) {
|
||||
if (selFcltDiv === "RNB") {
|
||||
rainChkDelete(data, searchYear);
|
||||
const handleConfirm = async () => {
|
||||
rainChkDelete(data, searchYear);
|
||||
};
|
||||
confirmToast(t('isDeleteMsg'), handleConfirm);
|
||||
} else {
|
||||
rswtChkDelete(data, searchYear);
|
||||
const handleConfirm = async () => {
|
||||
rswtChkDelete(data, searchYear);
|
||||
};
|
||||
confirmToast(t('isDeleteMsg'), handleConfirm);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
"use client";
|
||||
import { useWrStore } from "@/app/store";
|
||||
import type { pubHasuType } from "@/app/store/ruseFcltMng/fcltReg/pbnstReg/type";
|
||||
import { excelDownload, yearOptions } from "@/components/lib/func/commom";
|
||||
import { confirmToast, excelDownload, yearOptions } from "@/components/lib/func/commom";
|
||||
import PbnPrfExcelModal from "@/components/ui/modal/chkgd/pbnPrfExcelModal/pbnPrfExcelModal";
|
||||
import {
|
||||
ContentsDiv,
|
||||
@@ -37,12 +37,13 @@ import {
|
||||
type PrfType,
|
||||
} from "@/app/store/prfmncReg/pbnstPrfmncReg/type";
|
||||
import { excelToPbnPrfData } from "@/app/store/prfmncReg/pbnstPrfmncReg/excel";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export default function prfmncPrfmncReg() {
|
||||
const { code, prfmnc, prfmncHasuInit, prfmnRegData,prfmncHasuNmSearch } = useWrStore(
|
||||
const { code, prfmnc, prfmncHasuInit, prfmnRegData, prfmncHasuNmSearch } = useWrStore(
|
||||
(state) => state
|
||||
);
|
||||
const { pbnstPrfmncHeadList, monthHeadList, prfmncRes,prfmncResCount } = prfmnc;
|
||||
const { pbnstPrfmncHeadList, monthHeadList, prfmncRes, prfmncResCount } = prfmnc;
|
||||
const [bdstTable, setbdstTable] = useState<FcPrfType[]>();
|
||||
const [searchTxt, setSearchTxt] = useState<string>();
|
||||
const [isExcelOpen, setIsExcelOPen] = useState<{
|
||||
@@ -65,20 +66,40 @@ export default function prfmncPrfmncReg() {
|
||||
"A1:O1"
|
||||
);
|
||||
}, [prfmnc.excelList]);
|
||||
/*
|
||||
const onSave = useCallback(
|
||||
async() => {
|
||||
if (pbnstRuseFcltPk) {
|
||||
await prfmnRegData(pageNation,'41',
|
||||
excelToPbnPrfData(
|
||||
inputData as unknown as JSON[],
|
||||
searchYear,
|
||||
pbnstRuseFcltPk
|
||||
) as unknown as PrfType
|
||||
);
|
||||
// cellClick(cellNum)
|
||||
}
|
||||
}, [inputData, searchYear, pbnstRuseFcltPk, pageNation,cellNum]);*/
|
||||
|
||||
const onSave = useCallback(
|
||||
async() => {
|
||||
if (pbnstRuseFcltPk) {
|
||||
await prfmnRegData(pageNation,'41',
|
||||
const { t } = useTranslation('base');
|
||||
const onSave = useCallback(() => {
|
||||
const handleConfirm = async () => {
|
||||
if (!pbnstRuseFcltPk) return;
|
||||
|
||||
prfmnRegData(
|
||||
pageNation,
|
||||
'41',
|
||||
excelToPbnPrfData(
|
||||
inputData as unknown as JSON[],
|
||||
searchYear,
|
||||
pbnstRuseFcltPk
|
||||
) as unknown as PrfType
|
||||
) as unknown as PrfType,
|
||||
searchYear
|
||||
);
|
||||
// cellClick(cellNum)
|
||||
}
|
||||
}, [inputData, searchYear, pbnstRuseFcltPk, pageNation,cellNum]);
|
||||
};
|
||||
|
||||
confirmToast(t('isUpdateMsg'), handleConfirm);
|
||||
}, [inputData, searchYear, pbnstRuseFcltPk, pageNation, cellNum]);
|
||||
|
||||
const cellClick = useCallback(
|
||||
(index: number | undefined) => {
|
||||
@@ -165,13 +186,13 @@ export default function prfmncPrfmncReg() {
|
||||
useEffect(() => {
|
||||
if (!prfmnc.isInit) {
|
||||
const year = new Date().getFullYear()
|
||||
prfmncHasuInit(1, "41",String(year));
|
||||
prfmncHasuInit(1, "41", String(year));
|
||||
}
|
||||
}, [prfmnc.isInit, prfmncHasuInit]);
|
||||
useEffect(() => {
|
||||
|
||||
|
||||
if(prfmncRes&&prfmncRes.length>0){
|
||||
if (prfmncRes && prfmncRes.length > 0) {
|
||||
|
||||
setbdstTable(prfmncRes);
|
||||
}
|
||||
@@ -224,14 +245,14 @@ export default function prfmncPrfmncReg() {
|
||||
<div className="flex flex-row space-x-2">
|
||||
<Button size={"sm"} onClick={(e) => {
|
||||
|
||||
if(searchTxt&&searchTxt?.length>0){
|
||||
prfmncHasuNmSearch(1,'41',searchYear,searchTxt)
|
||||
if (searchTxt && searchTxt?.length > 0) {
|
||||
prfmncHasuNmSearch(1, '41', searchYear, searchTxt)
|
||||
setPageNation(1)
|
||||
}else{
|
||||
prfmncHasuInit(1,'41',searchYear)
|
||||
} else {
|
||||
prfmncHasuInit(1, '41', searchYear)
|
||||
setPageNation(1)
|
||||
}
|
||||
|
||||
|
||||
}}>
|
||||
조회
|
||||
</Button>
|
||||
@@ -282,8 +303,8 @@ export default function prfmncPrfmncReg() {
|
||||
setCellNum(index ?? 0);
|
||||
}}
|
||||
onPageChange={
|
||||
(page) =>{
|
||||
prfmncHasuInit(page, "41",searchYear);
|
||||
(page) => {
|
||||
prfmncHasuInit(page, "41", searchYear);
|
||||
setPageNation(page)
|
||||
}}
|
||||
children={undefined}
|
||||
@@ -303,7 +324,7 @@ export default function prfmncPrfmncReg() {
|
||||
<TableHeader className="font-bold">
|
||||
{headMakeprfmnc(monthHeadList, [])}
|
||||
</TableHeader>
|
||||
<TableBody key={prfmnc.pageKey+'pageKey'}>
|
||||
<TableBody key={prfmnc.pageKey + 'pageKey'}>
|
||||
{InputTableBody(inputData ?? [], monthHeadList, setInputData)}
|
||||
</TableBody>
|
||||
</Table>
|
||||
@@ -319,14 +340,14 @@ export default function prfmncPrfmncReg() {
|
||||
setIsExcelOPen={(open) => {
|
||||
setIsExcelOPen({ ...isExcelOpen, isModal: open })
|
||||
}}
|
||||
setModalExcelData={ async(excelData ) =>{
|
||||
await prfmnRegData(pageNation,'41',
|
||||
setModalExcelData={async (excelData) => {
|
||||
await prfmnRegData(pageNation, '41',
|
||||
excelData,
|
||||
searchYear
|
||||
);
|
||||
// 데이터 저장 후 UI 업데이트는 useEffect가 감지하여 처리하므로 여기서는 호출하지 않습니다.
|
||||
}
|
||||
}
|
||||
}
|
||||
></PbnPrfExcelModal>
|
||||
}
|
||||
open={isExcelOpen.isModal}
|
||||
|
||||
@@ -19,11 +19,13 @@ import {
|
||||
import { useEffect, useState } from "react";
|
||||
import BdstReg from "../bdstReg/bdstReg";
|
||||
import {
|
||||
confirmToast,
|
||||
formatCommaNumber,
|
||||
handleCommaNumberChange,
|
||||
} from "@/components/lib/func/commom";
|
||||
import { formH1Class } from "@/components/lib/class/comClass";
|
||||
import toast from "react-hot-toast";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export default function HtdflRegForm({
|
||||
htdflForm,
|
||||
@@ -48,20 +50,25 @@ export default function HtdflRegForm({
|
||||
|
||||
const bdstNm = form.watch("bdstNm");
|
||||
const isPowerPlant = bdstNm?.includes("발전소");
|
||||
|
||||
const { t } = useTranslation('base');
|
||||
const onSubmit = (values: z.infer<typeof hdtflZod>) => {
|
||||
if (isModal) {
|
||||
const data = regCtpvCd ? regCtpvCd : regSggcd ? regSggcd : "noCd";
|
||||
|
||||
if (data === "noCd") {
|
||||
toast.error("시도/시군구 코드를 선택해야합니다.");
|
||||
return;
|
||||
}
|
||||
htdflBdstReg(values, data);
|
||||
if (setIsModal) setIsModal(false);
|
||||
const handleConfirm = async () => {
|
||||
htdflBdstReg(values, data);
|
||||
if (setIsModal) setIsModal(false);
|
||||
};
|
||||
confirmToast(t('isInsertMsg'), handleConfirm);
|
||||
} else {
|
||||
const handleConfirm = async () => {
|
||||
htdflBdstUpdate(values, "0");
|
||||
};
|
||||
confirmToast(t('isUpdateMsg'), handleConfirm);
|
||||
|
||||
htdflBdstUpdate(values, "0");
|
||||
}
|
||||
};
|
||||
|
||||
@@ -90,15 +97,15 @@ export default function HtdflRegForm({
|
||||
};
|
||||
};
|
||||
const [divStyle, setDivStyle] = useState("h-[53vh]");
|
||||
useEffect(()=>{
|
||||
if(isModal===true){
|
||||
useEffect(() => {
|
||||
if (isModal === true) {
|
||||
setDivStyle("h-[53vh] max-h-[37vh]")
|
||||
}else if(readonly===true){
|
||||
} else if (readonly === true) {
|
||||
setDivStyle("h-[62vh]")
|
||||
}else{
|
||||
} else {
|
||||
setDivStyle("h-[53vh]")
|
||||
}
|
||||
},[isModal,readonly]);
|
||||
}, [isModal, readonly]);
|
||||
|
||||
useEffect(() => {
|
||||
console.log("form errors:", form.formState.errors);
|
||||
|
||||
@@ -146,7 +146,7 @@ export default function RainRegForm({
|
||||
rainBdstReg(values, data);
|
||||
if (setIsModal) setIsModal(false);
|
||||
};
|
||||
confirmToast(t('isUpdateMsg'), handleConfirm);
|
||||
confirmToast(t('isInsertMsg'), handleConfirm);
|
||||
} else {
|
||||
const handleConfirm = async () => {
|
||||
rainBdstUpdate(values, "41");
|
||||
|
||||
@@ -72,7 +72,7 @@ export default function RswtrRegForm({
|
||||
rswtBdstReg(values, "41");
|
||||
if (setIsModal) setIsModal(false);
|
||||
};
|
||||
confirmToast(t('isUpdateMsg'), handleConfirm);
|
||||
confirmToast(t('isInsertMsg'), handleConfirm);
|
||||
|
||||
} else {
|
||||
const handleConfirm = async () => {
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
"fileDateErrMsg": "파일업로드 이전에 등록년도를 작성해주세요.",
|
||||
"isDeleteMsg": "선택한 정보를 삭제하시겠습니까?",
|
||||
"isUpdateMsg": "수정한 정보를 저장하시겠습니까?",
|
||||
"isInsertMsg": "등록하시겠습니까?",
|
||||
"excelDownErrMsg": "다운로드할 데이터가 없습니다.",
|
||||
|
||||
"alreadyInsertedErrMsg": "사업자번호 {{num}}(은)는 이미 등록되었습니다. 다시 등록해주세요.",
|
||||
|
||||
Reference in New Issue
Block a user