diff --git a/src/frontend/src/views/SystemSettingsView.vue b/src/frontend/src/views/SystemSettingsView.vue index b9fc1dc3..bb9354a3 100644 --- a/src/frontend/src/views/SystemSettingsView.vue +++ b/src/frontend/src/views/SystemSettingsView.vue @@ -38,11 +38,12 @@ const activeTab = ref('ALL'); // 2. Master-Detail 바인딩 및 편집 모드 토글 상태 const items = ref([]); const selectedItem = ref(null); -const isEditMode = ref(false); // Readonly vs Edit Mode Toggle +const isEditMode = ref(false); // 3. 페이지네이션 및 엑셀 드롭다운 상태 const currentPage = ref(1); const showExportMenu = ref(false); +const isGuideModalOpen = ref(false); // 12대 컴포넌트 명세 팝업 모달 // 4. 토스트 알림 시스템 상태 const toastMessage = ref<{ text: string; type: 'success' | 'warning' | 'error' } | null>(null); @@ -124,7 +125,7 @@ const loadData = async () => { const handleRowSelect = (rows: any[]) => { if (rows.length > 0) { selectedItem.value = JSON.parse(JSON.stringify(rows[0])); - isEditMode.value = false; // 선택 시 읽기 모드로 재설정 + isEditMode.value = false; } }; @@ -156,7 +157,6 @@ const saveDetailForm = () => { if (!selectedItem.value) return; const idx = items.value.findIndex(i => i.id === selectedItem.value?.id); if (idx !== -1) { - // 변경 이력 기록 추가 if (!selectedItem.value.audit_history) selectedItem.value.audit_history = []; selectedItem.value.audit_history.unshift({ timestamp: new Date().toISOString().slice(0, 16).replace('T', ' '), @@ -201,11 +201,12 @@ onMounted(loadData);
-

⚙️ SCR-07: 올인원 궁극의 CRUD 매니저

+

⚙️ SCR-07: 올인원 12대 CRUD 마스터피스 매니저

Master-Detail, AG Grid, Toast, Tabs, Audit Timeline, Mode Switch, Modal, 더존 6대 표준 컴포넌트
+ @@ -213,7 +214,6 @@ onMounted(loadData); -
+ + + @@ -395,6 +424,23 @@ onMounted(loadData); position: relative; } +.btn-guide-spec { + background: #8E44AD; + color: white; + border: none; + padding: 6px 12px; + border-radius: 4px; + font-size: 0.75rem; + font-weight: 700; + cursor: pointer; +} + +.btn-guide-spec:hover { background: #7D3C98; } + +.guide-modal { width: 560px; } +.guide-body { max-height: 380px; overflow-y: auto; } +.guide-list { margin: 0; padding-left: 20px; font-size: 0.8rem; color: #334155; line-height: 1.8; } + /* Toast Notification Styles */ .toast-notification { position: absolute;