Create.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <template>
  2. <base-dialog @cancel="cancelDialog">
  3. <div slot="header">{{$t('cloudenv.text_340')}}</div>
  4. <div slot="body">
  5. <a-alert class="mb-3" type="warning">
  6. <template slot="message">
  7. <div>
  8. {{$t('cloudenv.text_341')}}
  9. </div>
  10. <div>{{$t('cloudenv.text_342')}} </div>
  11. <!-- <div>2.录入的APP必须被授予Owner的权限,操作步骤请点击查看帮助 <help-link href="/">详情</help-link></div> -->
  12. <div>{{$t('cloudenv.text_343')}}</div>
  13. </template>
  14. </a-alert>
  15. <a-form :form="form.fc" v-bind="formItemLayout">
  16. <a-form-item :label="$t('cloudenv.text_344')">
  17. <base-select
  18. showSync
  19. isDefaultSelect
  20. :resource="`cloudaccounts/${params.data.id}/enrollment-accounts`"
  21. v-decorator="decorators.enrollmentAccountId"
  22. :selectProps="{ 'placeholder': $t('cloudenv.text_345') }" />
  23. <div slot="extra">{{$t('cloudenv.text_346')}}</div>
  24. </a-form-item>
  25. <a-form-item :label="$t('cloudenv.text_347')">
  26. <a-input v-decorator="decorators.name" :placeholder="$t('cloudenv.text_348')" />
  27. </a-form-item>
  28. <a-form-item :label="$t('cloudenv.text_349')">
  29. <a-select v-decorator="decorators.offerType" :placeholder="$t('cloudenv.text_350')">
  30. <a-select-option value="MS-AZR-0017P">{{$t('cloudenv.text_351')}}</a-select-option>
  31. <a-select-option value="MS-AZR-0148P">{{$t('cloudenv.text_352')}}</a-select-option>
  32. </a-select>
  33. </a-form-item>
  34. </a-form>
  35. </div>
  36. <div slot="footer">
  37. <a-button type="primary" @click="handleConfirm" :loading="loading">{{ $t('dialog.ok') }}</a-button>
  38. <a-button @click="cancelDialog">{{ $t('dialog.cancel') }}</a-button>
  39. </div>
  40. </base-dialog>
  41. </template>
  42. <script>
  43. import DialogMixin from '@/mixins/dialog'
  44. import WindowsMixin from '@/mixins/windows'
  45. export default {
  46. name: 'cloudproviderCreateDialog',
  47. mixins: [DialogMixin, WindowsMixin],
  48. data () {
  49. return {
  50. loading: false,
  51. form: {
  52. fc: this.$form.createForm(this),
  53. },
  54. decorators: {
  55. name: [
  56. 'name',
  57. {
  58. validateFirst: true,
  59. rules: [
  60. { required: true, message: this.$t('cloudenv.text_190') },
  61. ],
  62. },
  63. ],
  64. enrollmentAccountId: [
  65. 'enrollment_account_id',
  66. {
  67. rules: [
  68. { required: true, message: this.$t('cloudenv.text_345') },
  69. ],
  70. },
  71. ],
  72. offerType: [
  73. 'offer_type',
  74. {
  75. initialValue: 'MS-AZR-0017P',
  76. rules: [
  77. { required: true, message: this.$t('cloudenv.text_350') },
  78. ],
  79. },
  80. ],
  81. },
  82. formItemLayout: {
  83. wrapperCol: {
  84. span: 21,
  85. },
  86. labelCol: {
  87. span: 3,
  88. },
  89. },
  90. }
  91. },
  92. methods: {
  93. async handleConfirm () {
  94. this.loading = true
  95. try {
  96. const values = await this.form.fc.validateFields()
  97. await new this.$Manager('cloudaccounts').performAction({
  98. id: this.params.data.id,
  99. action: 'create-subscription',
  100. data: values,
  101. })
  102. this.params.refresh()
  103. this.cancelDialog()
  104. } catch (error) {
  105. throw error
  106. } finally {
  107. this.loading = false
  108. }
  109. },
  110. },
  111. }
  112. </script>