Merge commit 'a5d816e221985da6df93a4587d91c858acbbb12b' into iipbs/wr/form_fuction

This commit is contained in:
jyha00
2025-05-30 09:17:38 +09:00
7 changed files with 605 additions and 347 deletions
@@ -118,13 +118,16 @@ export function PbnstBuseForm({ data }: { data: fcBizType[] }) {
};
useEffect(() => {
if (data) {
const index = Number(getBizCycle) - 1;
form.reset(data[index]);
ref.current = data[index]?.pplInstls ?? [];
if(getBizCycle){
const index = Number(getBizCycle) - 1;
form.reset(pbnst.pbnstResObj?.fcBizs[index]);
ref.current = pbnst.pbnstResObj?.fcBizs[index]?.pplInstls ?? [];
}
}, [getBizCycle, data]);
}, [getBizCycle,pbnst.pbnstResObj]);
useEffect(() => {
const ppl = [];
@@ -27,30 +27,29 @@ import {
} from "@/app/store/ruseFcltMng/fcltReg/pbnstReg/type";
import { TEST_UUID } from "@/app/store/ruseFcltMng/fcltReg/rainReg";
import { Label } from "@common/business_components/ui/form/lib/label";
import React from "react";
export type FilesType = {
atflCd: string;
file: File;
};
export function PbnstMngForm({ data }: { data: customPbnst[] }) {
const { pbnst, pbnstUpdate ,pbnstMngData, fileDelete,getBizCycle} = useWrStore((state) => state);
const [regFileList, setRegFileList] = useState<fcFileType[] | null>(null);
const { pbnst, pbnstUpdate ,pbnstMngData, fileDelete} = useWrStore((state) => state);
const [planFiles, setPlanFiles] = useState<FilesType[] | null>(null);
const [relationfiles, setRelationFiles] = useState<FilesType[] | null>(null);
const [fcltNm, setFcltNm] = useState<selectLabel[] | null>(null);
const [progress, setProgress] = useState(0);
//const new File([] as BlobPart[], "") 파일 다운로드 활용
const handleProgress = (percentage: string) => {
setProgress(Number(percentage));
};
const ref = useRef<operType[] | null>( null);
const form = useForm<z.infer<typeof pbnstRegZod>>({
resolver: zodResolver(pbnstRegZod),
defaultValues: pbnstRegZod.parse({}),
});
const {
fields: fcOpersField,
append,
@@ -61,18 +60,19 @@ export type FilesType = {
});
useEffect(() => {
const formData = form.watch();
formData.fcOpers = ref.current ? [...ref.current] : [];
formData.fcFiles = regFileList ? [...regFileList] : [];
pbnstMngData([formData] as customPbnst[]);
}, [form.formState, regFileList]);
const handleProgress = (percentage: string) => {
setProgress(Number(percentage));
};
useEffect(() => {
pbnstMngData(pbnst.pbnstMngRegData);
}, [pbnst.pbnstMngRegData]);
const selectFclt = (val: number) => {
if (pbnst.pbnstRes && pbnst.pbnstRes[val]) {
getBizCycle(pbnst.pbnstRes[val])
form.reset(pbnst.pbnstRes[val])
};
}
const fileDownload = (index: number) => {};
const plusHist = () => {
const regData = {
@@ -102,31 +102,6 @@ export type FilesType = {
selectedIdxs.reverse().forEach((idx) => remove(idx));
};
useEffect(() => {
if (!data) return;
//form.reset(data);
const fcltNmList = data.map((item, index) => ({
text: item.ruseUtztnFcltNm,
val: String(index)
}))
ref.current = data[0]?.fcOpers ?? null;
setFcltNm(fcltNmList)
}, [data])
useEffect(() => {
if (!fcltNm || fcltNm.length === 0) return;
form.reset(data[0]);
}, [fcltNm, data]);
// 2. Define a submit handler.
function onSubmit(values: z.infer<typeof pbnstRegZod>) {
values.fcOpers = ref.current || [];
values.fcFiles = regFileList || [];
console.log("form values:", values);
pbnstUpdate(values);
}
const fileHandler = (files: File[], type: string) => {
let fileList = [] as FilesType[];
if (type === "relation" && relationfiles) {
@@ -179,6 +154,7 @@ useEffect(() => {
: setPlanFiles(setReFiles);
}
};
const regFileFilter = (
files: FilesType[],
fileKnd: string,
@@ -194,6 +170,50 @@ useEffect(() => {
}));
return [...planDatas, ...data];
}
useEffect(() => {
const formData = form.watch();
formData.fcOpers = ref.current ? [...ref.current] : [];
formData.fcFiles = regFileList ? [...regFileList] : [];
pbnstMngData([formData] as customPbnst[]);
}, [form.formState, regFileList]);
useEffect(() => {
pbnstMngData(pbnst.pbnstMngRegData);
}, [pbnst.pbnstMngRegData]);
useEffect(() => {
if (!data) return;
//form.reset(data);
ref.current = data[0]?.fcOpers ?? null;
}, [data])
useEffect(() => {
if (!pbnst.pbnstRes) return;
const fcltNmList = pbnst.pbnstRes.map((item, index) => ({
text: item.ruseUtztnFcltNm,
val: String(index)
}))
console.log('fcltNmList ', fcltNmList)
setFcltNm(fcltNmList)
}, [pbnst.pbnstRes])
// 2. Define a submit handler.
function onSubmit(values: z.infer<typeof pbnstRegZod>) {
values.fcOpers = ref.current || [];
values.fcFiles = regFileList || [];
console.log("form values:", values);
pbnstUpdate(values);
}
useEffect(() => {
if (relationfiles) {
@@ -223,7 +243,7 @@ useEffect(() => {
className="mt-4 ml-2"
selectClass={undefined}
selectArray={fcltNm ?? []}
onSelectValue={(val) => {console.log("val", val)}}
onSelectValue={(val) => {selectFclt( Number(val))}}
value={""}
/>
</div>
@@ -49,10 +49,10 @@ const pbnstRegTotal = ()=>{
if(data ){
let regData = {
superKey: String(data.bscFctCd + "1"),
swtrmtFcltFk: String(data.bscFctCd ),
pbnstRuseFcltPk: 1,
fcBizs: [{ pbnstRuseFcltFk: 1 ,cycl:1 } as unknown as fcBizType],
pbnstRuseFcltPk: String(data.bscFctCd + "1"),
ruseUtztnFcltNm: data.bscFctNm,
fcBizs: [{ pbnstRuseFcltFk: String(data.bscFctCd + "1") ,cycl:1 } as unknown as fcBizType],
};
setPbnstBdstForm(regData as unknown as customPbnst);