index.vue 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <template>
  2. <div class="k8s-deployment-create">
  3. <a-form :form="form.fc" v-bind="formItemLayout">
  4. <a-form-item :label="$t('k8s.text_41')">
  5. <a-input :placeholder="$t('k8s.text_60')" v-decorator="decorators.name" class="w-75" />
  6. </a-form-item>
  7. <a-form-item :label="$t('k8s.text_19')">
  8. <cluster-select v-decorator="decorators.cluster" @input="setCluster" :clusterObj.sync="clusterObj" class="w-75" />
  9. </a-form-item>
  10. <a-form-item :label="$t('k8s.text_23')">
  11. <namespace-select v-decorator="decorators.namespace" @input="setNamespace" :cluster="cluster" :namespaceObj.sync="namespaceObj" class="w-75" />
  12. </a-form-item>
  13. <a-form-item :label="$t('k8s.text_386')">
  14. <role-rule-form-item ref="roleRuleRef" :clusterId="clusterObj.id" isNamespace />
  15. </a-form-item>
  16. </a-form>
  17. </div>
  18. </template>
  19. <script>
  20. import ClusterSelect from '@K8S/sections/ClusterSelect'
  21. import NamespaceSelect from '@K8S/sections/NamespaceSelect'
  22. import RoleRuleFormItem from '@K8S/sections/RoleRuleFormItem'
  23. import k8sCreateMixin from '@K8S/mixins/create'
  24. export default {
  25. name: 'K8sRbacroleFormCreate',
  26. components: {
  27. ClusterSelect,
  28. NamespaceSelect,
  29. RoleRuleFormItem,
  30. },
  31. mixins: [k8sCreateMixin],
  32. data () {
  33. return {
  34. form: {
  35. fc: this.$form.createForm(this),
  36. },
  37. formItemLayout: {
  38. labelCol: { span: 4 },
  39. wrapperCol: { span: 20 },
  40. },
  41. decorators: {
  42. name: [
  43. 'name',
  44. {
  45. validateFirst: true,
  46. rules: [
  47. { required: true, message: this.$t('k8s.text_60') },
  48. { min: 2, max: 24, message: this.$t('k8s.text_132'), trigger: 'blur' },
  49. { validator: this.$validate('k8sName') },
  50. ],
  51. },
  52. ],
  53. cluster: [
  54. 'cluster',
  55. {
  56. initialValue: this.$store.state.common.k8s.cluster,
  57. rules: [
  58. { required: true, message: this.$t('k8s.text_30'), trigger: 'blur' },
  59. ],
  60. },
  61. ],
  62. namespace: [
  63. 'namespace',
  64. {
  65. initialValue: this.$store.state.common.k8s.namespace,
  66. rules: [
  67. { required: true, message: this.$t('k8s.text_61'), trigger: 'blur' },
  68. ],
  69. },
  70. ],
  71. },
  72. clusterObj: {},
  73. namespaceObj: {},
  74. }
  75. },
  76. methods: {
  77. async validateForm () {
  78. try {
  79. const [roleRuleData, values] = await Promise.all([this.$refs.roleRuleRef.validateForm(), this.form.fc.validateFields()])
  80. return { ...roleRuleData, ...values }
  81. } catch (error) {
  82. throw error
  83. }
  84. },
  85. async doCreate () {
  86. try {
  87. const values = await this.validateForm()
  88. this.$emit('submit', values)
  89. } catch (error) {
  90. throw error
  91. }
  92. },
  93. },
  94. }
  95. </script>