index.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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_386')">
  11. <role-rule-form-item ref="roleRuleRef" :clusterId="clusterObj.id" />
  12. </a-form-item>
  13. </a-form>
  14. </div>
  15. </template>
  16. <script>
  17. import ClusterSelect from '@K8S/sections/ClusterSelect'
  18. import RoleRuleFormItem from '@K8S/sections/RoleRuleFormItem'
  19. import k8sCreateMixin from '@K8S/mixins/create'
  20. export default {
  21. name: 'K8sRbacclusterrolebindingFormCreate',
  22. components: {
  23. ClusterSelect,
  24. RoleRuleFormItem,
  25. },
  26. mixins: [k8sCreateMixin],
  27. data () {
  28. return {
  29. form: {
  30. fc: this.$form.createForm(this),
  31. },
  32. formItemLayout: {
  33. labelCol: { span: 4 },
  34. wrapperCol: { span: 20 },
  35. },
  36. decorators: {
  37. name: [
  38. 'name',
  39. {
  40. validateFirst: true,
  41. rules: [
  42. { required: true, message: this.$t('k8s.text_60') },
  43. { min: 2, max: 24, message: this.$t('k8s.text_132'), trigger: 'blur' },
  44. { validator: this.$validate('k8sName') },
  45. ],
  46. },
  47. ],
  48. cluster: [
  49. 'cluster',
  50. {
  51. initialValue: this.$store.state.common.k8s.cluster,
  52. rules: [
  53. { required: true, message: this.$t('k8s.text_30'), trigger: 'blur' },
  54. ],
  55. },
  56. ],
  57. },
  58. clusterObj: {},
  59. }
  60. },
  61. methods: {
  62. async validateForm () {
  63. try {
  64. const [roleRuleData, values] = await Promise.all([this.$refs.roleRuleRef.validateForm(), this.form.fc.validateFields()])
  65. return { ...roleRuleData, ...values }
  66. } catch (error) {
  67. throw error
  68. }
  69. },
  70. async doCreate () {
  71. try {
  72. const values = await this.validateForm()
  73. this.$emit('submit', values)
  74. } catch (error) {
  75. throw error
  76. }
  77. },
  78. },
  79. }
  80. </script>