Skip to content

Commit cbdff4a

Browse files
xiaodemenJustineo
authored andcommitted
docs: update form valiation demos
Change-Id: Iaaa934e454cf74e96a7d5c5a08dd0063eeba2ca0
1 parent f6e6d6c commit cbdff4a

File tree

8 files changed

+55
-267
lines changed

8 files changed

+55
-267
lines changed

one/docs/components/form.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,6 @@
4444

4545
[[ demo src="/demo/form/before-after.vue" ]]
4646

47-
### 警告信息
48-
49-
[[ demo src="/demo/form/warn.vue" ]]
50-
5147
### 抽象表单项
5248

5349
[[ demo src="/demo/form/abstract.vue" ]]

one/docs/demo/form/before-after.vue

Lines changed: 7 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,33 @@
22
<article class="veui-form-demo">
33
<veui-form
44
ref="form"
5-
:data="storeData4"
5+
:data="data"
66
:before-validate="beforeValidate"
77
:after-validate="afterValidate"
88
>
99
<veui-field
1010
field="name"
1111
name="name"
1212
label="姓名"
13-
:rules="requiredRule"
1413
>
15-
<veui-input v-model="storeData4.name"/>
14+
<veui-input v-model="data.name"/>
1615
</veui-field>
1716

1817
<veui-field
1918
field="phone"
2019
name="phone"
21-
:rules="phoneRule"
2220
label="手机"
2321
>
2422
<veui-input
25-
v-model="storeData4.phone"
23+
v-model="data.phone"
2624
name="phone"
2725
autocomplete="off"
2826
/>
2927
</veui-field>
3028

31-
<template #actions="{ validating }">
29+
<template #actions>
3230
<veui-button
3331
ui="primary"
34-
:loading="validating"
3532
type="submit"
3633
>提交</veui-button>
3734
</template>
@@ -42,17 +39,9 @@
4239
<script>
4340
import {
4441
Form,
45-
Fieldset,
4642
Field,
47-
Span,
4843
Input,
49-
Button,
50-
Select,
51-
Checkbox,
52-
CheckboxGroup,
53-
NumberInput,
54-
Transfer,
55-
ConfigProvider
44+
Button
5645
} from 'veui'
5746
import confirmManager from 'veui/managers/confirm'
5847
@@ -66,26 +55,10 @@ export default {
6655
},
6756
data () {
6857
return {
69-
storeData4: {
58+
data: {
7059
name: '曹达华',
7160
phone: '18888888888'
72-
},
73-
requiredRule: [
74-
{
75-
name: 'required',
76-
value: true,
77-
triggers: 'blur,input'
78-
}
79-
],
80-
phoneRule: [
81-
{ name: 'required', triggers: 'change,input,blur' },
82-
{
83-
name: 'pattern',
84-
value: /^1\d{10}$/,
85-
message: '请输入正确的手机号',
86-
triggers: 'blur'
87-
}
88-
]
61+
}
8962
}
9063
},
9164
methods: {
@@ -114,22 +87,3 @@ export default {
11487
}
11588
}
11689
</script>
117-
118-
<style lang="less" scoped>
119-
@import "~veui-theme-dls/lib.less";
120-
121-
.veui-form-demo {
122-
.operation {
123-
margin-top: 60px;
124-
margin-left: 120px;
125-
126-
[class*="veui"] {
127-
margin-left: 10px;
128-
}
129-
130-
[class*="veui"]:first-child {
131-
margin-left: 0;
132-
}
133-
}
134-
}
135-
</style>

one/docs/demo/form/help.vue

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,25 @@
11
<template>
22
<article>
33
<section>
4-
<veui-checkbox
4+
<span class="label-text">辅助信息位置:</span>
5+
<veui-radio-button-group
56
v-model="helpPosition"
6-
true-value="bottom"
7+
ui="s"
8+
:items="helpPositions"
9+
/>
10+
<veui-checkbox
11+
v-model="labelPosition"
12+
true-value="top"
713
false-value="side"
14+
ui="s"
15+
style="margin-left: 8px"
816
>
9-
辅助信息显示在底部
17+
上下布局
1018
</veui-checkbox>
1119
</section>
1220
<veui-form
1321
:data="formData"
22+
:label-position="labelPosition"
1423
>
1524
<veui-field
1625
name="name"
@@ -35,13 +44,14 @@
3544
</template>
3645

3746
<script>
38-
import { Form, Field, Input, Checkbox } from 'veui'
47+
import { Form, Field, Input, Checkbox, RadioButtonGroup } from 'veui'
3948
4049
export default {
4150
components: {
4251
'veui-form': Form,
4352
'veui-field': Field,
4453
'veui-input': Input,
54+
'veui-radio-button-group': RadioButtonGroup,
4555
'veui-checkbox': Checkbox
4656
},
4757
data () {
@@ -50,7 +60,13 @@ export default {
5060
name: '',
5161
address: ''
5262
},
53-
helpPosition: 'side'
63+
helpPositions: [
64+
{ label: 'top', value: 'top' },
65+
{ label: 'side', value: 'side' },
66+
{ label: 'bottom', value: 'bottom' }
67+
],
68+
helpPosition: 'side',
69+
labelPosition: 'side'
5470
}
5571
}
5672
}
@@ -60,4 +76,9 @@ export default {
6076
section {
6177
margin-bottom: 20px;
6278
}
79+
80+
.label-text {
81+
font-size: 12px;
82+
margin-right: 8px;
83+
}
6384
</style>

one/docs/demo/form/rule.vue

Lines changed: 7 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,24 @@
22
<article class="veui-form-demo">
33
<veui-form
44
ref="form"
5-
:data="storeData4"
5+
:data="data"
66
>
7-
<veui-field
8-
field="name"
9-
name="name"
10-
label="姓名"
11-
:rules="requiredRule"
12-
>
13-
<veui-input v-model="storeData4.name"/>
14-
</veui-field>
15-
167
<veui-field
178
field="phone"
189
name="phone"
1910
:rules="phoneRule"
2011
label="手机"
2112
>
2213
<veui-input
23-
v-model="storeData4.phone"
14+
v-model="data.phone"
2415
name="phone"
2516
autocomplete="off"
2617
/>
2718
</veui-field>
2819

29-
<template #actions="{ validating }">
20+
<template #actions>
3021
<veui-button
3122
ui="primary"
32-
:loading="validating"
3323
type="submit"
3424
>提交</veui-button>
3525
</template>
@@ -40,17 +30,9 @@
4030
<script>
4131
import {
4232
Form,
43-
Fieldset,
4433
Field,
45-
Span,
4634
Input,
47-
Button,
48-
Select,
49-
Checkbox,
50-
CheckboxGroup,
51-
NumberInput,
52-
Transfer,
53-
ConfigProvider
35+
Button
5436
} from 'veui'
5537
5638
export default {
@@ -63,46 +45,19 @@ export default {
6345
},
6446
data () {
6547
return {
66-
storeData4: {
67-
name: '',
48+
data: {
6849
phone: '1888888888a'
6950
},
70-
requiredRule: [
71-
{
72-
name: 'required',
73-
value: true,
74-
triggers: 'blur,input'
75-
}
76-
],
7751
phoneRule: [
78-
{ name: 'required', triggers: 'change,input,blur' },
52+
// 'required',
7953
{
8054
name: 'pattern',
8155
value: /^1\d{10}$/,
82-
message: '请输入正确的手机号',
56+
message: '{value} 不是正确的手机号',
8357
triggers: 'blur'
8458
}
8559
]
8660
}
8761
}
8862
}
8963
</script>
90-
91-
<style lang="less" scoped>
92-
@import "~veui-theme-dls/lib.less";
93-
94-
.veui-form-demo {
95-
.operation {
96-
margin-top: 60px;
97-
margin-left: 120px;
98-
99-
[class*="veui"] {
100-
margin-left: 10px;
101-
}
102-
103-
[class*="veui"]:first-child {
104-
margin-left: 0;
105-
}
106-
}
107-
}
108-
</style>

one/docs/demo/form/validator.vue

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<article class="veui-form-demo">
33
<veui-form
44
ref="form"
5-
:data="storeData4"
5+
:data="data"
66
:validators="validators"
77
>
88
<veui-fieldset
@@ -17,11 +17,11 @@
1717
:rules="numRequiredRule"
1818
class="start-field"
1919
>
20-
<veui-input v-model="storeData4.start"/>
20+
<veui-input v-model="data.start"/>
2121
</veui-field>
2222
<veui-span style="margin: 0 4px">-</veui-span>
2323
<veui-field field="end" name="end" :rules="numRequiredRule">
24-
<veui-input v-model="storeData4.end"/>
24+
<veui-input v-model="data.end"/>
2525
</veui-field>
2626
<veui-span>万</veui-span>
2727
</veui-fieldset>
@@ -42,15 +42,8 @@ import {
4242
Form,
4343
Fieldset,
4444
Field,
45-
Span,
4645
Input,
47-
Button,
48-
Select,
49-
Checkbox,
50-
CheckboxGroup,
51-
NumberInput,
52-
Transfer,
53-
ConfigProvider
46+
Button
5447
} from 'veui'
5548
5649
export default {
@@ -64,7 +57,7 @@ export default {
6457
},
6558
data () {
6659
return {
67-
storeData4: {
60+
data: {
6861
start: 20000,
6962
end: 10000
7063
},
@@ -90,12 +83,17 @@ export default {
9083
9184
return new Promise(function (resolve) {
9285
setTimeout(function () {
86+
let res = {}
87+
if (parseInt(start, 10) < 4000) {
88+
res.start = {
89+
status: 'warning',
90+
message: '请提高下限'
91+
}
92+
}
9393
if (parseInt(start, 10) >= parseInt(end, 10)) {
94-
return resolve({
95-
start: '下限必须小于上限'
96-
})
94+
res.end = '上限必须大于下限'
9795
}
98-
return resolve(true)
96+
resolve(Object.keys(res).length ? res : true)
9997
}, 2000)
10098
})
10199
},
@@ -116,18 +114,5 @@ export default {
116114
width: 80px;
117115
}
118116
}
119-
120-
.operation {
121-
margin-top: 60px;
122-
margin-left: 120px;
123-
124-
[class*="veui"] {
125-
margin-left: 10px;
126-
}
127-
128-
[class*="veui"]:first-child {
129-
margin-left: 0;
130-
}
131-
}
132117
}
133118
</style>

0 commit comments

Comments
 (0)