SubSnapshotDetail.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <template>
  2. <vxe-grid class="mb-2" :data="data.snapshots" :columns="columns" :resizable="true" />
  3. </template>
  4. <script>
  5. import { DISK_TYPES, STORAGE_TYPES } from '../constants'
  6. import { getNameDescriptionTableColumn } from '@/utils/common/tableColumn'
  7. import WindowsMixin from '@/mixins/windows'
  8. import { sizestr } from '@/utils/utils'
  9. import { steadyStatus } from '../../snapshot/constants'
  10. export default {
  11. name: 'SubSnapshotDetail',
  12. mixins: [WindowsMixin],
  13. props: {
  14. resId: String,
  15. data: {
  16. type: Object,
  17. required: true,
  18. },
  19. },
  20. data () {
  21. return {
  22. columns: [
  23. getNameDescriptionTableColumn({
  24. onManager: this.onManager,
  25. hideField: true,
  26. addEncrypt: true,
  27. slotCallback: row => {
  28. return (
  29. <side-page-trigger onTrigger={ () => this.handleOpenSidepage(row) }>{ row.name }</side-page-trigger>
  30. )
  31. },
  32. }),
  33. {
  34. field: 'size',
  35. title: this.$t('compute.text_422'),
  36. formatter: ({ row }) => {
  37. return sizestr(row.size, 'M', 1024)
  38. },
  39. },
  40. {
  41. field: 'disk_type',
  42. title: this.$t('compute.text_381'),
  43. formatter: ({ row }) => {
  44. return DISK_TYPES[row.disk_type] || row.disk_type
  45. },
  46. },
  47. {
  48. field: 'storage_type',
  49. title: this.$t('compute.text_380'),
  50. formatter: ({ row }) => {
  51. return STORAGE_TYPES[row.storage_type] || row.storage_type || '-'
  52. },
  53. },
  54. // getStatusTableColumn({ statusModule: 'snapshot' }),
  55. {
  56. field: 'created_at',
  57. title: this.$t('compute.text_243'),
  58. formatter: ({ cellValue }) => {
  59. if (cellValue) {
  60. return this.$moment(cellValue).format()
  61. }
  62. return '-'
  63. },
  64. },
  65. ],
  66. }
  67. },
  68. methods: {
  69. handleOpenSidepage (row) {
  70. this.sidePageTriggerHandle(this, 'SnapshotSidePage', {
  71. id: row.id,
  72. resource: 'snapshots',
  73. getParams: this.getParam,
  74. steadyStatus: steadyStatus,
  75. }, {
  76. list: this.list,
  77. type: 'disk',
  78. })
  79. },
  80. },
  81. }
  82. </script>