diff --git a/src/excelHandler.ts b/src/excelHandler.ts index 36479bc..b923d11 100644 --- a/src/excelHandler.ts +++ b/src/excelHandler.ts @@ -30,6 +30,10 @@ export interface HardwareAsset { 금액?: string; 납품업체?: string; 품의서명?: string; + 용도?: string; + 원격접속?: string; + 모니터링?: string; + 비고?: string; } export interface SoftwareAsset { diff --git a/src/style.css b/src/style.css index 4b6238e..b1b4d12 100644 --- a/src/style.css +++ b/src/style.css @@ -240,12 +240,21 @@ body { .btn-outline { background-color: transparent; - color: var(--text-main); - border: 1px solid var(--border-color); + color: var(--primary-color); + border: 1px solid var(--primary-color); + padding: 0.25rem 0.5rem; + font-size: 0.75rem; + font-weight: 500; + white-space: nowrap; } .btn-outline:hover { - background-color: var(--border-color); + background-color: var(--primary-light); + border-color: var(--primary-color); +} + +.text-nowrap { + white-space: nowrap; } .btn-danger { diff --git a/src/views/AssetTableView.ts b/src/views/AssetTableView.ts index 91254bf..93e5e0c 100644 --- a/src/views/AssetTableView.ts +++ b/src/views/AssetTableView.ts @@ -58,15 +58,50 @@ function renderHwTable(table: HTMLTableElement, container: HTMLElement, mainCont tbody.appendChild(tr); }); } else { - table.innerHTML = `No법인${state.activeSubTab === '전산비품' ? '유형' : ''}자산코드명칭위치관리자구매일금액관리`; + if (state.activeSubTab === '서버') { + table.innerHTML = `No법인자산번호유형용도설치위치담당자(정)담당자(부)IP 주소원격접속모델명OSCPURAMGPUStorage1Storage2Storage3모니터링비고관리`; + } else { + table.innerHTML = `No법인${state.activeSubTab === '전산비품' ? '유형' : ''}자산코드명칭위치관리자구매일금액관리`; + } + container.appendChild(table); mainContent.appendChild(container); const tbody = document.getElementById('dynamic-tbody')!; - if (list.length === 0) { tbody.innerHTML = `등록된 자산이 없습니다.`; return; } + const colCount = state.activeSubTab === '서버' ? 21 : (state.activeSubTab === '전산비품' ? 11 : 10); + if (list.length === 0) { tbody.innerHTML = `등록된 자산이 없습니다.`; return; } + list.forEach((asset, idx) => { const tr = document.createElement('tr'); tr.style.cursor = 'pointer'; - tr.innerHTML = `${idx+1}${asset.법인}${state.activeSubTab === '전산비품' ? `${asset.비품유형||'-'}` : ''}${asset.자산코드}${asset.명칭}${asset.위치}${asset.관리자}${asset.구매일||''}${asset.금액||''}`; + + if (state.activeSubTab === '서버') { + tr.innerHTML = ` + ${idx+1} + ${asset.법인} + ${asset.자산코드} + ${asset.storage유형 || '물리'} + ${asset.용도 || asset.명칭 || '-'} + ${asset.위치} + ${asset.담당자_정 || asset.관리자 || '-'} + ${asset.담당자_부 || '-'} + ${asset.IP주소} + ${asset.원격접속 || '-'} + ${asset.모델명 || '-'} + ${asset.OS || ''} + ${asset.CPU || ''} + ${asset.RAM || ''} + ${asset.GPU || '-'} + ${asset.SSD1 || '-'} + ${asset.SSD2 || '-'} + ${asset.HDD1 || '-'} + ${asset.모니터링 || '-'} + ${asset.비고 || '-'} + + `; + } else { + tr.innerHTML = `${idx+1}${asset.법인}${state.activeSubTab === '전산비품' ? `${asset.비품유형||'-'}` : ''}${asset.자산코드}${asset.명칭}${asset.위치}${asset.관리자}${asset.구매일||''}${asset.금액||''}`; + } + tr.addEventListener('click', (e) => { if (!(e.target as HTMLElement).closest('button')) openHwModal(asset); }); tr.querySelector('.btn-edit')?.addEventListener('click', () => openHwModal(asset)); tbody.appendChild(tr); diff --git a/서버 관리대장(기술개발센터).xlsx b/서버 관리대장(기술개발센터).xlsx new file mode 100644 index 0000000..819780a Binary files /dev/null and b/서버 관리대장(기술개발센터).xlsx differ diff --git a/서버 관리대장(한맥빌딩).xlsx b/서버 관리대장(한맥빌딩).xlsx new file mode 100644 index 0000000..bd52b7d Binary files /dev/null and b/서버 관리대장(한맥빌딩).xlsx differ diff --git a/서버목록 및 IDC 서버 위치.xlsx b/서버목록 및 IDC 서버 위치.xlsx new file mode 100644 index 0000000..e6bf47f Binary files /dev/null and b/서버목록 및 IDC 서버 위치.xlsx differ