Slider
滑块
Markup Schema 案例
<script lang="ts" setup>
import { createForm } from '@formily/core'
import { FormItem, Slider, Submit } from '@silver-formily/element-plus'
import { createSchemaField, FormProvider } from '@silver-formily/vue'
const form = createForm()
const { SchemaField, SchemaArrayField, SchemaStringField } = createSchemaField({
components: {
FormItem,
Slider,
},
})
async function log(value) {
console.log(value)
}
</script>
<template>
<FormProvider :form="form">
<SchemaField>
<SchemaStringField
name="slider"
title="滑块"
x-decorator="FormItem"
x-component="Slider"
:x-component-props="{
style: {
width: '240px',
},
showInput: true,
}"
:default="30"
/>
<SchemaArrayField
name="slider-range"
title="区间与刻度"
x-decorator="FormItem"
x-component="Slider"
:x-component-props="{
style: {
width: '240px',
},
range: true,
marks: {
0: '0',
20: '20',
40: '40',
60: '60',
80: '80',
100: '100',
},
}"
:default="[20, 60]"
/>
</SchemaField>
<Submit @submit="log">
提交
</Submit>
</FormProvider>
</template>滑块:
区间与刻度:
0
20
40
60
80
100
查看源码
JSON Schema 案例
<script lang="ts" setup>
import { createForm } from '@formily/core'
import { FormItem, Slider, Submit } from '@silver-formily/element-plus'
import { createSchemaField, FormProvider } from '@silver-formily/vue'
const schema = {
type: 'object',
properties: {
slider: {
'type': 'number',
'title': '滑块',
'x-decorator': 'FormItem',
'x-component': 'Slider',
'x-component-props': {
style: {
width: '240px',
},
showInput: true,
},
'default': 30,
},
sliderRange: {
'type': 'array',
'title': '区间与刻度',
'x-decorator': 'FormItem',
'x-component': 'Slider',
'x-component-props': {
style: {
width: '240px',
},
range: true,
marks: {
0: '0',
20: '20',
40: '40',
60: '60',
80: '80',
100: '100',
},
},
'default': [20, 60],
},
},
}
const form = createForm()
const { SchemaField } = createSchemaField({
components: {
FormItem,
Slider,
},
})
async function onSubmit(value) {
console.log(value)
}
</script>
<template>
<FormProvider :form="form">
<SchemaField :schema="schema" />
<Submit @submit="onSubmit">
提交
</Submit>
</FormProvider>
</template>滑块:
区间与刻度:
0
20
40
60
80
100
查看源码
Template 案例
<script lang="ts" setup>
import { createForm } from '@formily/core'
import { FormItem, Slider, Submit } from '@silver-formily/element-plus'
import { Field, FormProvider } from '@silver-formily/vue'
const form = createForm()
async function log(value) {
console.log(value)
}
</script>
<template>
<FormProvider :form="form">
<Field
name="slider"
title="滑块"
:decorator="[FormItem]"
:component="[
Slider,
{
style: {
width: '240px',
},
showInput: true,
},
]"
:default="30"
/>
<Field
name="slider-range"
title="区间与刻度"
:decorator="[FormItem]"
:component="[
Slider,
{
style: {
width: '240px',
},
range: true,
marks: {
0: '0',
20: '20',
40: '40',
60: '60',
80: '80',
100: '100',
},
},
]"
:default="[20, 60]"
/>
<Submit @submit="log">
提交
</Submit>
</FormProvider>
</template>滑块:
区间与刻度:
0
20
40
60
80
100
查看源码