Merge branch 'iipbs/wr/dev'

This commit is contained in:
dongsilove
2026-07-13 18:24:54 +09:00
7 changed files with 173 additions and 19 deletions
+3
View File
@@ -19,6 +19,9 @@ Main technologies:
- UTF-8
- 한글이 깨지지 않도록 주의할 것
## 수정 불가
- `packages/common/components`는 수정하면 안된다.
## 주석 comment
- 한글 주석을 삭제하지 말 것
- 신규 component나 함수 자동 생성시 주석을 추가할 것(기본 함수의 역할과 인수 설명)
@@ -364,7 +364,7 @@ export default function PublicReuseFaciltyInsert() {
headlist={pubFacHeadList}
pageSize={DEFAULT_LIST_SIZE}
total={pbnstHasuResCount || 20}
headName={"공공 하수처리시설 목록"}
headName={"시설물 목록"}
cellClick={cellClick}
onPageChange={(page) => {
setSelectRow(undefined);
@@ -165,7 +165,7 @@ export default function Home() {
headlist={rain.upHeadList}
pageSize={rainRegSize}
total={rainResCount}
headName={"건축물 목록"}
headName={"시설물 목록"}
cellClick={(val) => {
cellClick(val);
}}
@@ -142,7 +142,7 @@ export default function Home() {
<Button
className={btnClass}
onClick={() => {
rswtBdstSearch(searchTxt || "", pageNation,laeSeCd);
rswtBdstSearch(searchTxt || "", 1, laeSeCd);
}}
>
조회
@@ -171,7 +171,7 @@ export default function Home() {
headlist={rswt.upHeadList}
pageSize={rswtRegSize}
total={rswtResCount}
headName={"건축물 목록"}
headName={"시설물 목록"}
cellClick={cellClick}
onPageChange={setPageNation}
index={rswtTableIndex}
-4
View File
@@ -1,9 +1,5 @@
import "./styles/base.css";
import "./styles/components.css";
import "./styles/components-black.css";
import "./styles/components-blue.css";
import "./styles/components-green.css";
import "./styles/components-red.css";
import "@fontsource-variable/noto-sans-kr";
import { AppProvider } from "./providers";
+156 -1
View File
@@ -18,7 +18,162 @@
@apply mt-4 border border-border bg-[#eaf3fb] p-2 text-center text-xl font-medium text-[#647784];
}
[data-theme="black"] {
.card {
color: #fff;
background-color: #0a0a0a !important;
}
form {
color: rgb(255 255 255);
}
label {
color: rgb(241, 241, 241);
}
input {
height: 3.2rem;
background-color: #1a1a1a;
border: 1px solid #262626;
border-radius: 4px;
}
input.text-gray-600 {
color: #f1f1f1;
}
button[role="combobox"] {
color: #f1f1f1;
background-color: rgb(26, 26, 26);
}
div [role="tablist"] {
border: unset;
gap: 4px;
}
.tabs-trigger[data-state="inactive"] {
color: #a4b7bf;
background: #55595d;
}
.tabs-trigger[data-state="inactive"]:hover {
color: #6bbaff;
background: #4c4f52;
}
.card-border {
box-shadow: 0 0 10px -1px #0000000f;
border: 1px solid #393939;
}
a[aria-current="page"] {
background-color: rgb(32, 148, 250);
color: #000;
}
.card-border {
@apply border-[#3f4042] bg-[rgba(255,255,255,0.065)];
}
.card-header {
@apply border-b-[#3f4042];
}
.form-section-title {
@apply bg-[#5e7b9c] text-[#fff];
}
.gis-layer-panel {
background: #111214;
border-right-color: #2f3136;
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.03);
}
.gis-layer-panel-title {
color: #f3f4f6;
}
.gis-layer-panel hr {
border-color: #2f3136;
}
.gis-layer-row {
color: #e5e7eb;
}
.gis-layer-row:hover {
background: rgba(255, 255, 255, 0.08);
}
.gis-layer-row span,
.gis-layer-row label {
color: #e5e7eb !important;
}
.gis-layer-row input[type="checkbox"] {
accent-color: #c026d3;
}
.gis-layer-action-button {
background: #1a1c20;
border-color: #3b82f6;
color: #cfe3ff;
}
.gis-layer-action-button:hover {
background: #23262b;
}
.gis-layer-setting {
background: #111214;
border-top: 1px solid #2f3136;
}
.gis-layer-toggle {
background: #111214;
border-color: #2f3136;
color: #f3f4f6;
}
.gis-layer-toggle:hover {
background: #1a1c20;
}
input[type="file"] {
background-color: #1a1a1a;
border-color: #262626;
color: #f1f1f1;
}
}
[data-theme="blue"] {
.card-border {
@apply border-[#3f4042] bg-[rgba(255,255,255,0.065)];
}
.card-header {
@apply border-b-[#3f4042];
}
.form-section-title {
@apply bg-[#eaf3fb] text-[#647784];
}
}
[data-theme="green"] {
.card-border {
@apply border-[#3f4042] bg-[rgba(255,255,255,0.065)];
}
.card-header {
@apply border-b-[#3f4042];
}
.form-section-title {
@apply bg-[#ebf7f7] text-[#64908f];
}
}
[data-theme="red"] {
.card-border {
@apply border-[#3f4042] bg-[rgba(255,255,255,0.065)];
}
.card-header {
@apply border-b-[#3f4042];
}
.form-section-title {
@apply bg-[#f6f6f9] text-[#808080];
}
}
input[type="file"] {
@apply w-[200px] h-[40px] px-3 py-2 border border-[#d1d5db] rounded-md bg-white text-sm cursor-pointer;
@@ -526,7 +526,7 @@ export default React.memo(function GisTree({
<>
{/* 사이드 패널 */}
<div
className={`gis-layer-panel absolute left-0 top-0 z-40 flex h-full w-[250px] flex-col overflow-hidden border-r border-gray-300 bg-white transition-all duration-300 ${visible
className={`gis-layer-panel absolute left-0 top-0 z-40 flex h-full w-[250px] flex-col overflow-hidden border-r border-border bg-background text-foreground transition-all duration-300 ${visible
? "translate-x-0 opacity-100"
: "pointer-events-none -translate-x-full opacity-0"
}`}
@@ -537,8 +537,8 @@ export default React.memo(function GisTree({
>
{showLayerPanelTitle && (
<>
<h3 className="gis-layer-panel-title mx-2 my-4 text-3xl font-bold text-gray-600 text-center">시설물</h3>
<hr className="mb-4" />
<h3 className="gis-layer-panel-title mx-2 my-4 text-center text-3xl font-bold text-label">시설물</h3>
<hr className="mb-4 border-border" />
</>
)}
{/* DnD Tree */}
@@ -570,7 +570,7 @@ export default React.memo(function GisTree({
return (
<div style={{ display: isVisible ? "block" : "none" }}>
<div
className="gis-layer-row flex w-full items-center gap-2 rounded px-2 py-1 hover:bg-gray-100"
className="gis-layer-row flex w-full items-center gap-2 rounded px-2 py-1 hover:bg-accent"
style={{
marginInlineStart: depth * 16,
width: `calc(100% - ${depth * 16}px)`,
@@ -602,7 +602,7 @@ export default React.memo(function GisTree({
{showLayerActionButton && (
<button
type="button"
className="gis-layer-action-button ml-auto shrink-0 rounded-sm border border-[#9cc6f0] bg-white px-2 py-[1px] text-[1.1rem] font-medium leading-5 text-[#2c6fb7] transition-colors hover:bg-[#eef6ff]"
className="gis-layer-action-button ml-auto shrink-0 rounded-sm border border-primary bg-background px-2 py-[1px] text-[1.1rem] font-medium leading-5 text-primary transition-colors hover:bg-accent"
onClick={() =>
handleLayerImgClick(
node.data.lyrTyNm,
@@ -652,14 +652,14 @@ export default React.memo(function GisTree({
</div>
</div>
{LayerSettingView && (
<div className="gis-layer-setting shrink-0 bg-white px-2 pb-3">
<div className="gis-layer-setting shrink-0 bg-background px-2 pb-3">
<LayerSettingView />
</div>
)}
{!detachedToggleButton && (
<button
onClick={() => setVisible(false)}
className={`gis-layer-toggle absolute right-[-3px] z-50 transform rounded-l-none rounded-r border border-l border-gray-300 bg-white px-1 py-2 shadow-sm ${toggleButtonPositionClass}`}
className={`gis-layer-toggle absolute right-[-3px] z-50 transform rounded-l-none rounded-r border border-l border-border bg-background px-1 py-2 text-foreground shadow-sm ${toggleButtonPositionClass}`}
>
<ChevronLeft size={16} />
</button>
@@ -668,7 +668,7 @@ export default React.memo(function GisTree({
{detachedToggleButton && visible && (
<button
onClick={() => setVisible(false)}
className={`gis-layer-toggle absolute left-[250px] z-50 flex h-[36px] w-[20px] transform items-center justify-center rounded-[4px] border border-[#d8dee8] bg-[rgba(255,255,255,0.96)] text-[#1e88e5] shadow-[0_8px_18px_rgba(15,23,42,0.14)] transition hover:bg-[#eaf4ff] ${toggleButtonPositionClass}`}
className={`gis-layer-toggle absolute left-[250px] z-50 flex h-[36px] w-[20px] transform items-center justify-center rounded-[4px] border border-border bg-background text-primary shadow-[0_8px_18px_rgba(15,23,42,0.14)] transition hover:bg-accent ${toggleButtonPositionClass}`}
title="접기"
>
<ChevronLeft className="h-4 w-4" />
@@ -678,8 +678,8 @@ export default React.memo(function GisTree({
<button
onClick={() => setVisible(true)}
className={detachedToggleButton
? `gis-layer-toggle absolute left-0 z-50 flex h-[36px] w-[20px] transform items-center justify-center rounded-[4px] border border-[#d8dee8] bg-[rgba(255,255,255,0.96)] text-[#1e88e5] shadow-[0_8px_18px_rgba(15,23,42,0.14)] transition hover:bg-[#eaf4ff] ${toggleButtonPositionClass}`
: `gis-layer-toggle absolute left-[-3px] z-50 transform rounded-r border border-r border-gray-300 bg-white px-1 py-2 shadow-sm ${toggleButtonPositionClass}`}
? `gis-layer-toggle absolute left-0 z-50 flex h-[36px] w-[20px] transform items-center justify-center rounded-[4px] border border-border bg-background text-primary shadow-[0_8px_18px_rgba(15,23,42,0.14)] transition hover:bg-accent ${toggleButtonPositionClass}`
: `gis-layer-toggle absolute left-[-3px] z-50 transform rounded-r border border-r border-border bg-background px-1 py-2 text-foreground shadow-sm ${toggleButtonPositionClass}`}
title="열기"
>
{detachedToggleButton ? <ChevronRight className="h-4 w-4" /> : <ChevronRight size={16} />}