Skip to content

数字输入框

数字输入框用于输入数值。

基础用法

ts
const config = {
  type: 'number',
  formItem: {
    label: '年龄'
  },
  number: {
    min: 0,
    max: 100,
    precision: 0,
    step: 1
  }
}

带单位

ts
{
  type: 'number',
  formItem: {
    label: '金额'
  },
  number: {
    min: 0,
    precision: 2,
    prefix: '¥',
    formatter: value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
  }
}

API

属性说明类型默认值
addonAfter带标签的 input,设置后置标签slot-
addonBefore带标签的 input,设置前置标签slot-
autofocus自动获取焦点booleanfalse
bordered是否有边框booleantrue
controls是否显示增减按钮booleantrue
decimalSeparator小数点string-
defaultValue初始值number-
disabled禁用booleanfalse
formatter指定输入框展示值的格式function(value: number | string, info: { userTyping: boolean, input: string }): string-
keyboard是否启用键盘快捷行为booleantrue
max最大值numberInfinity
min最小值number-Infinity
parser指定从 formatter 里转换回数字的方式,和 formatter 搭配使用function( string): number-
precision数值精度number-
prefix带有前缀图标的 inputslot-
size输入框大小string-
status设置校验状态'error' | 'warning'-
step每次改变步数,可以为小数number | string1
stringMode字符值模式,开启后支持高精度小数。同时 change 事件将返回 string 类型booleanfalse
upIcon自定义上箭头图标slot
downIcon自定义下箭头图标slot
value(v-model)当前值number-

更多属性请参考 Ant Design Vue InputNumber

示例

vue
<script setup lang="ts">
const columns = [
  {
    title: '年龄',
    dataIndex: 'age',
    edit: {
      type: 'number',
      formItem: {
        required: true,
        rules: [
          { type: 'number', min: 0, max: 100, message: '年龄必须在 0-100 之间' }
        ]
      },
      number: {
        min: 0,
        max: 100,
        precision: 0,
        step: 1
      }
    }
  },
  {
    title: '身高',
    dataIndex: 'height',
    edit: {
      type: 'number',
      formItem: {
        required: true
      },
      number: {
        min: 0,
        max: 300,
        precision: 1,
        step: 0.1,
        suffix: 'cm'
      }
    }
  },
  {
    title: '金额',
    dataIndex: 'amount',
    edit: {
      type: 'number',
      formItem: {
        required: true
      },
      number: {
        min: 0,
        precision: 2,
        step: 0.01,
        prefix: '¥',
        formatter: value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ','),
        parser: value => value.replace(/[$,\s]/g, '')
      }
    }
  }
]
</script>

根据 Apache-2.0 许可发布。