更新记录
1.0.0(2026-07-07)
下载此版本
平台兼容性
uni-app(4.65)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| - |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
√ |
√ |
√ |
√ |
√ |
- |
√ |
√ |
- |
- |
- |
uni-app x(4.71)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| - |
- |
- |
- |
- |
- |
m-time-slider 时间滑块组件
一个用于选择时间的滑块组件,支持触摸拖动,以小时和分钟为单位显示时间。
功能特性
- 支持 v-model 双向绑定
- 触摸拖动选择时间
- 自定义滑块样式、轨道颜色
- 显示当前选择的时间值
- 可配置最小值、最大值和步长
- 自动格式化时间为小时和分钟
基本用法
<template>
<m-time-slider v-model="timeValue" />
</template>
<script setup>
import { ref } from 'vue'
const timeValue = ref(10) // 默认10分钟
</script>
完整示例
<template>
<view>
<m-time-slider
v-model="duration"
:min="0"
:max="480"
:step="5"
rail-color="#E0E0E0"
track-color="#4CAF50"
thumb-color="#4CAF50"
thumb-border="none"
:thumb-size="40"
@change="onTimeChange"
/>
</view>
</template>
<script setup>
import { ref } from 'vue'
const duration = ref(120)
const onTimeChange = (value) => {
console.log('选择的时间:', value)
}
</script>
Props 参数
| 属性名 |
类型 |
默认值 |
说明 |
| modelValue |
Number |
10 |
滑块当前值(分钟) |
| min |
Number |
0 |
最小值(分钟) |
| max |
Number |
480 |
最大值(分钟) |
| step |
Number |
1 |
步长(分钟) |
| showLabels |
Boolean |
true |
是否显示最大值最小值标签 |
| labelTextStyle |
String |
'font-size: 24rpx; color: #6763F8;' |
标签文本样式 |
| railColor |
String |
'rgba(0, 0, 0, 0.1)' |
轨道背景颜色 |
| trackColor |
String |
'#6763F8' |
已选轨道颜色 |
| thumbSize |
Number |
32 |
滑块大小(rpx) |
| thumbColor |
String |
'#FFFFFF' |
滑块颜色 |
| thumbBorder |
String |
'4rpx solid #6763F8' |
滑块边框样式 |
| valueTextSize |
String |
'20rpx' |
滑块值文本大小 |
Events 事件
| 事件名 |
参数 |
说明 |
| update:modelValue |
value: Number |
值更新时触发(支持 v-model) |
| change |
value: Number |
拖动结束时触发 |
时间格式化
组件会自动将分钟数格式化为易读的格式:
30 → 30分钟
60 → 1小时
90 → 1小时30分钟
120 → 2小时
样式定制
可以通过 props 自定义滑块的外观:
<m-time-slider
v-model="time"
rail-color="#E0E0E0"
track-color="#4CAF50"
thumb-color="#4CAF50"
thumb-border="none"
:thumb-size="40"
/>