Detail.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <detail
  3. :on-manager="onManager"
  4. :data="data"
  5. :base-info="baseInfo"
  6. :extra-info="extraInfo" />
  7. </template>
  8. <script>
  9. import WindowsMixin from '@/mixins/windows'
  10. import {
  11. getReserveResourceColumn,
  12. } from '../utils/columns'
  13. export default {
  14. name: 'GpuDetail',
  15. mixins: [WindowsMixin],
  16. props: {
  17. data: {
  18. type: Object,
  19. required: true,
  20. },
  21. onManager: {
  22. type: Function,
  23. required: true,
  24. },
  25. },
  26. data () {
  27. return {
  28. baseInfo: [
  29. {
  30. field: 'model',
  31. title: this.$t('compute.text_482'),
  32. },
  33. {
  34. field: 'dev_type',
  35. title: this.$t('compute.text_481'),
  36. },
  37. {
  38. field: 'host',
  39. title: this.$t('compute.text_484'),
  40. slots: {
  41. default: ({ row }) => {
  42. return [
  43. <side-page-trigger onTrigger={ () => this.handleOpenSidepage(row) } id={row.host_id}>{ row.host }</side-page-trigger>,
  44. ]
  45. },
  46. },
  47. },
  48. {
  49. field: 'guest',
  50. title: this.$t('compute.associated_instances'),
  51. formatter: function ({ row }) {
  52. return row.guest || row.guest_id
  53. },
  54. },
  55. getReserveResourceColumn(),
  56. ],
  57. extraInfo: [
  58. {
  59. title: this.$t('compute.text_497'),
  60. items: [
  61. {
  62. field: 'addr',
  63. title: 'PCI_BUS_ID',
  64. },
  65. {
  66. field: 'framebuffer',
  67. title: this.$t('gpu.device_type.framebuffer'),
  68. hidden: (row) => {
  69. return row.dev_type !== 'LEGACY-VGPU'
  70. },
  71. },
  72. {
  73. field: 'max_resolution',
  74. title: this.$t('gpu.device_type.max_resolution'),
  75. hidden: (row) => {
  76. return row.dev_type !== 'LEGACY-VGPU'
  77. },
  78. },
  79. ],
  80. },
  81. ],
  82. }
  83. },
  84. methods: {
  85. handleOpenSidepage (row) {
  86. this.initSidePageTab('host-detail')
  87. this.sidePageTriggerHandle(this, 'HostSidePage', {
  88. id: row.host_id,
  89. resource: 'hosts',
  90. getParams: this.getParam,
  91. }, {
  92. list: this.list,
  93. })
  94. },
  95. },
  96. }
  97. </script>