import {
getNameDescriptionTableColumn,
getStatusTableColumn,
getBrandTableColumn,
getProjectTableColumn,
getRegionTableColumn,
getTagTableColumn,
getTimeTableColumn,
} from '@/utils/common/tableColumn'
import { sizestr } from '@/utils/utils'
import i18n from '@/locales'
import { getAssociateNameTableColumn, getIPWithBgpTypeTableColumn } from '../utils/columns'
export default {
created () {
this.columns = [
getNameDescriptionTableColumn({
onManager: this.onManager,
hideField: true,
slotCallback: row => {
return (
this.handleOpenSidepage(row) }>{ row.name }
)
},
hidden: () => {
return this.$isScopedPolicyMenuHidden('eip_hidden_columns.name')
},
}),
getStatusTableColumn({
statusModule: 'eip',
vm: this,
hidden: () => {
return this.$isScopedPolicyMenuHidden('eip_hidden_columns.status')
},
}),
getTagTableColumn({
onManager: this.onManager,
resource: 'eips',
columns: () => this.columns,
hidden: () => {
return this.$isScopedPolicyMenuHidden('eip_hidden_columns.metadata')
},
}),
// {
// field: 'ip_addr',
// title: 'IP',
// width: 140,
// hidden: () => {
// return this.$isScopedPolicyMenuHidden('eip_hidden_columns.ip_addr')
// },
// },
getIPWithBgpTypeTableColumn({
hidden: () => {
return this.$isScopedPolicyMenuHidden('eip_hidden_columns.ip_addr')
},
}),
{
field: 'mode',
title: this.$t('network.text_249'),
formatter: ({ row }) => {
if (row.mode === 'elastic_ip') {
return this.$t('network.text_221')
} else if (row.mode === 'public_ip') {
return this.$t('network.public_ip')
}
return '-'
},
},
{
field: 'bandwidth',
title: i18n.t('network.text_195'),
minWidth: 80,
showOverflow: 'ellipsis',
formatter: ({ row, cellValue }) => {
if (!row.bandwidth) return '-'
return sizestr(row.bandwidth, 'M', 1024)
},
hidden: () => {
return this.$isScopedPolicyMenuHidden('eip_hidden_columns.bandwidth')
},
},
{
field: 'charge_type',
title: i18n.t('network.text_192'),
minWidth: 80,
formatter: ({ row }) => {
const cellValue = row.charge_type
if (cellValue === 'traffic') {
return i18n.t('network.text_193')
}
if (cellValue === 'bandwidth') {
return i18n.t('network.text_194')
}
return cellValue
},
hidden: () => {
return this.$isScopedPolicyMenuHidden('eip_hidden_columns.charge_type')
},
},
getBrandTableColumn({
hidden: () => {
return this.$isScopedPolicyMenuHidden('eip_hidden_columns.brand')
},
}),
{
field: 'account',
title: i18n.t('network.text_196'),
minWidth: 120,
slots: {
default: ({ row }) => {
if (this.isPreLoad && !row.account) return []
const ret = []
ret.push(
{ row.account }
,
)
if (row.manager) {
ret.push(
{ row.manager }
,
)
}
return ret
},
},
hidden: () => {
if (this.$store.getters.isProjectMode) return true
return this.$isScopedPolicyMenuHidden('eip_hidden_columns.account')
},
formatter: ({ row }) => {
return row.account || '-'
},
},
getAssociateNameTableColumn({
vm: this,
hidden: () => {
return this.$isScopedPolicyMenuHidden('eip_hidden_columns.associate_name')
},
}),
getProjectTableColumn({
hidden: () => {
return this.$isScopedPolicyMenuHidden('eip_hidden_columns.tenant')
},
}),
getRegionTableColumn({
vm: this,
hidden: () => {
return this.$isScopedPolicyMenuHidden('eip_hidden_columns.region')
},
}),
getTimeTableColumn({
hidden: () => {
return this.$isScopedPolicyMenuHidden('eip_hidden_columns.created_at')
},
}),
]
},
}