singleActions.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. import { getEnabledSwitchActions } from '@/utils/common/tableActions'
  2. import i18n from '@/locales'
  3. import { findPlatform } from '@/utils/common/hypervisor'
  4. import { SERVER_TYPE } from '../../../constants'
  5. export default {
  6. computed: {
  7. singleActions () {
  8. const singleActions = [
  9. {
  10. label: i18n.t('compute.text_983'),
  11. permission: 'skus_create',
  12. action: obj => {
  13. const env = findPlatform(obj.provider, 'provider')
  14. if (env === SERVER_TYPE.public) {
  15. this.createDialog('ClonePublicSkuUpdateDialog', {
  16. data: [obj],
  17. columns: this.columns,
  18. onManager: this.onManager,
  19. })
  20. } else {
  21. this.createDialog('CloneSkuUpdateDialog', {
  22. data: [obj],
  23. columns: this.columns,
  24. onManager: this.onManager,
  25. })
  26. }
  27. },
  28. meta: obj => {
  29. let tooltip = ''
  30. let validate = true
  31. const env = findPlatform(obj.provider, 'provider')
  32. if (!obj.enabled) {
  33. validate = false
  34. tooltip = i18n.t('compute.text_1057')
  35. }
  36. if (env === SERVER_TYPE.private) {
  37. validate = false
  38. tooltip = this.$t(`commpute.${env}_sku_disable_tooltip`)
  39. }
  40. return {
  41. validate,
  42. tooltip,
  43. }
  44. },
  45. },
  46. {
  47. label: i18n.t('compute.text_352'),
  48. actions: obj => {
  49. return [
  50. ...getEnabledSwitchActions(this, obj, ['skus_update', 'skus_update'], {
  51. metas: [
  52. () => {
  53. let tooltip = ''
  54. let validate = true
  55. const env = findPlatform(obj.provider, 'provider')
  56. if (env === SERVER_TYPE.private) {
  57. validate = false
  58. tooltip = this.$t(`commpute.${env}_sku_disable_tooltip`)
  59. }
  60. return {
  61. validate,
  62. tooltip,
  63. }
  64. },
  65. () => {
  66. let tooltip = ''
  67. let validate = true
  68. const env = findPlatform(obj.provider, 'provider')
  69. if (env === SERVER_TYPE.private) {
  70. validate = false
  71. tooltip = this.$t(`commpute.${env}_sku_disable_tooltip`)
  72. }
  73. return {
  74. validate,
  75. tooltip,
  76. }
  77. },
  78. ],
  79. }),
  80. {
  81. label: i18n.t('compute.sku.setup.sell.status'),
  82. permission: 'skus_update',
  83. action: () => {
  84. this.createDialog('ServerSkuUpdateDialog', {
  85. vm: this,
  86. data: [obj],
  87. columns: this.columns,
  88. onManager: this.onManager,
  89. })
  90. },
  91. meta: (obj) => {
  92. let tooltip = ''
  93. let validate = true
  94. const env = findPlatform(obj.provider, 'provider')
  95. if (env === SERVER_TYPE.private) {
  96. validate = false
  97. tooltip = this.$t(`commpute.${env}_sku_disable_tooltip`)
  98. }
  99. return {
  100. validate,
  101. tooltip,
  102. }
  103. },
  104. },
  105. {
  106. label: i18n.t('compute.perform_delete'),
  107. permission: 'skus_delete',
  108. action: () => {
  109. this.createDialog('DeleteResDialog', {
  110. vm: this,
  111. data: [obj],
  112. columns: this.columns,
  113. title: i18n.t('compute.perform_delete'),
  114. name: this.$t('dictionary.sku'),
  115. onManager: this.onManager,
  116. })
  117. },
  118. meta: () => {
  119. return this.$getDeleteResult(obj)
  120. },
  121. },
  122. ]
  123. },
  124. },
  125. ]
  126. return singleActions
  127. },
  128. },
  129. }