Skip to content

NumberStep 步进器

此组件通常用于商品计数等场景。

基础使用

通过 v-model 绑定步进器的值。

vue
<template>
    <hi-number-step v-model="number"></hi-number-step>
</template>

<script steup>
    import { ref } from "vue";

    // 数量
    const number = ref(1);
</script>

最大值/最小值

通过 maxmin 属性设置最大值和最小值。

vue
<hi-number-step v-model="number" :min="-10" :max="10"></hi-number-step>

步近幅度

通过 step 属性设置步进幅度,支持小数。

vue
<hi-number-step v-model="number" :step="3"></hi-number-step>

整体禁用

通过 disabled 属性禁用整个组件。

vue
<hi-number-step v-model="number" disabled></hi-number-step>

禁用减号按钮

通过 disabledMinus 属性禁用减号按钮。

vue
<hi-number-step v-model="number" disabledMinus></hi-number-step>

禁用加号按钮

通过 disabledPlus 属性禁用加号按钮。

vue
<hi-number-step v-model="number" disabledPlus></hi-number-step>

禁用输入框

通过 disabledInput 属性禁用输入框。

vue
<hi-number-step v-model="number" disabledInput></hi-number-step>

异步变更

通过 async 属性设置是否开启异步变更。
开启异步变更后,会在点击加/减按钮后触发 asyncChange 事件,需手动更新步进器值。

vue
<template>
    <hi-number-step v-model="number" async @asyncChange="onAsyncChange"></hi-number-step>
</template>

<script steup>
    import { ref } from "vue";

    // 数量
    const number = ref(1);

    // 异步变更事件
    function onAsyncChange() {
        console.log("异步变更事件");
        number.value++;
    }
</script>

背景

通过 bg 属性设置组件背景。

vue
<hi-number-step v-model="number" bg="#ffffff"></hi-number-step>

边框

通过 border 属性设置是否显示边框,默认为 true

vue
<hi-number-step v-model="number" :border="false"></hi-number-step>

边框颜色

通过 borderColor 属性设置边框的颜色。

vue
<hi-number-step v-model="number" borderColor="blue"></hi-number-step>

聚焦边框颜色

通过 focusBorderColor 属性设置聚焦时边框的颜色。

vue
<hi-number-step v-model="number" focusBorderColor="red"></hi-number-step>

Props

属性名说明类型默认值可选值版本
hover指定加/减按钮按下去的样式类Stringhi-hover--
v-model绑定值Number1--
step步进幅度Number1--
max最大值NumberInfinity--
min最小值Number-Infinity--
disabledMinus是否禁用减号按钮Booleanfalsetrue-
disabledPlus是否禁用加号按钮Booleanfalsetrue-
disabledInput是否禁用输入框Booleanfalsetrue-
async是否开启异步变更Booleanfalsetrue-
showMinus是否显示减号按钮Booleantruefalse-
showPlus是否显示加号按钮Booleantruefalse-
minusIcon减号按钮的图标String__jian--
plusIcon加号按钮的图标String__jia--
width组件宽度String---
height组件高度String---
radius组件圆角大小String---
color组件字体颜色String---
fontSize组件字体大小String---
bg组件背景String---
border是否显示边框Booleantruefalse-
borderColor边框颜色String---
focusBorderColor聚焦时边框颜色String---
borderWidth边框宽度String---
align文本对齐方式String---
iconColor按钮图标颜色String---
iconSize按钮图标大小String---
iconWidth按钮宽度String---
iconBg按钮背景String---
plusColor加号按钮颜色String---
minusColor减号按钮颜色String---
plusBg加号按钮背景String---
minusBg减号按钮背景String---
inputWidth输入框宽度String---
inputBg输入框背景String---

Event

事件名说明回调参数版本
change值更新事件newValue: 更新后的值-
asyncChange异步变更事件newValue: 目标(更新后)的值-
plusClick加号按钮点击事件--
minusClick减号按钮点击事件--
input当键盘输入时触发event: 参考-
focus输入框聚焦时触发event: 参考-
blur输入框失去焦点时触发event: 参考-
confirm点击完成按钮时触发event: 参考-
keyboardheightchange键盘高度发生变化的时候触发此事件event: 参考-

样式变量

组件提供了以下样式变量,可以在使用时设置这些变量来修改组件的样式。

变量名默认值版本
--hi-number-step-transitionborder 0.2s-
--hi-number-step-displayflex-
--hi-number-step-height2em-
--hi-number-step-border-width0 / 1px-
--hi-number-step-border-stylesolid-
--hi-number-step-border-colorvar(--hi-border-color) / var(--hi-number-step-border-color, var(--hi-border-color))-
--hi-number-step-overflowhidden-
--hi-number-step-align-itemsstretch-
--hi-number-step-widthauto-
--hi-number-step-border-radius0-
--hi-number-step-colorinherit-
--hi-number-step-font-sizeinherit-
--hi-number-step-backgroundvar(--hi-background-default)-
--hi-number-step-icon-colorinherit-
--hi-number-step-icon-sizeinherit-
--hi-number-step-icon-flex-shrink0-
--hi-number-step-icon-displayflex-
--hi-number-step-icon-align-itemscenter-
--hi-number-step-icon-justify-contentcenter-
--hi-number-step-icon-width2em-
--hi-number-step-plus-icon-colorvar(--hi-number-step-icon-color, inherit)-
--hi-number-step-plus-icon-backgroundvar(--hi-number-step-icon-background, transparent)-
--hi-number-step-minus-icon-colorvar(--hi-number-step-icon-color, inherit)-
--hi-number-step-minus-icon-backgroundvar(--hi-number-step-icon-background, transparent)-
--hi-number-step-input-width4em-
--hi-number-step-input-text-aligncenter-
--hi-number-step-input-border-left-width0 / 1px-
--hi-number-step-input-border-right-width0 / 1px-
--hi-number-step-input-border-top-width0-
--hi-number-step-input-border-bottom-width0-
--hi-number-step-input-flex1-
--hi-number-step-input-font-sizeinherit-
--hi-number-step-input-colorinherit-
--hi-number-step-input-backgroundtransparent-

基于 MIT 许可发布