DatePicker
日期时间选择器
Markup Schema 案例
vue
<template>
<Form :form="form" label-width="120" wrapper-width="360">
<SchemaField>
<SchemaStringField
required
name="date"
title="普通日期"
x-decorator="FormItem"
x-component="DatePicker"
/>
<SchemaStringField
required
name="week"
title="周"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'week',
}"
/>
<SchemaStringField
required
name="month"
title="月"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'month',
}"
/>
<SchemaStringField
required
name="year"
title="年"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'year',
}"
/>
<SchemaStringField
required
name="dateTime"
title="日期时间"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'datetime',
}"
/>
<SchemaArrayField
required
name="dates"
title="多个日期"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'dates',
}"
/>
<SchemaArrayField
required
name="dateRange"
title="日期范围"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'daterange',
style: {
width: '100%',
boxSizing: 'border-box',
},
}"
/>
<SchemaArrayField
required
name="monthRange"
title="月范围"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'monthrange',
style: {
width: '100%',
boxSizing: 'border-box',
},
}"
/>
<SchemaArrayField
required
name="dateTimeRange"
title="日期时间范围"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'datetimerange',
style: {
width: '100%',
boxSizing: 'border-box',
},
}"
/>
</SchemaField>
<Submit @submit="onSubmit">提交</Submit>
</Form>
</template>
<script>
import { createForm } from '@formily/core'
import { createSchemaField } from '@formily/vue'
import { Formily } from 'element-plus-x'
const { DatePicker, Form, FormItem, Submit } = Formily
const form = createForm()
const fields = createSchemaField({
components: {
FormItem,
DatePicker,
},
})
export default {
components: { Form, ...fields, Submit },
data() {
return {
form,
}
},
methods: {
onSubmit(value) {
console.log(value)
},
},
}
</script>
隐藏源代码
JSON Schema 案例
vue
<template>
<Form :form="form" label-width="120" wrapper-width="360">
<SchemaField :schema="schema" />
<Submit @submit="onSubmit">提交</Submit>
</Form>
</template>
<script>
import { createForm } from '@formily/core'
import { createSchemaField } from '@formily/vue'
import { Formily } from 'element-plus-x'
const { DatePicker, Form, FormItem, Submit } = Formily
const schema = {
type: 'object',
properties: {
date: {
type: 'string',
title: '普通日期',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
},
week: {
type: 'string',
title: '周',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'week',
},
},
month: {
type: 'string',
title: '月',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'month',
},
},
year: {
type: 'string',
title: '年',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'year',
},
},
dateTime: {
type: 'string',
title: '日期时间',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'datetime',
},
},
dates: {
type: 'array',
title: '多个日期',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'dates',
},
},
dateRange: {
type: 'string',
title: '日期范围',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'daterange',
style: {
width: '100%',
boxSizing: 'border-box',
},
},
},
monthRange: {
type: 'string',
title: '月范围',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'monthrange',
style: {
width: '100%',
boxSizing: 'border-box',
},
},
},
dateTimeRange: {
type: 'string',
title: '日期时间范围',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'datetimerange',
style: {
width: '100%',
boxSizing: 'border-box',
},
},
},
},
}
const form = createForm()
const { SchemaField } = createSchemaField({
components: {
FormItem,
DatePicker,
},
})
export default {
components: { Form, SchemaField, Submit },
data() {
return {
form,
schema,
}
},
methods: {
onSubmit(value) {
console.log(value)
},
},
}
</script>
隐藏源代码
Template 案例
vue
<template>
<Form :form="form" label-width="120" wrapper-width="360">
<Field
name="date"
title="普通日期"
:decorator="[FormItem]"
:component="[DatePicker]"
/>
<Field
name="week"
title="周"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'week',
},
]"
/>
<Field
name="month"
title="月"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'month',
},
]"
/>
<Field
name="year"
title="年"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'year',
},
]"
/>
<Field
name="dateTime"
title="日期时间"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'datetime',
},
]"
/>
<ArrayField
name="dates"
title="多个日期"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'dates',
},
]"
/>
<ArrayField
name="dateRange"
title="日期范围"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'daterange',
style: {
width: '100%',
boxSizing: 'border-box',
},
},
]"
/>
<ArrayField
name="monthRange"
title="月范围"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'monthrange',
style: {
width: '100%',
boxSizing: 'border-box',
},
},
]"
/>
<ArrayField
name="dateTimeRange"
title="日期时间范围"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'datetimerange',
style: {
width: '100%',
boxSizing: 'border-box',
},
},
]"
/>
<Submit @submit="onSubmit">提交</Submit>
</Form>
</template>
<script>
import { createForm } from '@formily/core'
import { ArrayField, Field } from '@formily/vue'
import { Formily } from 'element-plus-x'
const { DatePicker, Form, FormItem, Submit } = Formily
const form = createForm()
export default {
components: { Form, Field, ArrayField, Submit },
data() {
return {
FormItem,
DatePicker,
form,
}
},
methods: {
onSubmit(value) {
console.log(value)
},
},
}
</script>
隐藏源代码
API
参考 DatePicker 日期选择器 参考 DateTimePicker 日期时间选择器