import {
getNameDescriptionTableColumn,
getIpsTableColumn,
getProjectTableColumn,
getStatusTableColumn,
getRegionTableColumn,
getBrandTableColumn,
getEnabledTableColumn,
getProjectDomainTableColumn,
} from '@/utils/common/tableColumn'
import {
getNameFilter,
getIpFilter,
getBrandFilter,
} from '@/utils/common/tableFilter'
export default {
computed: {
resourceProps () {
const currentItem = this.params?.data?.[0] || {}
const { tenant, resource_type = 'server' } = currentItem
const resourceProps = {
server: {
list: this.$list.createList(this, {
resource: 'servers',
getParams: {
filter: 'hypervisor.notin(baremetal,container)',
tenant,
},
filterOptions: {
name: getNameFilter(),
ips: getIpFilter(),
brand: getBrandFilter('compute_engine_brands'),
},
}),
columns: [
getNameDescriptionTableColumn({
hideField: true,
addLock: true,
addBackup: true,
edit: false,
editDesc: false,
minWidth: 120,
slotCallback: row => {
return [
,
]
},
}),
getIpsTableColumn({ field: 'ip', title: 'IP' }),
getBrandTableColumn({ field: 'provider' }),
getStatusTableColumn({ statusModule: 'server' }),
getProjectTableColumn(),
getRegionTableColumn(),
],
},
cloudaccount: {
list: this.$list.createList(this, {
resource: 'cloudaccounts',
getParams: {
tenant,
},
filterOptions: {
name: getNameFilter(),
brand: getBrandFilter('compute_engine_brands'),
},
}),
columns: [
getNameDescriptionTableColumn({
hideField: true,
addLock: true,
addBackup: true,
edit: false,
editDesc: false,
minWidth: 120,
slotCallback: row => {
return [
,
]
},
}),
getStatusTableColumn({ statusModule: 'cloudaccount' }),
getEnabledTableColumn(),
getBrandTableColumn(),
{
field: 'last_auto_sync',
title: this.$t('cloudenv.text_103'),
minWidth: 70,
showOverflow: 'ellipsis',
slots: {
default: ({ row }) => {
if (row.sync_status !== 'idle') { // 表示正在同步中
return [
,
]
} else {
const time = this.$moment(row.last_sync)
if (time) {
return time.fromNow()
} else {
return '-'
}
}
},
},
},
getProjectDomainTableColumn(),
],
},
}
return resourceProps[resource_type]
},
},
}