import { sizestr } from '@/utils/utils' import { getProjectTableColumn, getStatusTableColumn, getNameDescriptionTableColumn, getBrandTableColumn, getBillingTableColumn, getTagTableColumn, getAccountTableColumn, getTimeTableColumn } from '@/utils/common/tableColumn' import i18n from '@/locales' import { DBINSTANCE_CATEGORY, DBINSTANCE_STORAGE_TYPE } from '../constants/index.js' export default { created () { this.columns = [ getNameDescriptionTableColumn({ onManager: this.onManager, hideField: true, addLock: true, addBackup: true, formRules: [ { required: true, message: i18n.t('db.text_136') }, { validator: this.$validate('resourceCreateName') }, ], slotCallback: row => { return ( this.handleOpenSidepage(row) }>{ row.name } ) }, hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.name') }, }), getStatusTableColumn({ statusModule: 'rds', vm: this, hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.status') }, }), getTagTableColumn({ onManager: this.onManager, resource: 'rds_dbinstances', columns: () => this.columns, hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.metadata') }, }), { field: 'category', title: i18n.t('db.text_61'), width: 100, formatter: ({ row }) => { return DBINSTANCE_CATEGORY[row.category] || row.category || '-' }, hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.category') }, }, { field: 'vcpu_count', title: i18n.t('db.text_109'), width: 120, formatter: ({ row }) => { if (!row.brand) return '-' if (row.brand.toLowerCase() === 'qcloud') return i18n.t('db.text_349', [row.vcpu_count, sizestr(row.vmem_size_mb, 'M', 1024), row.disk_size_gb]) if (row.brand.toLowerCase() === 'azure') { if (row.metadata && row.metadata['sys:DTU']) { return row.metadata['sys:DTU'] + 'DTU' } } return i18n.t('db.text_151', [row.vcpu_count, sizestr(row.vmem_size_mb, 'M', 1024)]) }, hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.vcpu_count') }, }, { field: 'engine', title: i18n.t('db.text_57'), width: 100, formatter: ({ row }) => { return `${row.engine} ${row.engine_version}` }, hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.engine') }, }, { field: 'internal_connection_str', title: i18n.t('db.text_152'), minWidth: 200, slots: { default: ({ row }) => { const pri = row.internal_connection_str const pub = row.connection_str const ip_addrs = (row.ip_addrs || '').split(',') if (!pri && !pub) { return '-' } const connection = (title, value) => { if (!value) { return null } // return ( //
// // {title}:{value} // // //
// ) return [ {title} : { value || '-' } , ] } return [ connection(i18n.t('db.text_153'), pri), connection(i18n.t('db.text_154'), pub), ...ip_addrs.map(ip => { return (IP: {ip}) }), ] }, }, formatter: ({ row }) => { const pri = row.internal_connection_str const pub = row.connection_str const ip_addrs = (row.ip_addrs || '').split(',') if (!pri && !pub) { return '-' } return `${i18n.t('db.text_153') + ':' + pri},${i18n.t('db.text_154') + ':' + pub}, IP:${ip_addrs}` }, hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.internal_connection_str') }, }, { title: i18n.t('db.text_64'), field: 'port', width: 120, formatter: ({ row }) => { return row.port || '-' }, hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.port') }, }, { field: 'storage_type', title: this.$t('db.text_120'), slots: { default: ({ row }) => { return DBINSTANCE_STORAGE_TYPE[row.storage_type] || row.storage_type || '-' }, }, }, { field: 'secgroups', title: i18n.t('res.secgroup'), minWidth: 80, showOverflow: 'ellipsis', slots: { default: ({ row }) => { return row.secgroups?.map(item => item.name).join(',') }, }, formatter: ({ row }) => { return row.secgroups?.map(item => item.name).join(',') }, hidden: () => { return this.$isScopedPolicyMenuHidden('slb_hidden_columns.secgroups') }, }, getBillingTableColumn({ vm: this, hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.billing_type') }, }), getBrandTableColumn({ hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.brand') }, }), getAccountTableColumn({ hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.account') }, }), getProjectTableColumn({ hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.tenant') }, }), { field: 'region', minWidth: 120, showOverflow: 'ellipsis', title: i18n.t('db.text_40'), slots: { default: ({ row }, h) => { const ret = [] ret.push( { row.region } , ) if (row.zone1_name) { ret.push( { row.zone1_name } , ) } return ret }, }, formatter: ({ row }) => { return row.region }, hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.region') }, }, getTimeTableColumn({ hidden: () => { return this.$isScopedPolicyMenuHidden('rds_hidden_columns.created_at') }, }), ] }, }