更新记录
1.0.2(2025-02-19) 下载此版本
修改单位转换精度,将原始单位和值暂存,换算到基准单位值,再换算到新单位值。
1.0.1(2025-02-15) 下载此版本
修改单位类型默认值
1.0.0(2025-02-15) 下载此版本
1.0.0
查看更多平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
app-vue | × | √ | √ | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | √ | √ | √ | × | √ | × | × |
yjyl-input-unit 单位转换组件使用说明
功能特性 支持双向数值绑定 内置单位换算逻辑(含温度特殊处理) 支持单位循环切换/弹窗选择两种模式 兼容 Vue2/Vue3 和 UniApp 多平台 支持自定义单位显示 可配置小数位数精度
符合uni-modules标准,直接使用
Props 配置 | 属性名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|---|
unitType | String | 是 | - | 单位类型(例:'length', 'weight', 'temperature') | |
unitOrder | Number | 否 | 0 | 当前单位序号(需配合 .sync 修饰符使用) | |
value | Number | 是 | - | 输入数值(使用 v-model 双向绑定) | |
showEnglishOnly | Boolean | 否 | false | 是否只显示英文单位(例:'kg' 代替 ' 千克 (kg)') | |
decimalPlaces | Number | 否 | 5 | 小数位数(0 - 10) | |
width | Number | 否 | 180 | 组件总宽度(px) | |
height | Number | 否 | 32 | 组件高度(px) | |
enableConvert | Boolean | 否 | true | 是否允许单位转换 | |
userDefined | Boolean | 否 | false | 是否使用自定义单位 | |
userDefinedunitName | String | 否 | '' | 自定义单位显示名称(需 userDefined = true 生效) |
事件说明 | 事件名称 | 说明 | 回调参数 | | input | 数值变化时触发 | (newValue: number) | | update:unitOrder | 单位序号变化时触发 | (newOrder: number) | | conversion | 完成单位转换时触发 | { initialValue, newValue, oldUnit, newUnit, oldOrder, newOrder } 的 Object | 使用示例 基本用法 vue
禁用转换模式
<UniUnitConverter v-model="fixedValue" :unit-type="weight" :enable-convert="false" user-defined :user-definedunit-name="'特殊单位'" /> 事件处理 vue 复制
API 需自己开发,按照下面的数据格式进行组织,参考unitData.js 组件依赖 listSysUnitConvert API 获取单位数据,需实现以下格式的接口:
javascript { rows: [ { id: 1, unitType: 'length', unitName: '米(m)', conversionFactor: 1, baseUnit: 'Y', unitOrder: 0 }, // ...其他单位数据 ] } 样式调整 可通过以下 CSS 类名自定义样式:
.unit-converter - 组件容器
.input-field - 输入框
.unit-label - 单位标签
.unit-selector - 单位选择器
.unit-option - 单位选项
平台差异
小程序端使用 longpress 事件触发选择器(长按代替双击)
H5 端自动适配点击事件
单位转换规则
温度单位需按约定顺序定义:
javascript 复制 [ { unitOrder: 0, unitName: '℃' }, // 摄氏度 { unitOrder: 1, unitName: '℉' }, // 华氏度 { unitOrder: 2, unitName: 'K' } // 开尔文 ] 自定义单位时需确保与现有换算逻辑兼容
常见问题 Q1: 单位选择器不显示
检查 enableConvert 是否为 true
确认单位数据加载成功
查看控制台是否有 API 错误
Q2: 数值更新不及时
确保使用 v-model 进行双向绑定
检查小数位数配置是否符合预期
确认没有在父组件中覆盖转换后的值
Q3: 样式显示异常
检查是否父容器有冲突的布局样式
确认单位标签宽度计算正确(通过 updateInputWidth 方法)
在小程序端添加 !important 覆盖默认样式