You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
287 lines
6.2 KiB
287 lines
6.2 KiB
<cn>
|
|
#### 校验其他组件
|
|
以上演示没有出现的表单控件对应的校验演示。
|
|
</cn>
|
|
|
|
<us>
|
|
#### Other Form Controls
|
|
Demostration for validataion configuration for form controls which are not show in the above demos.
|
|
</us>
|
|
|
|
|
|
<template>
|
|
<a-form
|
|
id="components-form-demo-validate-other"
|
|
:form="form"
|
|
@submit="handleSubmit"
|
|
>
|
|
<a-form-item
|
|
v-bind="formItemLayout"
|
|
label="Plain Text"
|
|
>
|
|
<span class="ant-form-text">
|
|
China
|
|
</span>
|
|
</a-form-item>
|
|
<a-form-item
|
|
v-bind="formItemLayout"
|
|
label="Select"
|
|
has-feedback
|
|
>
|
|
<a-select
|
|
v-decorator="[
|
|
'select',
|
|
{rules: [{ required: true, message: 'Please select your country!' }]}
|
|
]"
|
|
placeholder="Please select a country"
|
|
>
|
|
<a-select-option value="china">
|
|
China
|
|
</a-select-option>
|
|
<a-select-option value="usa">
|
|
U.S.A
|
|
</a-select-option>
|
|
</a-select>
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
v-bind="formItemLayout"
|
|
label="Select[multiple]"
|
|
>
|
|
<a-select
|
|
v-decorator="[
|
|
'select-multiple', {
|
|
rules: [{ required: true, message: 'Please select your favourite colors!', type: 'array' }],
|
|
}]"
|
|
mode="multiple"
|
|
placeholder="Please select favourite colors"
|
|
>
|
|
<a-select-option value="red">
|
|
Red
|
|
</a-select-option>
|
|
<a-select-option value="green">
|
|
Green
|
|
</a-select-option>
|
|
<a-select-option value="blue">
|
|
Blue
|
|
</a-select-option>
|
|
</a-select>
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
v-bind="formItemLayout"
|
|
label="InputNumber"
|
|
>
|
|
<a-input-number
|
|
v-decorator="['input-number', { initialValue: 3 }]"
|
|
:min="1"
|
|
:max="10"
|
|
/>
|
|
<span class="ant-form-text">
|
|
machines
|
|
</span>
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
v-bind="formItemLayout"
|
|
label="Switch"
|
|
>
|
|
<a-switch v-decorator="['switch', { valuePropName: 'checked' }]" />
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
v-bind="formItemLayout"
|
|
label="Slider"
|
|
>
|
|
<a-slider
|
|
v-decorator="['slider']"
|
|
:marks="{ 0: 'A', 20: 'B', 40: 'C', 60: 'D', 80: 'E', 100: 'F' }"
|
|
/>
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
v-bind="formItemLayout"
|
|
label="Radio.Group"
|
|
>
|
|
<a-radio-group v-decorator="['radio-group']">
|
|
<a-radio value="a">
|
|
item 1
|
|
</a-radio>
|
|
<a-radio value="b">
|
|
item 2
|
|
</a-radio>
|
|
<a-radio value="c">
|
|
item 3
|
|
</a-radio>
|
|
</a-radio-group>
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
v-bind="formItemLayout"
|
|
label="Radio.Button"
|
|
>
|
|
<a-radio-group v-decorator="['radio-button']">
|
|
<a-radio-button value="a">
|
|
item 1
|
|
</a-radio-button>
|
|
<a-radio-button value="b">
|
|
item 2
|
|
</a-radio-button>
|
|
<a-radio-button value="c">
|
|
item 3
|
|
</a-radio-button>
|
|
</a-radio-group>
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
v-bind="formItemLayout"
|
|
label="Checkbox.Group"
|
|
>
|
|
<a-checkbox-group
|
|
v-decorator="['checkbox-group', {initialValue: ['A', 'B']}]"
|
|
style="width: 100%;"
|
|
>
|
|
<a-row>
|
|
<a-col :span="8">
|
|
<a-checkbox value="A">
|
|
A
|
|
</a-checkbox>
|
|
</a-col>
|
|
<a-col :span="8">
|
|
<a-checkbox
|
|
disabled
|
|
value="B"
|
|
>
|
|
B
|
|
</a-checkbox>
|
|
</a-col>
|
|
<a-col :span="8">
|
|
<a-checkbox value="C">
|
|
C
|
|
</a-checkbox>
|
|
</a-col>
|
|
<a-col :span="8">
|
|
<a-checkbox value="D">
|
|
D
|
|
</a-checkbox>
|
|
</a-col>
|
|
<a-col :span="8">
|
|
<a-checkbox value="E">
|
|
E
|
|
</a-checkbox>
|
|
</a-col>
|
|
</a-row>
|
|
</a-checkbox-group>
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
v-bind="formItemLayout"
|
|
label="Rate"
|
|
>
|
|
<a-rate
|
|
v-decorator="['rate', {initialValue: 3.5}]"
|
|
allow-half
|
|
/>
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
v-bind="formItemLayout"
|
|
label="Upload"
|
|
extra="longgggggggggggggggggggggggggggggggggg"
|
|
>
|
|
<a-upload
|
|
v-decorator="['upload', {
|
|
valuePropName: 'fileList',
|
|
getValueFromEvent: normFile,
|
|
}]"
|
|
name="logo"
|
|
action="/upload.do"
|
|
list-type="picture"
|
|
>
|
|
<a-button>
|
|
<a-icon type="upload" /> Click to upload
|
|
</a-button>
|
|
</a-upload>
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
v-bind="formItemLayout"
|
|
label="Dragger"
|
|
>
|
|
<div class="dropbox">
|
|
<a-upload-dragger
|
|
v-decorator="['dragger', {
|
|
valuePropName: 'fileList',
|
|
getValueFromEvent: normFile,
|
|
}]"
|
|
name="files"
|
|
action="/upload.do"
|
|
>
|
|
<p class="ant-upload-drag-icon">
|
|
<a-icon type="inbox" />
|
|
</p>
|
|
<p class="ant-upload-text">
|
|
Click or drag file to this area to upload
|
|
</p>
|
|
<p class="ant-upload-hint">
|
|
Support for a single or bulk upload.
|
|
</p>
|
|
</a-upload-dragger>
|
|
</div>
|
|
</a-form-item>
|
|
|
|
<a-form-item
|
|
:wrapper-col="{ span: 12, offset: 6 }"
|
|
>
|
|
<a-button
|
|
type="primary"
|
|
html-type="submit"
|
|
>
|
|
Submit
|
|
</a-button>
|
|
</a-form-item>
|
|
</a-form>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data: () => ({
|
|
formItemLayout: {
|
|
labelCol: { span: 6 },
|
|
wrapperCol: { span: 14 },
|
|
},
|
|
}),
|
|
beforeCreate () {
|
|
this.form = this.$form.createForm(this);
|
|
},
|
|
methods: {
|
|
handleSubmit (e) {
|
|
e.preventDefault();
|
|
this.form.validateFields((err, values) => {
|
|
if (!err) {
|
|
console.log('Received values of form: ', values);
|
|
}
|
|
});
|
|
},
|
|
normFile (e) {
|
|
console.log('Upload event:', e);
|
|
if (Array.isArray(e)) {
|
|
return e;
|
|
}
|
|
return e && e.fileList;
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style>
|
|
#components-form-demo-validate-other .dropbox {
|
|
height: 180px;
|
|
line-height: 1.5;
|
|
}
|
|
</style>
|
|
|
|
|
|
|
|
|
|
|