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