123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import React,{Component} from 'react';
- import style from './index.less';
- import config from '@config/index.js';
- import Notify from '../Notify/index.js';
- class NumberUnitPan extends Component{
- constructor(props){
- super(props);
- this.state = {
- value:''
- }
- this.handleSelect = this.handleSelect.bind(this);
- }
- handleSelect(e){
- e.stopPropagation();
- const text = e.target.innerText;
- const preValue = this.state.value;
- if(+text==0 && !preValue){//第一位不能是0
- Notify.info("请输入正确时间");
- return false;
- }
- const value = this.props.toClear?'':this.state.value; //键盘输入替换已有的值
- const onSelect = this.props.handleSelect;
- this.setState({
- value: value+text
- });
- onSelect&&onSelect(value+text);
- }
- handleClear(e){
- e.stopPropagation();
- const onSelect = this.props.handleSelect;
- this.setState({
- value: ''
- });
- onSelect&&onSelect('');
- }
- handleClose(e){
- e.stopPropagation();
- //关闭弹窗
- const {onClose} = this.props;
- onClose&&onClose();
- }
- handleBack(e){
- e.stopPropagation();
- // const value = this.state.value;
- const value = this.props.value;
- const len = value.length-1;
- if(len<0){
- return;
- }
- const onSelect = this.props.handleSelect;
- const text = value.substring(0,len);
- this.setState({
- value:text
- });
- onSelect&&onSelect(text);
- }
- render(){
- // const select = this.handleSelect.bind(this);
- const {show} = this.props; //table onBlur阻止冒泡是为了修复multSpread中数字键盘点击触发最外层数字组件onBlur事件
- return <div className={style['panBox']} onBlur={(e)=>e.stopPropagation()} style={{display:show?'table':'none'}}>
- <table className={style['pan']} >
- <tr>
- <td><span onClick={this.handleSelect}>1</span></td>
- <td><span onClick={this.handleSelect}>2</span></td>
- <td><span onClick={this.handleSelect}>3</span></td>
- <td><span onClick={this.handleSelect}>/</span></td>
- </tr>
- <tr>
- <td><span onClick={this.handleSelect}>4</span></td>
- <td><span onClick={this.handleSelect}>5</span></td>
- <td><span onClick={this.handleSelect}>6</span></td>
- <td><span onClick={this.handleBack.bind(this)}>回退</span></td>
- </tr>
- <tr>
- <td><span onClick={this.handleSelect}>7</span></td>
- <td><span onClick={this.handleSelect}>8</span></td>
- <td><span onClick={this.handleSelect}>9</span></td>
- <td><span onClick={this.handleClear.bind(this)}>清空</span></td>
- </tr>
- <tr>
- <td><span onClick={this.handleSelect}>.</span></td>
- <td><span onClick={this.handleSelect}>0</span></td>
- <td><span onClick={this.handleSelect}>~</span></td>
- <td><span onClick={this.handleClose.bind(this)}>确定</span></td>
- </tr>
- <tr>
- <td><span onClick={this.handleSelect}>{config.timeUnit.minute}</span></td>
- <td><span onClick={this.handleSelect}>{config.timeUnit.hour}</span></td>
- <td><span onClick={this.handleSelect}>{config.timeUnit.day}</span></td>
- </tr>
- <tr>
- <td><span onClick={this.handleSelect}>{config.timeUnit.week}</span></td>
- <td><span onClick={this.handleSelect}>{config.timeUnit.month}</span></td>
- <td><span onClick={this.handleSelect}>{config.timeUnit.year}</span></td>
- </tr>
- </table>
- </div>
- }
- }
- export default NumberUnitPan;
|