수요처 등록 작업중

This commit is contained in:
leedj312
2025-06-03 15:19:16 +09:00
parent 0327dc2930
commit 618d2cb00c
6 changed files with 85 additions and 44 deletions
@@ -35,7 +35,7 @@ export default function PublicReuseFaciltyInsert() {
pbnst,
searchFclts,
pubHasuInit,
pbnstRegInit,
pbnstRegClick,
getSwtrmtFcltNm,
pbnstMngData,
} = useWrStore((state) => state);
@@ -72,7 +72,7 @@ export default function PublicReuseFaciltyInsert() {
const selectRow = pbnstHasuRes?.[val];
if (selectRow) {
setIsRuseReg({ ...isRuseReg, data: selectRow });
pbnstRegInit(selectRow);
pbnstRegClick(selectRow);
}
};
@@ -57,7 +57,7 @@ export type pubFacState = {
};
type pubFacActions = {
pubHasuInit: (page: string, sggOrCity: string) => void;
pbnstRegInit: (pubHasuRes: pubHasuType) => void;
pbnstRegClick: (pubHasuRes: pubHasuType) => void;
pbnstReg: (txt: string | undefined) => void;
pbnstInsert(pbnstRes: customPbnst): Promise<void>;
appendRuseFclt(array: customPbnst[]): void;
@@ -117,8 +117,8 @@ const hasuListFetch = async (page: string, sggOrCity: string) => {
return hasuList;
};
const initFetch = async (code: string | undefined) => {
const pbnstRes = await getFetch("wr", `${code}`);
const initFetch = async (ruseFcltPk: string | undefined) => {
const pbnstRes = await getFetch("wr", `/reuseFc/pubFc/${ruseFcltPk}`);
return pbnstRes;
};
@@ -169,11 +169,9 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => {
}
},
pbnstRegInit: async (pubHasuRes: pubHasuType) => {
pbnstRegClick: async (pubHasuRes: pubHasuType) => {
try {
//const pbnstRes = await initFetch(txt);
const pbnstRes = exampleData;
const pbnstRes = await initFetch(pubHasuRes.bscFctCd);
return set((state: pubFacState) => ({
...state,
pbnst: {
@@ -99,6 +99,42 @@ const fcOrgwtSchema = z.object({
});
const pubHasuZod = z.object({
choose: z.boolean().default(false),
bscFctCd: z.string(),
sido: z.string().default(""),
gugun: z.string().default(""),
bscFctNm: z.string().default(""),
efflWqltStndrdNm: z.string().default(""),
fctCpc: z.number().default(0),
addr:z.string().nullish()
});
const demandInfoList = z.object({
})
export type pubHasuType = z.infer<typeof pubHasuZod>;
const dmdColist = z.object({
dmdCoNm: z.boolean().default(false),
daddr: z.string(),
useUsgCd: z.string().default(""),
splyBgngDay: z.string().default(""),
splyEndDay: z.string().default(""),
splyCpct: z.string().default(""),
splyFmYn: z.number().default(0),
telno:z.string().default('')
});
export const fcBizSchema = z.object({
pbnstRuseFcltBizPk: z.number().default(1),
pbnstRuseFcltFk: z.string().nullish(),
@@ -164,40 +200,13 @@ export const fcBizSchema = z.object({
ruseFcltCstClcln: z.number().nullish(),
fcOrgwts: z.array(fcOrgwtSchema).nullish(),
pplInstls: z.array(pplInstlSchema).nullish(),
demandInfo: z.array(dmdColist).default([]).nullish(),
flg: z.string().nullish(),
regDt: z.string().nullish(),
rgtr: z.string().nullish(),
mdfcnDt: z.string().nullish(),
mdfr: z.string().nullish(),
});
const pubHasuZod = z.object({
choose: z.boolean().default(false),
bscFctCd: z.string(),
sido: z.string().default(""),
gugun: z.string().default(""),
bscFctNm: z.string().default(""),
efflWqltStndrdNm: z.string().default(""),
fctCpc: z.number().default(0),
addr:z.string().nullish()
});
export type pubHasuType = z.infer<typeof pubHasuZod>;
const dmdColist = z.object({
dmdCoNm: z.boolean().default(false),
daddr: z.string(),
useUsgCd: z.string().default(""),
splyBgngDay: z.string().default(""),
splyEndDay: z.string().default(""),
splyCpct: z.string().default(""),
splyFmYn: z.number().default(0),
});
export const pbnstRegZod = z.object({
pbnstRuseFcltPk: z.string().default(''),
swtrmtFcltFk: z.string().default(""),
@@ -212,7 +221,6 @@ export const pbnstRegZod = z.object({
fcFiles: z.array(fcFileSchema).default([]),
fcBizs: z.array(fcBizSchema).default([]),
fcOpers: z.array(fcOperSchema).default([]),
fcDemands: z.array(dmdColist).default([]).nullish(),
hasuhasu: z.number().default(0),
});
@@ -56,6 +56,8 @@ export function PbnstBuseForm({
const [ppiYn, setPpiYn] = useState("Y");
const [isFcOrgwts, setIsFcOrgwts] = useState<boolean>(false);
const [sumCpct, setSumCpct] = useState<number>(0);
const [searchDmdCo, setSeachDmdCo] = useState<String>();
const form = useForm<fcBizType>({
resolver: zodResolver(fcBizSchema),
@@ -103,9 +105,17 @@ export function PbnstBuseForm({
newPbnstRes[index]?.fcBizs?.length && newPbnstRes[index]?.fcBizs?.push(regData);
getBizCycle(newPbnstRes[index] as customPbnst);
appendRuseFclt(newPbnstRes);
}
}
const { fields: demandInfo,
append:appendDemand,
remove:removeDemand } = useFieldArray({
control: form.control,
name: "demandInfo",
});
const { fields: fcOrgwtFiled } = useFieldArray({
control: form.control,
name: "fcOrgwts",
@@ -169,7 +179,21 @@ export function PbnstBuseForm({
ref.current = [...latestOpers];
};
const plusArray = () => {};
const plusArray = () => {
<>
<MngRegFormDetail
formList={dmdCoList}
h1Title={"하수처리수 재이용수 수요처"}
form={form}
moClass="grid grid-cols-12 gap-4 mt-3"
sonClass="col-span-4"
onIputData={(val) => {
setSeachDmdCo(val);
}}
/>
</>
};
const removeSelected = () => {
if (!ref.current) return;
@@ -369,7 +393,7 @@ export function PbnstBuseForm({
<div className="text-right mb-3">
<Button
type="button"
onClick={() => {}}
onClick={() => {appendDemand}}
size={commonButonSize}
className=""
>
@@ -382,8 +406,15 @@ export function PbnstBuseForm({
form={form}
moClass="grid grid-cols-12 gap-4 mt-3"
sonClass="col-span-4"
onIputData={(val) => {
setSeachDmdCo(val);
}}
/>
</div>
</form>
</Form>
</div>
@@ -260,12 +260,14 @@ export function PbnstMngForm({
}, [pbnst.pbnstMngRegData]);
useEffect(() => {
if (!pbnst.pbnstRes) return;
const fcltNmList = pbnst.pbnstRes.map((item, index) => ({
if ( pbnst.pbnstRes && pbnst.pbnstRes?.length> 0) return;
const fcltNmList = pbnst.pbnstRes?.map((item, index) => ({
text: item.ruseUtztnFcltNm,
val: String(index),
}));
if(fcltNmList)
setFcltNm(fcltNmList);
}, [pbnst.pbnstRes]);
@@ -12,6 +12,7 @@ export default function MngRegFormDetail({
moClass,
sonClass,
cycle,
onIputData
}: {
formList: formDetailType[];
h1Title?: string;
@@ -19,6 +20,7 @@ export default function MngRegFormDetail({
moClass?: string;
cycle?:string
sonClass?: string;
onIputData?: (data: any) => void;
}) {
const { code, } = useWrStore((state) => state);
return (
@@ -58,7 +60,7 @@ export default function MngRegFormDetail({
value={field.value}
/>
) : (
<Input placeholder="" type="text" value={field.value??''} onChange={field.onChange} />
<Input placeholder="" type="text" value={field.value??''} onChange={field.onChange} />
)}
</FormUi>
)}