Skip to content

Slider 滑块

规则

基础示例

js
const rule = {
    type:"slider",
    field:"slider",
    title:"滑块",
    value:[0,52],
    props:{
        min: 0,
        max: 100,
        range: true,
    }
}

Props 配置示例

范围选择

js
const rule = {
    type:"slider",
    field:"priceRange",
    title:"价格区间",
    value:[0,100],
    props:{
        min: 0,
        max: 1000,
        range: true,
        step: 10,
    }
}

显示标记

js
const rule = {
    type:"slider",
    field:"volume",
    title:"音量",
    value:50,
    props:{
        min: 0,
        max: 100,
        marks: {
            0: '静音',
            50: '50%',
            100: '最大',
        },
    }
}

格式化提示

js
const rule = {
    type:"slider",
    field:"discount",
    title:"折扣率",
    value:0.9,
    props:{
        min: 0,
        max: 1,
        step: 0.01,
        formatTooltip: (value) => {
            return (value * 100).toFixed(0) + '%';
        },
    }
}

垂直滑块

js
const rule = {
    type:"slider",
    field:"height",
    title:"高度",
    value:50,
    props:{
        min: 0,
        max: 100,
        vertical: true,
    }
}

Events 事件示例

监听滑块变化

js
const rule = {
    type:"slider",
    field:"volume",
    title:"音量",
    value:50,
    props:{
        min: 0,
        max: 100,
    },
    on: {
        'update:value': (value) => {
            console.log('滑块值改变:', value);
        },
    },
}

联动更新显示值

js
const rule = [
    {
        type:"slider",
        field:"discount",
        title:"折扣率",
        value:0.9,
        props:{
            min: 0,
            max: 1,
            step: 0.01,
        },
        inject: true,
        on: {
            'update:value': ($inject, value) => {
                // 实时显示折扣百分比
                $inject.api.setValue('discountText', (value * 100).toFixed(0) + '%');
            },
        },
    },
    {
        type:"input",
        field:"discountText",
        title:"折扣",
        props: {
            disabled: true,
        },
    },
]

完整配置项:naive-ui_Slider

value :Number | Array

Props

名称类型默认值说明版本
disabledbooleanfalse是否禁用
format-tooltip(value: number) => string | numberundefined格式化 tooltip
marks{ [markValue: number]: string }undefinedSlider 上的标记
maxnumber100最大值
minnumber0最小值
placement'top-start' | 'top' | 'top-end' | 'right-start' | 'right' | 'right-end' | 'bottom-start' | 'bottom' | 'bottom-end' | 'left-start' | 'left' | 'left-end'undefinedTooltip 的弹出位置2.25.0
rangebooleanfalse是否选择范围值
reversebooleanfalse是否倒转轨道
show-tooltipbooleanfalse是否一直显示 tooltip,仅对非 range 生效2.24.2
stepnumber | 'mark'1步长
tooltipbooleantrue是否展示 tooltip
verticalbooleanfalse是否启用垂直模式
on-update:value(value: number | [number, number]) => voidundefined值更新的回调

FormCreate 是一个开源项目,基于 MIT 许可证发布,欢迎个人和企业用户免费使用