Detail.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <template>
  2. <detail
  3. :on-manager="onManager"
  4. :data="data"
  5. resource="nats"
  6. :base-info="baseInfo"
  7. :extra-info="extraInfo"
  8. statusModule="nat" />
  9. </template>
  10. <script>
  11. import { getNatSpecColumn } from '../mixins/columns'
  12. import {
  13. getUserTagColumn,
  14. } from '@/utils/common/detailColumn'
  15. import {
  16. getCopyWithContentTableColumn,
  17. getPublicScopeTableColumn,
  18. getBrandTableColumn,
  19. getBillingTypeTableColumn,
  20. getSwitchTableColumn,
  21. } from '@/utils/common/tableColumn'
  22. import WindowsMixin from '@/mixins/windows'
  23. export default {
  24. name: 'NatDetail',
  25. mixins: [WindowsMixin],
  26. props: {
  27. data: {
  28. type: Object,
  29. required: true,
  30. },
  31. onManager: {
  32. type: Function,
  33. required: true,
  34. },
  35. },
  36. data () {
  37. return {
  38. baseInfo: [
  39. getPublicScopeTableColumn({ vm: this, resource: 'natgateways' }),
  40. getUserTagColumn({ onManager: this.onManager, resource: 'natgateways', columns: () => this.columns, tipName: this.$t('dictionary.nat') }),
  41. getBrandTableColumn(),
  42. getBillingTypeTableColumn(),
  43. ],
  44. extraInfo: [
  45. {
  46. title: this.$t('network.text_308'),
  47. items: [
  48. getCopyWithContentTableColumn({
  49. field: 'vpc',
  50. title: 'VPC',
  51. hideField: true,
  52. slotCallback: row => {
  53. if (!row.vpc) return '-'
  54. return [
  55. <side-page-trigger permission='vpcs_get' name='VpcSidePage' id={row.vpc_id} vm={this}>{ row.vpc }</side-page-trigger>,
  56. ]
  57. },
  58. }),
  59. getCopyWithContentTableColumn({
  60. field: 'network',
  61. title: this.$t('network.text_551'),
  62. hideField: true,
  63. slotCallback: row => {
  64. if (!row.network) return '-'
  65. return [
  66. <side-page-trigger permission='networks_get' name='NetworkSidePage' id={row.network_id} vm={this}>{ row.network }</side-page-trigger>,
  67. ]
  68. },
  69. }),
  70. {
  71. field: 'ip_addr',
  72. title: this.$t('network.text_558'),
  73. slots: {
  74. default: ({ row }) => {
  75. return row.ip_addr || '-'
  76. },
  77. },
  78. },
  79. getNatSpecColumn(),
  80. ],
  81. },
  82. {
  83. title: this.$t('network.text_38'),
  84. items: [
  85. getSwitchTableColumn({
  86. field: 'disable_delete',
  87. title: this.$t('common.text00076'),
  88. change: val => {
  89. this.onManager('update', {
  90. id: this.data.id,
  91. managerArgs: {
  92. data: { disable_delete: val },
  93. },
  94. })
  95. },
  96. disabled: this.data.brand === 'Aws',
  97. }),
  98. ],
  99. },
  100. ],
  101. }
  102. },
  103. }
  104. </script>