feat: 하드웨어 자동 변경 이력 생성 및 자산 관리 프로세스 고도화

This commit is contained in:
2026-04-22 17:15:58 +09:00
parent af37df7f2d
commit e1cdcfd93a
18 changed files with 730 additions and 1200 deletions

View File

@@ -105,7 +105,7 @@ export function renderHwDashboard(container: HTMLElement) {
<th>유형</th>
<th>모델명</th>
<th>사용자/담당자</th>
<th>구매</th>
<th>구매연월</th>
<th>연령</th>
</tr>
</thead>

View File

@@ -22,6 +22,9 @@ export function renderEquipmentList(container: HTMLElement) {
<button id="btn-reset-filters" class="btn btn-outline btn-reset">
<i data-lucide="refresh-ccw"></i> 필터 초기화
</button>
<button id="btn-add-equip" class="btn btn-primary" style="margin-left: auto;">
<i data-lucide="plus"></i> 자산 추가
</button>
`;
container.appendChild(filterBar);
@@ -39,7 +42,7 @@ export function renderEquipmentList(container: HTMLElement) {
<th style="text-align:center;">모델명</th>
<th style="text-align:center;">보관위치</th>
<th style="text-align:center;">관리자</th>
<th style="text-align:center;">구매</th>
<th style="text-align:center;">구매연월</th>
<th style="text-align:center;">금액</th>
</tr>
</thead>

View File

@@ -22,6 +22,9 @@ export function renderMobileList(container: HTMLElement) {
<button id="btn-reset-filters" class="btn btn-outline btn-reset">
<i data-lucide="refresh-ccw"></i> 필터 초기화
</button>
<button id="btn-add-mobile" class="btn btn-primary" style="margin-left: auto;">
<i data-lucide="plus"></i> 자산 추가
</button>
`;
container.appendChild(filterBar);
@@ -38,7 +41,7 @@ export function renderMobileList(container: HTMLElement) {
<th style="text-align:center;">명칭</th>
<th style="text-align:center;">보관위치</th>
<th style="text-align:center;">관리자</th>
<th style="text-align:center;">구매</th>
<th style="text-align:center;">구매연월</th>
<th style="text-align:center;">금액</th>
</tr>
</thead>
@@ -106,7 +109,8 @@ export function renderMobileList(container: HTMLElement) {
(document.getElementById('filter-keyword') as HTMLInputElement).value = '';
(document.getElementById('filter-corp') as HTMLSelectElement).value = '';
updateTable();
});
});
updateTable();
}
updateTable();
}

View File

@@ -1,5 +1,5 @@
import { state } from '../../core/state';
import { openPcModal } from '../../components/Modal/PCModal';
import { openHwModal } from '../../components/Modal/HWModal';
import { formatInline, sortAssets } from '../../core/utils';
import { createIcons, Paperclip, RefreshCcw } from 'lucide';
@@ -28,7 +28,7 @@ export function renderPcList(container: HTMLElement) {
const tableWrapper = document.createElement('div');
tableWrapper.className = 'table-container';
const table = document.createElement('table');
table.innerHTML = `<thead><tr><th>No</th><th>구매법인</th><th>현 사용조직</th><th>자산코드</th><th>사용자</th><th>위치</th><th>CPU</th><th>RAM</th><th>Storage</th><th>구매</th><th>금액</th><th>품의서</th><th>관리</th></tr></thead><tbody id="dynamic-tbody"></tbody>`;
table.innerHTML = `<thead><tr><th>No</th><th>구매법인</th><th>현 사용조직</th><th>자산코드</th><th>사용자</th><th>위치</th><th>CPU</th><th>RAM</th><th>Storage</th><th>구매연월</th><th>금액</th><th>품의서</th><th>관리</th></tr></thead><tbody id="dynamic-tbody"></tbody>`;
tableWrapper.appendChild(table);
container.appendChild(tableWrapper);
@@ -69,12 +69,12 @@ export function renderPcList(container: HTMLElement) {
<td>${asset.CPU||''}</td>
<td>${asset.RAM||''}</td>
<td>${formatInline(storage)}</td>
<td>${asset.||''}</td>
<td>${asset. || asset. || ''}</td>
<td>${asset.||''}</td>
<td style="text-align:center;">${asset. ? '<i data-lucide="paperclip" class="text-primary"></i>' : '-'}</td>
<td><button class="btn btn-outline btn-sm">수정</button></td>
`;
tr.addEventListener('click', (e) => { if (!(e.target as HTMLElement).closest('button')) openPcModal(asset, 'view'); });
tr.addEventListener('click', (e) => { if (!(e.target as HTMLElement).closest('button')) openHwModal(asset, 'view'); });
tbody.appendChild(tr);
});
createIcons({ icons: { Paperclip } });

View File

@@ -102,7 +102,8 @@ export function renderServerList(container: HTMLElement) {
(document.getElementById('filter-corp') as HTMLSelectElement).value = '';
(document.getElementById('filter-org-unit') as HTMLSelectElement).value = '';
updateTable();
});
});
updateTable();
}
updateTable();
}

View File

@@ -49,7 +49,7 @@ export function renderSwList(container: HTMLElement) {
<th style="text-align:center;">구매법인</th>
<th style="text-align:center;">부서</th>
<th style="text-align:center;">제품명</th>
<th style="text-align:center;">구매</th>
<th style="text-align:center;">구매연월</th>
${isSub ? '<th style="text-align:center;">구독일</th>' : ''}
<th style="text-align:center;">금액</th>
<th style="text-align:center;">수량</th>