diff --git a/apps/wr/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx b/apps/wr/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx
index a729b2533..be1459947 100644
--- a/apps/wr/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx
+++ b/apps/wr/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx
@@ -247,23 +247,6 @@ export function PbnstBuseForm({
setSumCpct(sum);
}, [form.formState, indexMng, indexBiz]);
- // // 차수별 정보(fcBizs)가 하나도 없을 경우 플레이스홀더 UI를 보여줍니다.
- // if (fcBizs.length === 0) {
- // return (
- //
- //
등록된 차수별 정보가 없습니다.
- //
아래 버튼을 눌러 신규 차수 정보를 등록해주세요.
- //
- //
- // );
- // }
const pbnstBiz = form.watch(`items.${indexMng}.fcBizs`);
return (
@@ -672,7 +655,7 @@ export function PbnstBuseForm({
setIsFcOrgwts(open)}
- bodyClass={"w-[50vw] max-w-none h-[90vh]"}
+ bodyClass={"w-[70vw] max-w-none max-h-[90vh] overflow-y-auto"}
body={
{
diff --git a/apps/wr/components/ui/modal/fcltReg/fcOrgwtsRegModal/fcOrgwtsRegModal.tsx b/apps/wr/components/ui/modal/fcltReg/fcOrgwtsRegModal/fcOrgwtsRegModal.tsx
index 92b40e146..9c8f2cdd6 100644
--- a/apps/wr/components/ui/modal/fcltReg/fcOrgwtsRegModal/fcOrgwtsRegModal.tsx
+++ b/apps/wr/components/ui/modal/fcltReg/fcOrgwtsRegModal/fcOrgwtsRegModal.tsx
@@ -1,6 +1,10 @@
"use client";
import { useWrStore } from "@/app/store";
-import type { pubHasuType, fcBizType, fcOrgwtType,} from "@/app/store/ruseFcltMng/fcltReg/pbnstReg/type";
+import type {
+ pubHasuType,
+ fcBizType,
+ fcOrgwtType,
+} from "@/app/store/ruseFcltMng/fcltReg/pbnstReg/type";
import type { TableUpperProps } from "@/app/store/common/type/header";
import { tableData } from "@/components/lib/func/commom";
import RuseMngTable from "@/components/ui/table/pbnstReg/ruseMngTable/ruseMngTable";
@@ -11,138 +15,161 @@ import { Input } from "@common/components/ui";
import { ArrowLeft, ArrowRight } from "lucide-react";
import { useEffect, useRef, useState } from "react";
-export default function FcOrgwtsRegModal({ onRightSet, closeModal }: { onRightSet?: (rightData:fcOrgwtType[]) => void,closeModal?:(val:boolean) =>void }) {
- const { code, pbnst, getSwtrmtFcltNm, searchFclts } = useWrStore((state) => state);
+export default function FcOrgwtsRegModal({
+ onRightSet,
+ closeModal,
+}: {
+ onRightSet?: (rightData: fcOrgwtType[]) => void;
+ closeModal?: (val: boolean) => void;
+}) {
+ const { code, pbnst, getSwtrmtFcltNm, searchFclts } = useWrStore(
+ (state) => state
+ );
const { fcOrgwtsHeadList, pbnstHasuRes } = pbnst;
const [bdstTable, setbdstTable] = useState();
const rightRef = useRef([] as pubHasuType[]);
const leftRef = useRef([] as pubHasuType[]);
const [rightData, setRightData] = useState();
const [inputVal, setInputVal] = useState("");
-
- useEffect(()=>{
- if(Array.isArray(searchFclts)){
+
+ useEffect(() => {
+ if (Array.isArray(searchFclts)) {
const filteredData = searchFclts.filter((item) => {
- if(rightData){
- if(rightData.find(rightItem =>rightItem.bscFctCd===item.bscFctCd))
+ if (rightData) {
+ if (
+ rightData.find((rightItem) => rightItem.bscFctCd === item.bscFctCd)
+ )
return false;
}
- return true
- })
- setbdstTable(Array.isArray(filteredData) ? [...filteredData] : [])
+ return true;
+ });
+ setbdstTable(Array.isArray(filteredData) ? [...filteredData] : []);
}
-
- }, [searchFclts])
+ }, [searchFclts]);
useEffect(() => {
if (code.sggCd.length > 0 && pbnstHasuRes.length > 0) {
setbdstTable(tableData(pbnstHasuRes, { code }));
- console.log('bdstTable ', bdstTable)
+ console.log("bdstTable ", bdstTable);
}
}, [code, pbnstHasuRes]);
useEffect(() => {
- console.log('rightData ', rightData)
- if(onRightSet)
- onRightSet(
- (rightData as pubHasuType[])?.map(item => ({
- swtrmtFcltFk: item.bscFctCd, // 임시값, 실제 데이터에 맞게 수정
- orgwtWtritQnt: Number(item.fctCpc), // 임시값, 실제 데이터에 맞게 수정
- tmsYn: "N", // 임시값, 실제 데이터에 맞게 수정
- dschgFmYn: "N", // 임시값, 실제 데이터에 맞게 수정
- dtlPstnExpln: item.addr, // 임시값, 실제 데이터에 맞게 수정
- choose: false, // 임시값, 실제 데이터에 맞게 수정
- // 필요한 경우 다른 속성들도 추가
- })) as unknown as fcOrgwtType[]
- );
- }, [rightData])
+ console.log("rightData ", rightData);
+ if (onRightSet)
+ onRightSet(
+ (rightData as pubHasuType[])?.map((item) => ({
+ swtrmtFcltFk: item.bscFctCd, // 임시값, 실제 데이터에 맞게 수정
+ orgwtWtritQnt: Number(item.fctCpc), // 임시값, 실제 데이터에 맞게 수정
+ tmsYn: "N", // 임시값, 실제 데이터에 맞게 수정
+ dschgFmYn: "N", // 임시값, 실제 데이터에 맞게 수정
+ dtlPstnExpln: item.addr, // 임시값, 실제 데이터에 맞게 수정
+ choose: false, // 임시값, 실제 데이터에 맞게 수정
+ // 필요한 경우 다른 속성들도 추가
+ })) as unknown as fcOrgwtType[]
+ );
+ }, [rightData]);
return (
- <>
-
-
-
-
-
+
+
+
+
+ {/*
*/}
+
-
-
-
-
-
-
- {setInputVal(e.target.value)}} />
-
-
-
-
-
-
-
-
{
- if (leftRef && typeof leftRef === "object" && "current" in leftRef) {
- const checked = leftRef.current?.filter((item) => ((item as unknown as pubHasuType)?.choose))
- const unchecked = leftRef.current?.filter((item) => !(item as unknown as pubHasuType)?.choose)
- if (checked && checked.length > 0) {
- checked.forEach(item=>(item as unknown as pubHasuType).choose = false)
- setRightData([...(checked as unknown as pubHasuType[]),
- ...((rightRef.current ?? []) as unknown as pubHasuType[])
- ])
-
- }
- if (unchecked && unchecked.length > 0) {
- setbdstTable([...(unchecked as unknown as pubHasuType[])])
- }else{
- setbdstTable([])
- }
- }
- }
- }
- className="w-12 h-12 text-gray-500 cursor-pointer"
- />
- {
- if (rightRef && typeof rightRef === "object" && "current" in rightRef) {
- const checked = rightRef.current?.filter((item) => ((item as unknown as pubHasuType)?.choose))
- const unchecked = rightRef.current?.filter((item) => !(item as unknown as pubHasuType)?.choose)
- if (checked && checked.length > 0) {
- checked.forEach(item=>(item as unknown as pubHasuType).choose = false)
- setbdstTable([
- ...(checked as unknown as pubHasuType[]),
- ...((leftRef.current ?? []) as unknown as pubHasuType[])
- ])
- }
- if (unchecked && unchecked.length > 0) {
- setRightData([...(unchecked as unknown as pubHasuType[])])
- }else{
- setRightData([])
- }
- }
- }}
- className="w-12 h-12 text-gray-500 cursor-pointer mt-5" />
-
- {/* Right Table container: Takes 2/5 of the width */}
-
-
-
-
+
+
setInputVal(e.target.value)}
+ />
+
- >
+ {/*
+
+
+ setInputVal(e.target.value)}
+ />
+
+
+
+
*/}
+
+ {/* 테이블 영역 */}
+
+ {/* 왼쪽 테이블 */}
+
+
+
+
+
+
+ {/* 중간 이동 버튼 */}
+
+
{
+ const checked = leftRef.current?.filter((item) => item.choose);
+ const unchecked = leftRef.current?.filter((item) => !item.choose);
+ if (checked?.length) {
+ checked.forEach((item) => (item.choose = false));
+ setRightData([
+ ...(checked as pubHasuType[]),
+ ...(rightRef.current ?? []),
+ ]);
+ }
+ setbdstTable(unchecked ?? []);
+ }}
+ className="w-8 h-8 text-gray-500 cursor-pointer"
+ />
+ {
+ const checked = rightRef.current?.filter((item) => item.choose);
+ const unchecked = rightRef.current?.filter(
+ (item) => !item.choose
+ );
+ if (checked?.length) {
+ checked.forEach((item) => (item.choose = false));
+ setbdstTable([
+ ...(checked as pubHasuType[]),
+ ...(leftRef.current ?? []),
+ ]);
+ }
+ setRightData(unchecked ?? []);
+ }}
+ className="w-8 h-8 text-gray-500 cursor-pointer"
+ />
+
+
+ {/* 오른쪽 테이블 */}
+
+
+
+
+
+
);
}