Slider 滑块
通过拖动滑块在一个固定区间内进行选择
Markup Schema 案例
vue
<template>
<Form :form="form" :colon="false" @auto-submit="onSubmit">
<SchemaField>
<SchemaNumberField
name="slider"
title="基本使用"
:required="false"
x-decorator="FormItem"
x-component="Slider"
:x-component-props="{
style: {
width: '320px',
marginLeft: '16px',
},
clearable: true,
}"
:default="10"
/>
</SchemaField>
<Submit>提交</Submit>
</Form>
</template>
<script setup>
import { createForm } from '@formily/core'
import { createSchemaField } from '@formily/vue'
import { Formily } from 'element-plus-x'
const { Slider, Form, FormItem, Submit } = Formily
const form = createForm({
effects: () => {},
})
const fields = createSchemaField({
components: {
FormItem,
Slider,
},
})
const { SchemaField, SchemaNumberField } = fields
const onSubmit = (value) => {
console.log(value)
}
</script>
隐藏源代码
JSON Schema 案例
vue
<template>
<Form :form="form" label-width="150" @auto-submit="onSubmit">
<SchemaField :schema="schema" />
<Submit>提交</Submit>
<Reset>重置</Reset>
</Form>
</template>
<script setup>
import { createForm } from '@formily/core'
import { createSchemaField } from '@formily/vue'
import { Formily } from 'element-plus-x'
const { Slider, Form, FormItem, Submit, Reset } = Formily
const schema = {
type: 'object',
properties: {
slider: {
type: 'number',
title: '离散值',
required: true,
'x-decorator': 'FormItem',
'x-component': 'Slider',
'x-component-props': {
style: {
width: '360px',
marginLeft: '12px',
},
showStops: true,
step: 10,
},
},
slider2: {
type: 'number',
title: '带有输入框的滑块',
required: true,
'x-decorator': 'FormItem',
'x-component': 'Slider',
'x-component-props': {
style: {
width: '360px',
marginLeft: '12px',
},
showInput: true,
},
},
},
}
const form = createForm()
const { SchemaField } = createSchemaField({
components: {
FormItem,
Slider,
},
})
const onSubmit = (value) => {
console.log(value)
}
</script>
隐藏源代码
Template 案例
vue
<template>
<Form :form="form" @auto-submit="onSubmit">
<Field
name="slider"
title="显示标记"
:decorator="[FormItem]"
:component="[
Slider,
{
style: {
width: '360px',
marginLeft: '16px',
},
marks,
},
]"
/>
<Submit>提交</Submit>
<Reset>重置</Reset>
</Form>
</template>
<script setup>
import { createForm } from '@formily/core'
import { Field } from '@formily/vue'
import { Formily } from 'element-plus-x'
const { Slider, Form, FormItem, Submit, Reset } = Formily
const form = createForm({
effects: () => {},
})
const onSubmit = (value) => {
console.log(value)
}
const marks = {
0: '0°C',
8: '8°C',
37: '37°C',
50: {
style: {
color: '#1989FA',
},
label: '50%',
},
}
</script>
隐藏源代码
API
参考 ElSlider