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 <table className={style['pan']} onBlur={(e)=>e.stopPropagation()} style={{display:show?'table':'none'}}>
      <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>
  }
}

export default NumberUnitPan;