更新记录

1.0.2 下载此版本

双模式交互:滚动选择 + 步进按钮 高度可定制:刻度颜色、精度、按钮样式等全面开放

1.0.0 下载此版本

一、组件概述

本组件是一个用于校准的前端组件,支持多种单位和自定义刻度,可在移动应用开发中方便地集成使用,为用户提供直观的校准操作界面。

组件效果展示

Snipaste_2025-02-24_13-58-12

二、安装与使用

1. 安装

本组件为 Vue 3 组件,确保你的项目是基于 Vue 3 开发的。将组件的代码文件(.vue 文件)复制到你的项目对应的组件目录下即可。

2. 使用示例

<template>
  <div>
    <!-- 引入校准组件 -->
    <Calibrate 
      :defaultValue="10"
      :unit="'mm'"
      :scaleNum="200"
      @hide="handleHide"
      @confirm="handleConfirm"
    />
  </div>
</template>

<script setup lang="ts">
import Calibrate from './path/to/calibrate.vue';

const handleHide = () => {
  console.log('组件隐藏');
};

const handleConfirm = (value) => {
  console.log('确认的值:', value);
};
</script>

三、组件属性

属性名 类型 默认值 说明
title String ' 编辑' 组件标题,显示在组件顶部
defaultValue Number 0 校准的默认值
unit String 'cm' 校准值的单位,可自定义,如 'cm'、'mm' 等
scaleNum Number 330 刻度总数,单位为最小刻度单位,例如若单位为 'cm',则默认有 330 个刻度
cancelText String ' 取消' 取消按钮的显示文案
confirmText String ' 确定' 确定按钮的显示文案
showCloseBtn Boolean true 是否显示关闭按钮
showTitle Boolean true 是否显示标题

四、组件事件

事件名 说明 回调参数
hide 当点击取消按钮或关闭按钮时触发,用于隐藏组件
confirm 当点击确定按钮时触发,返回当前校准的值 当前校准的值(字符串类型)

五、注意事项

  • 确保项目中使用的 Vue 版本为 3.x,否则可能会出现兼容性问题。
  • 刻度总数 scaleNum 应根据实际需求合理设置,避免刻度过多或过少影响用户体验。
  • 组件的样式可根据项目整体风格进行调整,修改 <style scoped> 部分的 CSS 代码即可。

平台兼容性

uni-app(4.05)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
× - - - - - - - - - -

uni-app x(4.05)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

🎚️ ElkCalibrate - 高度可定制的移动端校准器组件

图片失效可直接看MD文件

ElkCalibrate是一个专为移动端设计的强大校准器组件,提供精确的数值选择功能。支持滚动选择与步进控制双模式,拥有丰富的定制选项,适用于个人信息(身高/体重)、健康医疗、电商、工业控制等等多种场景。

✨ 特性

  • 双模式交互:滚动选择 + 步进按钮
  • 高度可定制:刻度颜色、精度、按钮样式等全面开放
  • 响应式设计:完美适配各种移动设备
  • 无障碍支持:完整ARIA属性
  • 多场景预设:内置常用配置模板
  • 轻量高性能:优化渲染性能,流畅体验

📦 安装

npm i calibrate-scale
// 项目中使用
//(建议直接复制src\components\elk-calibrate\elk-calibrate.vue使用)
import ElkCalibrate from '@elk/calibrate'
import '@elk/calibrate/dist/style.css'

// app中

🚀 快速开始

<template>
  <button @click="showCalibrate = true">打开校准器</button>

  <ElkCalibrate
    v-model="showCalibrate"
    title="选择体重"
    :defaultValue="65.5"
    unit="kg"
    :precision="1"
    :step="0.5"
    @confirm="handleConfirm"
  />
</template>

<script setup>
import { ref } from 'vue'
import ElkCalibrate from '@elk/calibrate'

const showCalibrate = ref(false)

const handleConfirm = (value) => {
  console.log(`选择的值: ${value}`)
}
</script>

🔧 属性说明

属性名 类型 默认值 说明
modelValue Boolean false 控制组件显示/隐藏
title String '编辑' 标题文本
defaultValue Number 0 默认值
unit String 'cm' 单位
scaleNum Number 330 刻度总数
step Number 1 步进值
showStep Boolean true 是否显示步进按钮
scaleColor String '#D9D9D9' 普通刻度线颜色
majorScaleColor String '#D9D9D9' 主刻度线颜色
middleLineColor String '#22c1b1' 中线颜色
disabled Boolean false 是否禁用交互
precision Number 1 小数精度 (0-2)
cancelText String '取消' 取消按钮文本
confirmText String '确定' 确定按钮文本
cancelButtonStyle Object/String {} 取消按钮样式
confirmButtonStyle Object/String {} 确定按钮样式
cancelButtonClass String '' 取消按钮类名
confirmButtonClass String '' 确定按钮类名
showCloseBtn Boolean true 是否显示关闭按钮
showTitle Boolean true 是否显示标题

📡 事件

事件名 说明 参数
update:modelValue 显示状态变更时触发 新的显示状态 (Boolean)
hide 组件隐藏时触发 -
confirm 点击确定按钮时触发 当前值 (String)

💡 使用场景

健康医疗应用

<ElkCalibrate
  title="血压测量"
  :defaultValue="120"
  unit="mmHg"
  :precision="0"
  :scaleNum="300"
  :majorScaleColor="systolic > 140 ? '#F44336' : '#4CAF50'"
/>

电商价格筛选

<ElkCalibrate
  title="价格区间"
  :defaultValue="2500"
  unit="元"
  :step="100"
  :scaleNum="10000"
  scaleColor="#FF9800"
  confirmText="应用筛选"
/>

工业控制面板

<ElkCalibrate
  title="温度设置"
  :defaultValue="25.5"
  unit="℃"
  :precision="2"
  :step="0.1"
  :disabled="isMonitoring"
  middleLineColor="#0288D1"
/>

🎨 主题定制

自定义颜色

<ElkCalibrate
  scaleColor="#FF9800"
  majorScaleColor="#F44336"
  middleLineColor="#4CAF50"
/>

自定义按钮样式

<ElkCalibrate
  :cancelButtonStyle="{ 
    background: '#f8f8f8', 
    border: '1px solid #eee',
    borderRadius: '20px'
  }"
  :confirmButtonStyle="{
    background: 'linear-gradient(90deg, #FF9800, #F44336)',
    color: 'white'
  }"
  cancelButtonClass="custom-cancel"
  confirmButtonClass="custom-confirm"
/>

📱 兼容性

平台 兼容性 备注
微信小程序 ❌ 暂未添加 后续加上
H5 ✅ 支持 可使用
App (Vue) ✅ 完全支持 支持原生动画

🤝 贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 项目仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

📜 许可证

本项目采用 MIT 许可证

🌐 资源


让数值选择成为一种享受! 🎉 使用ElkCalibrate提升您的移动应用体验。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问