index.vue 2.0 KB

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