From f3d4db769ba9b51b799d981511a710fd443d0e08 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 21 四月 2025 12:18:03 +0800 Subject: [PATCH] Merge branch 'master' into positec --- src/components/normalform/modalform/mkRadio/index.jsx | 29 ++++++++++++++++++++++++----- 1 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/components/normalform/modalform/mkRadio/index.jsx b/src/components/normalform/modalform/mkRadio/index.jsx index c14b111..818824f 100644 --- a/src/components/normalform/modalform/mkRadio/index.jsx +++ b/src/components/normalform/modalform/mkRadio/index.jsx @@ -4,7 +4,6 @@ import { Radio } from 'antd' import MKEmitter from '@/utils/events.js' -import './index.scss' class MKRadio extends Component { static propTpyes = { @@ -20,6 +19,16 @@ componentDidMount () { MKEmitter.addListener('mkFP', this.mkFormHandle) + MKEmitter.addListener('mkFC', this.mkFormControl) + } + + UNSAFE_componentWillReceiveProps(nextProps) { + if (nextProps.config.timestamp && nextProps.config.timestamp !== this.state.config.timestamp) { + this.setState({ + config: fromJS(nextProps.config).toJS(), + options: fromJS(nextProps.config.options).toJS(), + }) + } } shouldComponentUpdate (nextProps, nextState) { @@ -31,6 +40,16 @@ return } MKEmitter.removeListener('mkFP', this.mkFormHandle) + MKEmitter.removeListener('mkFC', this.mkFormControl) + } + + mkFormControl = (type, field, value) => { + if (field !== this.props.config.field) return + + if (type === 'input') { + this.setState({value}) + this.props.onChange(value, {}) + } } mkFormHandle = (field, parentId) => { @@ -38,7 +57,7 @@ if (field !== config.field) return - let options = config.oriOptions ? config.oriOptions.filter(option => option.ParentID === parentId) : [] + let options = config.oriOptions ? config.oriOptions.filter(option => option.ParentID === parentId || option.ParentID === '') : [] let val = options[0] ? options[0].value : '' this.setState({ @@ -46,7 +65,7 @@ value: val }) - this.props.onChange(val) + this.props.onChange(val, {}) config.linkFields && config.linkFields.forEach((m, i) => { setTimeout(() => { @@ -81,10 +100,10 @@ } render() { - const { value, options } = this.state + const { value, options, config } = this.state return ( - <Radio.Group style={{whiteSpace: 'nowrap'}} value={value} onChange={this.onChange}> + <Radio.Group style={{whiteSpace: 'nowrap'}} disabled={config.disabled} value={value} onChange={this.onChange}> {options.map(option => <Radio key={option.value} disabled={option.disabled} value={option.value}>{option.label}</Radio>)} </Radio.Group> ) -- Gitblit v1.8.0