VolcEngine.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <template>
  2. <div>
  3. <a-form :form="form.fc" v-if="decorators" v-bind="formLayout">
  4. <a-form-item :label="$t('cloudenv.text_95')">
  5. <a-input v-decorator="decorators.name" :placeholder="$t('cloudenv.text_190')" />
  6. </a-form-item>
  7. <a-form-item :label="$t('common.description')">
  8. <a-textarea :auto-size="{ minRows: 1, maxRows: 3 }" v-decorator="decorators.description" :placeholder="$t('common_367')" />
  9. </a-form-item>
  10. <a-form-item :label="keySecretField.label.k">
  11. <a-input v-decorator="decorators.username" :placeholder="keySecretField.placeholder.k" />
  12. <div slot="extra" v-if="showDocsLink()">
  13. {{$t('cloudenv.text_236', [keySecretField.text, keySecretField.label.k])}}
  14. <help-link :href="docs[provider.toLowerCase()]">{{$t('cloudenv.text_237')}}</help-link>
  15. </div>
  16. </a-form-item>
  17. <a-form-item :label="keySecretField.label.s">
  18. <a-input-password v-decorator="decorators.password" :placeholder="keySecretField.placeholder.s" />
  19. </a-form-item>
  20. <domain-project :fc="form.fc" :form-layout="formLayout" :decorators="{ project: decorators.project, domain: decorators.domain, auto_create_project: decorators.auto_create_project }" :cloneData="cloneData" />
  21. <blocked-resources :decorators="{ isOpenBlockedResources: decorators.isOpenBlockedResources, blockedResources: decorators.blockedResources }" :cloneData="cloneData" />
  22. <proxy-setting :fc="form.fc" :fd="form.fd" ref="proxySetting" :cloneData="cloneData" />
  23. <auto-sync :fc="form.fc" :cloneData="cloneData" />
  24. <read-only :cloneData="cloneData" />
  25. <share-mode :fd="form.fd" :cloneData="cloneData" />
  26. </a-form>
  27. </div>
  28. </template>
  29. <script>
  30. import AutoSync from '@Cloudenv/views/cloudaccount/components/AutoSync'
  31. import ProxySetting from '@Cloudenv/views/cloudaccount/components/ProxySetting'
  32. import ShareMode from '@Cloudenv/views/cloudaccount/components/ShareMode'
  33. import ReadOnly from '@Cloudenv/views/cloudaccount/components/ReadOnly'
  34. import { keySecretFields } from '@Cloudenv/views/cloudaccount/constants'
  35. import { isRequired } from '@/utils/validate'
  36. import { DOCS_MAP, showDocsLink } from '@/constants/docs'
  37. import createMixin from './createMixin'
  38. import DomainProject from '../../../components/DomainProject'
  39. export default {
  40. name: 'VolcEngineCreate',
  41. components: {
  42. AutoSync,
  43. DomainProject,
  44. ProxySetting,
  45. ShareMode,
  46. ReadOnly,
  47. },
  48. mixins: [createMixin],
  49. data () {
  50. const keySecretField = keySecretFields[this.provider.toLowerCase()]
  51. return {
  52. docs: DOCS_MAP.cloudaccount(),
  53. showDocsLink,
  54. smaluserDoc: DOCS_MAP.samlUser(),
  55. decorators: this.getDecorators(keySecretField),
  56. }
  57. },
  58. methods: {
  59. getDecorators (initKeySecretFields) {
  60. const keySecretField = this.keySecretField || initKeySecretFields
  61. let initDomain = {
  62. key: this.$store.getters.userInfo.projectDomainId,
  63. label: this.$store.getters.userInfo.projectDomain,
  64. }
  65. const {
  66. domain_id,
  67. project_domain,
  68. auto_create_project: initAutoCreateProject = false,
  69. saml_auth: initSamlAuth = false,
  70. } = this.cloneData
  71. if (domain_id && project_domain) {
  72. initDomain = {
  73. key: domain_id,
  74. label: project_domain,
  75. }
  76. }
  77. const decorators = {
  78. name: [
  79. 'name',
  80. {
  81. validateFirst: true,
  82. rules: [
  83. { required: true, message: this.$t('cloudenv.text_190') },
  84. // { validator: this.$validate('resourceName') },
  85. ],
  86. },
  87. ],
  88. description: ['description'],
  89. username: [
  90. keySecretField.k,
  91. {
  92. rules: [
  93. { required: true, message: keySecretField.placeholder.k },
  94. ],
  95. },
  96. ],
  97. password: [
  98. keySecretField.s,
  99. {
  100. rules: [
  101. { required: true, message: keySecretField.placeholder.s },
  102. ],
  103. },
  104. ],
  105. domain: [
  106. 'domain',
  107. {
  108. initialValue: initDomain,
  109. rules: [
  110. { validator: isRequired(), message: this.$t('rules.domain'), trigger: 'change' },
  111. ],
  112. },
  113. ],
  114. auto_create_project: [
  115. 'auto_create_project',
  116. {
  117. initialValue: initAutoCreateProject,
  118. valuePropName: 'checked',
  119. },
  120. ],
  121. saml_auth: [
  122. 'saml_auth',
  123. {
  124. initialValue: initSamlAuth,
  125. valuePropName: 'checked',
  126. },
  127. ],
  128. }
  129. return decorators
  130. },
  131. },
  132. }
  133. </script>