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="instancebackups"
  8. status-module="instanceBackup" />
  9. </template>
  10. <script>
  11. import WindowsMixin from '@/mixins/windows'
  12. import {
  13. getTagTableColumn,
  14. getBrandTableColumn,
  15. getOsArch,
  16. } from '@/utils/common/tableColumn'
  17. import {
  18. getBackupStorageNameTableColumn,
  19. // getGuestTableColumn,
  20. getOsTypeTableColumn,
  21. getSizeMbTableColumn,
  22. } from '../utils/columns'
  23. export default {
  24. name: 'InstanceBackupDetail',
  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: 'instancebackups', columns: () => this.columns }),
  41. getBackupStorageNameTableColumn(),
  42. getSizeMbTableColumn(),
  43. getBrandTableColumn(),
  44. {
  45. field: 'guest',
  46. title: this.$t('compute.text_91'),
  47. minWidth: 100,
  48. sortable: true,
  49. slots: {
  50. default: ({ row }) => {
  51. return [
  52. <side-page-trigger name='VmInstanceSidePage' id={row.guest_id} vm={this} init>{row.guest}</side-page-trigger>,
  53. ]
  54. },
  55. },
  56. },
  57. getOsArch(),
  58. getOsTypeTableColumn(),
  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>