feat: restructure navigation, customize list columns, and move action buttons to search bar
1. Restructured navigation hierarchy (Hardware, Software, Ops Support, etc.). 2. Customized table columns for all asset categories according to new specs. 3. Moved Template/Upload/Export/Add buttons to search bar with layout optimization. 4. Hidden Asset Code and Previous User from list views (Modal only). 5. Added Current/Previous User and detailed PC spec fields (GPU, HDD3/4).
This commit is contained in:
@@ -9,50 +9,65 @@
|
||||
export const ASSET_SCHEMA = {
|
||||
// ─── 공통 필드 (Common) ───
|
||||
ID: { key: 'id', db: 'id', ui: 'ID' },
|
||||
TYPE: { key: 'type', db: 'type', ui: '자산유형' },
|
||||
CORP: { key: '법인', db: 'corp', ui: '구매법인' },
|
||||
ASSET_CODE: { key: '자산코드', db: 'asset_code', ui: '자산번호' },
|
||||
PURCHASE_YM: { key: '구매연월', db: 'purchase_date', ui: '구매연월' },
|
||||
ORG: { key: '현사용조직', db: 'current_org', ui: '현 사용조직' },
|
||||
PREV_ORG: { key: '이전사용조직', db: 'prev_org', ui: '이전 사용조직' },
|
||||
LOCATION: { key: '위치', db: 'location', ui: '설치위치' },
|
||||
MANAGER_MAIN: { key: '담당자_정', db: 'manager_main', ui: '담당자' },
|
||||
MANAGER_SUB: { key: '담당자_부', db: 'manager_sub', ui: '담당자(부)' },
|
||||
PRICE: { key: '금액', db: 'price', ui: '도입금액' },
|
||||
VENDOR: { key: '납품업체', db: 'vendor', ui: '납품업체' },
|
||||
DOC_NAME: { key: '품의서명', db: 'doc_name', ui: '품의서' },
|
||||
REMARKS: { key: '비고', db: 'remarks', ui: '비고' },
|
||||
DETAIL_PURPOSE: { key: '상세용도', db: 'detail_purpose', ui: '용도' },
|
||||
ASSET_CODE: { key: 'asset_code', db: 'asset_code', ui: '자산번호' },
|
||||
CATEGORY: { key: 'category', db: 'category', ui: '구분' },
|
||||
ASSET_TYPE: { key: 'asset_type', db: 'asset_type', ui: '유형' },
|
||||
PURCHASE_CORP: { key: 'purchase_corp',db: 'purchase_corp', ui: '구매법인' },
|
||||
PURCHASE_DATE: { key: 'purchase_date',db: 'purchase_date', ui: '구매일자' },
|
||||
PURCHASE_AMOUNT:{ key: 'purchase_amount', db: 'purchase_amount', ui: '구매금액' },
|
||||
PURCHASE_VENDOR:{ key: 'purchase_vendor', db: 'purchase_vendor', ui: '구매업체' },
|
||||
APPROVAL_DOC: { key: 'approval_document', db: 'approval_document', ui: '품의서' },
|
||||
MANAGER_MAIN: { key: 'manager_primary', db: 'manager_primary', ui: '담당자(정)' },
|
||||
MANAGER_SUB: { key: 'manager_secondary', db: 'manager_secondary', ui: '담당자(부)' },
|
||||
LOCATION: { key: 'location', db: 'location', ui: '설치위치' },
|
||||
LOC_DETAIL: { key: 'location_detail', db: 'location_detail', ui: '상세위치' },
|
||||
MEMO: { key: 'memo', db: 'memo', ui: '메모' },
|
||||
|
||||
// ─── 하드웨어 상세 (Hardware) ───
|
||||
USER: { key: '사용자', db: 'purpose', ui: '사용자' },
|
||||
MODEL: { key: '모델명', db: 'model_name', ui: '모델명' },
|
||||
MAINBOARD: { key: '메인보드', db: 'mainboard', ui: '메인보드' },
|
||||
OS: { key: 'OS', db: 'os', ui: '운영체제' },
|
||||
CPU: { key: 'CPU', db: 'cpu', ui: 'CPU' },
|
||||
RAM: { key: 'RAM', db: 'ram', ui: 'RAM' },
|
||||
STORAGE1: { key: 'SSD1', db: 'storage1', ui: 'Storage 1' },
|
||||
STORAGE2: { key: 'SSD2', db: 'storage2', ui: 'Storage 2' },
|
||||
IP_ADDR: { key: 'IP주소', db: 'ip_address', ui: 'IP 주소 1' },
|
||||
IP_ADDR2: { key: 'IP2', db: 'ip2', ui: 'IP 주소 2' },
|
||||
MAC_ADDR: { key: 'MACaddress', db: 'mac_address', ui: 'MAC 주소' },
|
||||
GPU: { key: 'GPU', db: 'gpu', ui: 'GPU' },
|
||||
STORAGE3: { key: 'SSD3', db: 'storage3', ui: 'Storage 3' },
|
||||
STATUS: { key: '현재상태', db: 'status', ui: '현재상태' },
|
||||
STORE_LOC: { key: '보관위치', db: 'storage_location',ui: '보관위치' },
|
||||
|
||||
// ─── 소프트웨어/클라우드 상세 (SW/Cloud) ───
|
||||
PRODUCT: { key: '제품명', db: 'product_name', ui: '제품/서비스명' },
|
||||
PLATFORM: { key: '플랫폼명', db: 'platform_name', ui: '운영 플랫폼' },
|
||||
LICENSE_TYPE: { key: '라이선스유형', db: 'license_type', ui: '라이선스 유형' },
|
||||
LICENSE_KEY: { key: '라이선스키', db: 'license_key', ui: '라이선스 키' },
|
||||
QTY: { key: '수량', db: 'quantity', ui: '보유수량' },
|
||||
EXPIRY: { key: '만료일', db: 'expiry_date', ui: '만료/구독일' },
|
||||
ACCOUNT: { key: '계정명', db: 'account_name', ui: '계정(이메일)' },
|
||||
PAY_METHOD: { key: '결제수단', db: 'pay_method', ui: '결제수단' },
|
||||
PAY_DAY: { key: '결제일', db: 'pay_day', ui: '결제일' },
|
||||
CARD_NUM: { key: '연결카드번호', db: 'card_num', ui: '카드번호(뒷4자리)' },
|
||||
BILLING: { key: '당월청구액', db: 'monthly_fee', ui: '당월 청구액' }
|
||||
HW_STATUS: { key: 'hw_status', db: 'hw_status', ui: '상태' },
|
||||
MODEL_NAME: { key: 'model_name', db: 'model_name', ui: '모델명' },
|
||||
ASSET_NAME: { key: 'asset_name', db: 'asset_name', ui: '모델명' },
|
||||
ASSET_MFR: { key: 'asset_mfr', db: 'asset_mfr', ui: '제조사' },
|
||||
CURRENT_DEPT: { key: 'current_dept', db: 'current_dept', ui: '현 사용조직' },
|
||||
PREV_DEPT: { key: 'previous_dept',db: 'previous_dept', ui: '직전 사용조직' },
|
||||
CURRENT_USER: { key: 'current_user', db: 'current_user', ui: '현 사용자' },
|
||||
PREV_USER: { key: 'previous_user',db: 'previous_user', ui: '직전 사용자' },
|
||||
CPU: { key: 'cpu', db: 'cpu', ui: 'CPU' },
|
||||
RAM: { key: 'ram', db: 'ram', ui: 'RAM' },
|
||||
GPU: { key: 'gpu', db: 'gpu', ui: 'GPU' },
|
||||
SSD1: { key: 'ssd_1', db: 'ssd_1', ui: 'Storage 1' },
|
||||
SSD2: { key: 'ssd_2', db: 'ssd_2', ui: 'Storage 2' },
|
||||
HDD1: { key: 'hdd_1', db: 'hdd_1', ui: 'HDD 1' },
|
||||
HDD2: { key: 'hdd_2', db: 'hdd_2', ui: 'HDD 2' },
|
||||
HDD3: { key: 'hdd_3', db: 'hdd_3', ui: 'HDD 3' },
|
||||
HDD4: { key: 'hdd_4', db: 'hdd_4', ui: 'HDD 4' },
|
||||
MAINBOARD: { key: 'mainboard', db: 'mainboard', ui: '메인보드' },
|
||||
IP_ADDR: { key: 'ip_address', db: 'ip_address', ui: 'IP 주소' },
|
||||
IP_ADDR2: { key: 'ip_address_2', db: 'ip_address_2', ui: 'IP 주소 2' },
|
||||
MAC_ADDR: { key: 'mac_address', db: 'mac_address', ui: 'MAC 주소' },
|
||||
REMOTE_TOOL: { key: 'remote_tool', db: 'remote_tool', ui: '원격도구' },
|
||||
REMOTE_ID: { key: 'remote_id', db: 'remote_id', ui: '원격 ID' },
|
||||
REMOTE_PW: { key: 'remote_pw', db: 'remote_pw', ui: '원격 PW' },
|
||||
MONITORING: { key: 'monitoring', db: 'monitoring', ui: '모니터링' },
|
||||
VOLUME: { key: 'volume', db: 'volume', ui: '용량' },
|
||||
MONITOR_INCH: { key: 'monitor_inch', db: 'monitor_inch', ui: '인치' },
|
||||
ASSET_COUNT: { key: 'asset_count', db: 'asset_count', ui: '수량(개수)' },
|
||||
SERIAL_NUM: { key: 'serial_num', db: 'serial_num', ui: 'S/N' },
|
||||
|
||||
// ─── 소프트웨어/클라우드 상세 (SW/Cloud/Domain) ───
|
||||
SW_STATUS: { key: 'sw_status', db: 'sw_status', ui: 'SW 상태' },
|
||||
SW_FIELD: { key: 'sw_field', db: 'sw_field', ui: '분야' },
|
||||
SW_TYPE: { key: 'sw_type', db: 'sw_type', ui: 'SW 유형' },
|
||||
DEV_OBJ: { key: 'dev_objective',db: 'dev_objective', ui: '개발목적' },
|
||||
DEV_MGR: { key: 'dev_manager', db: 'dev_manager', ui: '담당개발자' },
|
||||
SALES_MGR: { key: 'sales_manager',db: 'sales_manager', ui: '영업담당자' },
|
||||
PRODUCT_NAME: { key: 'product_name', db: 'product_name', ui: '제품명' },
|
||||
DOMAIN_ADDR: { key: 'domain_address', db: 'domain_address',ui: '도메인주소' },
|
||||
EMAIL_ACCOUNT: { key: 'email_account', db: 'email_account', ui: '관리계정' },
|
||||
EMAIL_PW: { key: 'email_pw', db: 'email_pw', ui: '계정PW' },
|
||||
PURCHASE_METHOD:{ key: 'purchase_method', db: 'purchase_method', ui: '결제수단' },
|
||||
ASSET_PURPOSE: { key: 'asset_purpose', db: 'asset_purpose', ui: '용도' },
|
||||
EXPIRY_DATE: { key: 'expiry_date', db: 'expiry_date', ui: '만료일' }
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -129,3 +129,25 @@ export function dynamicSort<T>(list: T[], key: string, direction: 'asc' | 'desc'
|
||||
return 0;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 목록 뷰용 액션 버튼 HTML 생성 (양식, 업로드, 엑셀저장, 자산추가)
|
||||
*/
|
||||
export function getActionButtonsHTML(): string {
|
||||
return `
|
||||
<div class="search-actions">
|
||||
<button id="btn-download-template" class="btn btn-outline" title="통합 양식 다운로드">
|
||||
<i data-lucide="download"></i> 양식
|
||||
</button>
|
||||
<label for="excel-upload" class="btn btn-outline" title="엑셀 파일 업로드">
|
||||
<i data-lucide="upload"></i> 업로드
|
||||
</label>
|
||||
<button id="btn-export-excel" class="btn btn-primary" title="일괄 엑셀 저장">
|
||||
<i data-lucide="file-spreadsheet"></i> 엑셀저장
|
||||
</button>
|
||||
<button id="btn-add-asset" class="btn btn-primary">
|
||||
<i data-lucide="plus"></i> 자산추가
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user