@@ -15,83 +15,67 @@ title:
15
15
Basic Form data control. Includes layout, initial values, validation and submit.
16
16
</docs >
17
17
<template >
18
- <a-form :model =" formState" :label-col =" labelCol" :wrapper-col =" wrapperCol" >
19
- <a-form-item label =" Activity name" >
20
- <a-input v-model:value =" formState.name" />
18
+ <a-form
19
+ :model =" formState"
20
+ name =" basic"
21
+ :label-col =" { span: 8 }"
22
+ :wrapper-col =" { span: 16 }"
23
+ autocomplete =" off"
24
+ @finish =" onFinish"
25
+ @finishFailed =" onFinishFailed"
26
+ >
27
+ <a-form-item
28
+ label =" Username"
29
+ name =" username"
30
+ :rules =" [{ required: true, message: 'Please input your username!' }]"
31
+ >
32
+ <a-input v-model:value =" formState.username" />
21
33
</a-form-item >
22
- <a-form-item label =" Activity zone" >
23
- <a-select v-model:value =" formState.region" placeholder =" please select your zone" >
24
- <a-select-option value =" shanghai" >Zone one</a-select-option >
25
- <a-select-option value =" beijing" >Zone two</a-select-option >
26
- </a-select >
27
- </a-form-item >
28
- <a-form-item label =" Activity time" >
29
- <a-date-picker
30
- v-model:value =" formState.date1"
31
- show-time
32
- type =" date"
33
- placeholder =" Pick a date"
34
- style =" width : 100% "
35
- />
36
- </a-form-item >
37
- <a-form-item label =" Instant delivery" >
38
- <a-switch v-model:checked =" formState.delivery" />
39
- </a-form-item >
40
- <a-form-item label =" Activity type" >
41
- <a-checkbox-group v-model:value =" formState.type" >
42
- <a-checkbox value =" 1" name =" type" >Online</a-checkbox >
43
- <a-checkbox value =" 2" name =" type" >Promotion</a-checkbox >
44
- <a-checkbox value =" 3" name =" type" >Offline</a-checkbox >
45
- </a-checkbox-group >
46
- </a-form-item >
47
- <a-form-item label =" Resources" >
48
- <a-radio-group v-model:value =" formState.resource" >
49
- <a-radio value =" 1" >Sponsor</a-radio >
50
- <a-radio value =" 2" >Venue</a-radio >
51
- </a-radio-group >
34
+
35
+ <a-form-item
36
+ label =" Password"
37
+ name =" password"
38
+ :rules =" [{ required: true, message: 'Please input your password!' }]"
39
+ >
40
+ <a-input-password v-model:value =" formState.password" />
52
41
</a-form-item >
53
- <a-form-item label =" Activity form" >
54
- <a-input v-model:value =" formState.desc" type =" textarea" />
42
+
43
+ <a-form-item name =" remember" :wrapper-col =" { offset: 8, span: 16 }" >
44
+ <a-checkbox v-model:checked =" formState.remember" >Remember me</a-checkbox >
55
45
</a-form-item >
56
- < a-form-item :wrapper-col = " { span: 14, offset: 4 } " >
57
- <a-button type = " primary " @click = " onSubmit " >Create</ a-button >
58
- <a-button style = " margin-left : 10 px " >Cancel </a-button >
46
+
47
+ <a-form-item :wrapper-col = " { offset: 8, span: 16 } " >
48
+ <a-button type = " primary " html-type = " submit " >Submit </a-button >
59
49
</a-form-item >
60
50
</a-form >
61
51
</template >
62
52
<script lang="ts">
63
- import { Dayjs } from ' dayjs' ;
64
- import { defineComponent , reactive , toRaw } from ' vue' ;
53
+ import { defineComponent , reactive } from ' vue' ;
65
54
import type { UnwrapRef } from ' vue' ;
66
55
67
56
interface FormState {
68
- name: string ;
69
- region: string | undefined ;
70
- date1: Dayjs | undefined ;
71
- delivery: boolean ;
72
- type: string [];
73
- resource: string ;
74
- desc: string ;
57
+ username: string ;
58
+ password: string ;
59
+ remember: boolean ;
75
60
}
76
61
export default defineComponent ({
77
62
setup() {
78
63
const formState: UnwrapRef <FormState > = reactive ({
79
- name: ' ' ,
80
- region: undefined ,
81
- date1: undefined ,
82
- delivery: false ,
83
- type: [],
84
- resource: ' ' ,
85
- desc: ' ' ,
64
+ username: ' ' ,
65
+ password: ' ' ,
66
+ remember: true ,
86
67
});
87
- const onSubmit = () => {
88
- console .log (' submit!' , toRaw (formState ));
68
+ const onFinish = (values : any ) => {
69
+ console .log (' Success:' , values );
70
+ };
71
+
72
+ const onFinishFailed = (errorInfo : any ) => {
73
+ console .log (' Failed:' , errorInfo );
89
74
};
90
75
return {
91
- labelCol: { span: 4 },
92
- wrapperCol: { span: 14 },
93
76
formState ,
94
- onSubmit ,
77
+ onFinish ,
78
+ onFinishFailed ,
95
79
};
96
80
},
97
81
});
0 commit comments