fix(layout): lock app container to 100vh flex-col layout ensuring footer is strictly pinned to viewport bottom
Validators (Pushes and Pull Requests) / Database & Schema Validation (push) Successful in 11s
Validators (Pushes and Pull Requests) / UI & Storage Validation (push) Failing after 12s
Validators (Pushes and Pull Requests) / Core Validators & Database Setup (push) Failing after 21s
Validators (Pushes and Pull Requests) / CI Workflow Lint (push) Failing after 10s
Validators (Pushes and Pull Requests) / Security & Secrets (push) Successful in 11s
Validators (Pushes and Pull Requests) / WBS & Audit Validations (push) Has been skipped
Validators (Pushes and Pull Requests) / .NET Contracts (push) Has been skipped
Validators (Pushes and Pull Requests) / Calibration & Performance (push) Has been skipped
Validators (Pushes and Pull Requests) / Operational Report & Decision Packet (push) Has been skipped
Validators (Pushes and Pull Requests) / Notify PR Results (push) Has been skipped

This commit is contained in:
2026-07-26 02:03:27 +09:00
parent 6a83312e1c
commit 1343957788
3 changed files with 13 additions and 9 deletions
+2 -2
View File
@@ -6,8 +6,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>frontend</title>
</head>
<body>
<div id="app"></div>
<body style="margin:0; padding:0; overflow:hidden;">
<div id="app" style="width: 100vw; height: 100vh; overflow: hidden;"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
+7 -7
View File
@@ -21,11 +21,11 @@ const handleTemplateSelect = (e: Event) => {
<router-view />
</div>
<div v-else class="douzone-app-container">
<QuantHeader />
<div v-else class="douzone-app-container flex flex-col h-screen w-screen overflow-hidden">
<QuantHeader class="shrink-0" />
<!-- 12 QuantEngine WBS 메뉴 네비게이션 & 11 표준 업무 템플릿 셀렉터 -->
<div style="background: #1E293B; padding: 6px 16px; display: flex; items-center; justify-content: space-between; border-bottom: 1px solid #0F172A; overflow-x: auto; white-space: nowrap;">
<div class="shrink-0" style="background: #1E293B; padding: 6px 16px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #0F172A; overflow-x: auto; white-space: nowrap;">
<div style="display: flex; gap: 6px; align-items: center;">
<router-link to="/dashboard" style="color: white; text-decoration: none; padding: 4px 8px; font-size: 12px; font-weight: bold;" active-class="bg-blue-600 rounded">SCR-11: 펀드 KPI</router-link>
<router-link to="/timeseries" style="color: white; text-decoration: none; padding: 4px 8px; font-size: 12px; font-weight: bold;" active-class="bg-blue-600 rounded">SCR-01: 시계열</router-link>
@@ -59,12 +59,12 @@ const handleTemplateSelect = (e: Event) => {
</div>
</div>
<main style="flex: 1; overflow-y: auto; background: #F4F6F9;">
<!-- main scrollable body -->
<main class="flex-1 min-h-0 overflow-y-auto bg-slate-100">
<router-view />
</main>
<QuantFooter />
<!-- Always Fixed at Viewport Bottom -->
<QuantFooter class="shrink-0 mt-auto" />
</div>
</template>
+4
View File
@@ -84,8 +84,12 @@ body {
.w-full { width: 100%; }
.h-full { height: 100%; }
.w-screen { width: 100vw; }
.h-screen { height: 100vh; }
.min-h-full { min-height: 100%; }
.min-h-0 { min-height: 0; }
.shrink-0 { flex-shrink: 0; }
.mt-auto { margin-top: auto; }
.overflow-hidden { overflow: hidden; }
.overflow-y-auto { overflow-y: auto; }
.overflow-x-auto { overflow-x: auto; }