import { getNameDescriptionTableColumn, getStatusTableColumn, getTagTableColumn, getProjectTableColumn, getRegionTableColumn, getBrandTableColumn, getAccountTableColumn, getTimeTableColumn, } from '@/utils/common/tableColumn' import i18n from '@/locales' import { weekOptions, timeOptions } from '../constants' export default { created () { this.columns = [ getNameDescriptionTableColumn({ onManager: this.onManager, hideField: true, slotCallback: row => { return ( this.handleOpenSidepage(row, 'detail') }>{ row.name } ) }, }), getStatusTableColumn({ statusModule: 'snapshotpolicy', vm: this }), getTagTableColumn({ onManager: this.onManager, resource: 'snapshotpolicy', columns: () => this.columns }), getBrandTableColumn(), getAccountTableColumn(), { field: 'type', title: i18n.t('common.resource_type'), formatter: ({ row }) => { return row.type === 'server' ? i18n.t('dictionary.server') : i18n.t('dictionary.disk') }, }, { field: 'binding_disk_count', title: i18n.t('compute.bind_resource_count'), minWidth: 120, slots: { default: ({ row }) => { if (row.binding_disk_count === undefined) return [] if (row.type === 'server') { if (row.binding_resource_count <= 0) return row.binding_resource_count return [ {row.binding_resource_count}, ] } if (row.binding_disk_count <= 0) return row.binding_disk_count return [ {row.binding_disk_count}, ] }, }, formatter: ({ row }) => { if (row.type === 'server') { return row.binding_resource_count } return row.binding_disk_count }, }, { field: 'repeat_weekdays', title: i18n.t('table.title.strategy'), minWidth: 180, showOverflow: 'ellipsis', slots: { default: ({ row }, h) => { if (row.repeat_weekdays === undefined) return [] let text = '' if (row.repeat_weekdays && row.repeat_weekdays.length) { text += i18n.t('compute.text_1098') + row.repeat_weekdays.map(item => weekOptions[item - 1]).join('、') } if (row.time_points && row.time_points.length) { text += '; ' + row.time_points.map(item => timeOptions[item]).join('、') } if (text) { text += i18n.t('compute.text_1099') } return [ {{ text }} , ] }, }, formatter: ({ row }) => { if (row.repeat_weekdays === undefined) return [] let text = '' if (row.repeat_weekdays && row.repeat_weekdays.length) { text += i18n.t('compute.text_1098') + row.repeat_weekdays.map(item => weekOptions[item - 1]).join('、') } if (row.time_points && row.time_points.length) { text += '; ' + row.time_points.map(item => timeOptions[item]).join('、') } if (text) { text += i18n.t('compute.text_1099') } return text || '-' }, }, { field: 'retention_days', title: this.$t('compute.text_433'), formatter: ({ row }) => { if (row.retention_count) { return `${this.$t('compute.retention_count_prefix')} ${row.retention_count} ${this.$t('compute.retention_count_suffix')}` } if (row.retention_days !== -1) { return this.$t('compute.text_438', [row.retention_days]) } return this.$t('compute.text_1094') }, }, { field: 'snapshot_count', title: this.$t('compute.snapshot_count'), sortable: true, sortBy: 'order_by_snapshot_count', formatter: ({ row }) => { return row.snapshot_count || '-' }, }, getRegionTableColumn(), getTimeTableColumn(), getProjectTableColumn(), ] }, }