From 77563994e99c858167d465561181430b5bccfe7e Mon Sep 17 00:00:00 2001 From: JooWangi Date: Tue, 14 Apr 2026 10:13:54 +0900 Subject: [PATCH] feat: Update AssetTableView and DashboardView to improve software management UI --- src/views/AssetTableView.ts | 11 ++++++---- src/views/DashboardView.ts | 40 +++++++++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/src/views/AssetTableView.ts b/src/views/AssetTableView.ts index 91254bf..6bb2d81 100644 --- a/src/views/AssetTableView.ts +++ b/src/views/AssetTableView.ts @@ -76,17 +76,20 @@ function renderHwTable(table: HTMLTableElement, container: HTMLElement, mainCont function renderSwTable(table: HTMLTableElement, container: HTMLElement, mainContent: HTMLElement) { const list = state.masterData.sw.filter(a => a.type === state.activeSubTab); - table.innerHTML = `No법인제품명구매일수량사용가능관리`; + const isSub = state.activeSubTab === '구독SW'; + + table.innerHTML = `No법인제품명구매일${isSub ? '구독일' : ''}수량사용가능관리`; container.appendChild(table); mainContent.appendChild(container); const tbody = document.getElementById('dynamic-tbody')!; - if (list.length === 0) { tbody.innerHTML = `정보가 없습니다.`; return; } + if (list.length === 0) { tbody.innerHTML = `정보가 없습니다.`; return; } + list.forEach((asset, idx) => { const assigned = state.masterData.swUsers.filter(u => u.swId === asset.id).length; - const avail = asset.수량 - assigned; + const avail = (typeof asset.수량 === 'number' ? asset.수량 : parseInt(asset.수량||'0', 10)) - assigned; const tr = document.createElement('tr'); tr.style.cursor = 'pointer'; - tr.innerHTML = `${idx+1}${asset.법인}${asset.제품명}${asset.구매일||''}${asset.수량}${avail}`; + tr.innerHTML = `${idx+1}${asset.법인}${asset.제품명}${asset.구매일||''}${isSub ? `${asset.구독일||''}` : ''}${asset.수량}${avail}`; tr.addEventListener('click', (e) => { if (!(e.target as HTMLElement).closest('button')) openSwModal(asset); }); tr.querySelector('.btn-edit')?.addEventListener('click', () => openSwModal(asset)); tr.querySelector('.btn-users')?.addEventListener('click', () => openSwUserModal(asset)); diff --git a/src/views/DashboardView.ts b/src/views/DashboardView.ts index 4101b34..ff72541 100644 --- a/src/views/DashboardView.ts +++ b/src/views/DashboardView.ts @@ -161,19 +161,39 @@ function renderSwDashboard(container: HTMLElement) {
-
-
- 구독 SW 만료 예정 -
${subExp}개 만료 예정
+
+
+
+ 구독 SW 만료 예정 + 30일 이내 +
+
+ 전체 ${subTotal}개 제품 중 ${subExp}개 만료 예정 +
+
${subExp}개
+
+
+
+ ${subExpPer}% +
-
-
-
- 유지보수 만료 예정 -
${permExp}개 만료 예정
+
+
+
+ 유지보수 만료 예정 + 30일 이내 +
+
+ 전체 ${permTotal}개 제품 중 ${permExp}개 만료 예정 +
+
${permExp}개
+
+
+
+ ${permExpPer}% +
-
`;