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