import PasswordFetcher from '@Compute/sections/PasswordFetcher' import SystemIcon from '@/sections/SystemIcon' import { sizestr } from '@/utils/utils' import { getProjectTableColumn, getStatusTableColumn, getCopyWithContentTableColumn, getIpsTableColumn, getNameDescriptionTableColumn, getTagTableColumn, getRegionTableColumn, getTimeTableColumn, getBrandTableColumn, getAccountTableColumn } from '@/utils/common/tableColumn' import i18n from '@/locales' export default { created () { this.columns = [ getNameDescriptionTableColumn({ onManager: this.onManager, hideField: true, addLock: true, addBackup: true, slotCallback: row => { return ( this.handleOpenSidepage(row) }>{ row.name } ) }, }), getStatusTableColumn({ statusModule: 'server', vm: this }), getStatusTableColumn({ field: 'power_states', title: this.$t('compute.power_states'), statusModule: 'server', }), getTagTableColumn({ onManager: this.onManager, resource: 'server', columns: () => this.columns }), getIpsTableColumn({ field: 'ip', title: 'IP' }), { field: 'instance_type', title: i18n.t('table.title.flavor'), showOverflow: 'ellipsis', minWidth: 120, sortable: true, 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: 50, slots: { default: ({ row }) => { 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 [ , ] }, }, }, { field: 'login_account', title: i18n.t('table.title.init_keypair'), width: 50, slots: { default: ({ row }) => { return [] }, }, }, getCopyWithContentTableColumn({ field: 'host', title: i18n.t('res.machine'), hideField: true, slotCallback: row => { if (!row.host) return '-' return [{ row.host }] }, hidden: () => this.$store.getters.isProjectMode, }), getBrandTableColumn(), { field: 'host_sn', title: 'SN', minWidth: 70, showOverflow: 'ellipsis', }, getProjectTableColumn(), getRegionTableColumn(), getAccountTableColumn(), getTimeTableColumn(), ] }, }