import {
getNameDescriptionTableColumn,
getBrandTableColumn,
getPublicScopeTableColumn,
getProjectTableColumn,
getAccountTableColumn,
getTagTableColumn,
getTimeTableColumn,
} from '@/utils/common/tableColumn'
import i18n from '@/locales'
import {
getZoneTypeTableColumns,
getVpcCountTableColumns,
getDnsRecordsetCountTableColumns,
} from '../utils/columns'
export default {
created () {
this.columns = [
getNameDescriptionTableColumn({
onManager: this.onManager,
hideField: true,
title: i18n.t('network.text_156'),
edit: false,
formRules: function (row) {
return [
{ required: true, message: i18n.t('network.text_173') },
]
},
slotCallback: row => {
return (
this.handleOpenSidepage(row) }>{ row.name }
)
},
}),
getTagTableColumn({ onManager: this.onManager, resource: 'dns_zones', columns: () => this.columns }),
getBrandTableColumn(),
getZoneTypeTableColumns(),
getDnsRecordsetCountTableColumns(),
getVpcCountTableColumns(),
{
field: 'status',
title: i18n.t('common.status'),
sortable: true,
showOverflow: 'ellipsis',
minWidth: 80,
slots: {
default: ({ row }, h) => {
return [
{
row.status === 'pending' ?
{row.registrar ? {this.$t('network.dnszone.registrar')}:{row.registrar}
: null}
{row.name_servers && row.name_servers.length > 0
?
{this.$t('network.dnszone.add_name_servers')}:
{row.name_servers.map((server, index) => (
{server}
))}
: null}
{row.original_name_servers && row.original_name_servers.length > 0
?
{this.$t('network.dnszone.del_name_servers')}:
{row.original_name_servers.map((server, index) => (
{server}
))}
: null}
: null
}
,
]
},
},
formatter: ({ row }) => {
return this.$te(`status.dnszone.${row.status}`) ? this.$t(`status.dnszone.${row.status}`) : row.status
},
},
getPublicScopeTableColumn({ vm: this, resource: 'dns_zones' }),
getAccountTableColumn(),
getProjectTableColumn(),
getTimeTableColumn(),
]
},
}