46 lines
2.2 KiB
TypeScript
46 lines
2.2 KiB
TypeScript
import { state } from '../../core/state';
|
|
import { openHwModal } from '../../components/Modal/HWModal';
|
|
import { sortAssets, formatInline } from '../../core/utils';
|
|
import { ASSET_SCHEMA } from '../../core/schema';
|
|
import { createListView } from './ListFactory';
|
|
|
|
export function renderServerList(container: HTMLElement) {
|
|
createListView(container, {
|
|
title: '서버',
|
|
dataSource: () => {
|
|
const serverList = state.masterData.server || [];
|
|
const serverPcList = (state.masterData.pc || []).filter((a: any) => a.asset_type === '서버PC');
|
|
return sortAssets([...serverList, ...serverPcList]);
|
|
},
|
|
searchKeys: ['CURRENT_DEPT', 'MODEL_NAME', 'ASSET_PURPOSE', 'ASSET_TYPE'],
|
|
filterOptions: {
|
|
keywordLabel: `통합 검색 (${ASSET_SCHEMA.CURRENT_DEPT.ui}/${ASSET_SCHEMA.MODEL_NAME.ui})`,
|
|
showLoc: true,
|
|
showDept: true,
|
|
showType: true
|
|
},
|
|
onRowClick: (asset) => openHwModal(asset, 'view'),
|
|
columns: [
|
|
{ header: ASSET_SCHEMA.CURRENT_DEPT.ui, sortKey: ASSET_SCHEMA.CURRENT_DEPT.key, align: 'center', render: a => a[ASSET_SCHEMA.CURRENT_DEPT.key] || '-' },
|
|
{ header: ASSET_SCHEMA.ASSET_PURPOSE.ui, sortKey: ASSET_SCHEMA.ASSET_PURPOSE.key, width: '15%', render: a => formatInline(a[ASSET_SCHEMA.ASSET_PURPOSE.key] || '-') },
|
|
{ header: ASSET_SCHEMA.ASSET_TYPE.ui, sortKey: ASSET_SCHEMA.ASSET_TYPE.key, align: 'center', width: '10%', render: a => a[ASSET_SCHEMA.ASSET_TYPE.key] || '-' },
|
|
{
|
|
header: '모델/메인보드',
|
|
width: '15%',
|
|
render: a => formatInline(a[ASSET_SCHEMA.MODEL_NAME.key] || a[ASSET_SCHEMA.ASSET_NAME.key] || a[ASSET_SCHEMA.MAINBOARD.key] || '-')
|
|
},
|
|
{
|
|
header: ASSET_SCHEMA.LOCATION.ui,
|
|
sortKey: ASSET_SCHEMA.LOCATION.key,
|
|
align: 'center',
|
|
render: a => {
|
|
const loc = a[ASSET_SCHEMA.LOCATION.key] || '';
|
|
const detail = a[ASSET_SCHEMA.LOC_DETAIL.key] || '';
|
|
return detail ? `${loc}(${detail})` : (loc || '-');
|
|
}
|
|
},
|
|
{ header: ASSET_SCHEMA.MEMO.ui, sortKey: ASSET_SCHEMA.MEMO.key, width: '35%', className: 'col-memo', render: a => formatInline(a[ASSET_SCHEMA.MEMO.key] || '-') }
|
|
]
|
|
});
|
|
}
|