import { sizestr } from '@/utils/utils' import { getNameDescriptionTableColumn, getBrandTableColumn, getStatusTableColumn, getProjectTableColumn, getTimeTableColumn, getCopyWithContentTableColumn, getTagTableColumn, getRegionTableColumn, getAccountTableColumn, getOsArch, } from '@/utils/common/tableColumn' import i18n from '@/locales' import { getStorageTypeTableColumn } from '../utils/columns' import { DISK_TYPES } from '../constants' export default { created () { this.columns = [ getNameDescriptionTableColumn({ onManager: this.onManager, hideField: true, addEncrypt: true, slotCallback: row => { return ( this.handleOpenSidepage(row) }>{ row.name } ) }, hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.name') }, }), getStatusTableColumn({ statusModule: 'snapshot', vm: this, hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.status') }, }), getTagTableColumn({ onManager: this.onManager, resource: 'snapshots', columns: () => this.columns, hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.metadata') }, }), getOsArch({ hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.os_arch') }, }), { field: 'size', title: i18n.t('table.title.snapshot_size'), width: 70, formatter: ({ row }) => { return sizestr(row.size, 'M', 1024) }, hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.size') }, }, { field: 'disk_type', title: i18n.t('table.title.disk_type'), width: 70, formatter: ({ row }) => { return DISK_TYPES[row.disk_type] || row.disk_type }, hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.disk_type') }, }, getCopyWithContentTableColumn({ field: 'disk_name', title: i18n.t('res.disk'), hideField: true, slotCallback: (row) => { if (this.isPreLoad && !row.disk_name) return [] return row.disk_name }, formatter: ({ row }) => { return row.disk_name }, hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.disk_name') }, }), getStorageTypeTableColumn({ vm: this, hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.storage_type') }, }), { field: 'guest', title: i18n.t('res.server'), minWidth: 70, showOverflow: 'ellipsis', slots: { default: ({ row }, h) => { if (this.isPreLoad && !row.guest) return [] return [
{row.guest ? : '-'} {row.guest_status ? : ''}
, ] }, }, formatter: ({ row }) => { return row.guest || '-' }, hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.guest') }, }, getBrandTableColumn({ hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.brand') }, }), getAccountTableColumn({ vm: this, hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.account') }, }), getTimeTableColumn({ hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.created_at') }, }), getProjectTableColumn({ hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.tenant') }, }), getRegionTableColumn({ vm: this, hidden: () => { return this.$isScopedPolicyMenuHidden('snapshot_hidden_columns.region') }, }), ] }, }