Detail.vue 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <template>
  2. <detail
  3. :data="data"
  4. :onManager="onManager"
  5. :base-info="baseInfo"
  6. :extra-info="extraInfo"
  7. :nameRules="[{ required: true, message: '请输入名称' }]" />
  8. </template>
  9. <script>
  10. import { getCopyWithContentTableColumn } from '@/utils/common/tableColumn'
  11. export default {
  12. name: 'ZoneDetail',
  13. props: {
  14. onManager: {
  15. type: Function,
  16. required: true,
  17. },
  18. data: {
  19. type: Object,
  20. required: true,
  21. },
  22. },
  23. data () {
  24. return {
  25. baseInfo: [
  26. getCopyWithContentTableColumn({
  27. field: 'cloudregion',
  28. title: this.$t('cloudenv.text_10'),
  29. hideField: true,
  30. slotCallback: row => {
  31. if (!row.cloudregion) return '-'
  32. return [<side-page-trigger onTrigger={ () => this.handleOpenCloudregionDetail(row.cloudregion_id) }>{ row.cloudregion }</side-page-trigger>]
  33. },
  34. }),
  35. {
  36. field: 'baremetals',
  37. title: this.$t('cloudenv.text_485'),
  38. },
  39. {
  40. field: 'baremetals_enabled',
  41. title: this.$t('cloudenv.text_476'),
  42. },
  43. {
  44. field: 'hosts',
  45. title: this.$t('cloudenv.text_486'),
  46. },
  47. {
  48. field: 'hosts_enabled',
  49. title: this.$t('cloudenv.text_487'),
  50. },
  51. {
  52. field: 'storages',
  53. title: this.$t('cloudenv.text_488'),
  54. },
  55. {
  56. field: 'wires',
  57. title: this.$t('cloudenv.text_489'),
  58. },
  59. {
  60. field: 'networks',
  61. title: this.$t('cloudenv.text_490'),
  62. },
  63. ],
  64. extraInfo: [
  65. {
  66. title: this.$t('cloudenv.text_359'),
  67. items: [
  68. {
  69. field: 'location',
  70. title: this.$t('cloudenv.text_374'),
  71. },
  72. ],
  73. },
  74. ],
  75. }
  76. },
  77. methods: {
  78. handleOpenCloudregionDetail (id) {
  79. this.$emit('init-side-page-tab', 'CloudregionDetail')
  80. this.$emit('side-page-trigger-handle', this, 'CloudregionSidePage', {
  81. id,
  82. resource: 'cloudregions',
  83. apiVersion: 'v2',
  84. }, {
  85. cancel: () => {
  86. this.$emit('single-refresh', this.data.id)
  87. },
  88. })
  89. },
  90. },
  91. }
  92. </script>