Detail.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <template>
  2. <detail
  3. :on-manager="onManager"
  4. :data="data"
  5. :base-info="baseInfo"
  6. :extra-info="extraInfo"
  7. status-module="scalinggroup" />
  8. </template>
  9. <script>
  10. // import { sizestr } from '@/utils/utils'
  11. import { getBrandTableColumn, getEnabledTableColumn, getCopyWithContentTableColumn } from '@/utils/common/tableColumn'
  12. import WindowsMixin from '@/mixins/windows'
  13. export default {
  14. name: 'ScalingGroupDetailSidpage',
  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. getEnabledTableColumn(),
  30. getBrandTableColumn(),
  31. {
  32. field: 'scaling_policy_number',
  33. title: this.$t('compute.text_949'),
  34. slots: {
  35. default: ({ row }) => {
  36. return [
  37. <a onClick={ () => this.$emit('tab-change', 'rule-list') }>{row.scaling_policy_number}</a>,
  38. ]
  39. },
  40. },
  41. },
  42. ],
  43. extraInfo: [
  44. {
  45. title: this.$t('compute.text_959'),
  46. items: [
  47. {
  48. field: 'guest_template',
  49. title: this.$t('compute.text_94'),
  50. slots: {
  51. default: ({ row }) => {
  52. return [
  53. <a onClick={ () => this.$emit('tab-change', 'server-template-list') }>{row.guest_template}</a>,
  54. ]
  55. },
  56. },
  57. },
  58. {
  59. field: 'instance_number',
  60. title: this.$t('compute.text_874'),
  61. slots: {
  62. default: ({ row }) => {
  63. return [
  64. <a onClick={ () => this.$emit('tab-change', 'server-list') }>{row.instance_number}</a>,
  65. ]
  66. },
  67. },
  68. },
  69. {
  70. field: 'desire_instance_number',
  71. title: this.$t('compute.text_875'),
  72. formatter: ({ row }) => {
  73. return row.desire_instance_number
  74. },
  75. },
  76. {
  77. field: 'min_instance_number',
  78. title: this.$t('compute.text_876'),
  79. },
  80. {
  81. field: 'max_instance_number',
  82. title: this.$t('compute.text_877'),
  83. },
  84. {
  85. field: 'shrink_principle',
  86. title: this.$t('compute.text_960'),
  87. formatter: ({ row }) => {
  88. return this.$t('flexGrouPprinciple')[row.shrink_principle]
  89. },
  90. },
  91. getCopyWithContentTableColumn({
  92. field: 'vpc',
  93. title: 'VPC',
  94. hideField: true,
  95. slotCallback: row => {
  96. if (!row.vpc) return '-'
  97. return [
  98. <side-page-trigger permission='vpcs_get' name='VpcSidePage' id={row.vpc_id} vm={this}>{ row.vpc }</side-page-trigger>,
  99. ]
  100. },
  101. hidden: () => this.$store.getters.isProjectMode,
  102. }),
  103. getCopyWithContentTableColumn({
  104. field: 'network',
  105. title: this.$t('compute.text_106'),
  106. hideField: true,
  107. slotCallback: row => {
  108. if (!row.networks || !row.networks.length) return '-'
  109. const [{ id, name }] = row.networks
  110. return [
  111. <side-page-trigger permission='networks_get' name='NetworkSidePage' id={id} vm={this}>{ name }</side-page-trigger>,
  112. ]
  113. },
  114. }),
  115. {
  116. field: 'loadbalancer',
  117. title: this.$t('compute.text_899'),
  118. },
  119. {
  120. field: 'health_check_mode',
  121. title: this.$t('compute.text_903'),
  122. formatter: ({ row }) => {
  123. return this.$t('flexGroupHealthCheckMode')[row.health_check_mode]
  124. },
  125. },
  126. {
  127. field: 'health_check_cycle',
  128. title: this.$t('compute.text_904'),
  129. formatter: ({ row }) => {
  130. return this.$t('flexGroupCycles')[row.health_check_cycle]
  131. },
  132. },
  133. {
  134. field: 'health_check_gov',
  135. title: this.$t('compute.text_905'),
  136. formatter: ({ row }) => {
  137. return `${row.health_check_gov}s`
  138. },
  139. },
  140. ],
  141. },
  142. ],
  143. }
  144. },
  145. }
  146. </script>