数字框 InputNumber
issue

数字输入框

何时使用

代替原生 input type='number'

如何使用

import { InputNumber } from 'tinper-bee';

or

import InputNumber from 'bee-input-number';
import 'bee-input-number/build/InputNumber.css';

能力特性

基础示例

最简单输入控制。最小值为0,最大值为10000

查看源码

默认 iconStyle

自定义 最大值 max=12,min=5,step=1

查看源码
-+

第二种iconStyle

自定义max=12,min=5,step=2

查看源码

默认iconStyle不可用状态

disabled 的单输入控制

查看源码
-+

第二种iconStyle不可用状态

自定义max=12,min=5,step=2 且设置 disabled 处理

查看源码

保留两位小数

precision={2} 设置小数点后保留两位,失去焦点时数据会格式化为两位小数

查看源码

基础示例

最简单输入控制

查看源码
-+

数字区间基础示例

使用 InputNumberGroup

查看源码
~

输入时校验提示

设置 displayCheckPrompt={true},显示超出限制范围之后的提示。

查看源码

size 属性

size="md" / "lg" / "sm" 分别表示中号(默认)、大号、小号

查看源码


-+

-+

多格式组件

自定义 format ,支持格式自定义

查看源码
销售价格:

API

参数 说明 类型 默认值
className 类名 string -
onChange 值改变的回调函数 function -
max 最大值 number -
min 最小值 number -
step 间隔值 number 1
value 默认值 number 0
format 显示内容的格式化 function -
precision 显示精度。如要输入小数,此属性必须设置 number 显示小数点后面的位数
delay 当持续按住增减按钮式,变换的速度(毫秒) number 300
disabled 是否可编辑 string -
toNumber onChange回调内的值是否转换为number类型。当正在输入小数点或者小数点后第一位为0时,不能转换为number类型 bool false
split InputNumberGroup自定义分隔符 node ~
displayCheckPrompt 是否显示超出限制范围之后的检验提示 bool false
size 选择框大小,可选 lg sm string default
minusRight 负号是否在右边,针对特殊场景使用 bool false
handleBtnClick 点击右侧按钮的回调,第一个参数为类型,上/+ 为up,下/- 为down,第二个参数为value值 func -
hideActionButton 隐藏加减按钮 bool false

注意事项

暂无

更新日志

  • v2.2.40 2020-08-13 ( release地址 )

    Features

    • 增加hideActionButton参数,支持隐藏加减按钮 (da23c71)
  • v2.2.39 2020-08-03 ( release地址 )

    Bug Fixes

    • 修复IEpalceholder (505469f)
    • 最小值控制(min属性)设置为0时,仍然可以输入负数[#614 (6de0e64)
  • v2.2.38 2020-07-20 ( release地址 )

    Bug Fixes

    • 修复IE placeholder兼容问题 (3a9a13b)
  • v2.2.37 2020-07-11 ( release地址 )

    Features

  • v2.2.36 2020-06-29 ( release地址 )

    Bug Fixes

  • v2.2.35 2020-06-28 ( release地址 )

    Bug Fixes

    • 适配max min传字符串 (6bc2bd4)
  • v2.2.34 2020-06-18 ( release地址 )

    Bug Fixes

    • 最小值传0,无法减小问题 (c0609f6)
  • v2.2.33 2020-06-12 ( release地址 )

    Bug Fixes

    • 适配min和max传空字符串的情况 (504a240)
  • v2.2.32 2020-04-24 ( release地址 )

    Bug Fixes

  • v2.2.6 2019-12-16 ( release地址 )

    • bee-input-number @2.2.6
      • [ Fixbug ] 输入负号后失去焦点,显示NaN。
      • [ Fixbug ] 设置 size 属性后的样式修复。
  • v2.2.2 2019-11-18 ( release地址 )

    • bee-input-number @2.2.2
      • [ Feature ] 新增了size API,可以自选选择框大小。
  • v2.1.9 2019-11-12 ( release地址 )

    • bee-input-number @2.1.9
      • [Feature]增加 displayCheckPrompt API,可显示超出限制范围之后的检验提示。
  • v2.1.7 2019-10-24 ( release地址 )

    • bee-input-number @2.1.7
      • [Fixbug]输入框为空时,无法输入负号的问题。
  • v2.1.6 2019-10-21 ( release地址 )

    • bee-input-number @2.1.6
      • [Fixbug]解决点击加减按钮,触发输入框 onBlur 事件的问题。
  • v2.1.5 2019-10-19 ( release地址 )

    • bee-input-number @2.1.5
      • [Feature]onFocus onBlur 回调函数,增加第二个参数:event 对象。
  • v2.0.9 2019-05-08 ( release地址 )

    • bee-input-number @2.0.8
      • [Feature] 值可以为空
      • [bugFix] 最大值最小值无效bug
  • v2.0.2 2019-03-07 ( release地址 )

    • [Feature]bee-input-number @2.0.2
      • 按UE规范优化组件样式
      • 组件样式重构
基础示例
JS代码
/**
 *
* @title 基础示例 
 * @description 最简单输入控制。最小值为0,最大值为10000
 *
 */


import React, { Component } from 'react';
import { InputNumber } from 'tinper-bee';


class Demo1 extends Component {
    constructor(props) {
        super(props);
        this.state = {
            value: null
        }
    }

    handleChange = (value) => {
        console.log(value);
        this.setState({
            value: value
        })
    }
    handleBtnClick = (value) => {
        console.log(value);
        
    }

    
    render () {
        return (
            <div>
                <InputNumber
                    iconStyle="one"
                    min={0}
                    max={10000}
                    onChange={this.handleChange}
                    handleBtnClick={this.handleBtnClick}
                    value={this.state.value}
                />
            </div>
        )
    }
}

export default Demo1;
SCSS代码
#tinperBeeDemo .u-input-number {
    width: 200px;
}
默认 iconStyle
JS代码
/**
*
* @title 默认 iconStyle
* @description 自定义 最大值 max=12,min=5,step=1
*
*/

import React, { Component } from 'react';
import { InputNumber } from 'tinper-bee';


class Demo2 extends Component {
    constructor(props) {
        super(props);
        this.state = {
            value: 5
        }
    }
    handleChange = (value) => {
        this.setState({
            value: value
        })
    }
	render () {
		return (
			<InputNumber
				max={12}
				min={5}
				step={1}
				value={this.state.value}
                onChange={ this.handleChange }
			/>
		)
	}
}

export default Demo2;
第二种iconStyle
JS代码
/**
*
* @title 第二种iconStyle
* @description 自定义max=12,min=5,step=2
*
*/

import React, { Component } from 'react';
import { InputNumber } from 'tinper-bee';
 

class Demo3 extends Component {
    constructor(props) {
        super(props);
        this.state = {
            value: 0
        }
    }
    handleChange = (value) => {
        this.setState({
            value: value
        })
    }
	render () {
		return (
			<InputNumber
				iconStyle="one"
				max={12}
				min={-9}
				step={2}
				value={this.state.value}
				onChange={ this.handleChange }
			/>
		)
	}
}

export default Demo3;
默认iconStyle不可用状态
JS代码
/**
 *
 * @title 默认iconStyle不可用状态
 * @description disabled 的单输入控制
 *
 */


import React, {Component} from 'react';
import { InputNumber } from 'tinper-bee';


class Demo4 extends Component {
    constructor(props) {
        super(props);
        this.state = {
            value: 0
        }
    }

    handleChange = (value) => {
        this.setState({
            value: value
        })
    }

    render() {
        return (
            <div>
                <InputNumber disabled precision={2} value={this.state.value} onChange={ this.handleChange }/>
            </div>
        )
    }
}

export default Demo4;
第二种iconStyle不可用状态
JS代码
/**
*
* @title 第二种iconStyle不可用状态
* @description 自定义max=12,min=5,step=2 且设置 disabled 处理
*
*/

import React, { Component } from 'react';
import { InputNumber } from 'tinper-bee';
 

class Demo5 extends Component {
    constructor(props) {
        super(props);
        this.state = {
            value: 8
        }
    }
    handleChange = (value) => {
        this.setState({
            value: value
        })
    }
	render () {
		return (
			<InputNumber
				disabled
				iconStyle="one"
				max={12}
				min={-10}
				step={2}
				value={this.state.value}
				onChange={ this.handleChange }
			/>
		)
	}
}

export default Demo5;
保留两位小数
JS代码
/**
*
* @title 保留两位小数
* @description precision={2} 设置小数点后保留两位,失去焦点时数据会格式化为两位小数
*
*/

import React, { Component } from 'react';
import { InputNumber } from 'tinper-bee';
 

class Demo6 extends Component {
    constructor(props) {
        super(props);
        this.state = {
            value: 0
        }
    }
    handleChange = (value) => {
		console.log(value)
        this.setState({
            value: value
        })
    }
	render () {
		return (
			<InputNumber
				iconStyle="one"
				precision={2}
				value={this.state.value}
				onChange={ this.handleChange }
			/>
		)
	}
}

export default Demo6;
基础示例
JS代码
/**
 *
* @title 基础示例 
 * @description 最简单输入控制
 *
 */


import React, {Component} from 'react';
import { InputNumber } from 'tinper-bee';


class Demo1 extends Component {
    constructor(props) {
        super(props);
        this.state = {
            value: '1'
        }
    }

    handleChange = (value) => {
        console.log(value);
        this.setState({
            value: value
        })
    }

    render() {
        return (
            <div>
                <InputNumber  precision={2} value={this.state.value} onChange={ this.handleChange }/>
            </div>
        )
    }
}

export default Demo1;
数字区间基础示例
JS代码
/**
 *
* @title 数字区间基础示例 
 * @description 使用 InputNumberGroup
 *
 */


import React, {Component} from 'react';
import { InputNumber } from 'tinper-bee';


const InputNumberGroup = InputNumber.InputNumberGroup;

class Demo9 extends Component {
    constructor(props) {
        super(props);
        this.state = {
            value: [10,12]
        }
    }

    handleChange = (value) => {
        console.log(value);
        this.setState({
            value
        })
    }

    render() {
        return (
            <div className='demo9'>
                <InputNumberGroup 
                iconStyle='two'
                value={this.state.value}
                onChange={this.handleChange} 
                placeholder={['请输入最小值','请输入最大值']}/>
            </div>
        )
    }
}

export default Demo9;
输入时校验提示
JS代码
/**
 *
* @title 输入时校验提示 
 * @description 设置 displayCheckPrompt={true},显示超出限制范围之后的提示。
 *
 */


import React, { Component } from 'react';
import { InputNumber } from 'tinper-bee';


class Demo10 extends Component {
    render () {
        return (
            <InputNumber
                iconStyle="one"
                min={-100}
                max={100}
                value={0}
                displayCheckPrompt={true}
            />
        )
    }
}

export default Demo10;
size 属性
JS代码
/**
 *
* @title size 属性 
 * @description size="md" / "lg" / "sm" 分别表示中号(默认)、大号、小号
 *
 */


import React, { Component } from 'react';
import { InputNumber } from 'tinper-bee';


class Demo11 extends Component {
    render () {
        return (
            <div>
                <InputNumber
                    size='lg'
                    iconStyle="one"
                    min={-999999}
                    max={999999}
                />
                <br/>
                <InputNumber
                    size='sm'
                    iconStyle="one"
                    min={-999999}
                    max={999999}
                />
                <br/>
                <InputNumber
                    size='lg'
                    min={-999999}
                    max={999999}
                />
                <br/>
                <InputNumber
                    size='sm'
                    min={-999999}
                    max={999999}
                />
            </div>
        )
    }
}

export default Demo11;
多格式组件
JS代码
/**
 *
* @title 多格式组件
 * @description 自定义 format ,支持格式自定义
 *  
 */

import React, { Component } from 'react';
import { InputNumber } from 'tinper-bee';


class Demo12 extends Component {
    constructor(props) {
        super(props);
        this.state = {
            value:0
        }
    }

    handleChange = (value) => {
        console.log(value);
        this.setState({
            value: value
        })
    }
    render () {
        return (
            <div className="demo12">
                销售价格:
                <InputNumber
                    iconStyle="one"
                    // precision={2}
                    // min={-10}
                    // max={10}
                    onFocus={(value,e)=>{
                        console.log(value+"  ==== ",e);
                        this.setState({
                            value
                        })
                    }}
                    onBlur={(value,e)=>{
                        console.log("  ==== ",e);
                        // this.setState({
                        //     value
                        // })
                    }}
                    // precision={8}
                    step={1} 
                    format={value => ` ${value} 千克`.replace(/\B(?=(\d{3})+(?!\d))/g, ':')}
                    value={this.state.value}
                />

                {/* 销售占比:
                <InputNumber
                    iconStyle="one" 
                    format={value => `${value} %`}
                    value={this.state.value}
                /> */}
            </div>
        )
    }
}

export default Demo12;