From 262c386e2e69bf5e2fbd0a0f82f1a4ecd76cf224 Mon Sep 17 00:00:00 2001 From: LGS Date: Thu, 30 Apr 2026 18:27:55 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=EA=B8=B0=ED=83=80=20=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=ED=8F=AC=ED=95=A8=20=ED=8D=BC=EB=B8=94=EB=A6=AC=EC=8B=B1=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot --- .../dm/app/(with-layout)/apply/dmdco/page.tsx | 356 ++++---- apps/dm/app/(with-layout)/apply/layout.tsx | 11 +- .../app/(with-layout)/apply/register/page.tsx | 506 ++++++----- .../app/(with-layout)/apply/status/page.tsx | 762 ++++++++-------- .../example/_components/GlobalCaseSection.tsx | 831 ++++++++++++++++-- .../_components/GreywaterExampleSection.tsx | 8 +- .../_components/RainExampleSection.tsx | 233 ++++- .../_components/SewageExampleSection.tsx | 557 +++++++----- .../(with-layout)/example/globalCase/page.tsx | 10 +- apps/dm/app/(with-layout)/example/page.tsx | 24 +- apps/dm/app/(with-layout)/intro/page.tsx | 2 +- apps/dm/app/(with-layout)/layout.tsx | 5 +- .../_components/SewageStatusSection.tsx | 494 ++++++----- apps/dm/app/(with-layout)/status/page.tsx | 4 +- apps/dm/app/main/_sections/Cases.tsx | 2 +- apps/dm/app/main/_sections/Hero.tsx | 2 +- apps/dm/app/main/_sections/IntroCards.tsx | 10 +- apps/dm/components/CaseImageSlider.tsx | 209 ++--- apps/dm/components/CaseTabsCarousel.tsx | 170 ++-- apps/dm/components/Lnb.tsx | 99 +-- apps/dm/components/TopNav.tsx | 8 +- .../business/globalCase/australia_01.png | Bin 66150 -> 347954 bytes .../landing/business/globalCase/eu_01.png | Bin 42236 -> 248571 bytes .../business/globalCase/singapore_01.png | Bin 23286 -> 372414 bytes .../landing/business/globalCase/taiwan_01.png | Bin 20129 -> 254793 bytes .../images/landing/business/rain/jeju_01.png | Bin 333203 -> 395040 bytes .../images/landing/business/rain/jeju_02.png | Bin 344317 -> 406255 bytes .../images/landing/business/rain/rain_01.png | Bin 263405 -> 0 bytes .../images/landing/business/rain/rain_02.png | Bin 314034 -> 0 bytes .../landing/business/sewage/bolyeong_01.png | Bin 185353 -> 0 bytes .../landing/business/sewage/cheongju_01.png | Bin 428282 -> 0 bytes .../landing/business/sewage/guri_01.png | Bin 340214 -> 344473 bytes .../landing/business/sewage/guri_02.png | Bin 351421 -> 159291 bytes .../landing/business/sewage/paju_01.png | Bin 356780 -> 402589 bytes .../landing/business/sewage/yeosu_01.png | Bin 351736 -> 430929 bytes .../images/landing/intro/domestic_textbox.png | Bin 286348 -> 144554 bytes .../landing/intro/greywater_mandatory.png | Bin 154962 -> 79424 bytes .../landing/intro/greywater_standard.png | Bin 215408 -> 102822 bytes .../images/landing/intro/law_timeline.png | Bin 208452 -> 131773 bytes .../public/images/landing/intro/linkage.png | Bin 541059 -> 324262 bytes .../images/landing/intro/performance_left.png | Bin 412665 -> 234342 bytes .../images/landing/intro/policy_timeline.png | Bin 489006 -> 298725 bytes .../landing/intro/rainreuse_mandatory.png | Bin 129529 -> 59471 bytes .../images/landing/intro/rainwater_design.png | Bin 230880 -> 103128 bytes .../landing/intro/rainwater_standards.png | Bin 220498 -> 108587 bytes .../public/images/landing/intro/rel_note.png | Bin 199344 -> 120354 bytes .../landing/intro/treatedwater_mandatory.png | Bin 84026 -> 39362 bytes 47 files changed, 2687 insertions(+), 1616 deletions(-) delete mode 100644 apps/dm/public/images/landing/business/rain/rain_01.png delete mode 100644 apps/dm/public/images/landing/business/rain/rain_02.png delete mode 100644 apps/dm/public/images/landing/business/sewage/bolyeong_01.png delete mode 100644 apps/dm/public/images/landing/business/sewage/cheongju_01.png diff --git a/apps/dm/app/(with-layout)/apply/dmdco/page.tsx b/apps/dm/app/(with-layout)/apply/dmdco/page.tsx index 9422cd1ce..38b3941d1 100644 --- a/apps/dm/app/(with-layout)/apply/dmdco/page.tsx +++ b/apps/dm/app/(with-layout)/apply/dmdco/page.tsx @@ -153,6 +153,10 @@ function SelectBox({ ); } +function Hr({ className = "" }: { className?: string }) { + return
; +} + export default function DemandPlaceRegisterPage() { const { Common, initializeCommonData } = useDmStore((state) => state); const { selectSidoData, selectSigunData } = Common; @@ -401,177 +405,199 @@ export default function DemandPlaceRegisterPage() { const pageTitle = editMode ? "수요처수정" : "수요처등록"; return ( -
- - -
- - { - setSido(v); - setSigungu(""); - }} - options={sidoOptions} - /> - - - - - - - - - - - -
- +
+ {/* 서브 타이틀 + 브레드크럼 */} + -
- - + {/* 컨텐츠 영역 */} +
+ {/* 타이틀 */} +
+

+ {pageTitle} + +

+
+ + {/* 구분선 */} +
- -
- setBizNo(v.replace(/\D/g, "").slice(0, 10))} - placeholder="사업자 등록번호를 입력해주세요." - /> -
-
+ {/* 필수값 안내 */} +

+ * 는 필수 값입니다. +

- +
+ + { + setSido(v); + setSigungu(""); + }} + options={sidoOptions} + /> + - -
-
- setWorkerNo(v.replace(/\D/g, "").slice(0, 4))} - placeholder="종사자등록번호를 입력해주세요." - disabled={noWorkerNo} - /> + + + + + + + + + +
+ +
+
+ + + + +
+ setBizNo(v.replace(/\D/g, "").slice(0, 10))} + placeholder="사업자 등록번호를 입력해주세요." + /> +
+
+ + + + +
+
+ setWorkerNo(v.replace(/\D/g, "").slice(0, 4))} + placeholder="종사자등록번호를 입력해주세요." + disabled={noWorkerNo} + /> +
+ + +
+
+ + + + +
+
+
+ +
+ +
+ + + +
+
+ + + + +
+ setTel(formatKoreanPhoneNumber(v))} + placeholder="전화번호를 입력하세요." + /> +
+
+ + + + +
+ +
+
+ + + + +
+ +
+
+
+ +
+ +
+ + setIsPostcodeModalOpen(false)} + onSelect={handleSelectAddress} + />
- - -
- - - - - -
-
-
- -
- -
- - - -
-
- - - - -
- setTel(formatKoreanPhoneNumber(v))} - placeholder="전화번호를 입력하세요." - /> -
-
- - - - -
- -
-
- - - - -
- -
-
-
- -
- -
- - setIsPostcodeModalOpen(false)} - onSelect={handleSelectAddress} - /> +
); } diff --git a/apps/dm/app/(with-layout)/apply/layout.tsx b/apps/dm/app/(with-layout)/apply/layout.tsx index 49c8a6266..90f8c28c9 100644 --- a/apps/dm/app/(with-layout)/apply/layout.tsx +++ b/apps/dm/app/(with-layout)/apply/layout.tsx @@ -3,9 +3,14 @@ import Lnb from "@/components/Lnb"; export default function ApplyLayout({ children }: { children: ReactNode }) { return ( -
+
+ {/* 우측 메뉴 */} -
{children}
+ + {/* 본문 */} +
+ {children} +
); -} +} \ No newline at end of file diff --git a/apps/dm/app/(with-layout)/apply/register/page.tsx b/apps/dm/app/(with-layout)/apply/register/page.tsx index db1c47cb5..902c7a733 100644 --- a/apps/dm/app/(with-layout)/apply/register/page.tsx +++ b/apps/dm/app/(with-layout)/apply/register/page.tsx @@ -422,261 +422,279 @@ export default function DemandRegisterPage() { setUsePurpose(value); } + const pageTitle = "수요정보등록"; + return ( <> -
+
+
+ {/* 서브 타이틀 + 브레드크럼 */} + - {/* 서브 타이틀 + 브레드크럼 */} - - - {/* 컨텐츠 영역 */} -
- - {/* 기본정보 테이블 */} -
- - - - - - - - - - - - - - - - - - - - - -
- - {/* 요구수질 섹션 타이틀 바 */} -
-
- 요구수질 - - {/* 수질기준참고 모달 */} - setOpenRef(false)} - imageSrc="/images/landing/water_quality_ref_1.png" - /> -
-
- - {/* 요구수질 테이블 */} -
- {/* 1행 */} - - - + {/* 컨텐츠 영역 */} +
+ {/* 타이틀 */} +
+

+ {pageTitle} + +

- } - rightLabel="총질소(T-N)(mg/L)" - rightControl={ - - } - /> - + + {/* 구분선 */} +
- {/* 2행 */} - } - rightLabel="총인(T-P)(mg/L)" - rightControl={ - - } - /> - + {/* 필수값 안내 */} +

+ * 는 필수 값입니다. +

- {/* 3행 */} - - } - rightLabel="수소이온농도(pH)" - rightControl={ -
- setPh((p) => ({ ...p, min: v }))} - className="w-32" - /> - ~ - setPh((p) => ({ ...p, max: v }))} - className="w-32" - /> -
- } - /> - + {/* 기본정보 테이블 */} +
+ + + - {/* 4행 */} - - 생물화학적산소요구량 -
- (BOD)(mg/L) - - } - /* leftRequired */ - leftControl={} - rightLabel="염화물(mgCL/L)" - rightControl={} - /> - + - {/* 5행 */} - setOdor(e.target.value)} - className="h-11 w-full max-w-[200px] rounded-md border border-neutral-300 bg-white px-3 text-sm outline-none focus:border-neutral-500" - > - - - - - } - rightLabel="전기전도도(µs/cm)" - rightControl={} - /> - + + + - {/* 6행 */} - } - rightLabel="비고" - rightControl={ -