feat: migrate ServerPC data to asset_pc, enhance filters with location, and standardize page headers
- 서버PC 자산을 asset_pc 테이블로 통합 마이그레이션 및 스키마 확장 (위치, IP 정보 복구 완료) - 하드웨어 자산 페이지의 구매법인 필터를 자산위치 필터로 교체 및 동적 데이터 바인딩 적용 - 모든 자산 리스트 페이지 상단에 설명(Description) 필드 추가 및 헤더 표준화 - 상세 모달 내 삭제 버튼 기능 구현 및 서버PC 용도 필드 노출 오류 수정 - 현 사용조직 필터 리스트가 비어있던 DOM 셀렉터 버그 수정
This commit is contained in:
@@ -19,28 +19,30 @@ export const ASSET_SCHEMA = {
|
||||
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: '설치위치' },
|
||||
LOCATION: { key: 'location', db: 'location', ui: '자산위치' },
|
||||
LOC_DETAIL: { key: 'location_detail', db: 'location_detail', ui: '상세위치' },
|
||||
MEMO: { key: 'memo', db: 'memo', ui: '메모' },
|
||||
|
||||
// ─── 하드웨어 상세 (Hardware) ───
|
||||
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_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: '현 사용자' },
|
||||
CURRENT_USER: { key: 'user_current', db: 'user_current', ui: '현 사용자' },
|
||||
EMP_NO: { key: 'emp_no', db: 'emp_no', ui: '사번' },
|
||||
USER_POSITION: { key: 'user_position', db: 'user_position', 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' },
|
||||
SSD1: { key: 'ssd_1', db: 'ssd_1', ui: 'SSD1' },
|
||||
SSD2: { key: 'ssd_2', db: 'ssd_2', ui: 'SSD2' },
|
||||
HDD1: { key: 'hdd_1', db: 'hdd_1', ui: 'HDD1' },
|
||||
HDD2: { key: 'hdd_2', db: 'hdd_2', ui: 'HDD2' },
|
||||
HDD3: { key: 'hdd_3', db: 'hdd_3', ui: 'HDD3' },
|
||||
HDD4: { key: 'hdd_4', db: 'hdd_4', ui: 'HDD4' },
|
||||
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' },
|
||||
@@ -51,23 +53,104 @@ export const ASSET_SCHEMA = {
|
||||
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: '수량(개수)' },
|
||||
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_STATUS: { key: 'sw_status', db: 'sw_status', ui: '상태' },
|
||||
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: '담당개발자' },
|
||||
SW_TYPE: { key: 'sw_type', db: 'sw_type', ui: '유형' },
|
||||
DEV_OBJ: { key: 'dev_objective',db: 'dev_objective', ui: '목적' },
|
||||
DEV_MGR: { key: 'dev_manager', db: 'dev_manager', ui: '개발담당자' },
|
||||
PLANNING_MGR: { key: 'planning_manager', db: 'planning_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' },
|
||||
EMAIL_ACCOUNT: { key: 'email_account', db: 'email_account', ui: '이메일주소' },
|
||||
EMAIL_PW: { key: 'email_pw', db: 'email_pw', ui: '이메일비밀번호' },
|
||||
SW_ID: { key: 'sw_id', db: 'sw_id', ui: '계정ID' },
|
||||
SW_PW: { key: 'sw_pw', db: 'sw_pw', ui: '비밀번호' },
|
||||
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: '만료일' }
|
||||
ASSET_STATUS: { key: 'asset_status', db: 'asset_status', ui: '상태' },
|
||||
START_DATE: { key: 'start_date', db: 'start_date', ui: '시작일' },
|
||||
EXPIRED_DATE: { key: 'expired_date', db: 'expired_date', ui: '만료일' }
|
||||
};
|
||||
|
||||
/**
|
||||
* 페이지별 헤더 정보 (타이틀, 설명, 아이콘)
|
||||
*/
|
||||
export const PAGE_DESCRIPTIONS: Record<string, { title: string; description: string; icon: string }> = {
|
||||
'PC': {
|
||||
title: '개인PC 자산 관리',
|
||||
description: '임직원에게 지급된 데스크톱 및 노트북 자산의 할당 현황과 하드웨어 사양을 통합 관리합니다.',
|
||||
icon: 'laptop'
|
||||
},
|
||||
'서버': {
|
||||
title: '서버 자산 관리',
|
||||
description: 'IDC 및 사내 서버실에 운영 중인 물리 서버 장비의 도입, 운영, 폐기 현황을 관리합니다.',
|
||||
icon: 'server'
|
||||
},
|
||||
'스토리지': {
|
||||
title: '스토리지 자산 관리',
|
||||
description: '데이터 저장 및 백업을 위한 NAS, DAS 등 스토리지 장비의 용량과 연결 상태를 관리합니다.',
|
||||
icon: 'database'
|
||||
},
|
||||
'네트워크': {
|
||||
title: '네트워크 장비 관리',
|
||||
description: '스위치, 방화벽, 공유기 등 사내 네트워크 인프라를 구성하는 주요 장비 현황을 관리합니다.',
|
||||
icon: 'layers'
|
||||
},
|
||||
'업무지원장비': {
|
||||
title: '업무 지원 장비 관리',
|
||||
description: '모니터, 프린터, 스캐너 등 원활한 업무 수행을 보조하는 전산 비품들을 관리합니다.',
|
||||
icon: 'monitor'
|
||||
},
|
||||
'PC부품': {
|
||||
title: 'PC 부품 자산 관리',
|
||||
description: 'CPU, RAM, GPU 등 PC 조립 및 유지보수를 위해 보유 중인 주요 부품 재고를 관리합니다.',
|
||||
icon: 'cpu'
|
||||
},
|
||||
'공간정보장비': {
|
||||
title: '공간 정보 장비 관리',
|
||||
description: '측량 및 공간 정보 수집에 사용되는 특수 정밀 장비들의 이력과 상태를 관리합니다.',
|
||||
icon: 'map'
|
||||
},
|
||||
'내부': {
|
||||
title: '사내 개발 S/W 관리',
|
||||
description: '사내에서 자체 개발하거나 운영 중인 시스템 및 소프트웨어 서비스 현황을 관리합니다.',
|
||||
icon: 'code'
|
||||
},
|
||||
'외부': {
|
||||
title: '외부 상용 S/W 관리',
|
||||
description: '상용 소프트웨어의 라이선스 보유 현황, 사용자 할당 및 만료 일정을 관리합니다.',
|
||||
icon: 'package'
|
||||
},
|
||||
'도메인': {
|
||||
title: '도메인 자산 관리',
|
||||
description: '운영 중인 서비스 도메인의 등록 정보, 관리 업체 및 갱신 만료일을 관리합니다.',
|
||||
icon: 'globe'
|
||||
},
|
||||
'클라우드': {
|
||||
title: '클라우드 자산 관리',
|
||||
description: 'AWS, Azure, GCP 등 클라우드 인프라 자원 및 구독 서비스 이용 현황을 관리합니다.',
|
||||
icon: 'cloud'
|
||||
},
|
||||
'비용관리': {
|
||||
title: 'IT 비용 집행 관리',
|
||||
description: '전산 자산 도입 및 유지보수에 소요되는 정기/비정기 지출 비용을 통합 관리합니다.',
|
||||
icon: 'credit-card'
|
||||
},
|
||||
'선물': {
|
||||
title: '내빈/외빈 선물 관리',
|
||||
description: '내외빈 방문 시 지급되는 기념품 및 선물용 자산의 재고와 지급 이력을 관리합니다.',
|
||||
icon: 'gift'
|
||||
},
|
||||
'사무가구': {
|
||||
title: '사무용 가구 관리',
|
||||
description: '책상, 의자, 캐비닛 등 사무 환경 구성을 위한 가구 자산의 배치 현황을 관리합니다.',
|
||||
icon: 'armchair'
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user