|
@@ -2,6 +2,7 @@ import React,{Component} from 'react';
|
|
|
import style from './index.less';
|
|
|
import config from '@config/index.js';
|
|
|
import Notify from '../Notify/index.js';
|
|
|
+import ReactDom from "react-dom";
|
|
|
|
|
|
class NumberUnitPan extends Component{
|
|
|
constructor(props){
|
|
@@ -55,6 +56,14 @@ class NumberUnitPan extends Component{
|
|
|
});
|
|
|
onSelect&&onSelect(text);
|
|
|
}
|
|
|
+ getStyle(){
|
|
|
+ const {left,top,show} = this.props;
|
|
|
+ return {
|
|
|
+ left:left?left+'px':'0',
|
|
|
+ top:top?top+'px':'0',
|
|
|
+ display:show?'table':'none' //table onBlur阻止冒泡是为了修复multSpread中数字键盘点击触发最外层数字组件onBlur事件
|
|
|
+ }
|
|
|
+ }
|
|
|
componentWillReceiveProps(nextProps){
|
|
|
//重新选择的值替换 不追加
|
|
|
if(!nextProps.show){
|
|
@@ -65,46 +74,48 @@ class NumberUnitPan extends Component{
|
|
|
}
|
|
|
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>
|
|
|
- <td><span onClick={this.handleSelect}>{config.timeUnit.age}</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>
|
|
|
+ const domNode = document.getElementById('root');
|
|
|
+ return ReactDom.createPortal(
|
|
|
+ <div className={style['panBox']} onBlur={(e)=>e.stopPropagation()} style={this.getStyle()}>
|
|
|
+ <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>
|
|
|
+ <td><span onClick={this.handleSelect}>{config.timeUnit.age}</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>
|
|
|
+ ,domNode)
|
|
|
}
|
|
|
}
|
|
|
|