From a5f41b5d98f23d618dc7519c605ce943b114dfd5 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 13 十一月 2023 18:07:51 +0800 Subject: [PATCH] 2023-11-13 --- src/tabviews/zshare/mutilform/mkNumberInput/index.jsx | 50 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 41 insertions(+), 9 deletions(-) diff --git a/src/tabviews/zshare/mutilform/mkNumberInput/index.jsx b/src/tabviews/zshare/mutilform/mkNumberInput/index.jsx index 7dde469..c517566 100644 --- a/src/tabviews/zshare/mutilform/mkNumberInput/index.jsx +++ b/src/tabviews/zshare/mutilform/mkNumberInput/index.jsx @@ -4,7 +4,7 @@ import MKEmitter from '@/utils/events.js' -import './index.scss' +// import './index.scss' class MKNumberInput extends Component { constructor(props) { @@ -19,8 +19,6 @@ value: config.initval } } - - inputNumberRef = React.createRef() shouldComponentUpdate (nextProps, nextState) { return !is(fromJS(this.state), fromJS(nextState)) @@ -39,27 +37,61 @@ mkFormHandle = (type, uuid, value) => { if (uuid !== this.props.config.uuid) return + if (type === 'focus') { - this.inputNumberRef.current.focus() + let node = document.getElementById(uuid) + node && node.select() } else if (type === 'input') { this.setState({value}) + this.props.onChange(value, true) + } else if (type === 'reset') { + let _val = this.props.config.initval + + this.setState({value: _val}, () => { + let node = document.getElementById(this.props.config.uuid) + node && node.select() + }) + + this.props.onChange(_val) } } handleChange = (val) => { - - this.props.onChange(val) this.setState({value: val}) + + let _val = val + + if (typeof(_val) !== 'number') { + _val = parseFloat(_val) + + if (isNaN(_val)) { + _val = '' + } + } + + this.props.onChange(_val) + } + + handleSubmit = () => { + const { config } = this.props + + if (config.enter === 'false') return + if (config.enter === 'tab') { + MKEmitter.emit('mkFC', 'focus', config.tabUuid) + } else { + MKEmitter.emit('mkFC', 'focus', config.tabUuid) + this.props.onSubmit() + } } render() { - const { config, onSubmit } = this.props + const { config } = this.props const { value, precision } = this.state if (precision === null) { - return (<InputNumber ref={this.inputNumberRef} value={value} disabled={config.readonly} onChange={this.handleChange} onPressEnter={onSubmit}/>) + return (<InputNumber id={config.uuid} value={value} disabled={config.readonly} onChange={this.handleChange} onPressEnter={this.handleSubmit}/>) } else { - return (<InputNumber ref={this.inputNumberRef} value={value} precision={precision} disabled={config.readonly} onChange={this.handleChange} onPressEnter={onSubmit} />) + return (<InputNumber id={config.uuid} value={value} precision={precision} disabled={config.readonly} onChange={this.handleChange} onPressEnter={this.handleSubmit} />) } } } -- Gitblit v1.8.0