Qcloud.vue 4.7 KB

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