style(fe): restore Quick Links Toolbar in header according to user specifications

This commit is contained in:
2026-08-15 22:17:52 +09:00
parent cc5b4757c4
commit 5aeadb79c1
2 changed files with 55 additions and 26 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 83 KiB

+55 -26
View File
@@ -93,18 +93,42 @@ const toggleTheme = () => {
</div>
</div>
<!-- Quick Menu (빠른 메뉴) -->
<div class="ks-header__quick-menu" title="자주 찾는 화면 빠른 이동">
<!-- Quick Links Toolbar (주요 화면 바로가기 툴바) -->
<nav class="ks-header__quick-toolbar" aria-label="주요 화면 빠른 이동">
<span class="ks-header__quick-label"> 빠른메뉴:</span>
<select class="ks-header__quick-select" aria-label="빠른 메뉴 이동" @change="onQuickSelect">
<option value="" disabled selected>주요 업무 화면 선택...</option>
<option value="/model-ops/models-master">📂 트레이딩 모델 마스터</option>
<option value="/ops/data-quality">📊 데이터 품질 검증</option>
<option value="/model-ops/shadow-runs"> Shadow Run 실행/추적</option>
<option value="/approvals/workbench">📝 결재/승인 워크벤치</option>
<option value="/decisions/sell">📈 매도 의사결정 모니터링</option>
</select>
</div>
<button
type="button"
class="ks-header__quick-btn"
title="트레이딩 모델 마스터"
@click="router.push('/model-ops/models-master')"
>
📂 모델 마스터
</button>
<button
type="button"
class="ks-header__quick-btn"
title="데이터 품질 검증"
@click="router.push('/ops/data-quality')"
>
📊 데이터 품질
</button>
<button
type="button"
class="ks-header__quick-btn"
title="Shadow Run 실행/추적"
@click="router.push('/model-ops/shadow-runs')"
>
Shadow Run
</button>
<button
type="button"
class="ks-header__quick-btn"
title="결재/승인 워크벤치"
@click="router.push('/approvals/workbench')"
>
📝 결재 워크벤치
</button>
</nav>
<!-- Right side actions -->
<div class="ks-header__end">
@@ -297,39 +321,44 @@ const toggleTheme = () => {
color: var(--color-primary-500);
}
.ks-header__quick-menu {
.ks-header__quick-toolbar {
display: flex;
align-items: center;
gap: var(--ks-space-2);
gap: 6px;
flex: 1;
max-width: 380px;
max-width: 600px;
}
.ks-header__quick-label {
font-size: var(--ks-font-body);
font-size: 11px;
font-weight: 700;
color: var(--ks-color-action);
white-space: nowrap;
margin-right: 2px;
}
.ks-header__quick-select {
flex: 1;
height: var(--ks-control-height);
padding: 0 var(--ks-space-2);
.ks-header__quick-btn {
display: inline-flex;
align-items: center;
gap: 4px;
height: 24px;
padding: 0 8px;
background: var(--ks-color-surface);
border: 1px solid var(--ks-color-neutral-300);
border-radius: var(--ks-radius-sm);
background: var(--ks-color-surface);
color: var(--ks-color-neutral-900);
font-size: var(--ks-font-body);
font-family: inherit;
color: var(--ks-color-neutral-700);
font-size: 11px;
font-weight: 600;
cursor: pointer;
box-sizing: border-box;
white-space: nowrap;
transition: all 0.15s ease;
}
.ks-header__quick-select:hover {
.ks-header__quick-btn:hover {
background: #e0f2fe;
color: var(--ks-color-action);
border-color: var(--ks-color-action);
background: #f8fafc;
box-shadow: 0 1px 2px rgba(37, 99, 235, 0.12);
}
.ks-header__end {