优化FormItemsRenderer
							parent
							
								
									04dcbd202f
								
							
						
					
					
						commit
						983ca08106
					
				|  | @ -21,13 +21,13 @@ const { RangePicker } = DatePicker; | |||
|  * 表单项渲染器组件 | ||||
|  */ | ||||
| const FormItemsRenderer = ({ | ||||
|   options, | ||||
|   labelCol, | ||||
|   span = 12, | ||||
|   collapse = false, | ||||
|   useAutoGenerateRequired = true, | ||||
|   initialValues, | ||||
| }) => { | ||||
|                              options, | ||||
|                              labelCol, | ||||
|                              span = 12, | ||||
|                              collapse = false, | ||||
|                              useAutoGenerateRequired = true, | ||||
|                              initialValues, | ||||
|                            }) => { | ||||
|   const form = Form.useFormInstance(); | ||||
| 
 | ||||
|   // 获取表单值,优先使用 initialValues
 | ||||
|  | @ -297,40 +297,39 @@ const FormItemsRenderer = ({ | |||
|           return ( | ||||
|             option.customizeRender | ||||
|               ? (renderFormControl(option)) | ||||
|               : (() => { | ||||
|                   // 支持动态计算 hidden
 | ||||
|                   const hidden = typeof option.hidden === "function" | ||||
|                     ? option.hidden(getFormValues()) | ||||
|                     : (option.hidden ?? false); | ||||
|               : ( | ||||
|                 <Form.Item | ||||
|                   key={option.name || index} | ||||
|                   noStyle | ||||
|                   shouldUpdate={option.shouldUpdate ?? option?.componentProps?.shouldUpdate} | ||||
|                   dependencies={option.dependencies || option?.componentProps?.dependencies} | ||||
|                 > | ||||
|                   {() => { | ||||
|                     // 支持动态计算 hidden
 | ||||
|                     const hidden = typeof option.hidden === "function" | ||||
|                       ? option.hidden(getFormValues()) | ||||
|                       : (option.hidden ?? false); | ||||
| 
 | ||||
|                   if (hidden) | ||||
|                     return null; | ||||
|                     if (hidden) | ||||
|                       return null; | ||||
| 
 | ||||
|                   return ( | ||||
|                     <Col key={option.name || index} span={itemSpan} style={style}> | ||||
|                       <Form.Item | ||||
|                         noStyle | ||||
|                         shouldUpdate={option.shouldUpdate ?? option?.componentProps?.shouldUpdate} | ||||
|                         dependencies={option.dependencies || option?.componentProps?.dependencies} | ||||
|                       > | ||||
|                         {() => { | ||||
|                           return ( | ||||
|                             <Form.Item | ||||
|                               name={option.name} | ||||
|                               label={renderLabel(option)} | ||||
|                               rules={getRules(option)} | ||||
|                               labelCol={itemLabelCol} | ||||
|                               wrapperCol={itemWrapperCol} | ||||
|                               {...getFormItemProps(option)} | ||||
|                             > | ||||
|                               {renderFormControl(option)} | ||||
|                             </Form.Item> | ||||
|                           ); | ||||
|                         }} | ||||
|                       </Form.Item> | ||||
|                     </Col> | ||||
|                   ); | ||||
|                 })() | ||||
|                     return ( | ||||
|                       <Col key={option.name || index} span={itemSpan} style={style}> | ||||
|                         <Form.Item | ||||
|                           name={option.name} | ||||
|                           label={renderLabel(option)} | ||||
|                           rules={getRules(option)} | ||||
|                           labelCol={itemLabelCol} | ||||
|                           wrapperCol={itemWrapperCol} | ||||
|                           {...getFormItemProps(option)} | ||||
|                         > | ||||
|                           {renderFormControl(option)} | ||||
|                         </Form.Item> | ||||
|                       </Col> | ||||
|                     ); | ||||
|                   }} | ||||
|                 </Form.Item> | ||||
|               ) | ||||
|           ); | ||||
|         } | ||||
| 
 | ||||
|  | @ -349,17 +348,17 @@ const FormItemsRenderer = ({ | |||
|               option.customizeRender | ||||
|                 ? (renderFormControl(option)) | ||||
|                 : ( | ||||
|                     <Form.Item | ||||
|                       name={option.name} | ||||
|                       label={renderLabel(option)} | ||||
|                       rules={getRules(option)} | ||||
|                       labelCol={itemLabelCol} | ||||
|                       wrapperCol={itemWrapperCol} | ||||
|                       {...getFormItemProps(option)} | ||||
|                     > | ||||
|                       {renderFormControl(option)} | ||||
|                     </Form.Item> | ||||
|                   ) | ||||
|                   <Form.Item | ||||
|                     name={option.name} | ||||
|                     label={renderLabel(option)} | ||||
|                     rules={getRules(option)} | ||||
|                     labelCol={itemLabelCol} | ||||
|                     wrapperCol={itemWrapperCol} | ||||
|                     {...getFormItemProps(option)} | ||||
|                   > | ||||
|                     {renderFormControl(option)} | ||||
|                   </Form.Item> | ||||
|                 ) | ||||
|             } | ||||
|           </Col> | ||||
|         ); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue