Detail.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <detail
  3. :on-manager="onManager"
  4. :data="data"
  5. :base-info="baseInfo"
  6. :extra-info="extraInfo"
  7. resource="diskbackups"
  8. status-module="diskBackup" />
  9. </template>
  10. <script>
  11. import WindowsMixin from '@/mixins/windows'
  12. import {
  13. getTagTableColumn,
  14. getBrandTableColumn,
  15. } from '@/utils/common/tableColumn'
  16. import {
  17. getSizeMbTableColumn,
  18. getDiskTypeTableColumn,
  19. // getDiskNameTableColumn,
  20. getDiskSizeTableColumn,
  21. getBackupStorageNameTableColumn,
  22. } from '../utils/columns'
  23. export default {
  24. name: 'DiskBackupDetail',
  25. mixins: [WindowsMixin],
  26. props: {
  27. data: {
  28. type: Object,
  29. required: true,
  30. },
  31. onManager: {
  32. type: Function,
  33. required: true,
  34. },
  35. columns: Array,
  36. },
  37. data () {
  38. return {
  39. baseInfo: [
  40. getTagTableColumn({ onManager: this.onManager, resource: 'diskbackups', columns: () => this.columns }),
  41. getDiskTypeTableColumn(),
  42. {
  43. field: 'disk_name',
  44. title: this.$t('res.disk'),
  45. minWidth: 100,
  46. sortable: true,
  47. slots: {
  48. default: ({ row }) => {
  49. return [
  50. <side-page-trigger name='DiskSidePage' id={row.disk_id} vm={this} init>{row.disk_name}</side-page-trigger>,
  51. ]
  52. },
  53. },
  54. },
  55. getDiskSizeTableColumn(),
  56. getBackupStorageNameTableColumn(),
  57. getSizeMbTableColumn(),
  58. getBrandTableColumn(),
  59. ],
  60. extraInfo: [
  61. {
  62. title: this.$t('compute.title.encryption'),
  63. items: [
  64. {
  65. field: 'encrypt_key_id',
  66. title: this.$t('compute.title.encryption_key'),
  67. formatter: ({ callValue, row }) => {
  68. if (row.encrypt_key_id) {
  69. if (row.encrypt_key && row.encrypt_alg) {
  70. return row.encrypt_key + ' (' + row.encrypt_key_id + ')'
  71. } else {
  72. return row.encrypt_key_id
  73. }
  74. } else {
  75. return this.$t('compute.no_encryption')
  76. }
  77. },
  78. },
  79. {
  80. field: 'encrypt_alg',
  81. title: this.$t('compute.title.encrypt_alg'),
  82. formatter: ({ callValue, row }) => {
  83. if (row.encrypt_alg) {
  84. return row.encrypt_alg.toUpperCase()
  85. } else {
  86. return '-'
  87. }
  88. },
  89. },
  90. {
  91. field: 'encrypt_key_user',
  92. title: this.$t('compute.title.encrypt_key_user'),
  93. formatter: ({ callValue, row }) => {
  94. if (row.encrypt_key_user) {
  95. return row.encrypt_key_user + ' / ' + row.encrypt_key_user_domain
  96. } else {
  97. return '-'
  98. }
  99. },
  100. },
  101. ],
  102. },
  103. ],
  104. }
  105. },
  106. }
  107. </script>