| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- import { PREALLOCATION_OPTION_MAP, MEDIUM_MAP } from '@Compute/constants'
- import {
- getNameDescriptionTableColumn,
- getBrandTableColumn,
- getStatusTableColumn,
- getProjectTableColumn,
- getTimeTableColumn,
- getCopyWithContentTableColumn,
- getRegionTableColumn,
- getBillingTypeTableColumn,
- getTagTableColumn,
- getAccountTableColumn,
- } from '@/utils/common/tableColumn'
- import { sizestr } from '@/utils/utils'
- import i18n from '@/locales'
- import { BRAND_MAP } from '@/constants'
- import {
- getUnusedTableColumn,
- getStorageTypeTableColumn,
- // getPreallocationTableColumn,
- } from '../utils/columns'
- export default {
- created () {
- this.columns = [
- getNameDescriptionTableColumn({
- onManager: this.onManager,
- hideField: true,
- addEncrypt: true,
- formRules: [
- { required: true, message: i18n.t('compute.text_210') },
- { validator: this.$validate('resourceCreateName') },
- ],
- slotCallback: row => {
- return (
- <side-page-trigger onTrigger={ () => this.handleOpenSidepage(row) }>{ row.name }</side-page-trigger>
- )
- },
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.name')
- },
- }),
- // getStatusTableColumn({ statusModule: 'disk' }),
- getTagTableColumn({
- onManager: this.onManager,
- resource: 'disks',
- columns: () => this.columns,
- editCheck: (row) => (row.provider || '').toLowerCase() !== 'bingocloud',
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.metadata')
- },
- }),
- {
- field: 'disk_size',
- title: i18n.t('table.title.disk_size'),
- sortable: true,
- minWidth: 50,
- slots: {
- default: ({ row }, h) => {
- const preallocation = PREALLOCATION_OPTION_MAP[row.preallocation]?.label
- const isVMware = row.brand === BRAND_MAP.VMware.key
- return [
- <div class={'d-flex'}>
- <span>{ sizestr(row.disk_size, 'M', 1024) }</span>
- { isVMware && preallocation ? <span class={'text-color-help'}>({ preallocation })</span> : null }
- </div>,
- ]
- },
- },
- formatter: ({ row }) => {
- const preallocation = PREALLOCATION_OPTION_MAP[row.preallocation]?.label
- const isVMware = row.brand === BRAND_MAP.VMware.key
- if (isVMware && preallocation) {
- return `${sizestr(row.disk_size, 'M', 1024)}(${preallocation})`
- }
- return sizestr(row.disk_size, 'M', 1024)
- },
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.disk_size')
- },
- },
- // getPreallocationTableColumn(),
- {
- field: 'iops',
- title: i18n.t('compute.max_iops'),
- formatter: ({ row }) => {
- return row.iops || '-'
- },
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.iops')
- },
- },
- {
- field: 'disk_format',
- title: i18n.t('table.title.disk_format'),
- width: 70,
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.disk_format')
- },
- },
- getStorageTypeTableColumn({
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.storage_type')
- },
- }),
- {
- field: 'disk_type',
- title: i18n.t('table.title.disk_type'),
- width: 70,
- formatter: ({ row }) => {
- return row.disk_type === 'sys' ? i18n.t('compute.text_49') : i18n.t('compute.text_50')
- },
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.disk_type')
- },
- },
- getUnusedTableColumn({
- vm: this,
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.guest_count')
- },
- }),
- {
- field: 'guest',
- title: this.$t('res.server'),
- minWidth: 100,
- showOverflow: 'ellipsis',
- sortable: true,
- sortBy: 'order_by_server',
- slots: {
- default: ({ row }, h) => {
- if (this.isPreLoad && !row.guest) return [<data-loading />]
- if (!row.guest || row.guests.length <= 0) return '-'
- const guests = row.guests.map((guest, index) => {
- return <side-page-trigger permission="server_get" name="VmInstanceSidePage" id={guest.id} vm={this} tab="vm-instance-detail">
- {guest.name}
- <status status={ guest.status } statusModule='server'/>
- </side-page-trigger>
- })
- return [
- <div>
- { guests }
- </div>,
- ]
- },
- },
- formatter: ({ row }) => {
- if (!row.guest || row.guests.length <= 0) return '-'
- const guests = row.guests.map((guest, index) => guest.name)
- return guests.length ? guests.join(',') : '-'
- },
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.guest')
- },
- },
- {
- field: 'device',
- title: this.$t('compute.disk_device'),
- formatter: ({ row }) => {
- return row.device || '-'
- },
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.device')
- },
- },
- getCopyWithContentTableColumn({
- field: 'storage',
- title: i18n.t('table.title.disk_storage'),
- hideField: true,
- slotCallback: (row) => {
- if (this.isPreLoad && !row.storage) return [<data-loading />]
- return row.storage
- },
- formatter: ({ row }) => row.storage,
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.storage')
- },
- }),
- getTimeTableColumn({
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.created_at')
- },
- }),
- getBrandTableColumn({
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.brand')
- },
- }),
- getRegionTableColumn({
- vm: this,
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.region')
- },
- }),
- getBillingTypeTableColumn({
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.billing_type')
- },
- }),
- getStatusTableColumn({
- statusModule: 'disk',
- vm: this,
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.status')
- },
- }),
- getProjectTableColumn({
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.tenant')
- },
- }),
- getAccountTableColumn({
- vm: this,
- hidden: () => {
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.account')
- },
- }),
- {
- field: 'medium_type',
- title: i18n.t('table.title.disk_medium_type'),
- width: 70,
- slots: {
- default: ({ row }) => {
- if (this.isPreLoad && !row.medium_type) return [<data-loading />]
- return MEDIUM_MAP[row.medium_type]
- },
- },
- formatter: ({ row }) => row.medium_type ? MEDIUM_MAP[row.medium_type] : '-',
- hidden: () => {
- if (this.hiddenColumns.includes('medium_type')) return true
- return this.$isScopedPolicyMenuHidden('disk_hidden_columns.storage')
- },
- },
- {
- field: 'auto_reset',
- title: this.$t('compute.shutdown_auto_reset'),
- formatter: ({ row }) => {
- return row.auto_reset ? this.$t('common.true') : this.$t('common.false')
- },
- },
- ]
- },
- }
|