import {
getNameDescriptionTableColumn,
getStatusTableColumn,
} from '@/utils/common/tableColumn'
import {
getNameFilter,
} from '@/utils/common/tableFilter'
import { sizestr, percentstr } from '@/utils/utils'
import { BRAND_MAP } from '@/constants'
export default {
computed: {
resourceProps () {
return {
list: this.$list.createList(this, {
id: 'VmHostsListForTransferDialog',
resource: 'hosts',
getParams: {
baremetal: false,
brand: BRAND_MAP.OneCloud.key,
},
filterOptions: {
id: {
label: this.$t('table.title.id'),
},
name: getNameFilter(),
any_ip: {
label: 'IP',
},
},
}),
columns: [
getNameDescriptionTableColumn({
hideField: true,
addLock: true,
addBackup: true,
edit: false,
editDesc: false,
minWidth: 120,
slotCallback: row => {
return [
,
]
},
}),
getStatusTableColumn({
statusModule: 'host',
minWidth: 100,
}),
{
field: 'custom_ip',
title: 'IP',
minWidth: 200,
showOverflow: 'ellipsis',
slots: {
default: ({ row }) => {
const cellWrap = []
if (row.access_ip) {
if (row.ipmi_ip) {
cellWrap.push(
{this.$t('compute.text_1319')}
,
)
} else {
cellWrap.push(
,
)
}
}
if (row.ipmi_ip) {
if (row.access_ip) {
cellWrap.push(
{this.$t('compute.text_1320')}
,
)
} else {
cellWrap.push(
,
)
}
}
return cellWrap
},
},
},
{
field: 'cpu_count',
title: this.$t('compute.text_563'),
minWidth: 100,
showOverflow: 'title',
sortFields: ['cpu_count', ''],
sortByList: ['', 'order_by_cpu_commit_rate'],
slots: {
default: ({ row }) => {
if (row.cpu_commit_rate === undefined) return []
return row.cpu_count ? `${row.cpu_count}/${percentstr(row.cpu_commit_rate)}` : 'N/A'
},
},
},
{
field: 'mem_size',
title: this.$t('compute.text_564'),
minWidth: 100,
sortFields: ['mem_size', ''],
sortByList: ['', 'order_by_mem_commit_rate'],
slots: {
default: ({ row }) => {
if (row.mem_commit_rate === undefined) return []
return row.mem_size ? `${sizestr(row.mem_size, 'M', 1024)}/${percentstr(row.mem_commit_rate)}` : 'N/A'
},
},
},
{
field: 'storage',
title: this.$t('compute.text_565'),
minWidth: 80,
sortByList: ['order_by_storage', 'order_by_storage_commit_rate'],
slots: {
default: ({ row }) => {
if (row.storage === undefined) return []
return row.storage ? `${sizestr(row.storage, 'M', 1024)}/${percentstr(row.storage_commit_rate)}` : 'N/A'
},
},
},
{
field: 'model',
title: this.$t('compute.text_580'),
minWidth: 100,
formatter: ({ cellValue, row }) => {
return ((row.sys_info || {}).model) || '-'
},
},
{
field: 'nonsystem_guests',
sortBy: 'order_by_server_count',
title: '#VM',
minWidth: 80,
sortable: true,
slots: {
default: ({ row }, h) => {
if (row.nonsystem_guests === undefined) return []
return `${row.nonsystem_guests}`
},
},
},
],
}
},
},
methods: {},
}