CreateForm.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <template>
  2. <a-modal
  3. title="新建规则"
  4. :width="640"
  5. :visible="visible"
  6. :confirmLoading="confirmLoading"
  7. @ok="handleSubmit"
  8. @cancel="handleCancel"
  9. >
  10. <a-spin :spinning="confirmLoading">
  11. <a-form :form="form">
  12. <a-form-item
  13. label="描述"
  14. :labelCol="labelCol"
  15. :wrapperCol="wrapperCol"
  16. >
  17. <a-input v-decorator="['desc', {rules: [{required: true, min: 5, message: '请输入至少五个字符的规则描述!'}]}]" />
  18. </a-form-item>
  19. </a-form>
  20. </a-spin>
  21. </a-modal>
  22. </template>
  23. <script>
  24. export default {
  25. data () {
  26. return {
  27. labelCol: {
  28. xs: { span: 24 },
  29. sm: { span: 7 }
  30. },
  31. wrapperCol: {
  32. xs: { span: 24 },
  33. sm: { span: 13 }
  34. },
  35. visible: false,
  36. confirmLoading: false,
  37. form: this.$form.createForm(this)
  38. }
  39. },
  40. methods: {
  41. add () {
  42. this.visible = true
  43. },
  44. handleSubmit () {
  45. const { form: { validateFields } } = this
  46. this.confirmLoading = true
  47. validateFields((errors, values) => {
  48. if (!errors) {
  49. console.log('values', values)
  50. setTimeout(() => {
  51. this.visible = false
  52. this.confirmLoading = false
  53. this.$emit('ok', values)
  54. }, 1500)
  55. } else {
  56. this.confirmLoading = false
  57. }
  58. })
  59. },
  60. handleCancel () {
  61. this.visible = false
  62. }
  63. }
  64. }
  65. </script>