import { SERVER_TYPE } from '@Compute/constants' import { sizestr } from '@/utils/utils' import { getNameDescriptionTableColumn, getBrandTableColumn, getStatusTableColumn, getCopyWithContentTableColumn, getIpsTableColumn, getTimeTableColumn } from '@/utils/common/tableColumn' import SystemIcon from '@/sections/SystemIcon' import i18n from '@/locales' import { findPlatform } from '@/utils/common/hypervisor' export default { created () { this.columns = [ getNameDescriptionTableColumn({ field: 'name', edit: false, editDesc: false, hideField: true, slotCallback: row => { return ( this.handleOpenSidepage(row)}>{row.name} ) }, }), getCopyWithContentTableColumn({ field: 'id', title: 'ID' }), getCopyWithContentTableColumn({ field: 'external_id', title: i18n.t('table.title.external_id') }), getStatusTableColumn({ statusModule: 'server', hiddenLogView: true }), getIpsTableColumn({ field: 'ips', title: 'IP' }), { field: 'instance_type', title: i18n.t('compute.text_295'), minWidth: 120, showOverflow: 'ellipsis', slots: { default: ({ row }) => { const ret = [] if (row.instance_type) { ret.push(
{ row.instance_type }
) } const config = row.vcpu_count + 'C' + sizestr(row.vmem_size, 'M', 1024) + (row.disk ? sizestr(row.disk, 'M', 1024) : '') return ret.concat(
{ config }
) }, }, }, { field: 'os_type', title: i18n.t('table.title.os'), width: 60, slots: { default: ({ row }) => { if (this.isPreLoad && !row.metadata) return [] let name = (row.metadata && row.metadata.os_distribution) ? row.metadata.os_distribution : row.os_type || '' if (name.includes('Windows') || name.includes('windows')) { name = 'Windows' } const version = (row.metadata && row.metadata.os_version) ? `${row.metadata.os_version}` : '' const tooltip = (version.includes(name) ? version : `${name} ${version}`) || i18n.t('compute.text_339') // 去重 return [ , ] }, }, }, getBrandTableColumn(), getCopyWithContentTableColumn({ field: 'host', title: i18n.t('compute.text_111'), hideField: true, slotCallback: row => { if (this.isPreLoad && !row.host) return [] if (findPlatform(row.hypervisor, 'hypervisor') === SERVER_TYPE.public) { return '-' } return row.host }, }), getTimeTableColumn({ field: 'auto_delete_at', title: i18n.t('compute.text_480'), vm: this }), ] }, }