wr: 수요처 daddr2 추가

This commit is contained in:
2026-05-08 10:41:39 +09:00
parent 3c8ef48ee5
commit 9fff1f2f25
4 changed files with 42 additions and 21 deletions
@@ -18,6 +18,7 @@ export const comFcltStateExport: comFcltState = {
bzmnNo: "",
dmdCoNm: "",
daddr: "",
daddr2: "",
telno: "",
rgtr: "",
useUsgCd: "",
@@ -54,6 +54,7 @@ interface FormSchema {
dmdInfoId: string;
zip?: string;
daddr: string;
daddr2?: string;
telno: string;
bznmTotNo?: string; // 종사업자등록번호
rgtr?: string | "";
@@ -225,8 +226,9 @@ export function SdmRegForm({
setZoneNo(rtnCompData?.zip || "");
form.setValue("zip", rtnCompData?.zip || "");
setAddress(rtnCompData?.daddr || "");
setDetailedAddress("");
setDetailedAddress(rtnCompData?.daddr2 || "");
form.setValue("daddr", rtnCompData?.daddr || "");
form.setValue("daddr2", rtnCompData?.daddr2 || "");
form.setValue("telno", rtnCompData?.telno || "");
// 선택을 했을 때 중복 상태를 true로 설정
@@ -326,10 +328,15 @@ export function SdmRegForm({
setZoneNo(updateList?.zip || "");
form.setValue("zip", updateList?.zip || "");
setAddress(updateList?.daddr || "");
setDetailedAddress("");
setDetailedAddress(updateList?.daddr2 || "");
form.setValue("daddr2", updateList?.daddr2 || "");
setUpdateNm(updateList?.dmdCoNm);
// setSigunValue(updateList?.sggCd)
} else {
setZoneNo("");
setAddress("");
setDetailedAddress("");
form.setValue("daddr2", "");
handleCheckboxChange(true);
}
}, [updateList, form]);
@@ -338,14 +345,14 @@ export function SdmRegForm({
console.log("form.formState.errors ", form.formState.errors);
}, [form.formState.errors]);
// 폼 제출 전에 주소 합치기
// 주소와 상세주소를 각각 별도 필드로 유지합니다.
useEffect(() => {
// address와 detailedAddress를 합쳐서 daddr에 설정
if (address) {
const fullAddress = `${address || ""} ${detailedAddress || ""}`.trim();
form.setValue("daddr", fullAddress, {shouldValidate: true });
}
}, [address, detailedAddress, form]);
form.setValue("daddr", address || "", { shouldValidate: true });
}, [address, form]);
useEffect(() => {
form.setValue("daddr2", detailedAddress || "", { shouldValidate: true });
}, [detailedAddress, form]);
useEffect(() => {
form.setValue("zip", zoneNo, { shouldValidate: true });
@@ -505,6 +512,7 @@ export function SdmRegForm({
onChange={(e) => {
const value = e.target.value;
setDetailedAddress(value);
form.setValue("daddr2", value, { shouldValidate: true });
}}
value={detailedAddress ?? ""}
/>
@@ -641,6 +649,7 @@ export function SdmRegForm({
setAddress(zip.zipAddr || "");
setDetailedAddress("");
form.setValue("zip", zip.zoneNo || "", { shouldValidate: true });
form.setValue("daddr2", "", { shouldValidate: true });
applyZipRegion(zip.ctpvNm, zip.sggNm);
}}
/>
@@ -42,6 +42,7 @@ const createFormSchema = (isBznmTotNoDisabled: boolean, isDuplicate: boolean ,up
.min(1, "주소를 입력해주세요")
// .min(6, "주소는 6자 이상 입력해주세요")
.max(40, "주소는 40자 이내로 입력해주세요"),
daddr2: z.string().optional(),
telno: z.string()
.min(8, "전화번호는 8자 이상 입력해주세요")
.max(11, "전화번호는 11자 이내로 입력해주세요")
@@ -77,6 +78,7 @@ const defaultValues: FormSchema = {
zip: '',
bznmTotNo: '',
daddr: '',
daddr2: '',
telno: '',
rgtr: '',
mdfr: '',
@@ -141,6 +143,8 @@ export default function SdmInsertForm({selectSidoData, selectSigunData, dataList
...data,
dmdInfoId,
bzmnNo: data.dmdInfoId,
daddr: data.daddr?.trim() || "",
daddr2: data.daddr2?.trim() || "",
rgtr: myUUID ,
};
@@ -223,7 +223,7 @@ export function SearchAddressModal({ open, onOpenChange, onSelect }: SearchAddre
<>
<form
onSubmit={handleSearch}
className="mb-4 space-y-2"
className="mb-4 w-full space-y-2"
>
<div className="card card-border !m-0 flex flex-col gap-3 p-4">
<div className="relative">
@@ -268,17 +268,24 @@ export function SearchAddressModal({ open, onOpenChange, onSelect }: SearchAddre
</form>
{zipTotalElements > 0 && (
<UiTable
headName=''
tableData={zipSearchResults}
headlist={[{ id: 'zoneNo', title: '우편번호' }, { id: 'zipAddr', title: '주소' }]}
pageSize={PAGE_SIZE}
total={zipTotalElements}
cellClick={handleCellClick}
onPageChange={setCurPage}
resetPageNo={isResetPage}
index={selectedRowIndex}
/>
<div className="w-full">
<UiTable
headName=""
tableData={zipSearchResults}
headlist={[
{ id: "zoneNo", title: "우편번호", widthPercent: 18 },
{ id: "zipAddr", title: "주소", widthPercent: 82 },
]}
pageSize={PAGE_SIZE}
total={zipTotalElements}
cellClick={handleCellClick}
onPageChange={setCurPage}
resetPageNo={isResetPage}
index={selectedRowIndex}
widthFixed={true}
className="!m-0 w-auto"
/>
</div>
)}
{zipTotalElements === 0 && (
<div className={cn("flex h-96 flex-col items-center justify-center gap-4")}>