DatePicker
Date picker
Markup Schema Example
<script lang="ts" setup>
import { createForm } from '@silver-formily/core'
import { DatePicker, Form, FormItem, Submit } from '@silver-formily/element-plus'
import { createSchemaField } from '@silver-formily/vue'
const form = createForm()
const { SchemaField, SchemaStringField, SchemaArrayField } = createSchemaField({
components: {
FormItem,
DatePicker,
},
})
async function onSubmit(value: Record<string, any>) {
console.log(value)
}
</script>
<template>
<Form :form="form">
<SchemaField>
<SchemaStringField
name="date"
title="Date"
x-decorator="FormItem"
x-component="DatePicker"
/>
<SchemaStringField
name="week"
title="Week"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'week',
}"
/>
<SchemaStringField
name="month"
title="Month"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'month',
}"
/>
<SchemaStringField
name="year"
title="Year"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'year',
}"
/>
<SchemaStringField
name="dateTime"
title="DateTime"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'datetime',
}"
/>
<SchemaArrayField
name="dates"
title="Multiple Dates"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'dates',
}"
/>
<SchemaArrayField
name="dateRange"
title="Date Range"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'daterange',
}"
/>
<SchemaArrayField
name="monthRange"
title="Month Range"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'monthrange',
}"
/>
<SchemaArrayField
name="dateTimeRange"
title="DateTime Range"
x-decorator="FormItem"
x-component="DatePicker"
:x-component-props="{
type: 'datetimerange',
}"
/>
</SchemaField>
<Submit @submit="onSubmit">
Submit
</Submit>
</Form>
</template>查看源码
JSON Schema Example
<script lang="ts" setup>
import { createForm } from '@silver-formily/core'
import { DatePicker, Form, FormItem, Submit } from '@silver-formily/element-plus'
import { createSchemaField } from '@silver-formily/vue'
const schema = {
type: 'object',
properties: {
date: {
'type': 'string',
'title': 'Date',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
},
week: {
'type': 'string',
'title': 'Week',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'week',
},
},
month: {
'type': 'string',
'title': 'Month',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'month',
},
},
year: {
'type': 'string',
'title': 'Year',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'year',
},
},
dateTime: {
'type': 'string',
'title': 'DateTime',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'datetime',
},
},
dates: {
'type': 'array',
'title': 'Multiple Dates',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'dates',
},
},
dateRange: {
'type': 'string',
'title': 'Date Range',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'daterange',
},
},
monthRange: {
'type': 'string',
'title': 'Month Range',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'monthrange',
},
},
dateTimeRange: {
'type': 'string',
'title': 'DateTime Range',
'x-decorator': 'FormItem',
'x-component': 'DatePicker',
'x-component-props': {
type: 'datetimerange',
},
},
},
}
const form = createForm()
const { SchemaField } = createSchemaField({
components: {
FormItem,
DatePicker,
},
})
async function onSubmit(value: Record<string, any>) {
console.log(value)
}
</script>
<template>
<Form :form="form">
<SchemaField :schema="schema" />
<Submit @submit="onSubmit">
Submit
</Submit>
</Form>
</template>查看源码
Template Example
<script lang="ts" setup>
import { createForm } from '@silver-formily/core'
import { DatePicker, Form, FormItem, Submit } from '@silver-formily/element-plus'
import { ArrayField, Field } from '@silver-formily/vue'
const form = createForm()
async function onSubmit(value: Record<string, any>) {
console.log(value)
}
</script>
<template>
<Form :form="form">
<Field
name="date"
title="Date"
:decorator="[FormItem]"
:component="[DatePicker]"
/>
<Field
name="week"
title="Week"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'week',
},
]"
/>
<Field
name="month"
title="Month"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'month',
},
]"
/>
<Field
name="year"
title="Year"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'year',
},
]"
/>
<Field
name="dateTime"
title="DateTime"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'datetime',
},
]"
/>
<ArrayField
name="dates"
title="Multiple Dates"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'dates',
},
]"
/>
<ArrayField
name="dateRange"
title="Date Range"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'daterange',
},
]"
/>
<ArrayField
name="monthRange"
title="Month Range"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'monthrange',
},
]"
/>
<ArrayField
name="dateTimeRange"
title="DateTime Range"
:decorator="[FormItem]"
:component="[
DatePicker,
{
type: 'datetimerange',
},
]"
/>
<Submit @submit="onSubmit">
Submit
</Submit>
</Form>
</template>查看源码
API
See https://element-plus.org/en-US/component/date-picker.html