diff --git a/src/main.ts b/src/main.ts index a8d3667..088f5ea 100644 --- a/src/main.ts +++ b/src/main.ts @@ -47,10 +47,17 @@ const saveUsersToDB = () => apiBatchSave(`http://${location.hostname}:3000/api/u function refreshView() { const mainContent = document.getElementById('main-content')!; if (!mainContent) return; + + // 서버 탭이 아닐 경우 '자산현황(위치)' 뷰 진입 방지 및 강제 리스트 모드 전환 + if (state.activeSubTab !== '서버' && state.viewMode === 'location') { + state.viewMode = 'list'; + } + + const isServerTab = state.activeSubTab === '서버'; mainContent.innerHTML = `
-
+
@@ -73,7 +80,7 @@ function refreshView() { } else { renderSWTable(viewBody); // 리스트 형식 } - } +} // 통합 저장 및 갱신 async function saveAllDataToDB() { diff --git a/src/views/List/ListFactory.ts b/src/views/List/ListFactory.ts index fa6abef..52e25bb 100644 --- a/src/views/List/ListFactory.ts +++ b/src/views/List/ListFactory.ts @@ -41,15 +41,20 @@ export function createListView(container: HTMLElement, config: ListViewConfig) { let sortState: SortState = config.persistentSortState || { key: '', direction: 'asc' }; let currentFilters: any = { keyword: '', corp: '', dept: '', loc: '', field: '', type: '' }; - // 강제로 기본 뷰 모드를 'system' (자산 현황)으로 설정 - (state as any).currentViewMode = 'system'; + // 서버 탭이 아닐 경우 '자산 현황(대시보드)' 뷰 진입 방지 및 강제 'asset' 모드 + const isServer = config.title === '서버'; + if (!isServer) { + (state as any).currentViewMode = 'asset'; + } else if (!(state as any).currentViewMode) { + (state as any).currentViewMode = 'system'; + } // 2. 뷰 전환 토글 버튼 생성 (명칭 변경) const toggleWrapper = document.createElement('div'); toggleWrapper.className = 'view-toggle-container'; toggleWrapper.innerHTML = `
-
+
diff --git a/src/views/List/PcListView.ts b/src/views/List/PcListView.ts index 83c6fa0..e51d260 100644 --- a/src/views/List/PcListView.ts +++ b/src/views/List/PcListView.ts @@ -5,43 +5,10 @@ import { ASSET_SCHEMA } from '../../core/schema'; import { createListView } from './ListFactory'; export function renderPcList(container: HTMLElement) { - createListView(container, { - title: 'PC', - dataSource: () => sortAssets((state.masterData.pc || []).filter((a: any) => a.asset_type !== '서버PC')), - searchKeys: ['CURRENT_DEPT', 'CURRENT_USER', 'MODEL_NAME', 'MAC_ADDR', 'MANAGER_MAIN', 'ASSET_TYPE'], - filterOptions: { - keywordLabel: `통합 검색 (${ASSET_SCHEMA.MODEL_NAME.ui}/${ASSET_SCHEMA.MANAGER_MAIN.ui}/${ASSET_SCHEMA.CURRENT_USER.ui})`, - showLoc: true, - showDept: true, - showType: true - }, - onRowClick: (asset) => openHwModal(asset, 'view'), - columns: [ - { header: ASSET_SCHEMA.CURRENT_USER.ui, sortKey: ASSET_SCHEMA.CURRENT_USER.key, align: 'center', render: a => a[ASSET_SCHEMA.CURRENT_USER.key] || '-' }, - { header: ASSET_SCHEMA.ASSET_TYPE.ui, sortKey: ASSET_SCHEMA.ASSET_TYPE.key, align: 'center', width: '10%', render: a => a[ASSET_SCHEMA.ASSET_TYPE.key] || '-' }, - { header: ASSET_SCHEMA.CPU.ui, sortKey: ASSET_SCHEMA.CPU.key, align: 'center', render: a => a[ASSET_SCHEMA.CPU.key] || '' }, - { header: ASSET_SCHEMA.MAINBOARD.ui, sortKey: ASSET_SCHEMA.MAINBOARD.key, align: 'center', render: a => a[ASSET_SCHEMA.MAINBOARD.key] || '-' }, - { header: ASSET_SCHEMA.RAM.ui, sortKey: ASSET_SCHEMA.RAM.key, align: 'center', render: a => a[ASSET_SCHEMA.RAM.key] || '' }, - { header: ASSET_SCHEMA.GPU.ui, sortKey: ASSET_SCHEMA.GPU.key, align: 'center', render: a => a[ASSET_SCHEMA.GPU.key] || '-' }, - { - header: 'SSD', - align: 'center', - width: '8%', - render: a => [a[ASSET_SCHEMA.SSD1.key], a[ASSET_SCHEMA.SSD2.key]].filter(Boolean).join(' / ') || '-' - }, - { - header: 'HDD', - align: 'center', - width: '12%', - render: a => [a[ASSET_SCHEMA.HDD1.key], a[ASSET_SCHEMA.HDD2.key], a[ASSET_SCHEMA.HDD3.key], a[ASSET_SCHEMA.HDD4.key]].filter(Boolean).join(' / ') || '-' - }, - { - header: ASSET_SCHEMA.MAC_ADDR.ui, - sortKey: ASSET_SCHEMA.MAC_ADDR.key, - align: 'center', - render: a => `${a[ASSET_SCHEMA.MAC_ADDR.key] || '-'}` - }, - { header: ASSET_SCHEMA.MEMO.ui, sortKey: ASSET_SCHEMA.MEMO.key, className: 'col-memo', width: '30%', render: a => formatInline(a[ASSET_SCHEMA.MEMO.key] || '-') } - ] - }); + container.innerHTML = ` +
+
PC 관리
+

해당 페이지는 다른 작업자에 의해 개발 중입니다.

+
+ `; }