zy-react-library 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -59,7 +59,7 @@ export interface FormOption {
|
|
|
59
59
|
tip?: ReactNode;
|
|
60
60
|
/** 是否隐藏,默认 false,支持函数动态计算 */
|
|
61
61
|
hidden?: boolean | ((formValues: FormValues) => boolean);
|
|
62
|
-
/** 是否自定义渲染,默认 false,将不生成
|
|
62
|
+
/** 是否自定义渲染,默认 false,将不生成 Form.Item */
|
|
63
63
|
customizeRender?: boolean;
|
|
64
64
|
/** 选项数据(用于 select、radio、checkbox) */
|
|
65
65
|
items?: OptionItem[];
|
|
@@ -69,9 +69,9 @@ export interface FormOption {
|
|
|
69
69
|
componentProps?: Record<string, any> | ((formValues: FormValues) => Record<string, any>);
|
|
70
70
|
/** 传递给 Form.Item 的属性,支持函数动态计算 */
|
|
71
71
|
formItemProps?: FormItemProps | ((formValues: FormValues) => FormItemProps);
|
|
72
|
-
/** label
|
|
72
|
+
/** label 栅格配置,默认直接使用外层的 labelCol,如果 span 等于 24,是外层的 labelCol.span 一半 */
|
|
73
73
|
labelCol?: ColProps;
|
|
74
|
-
/** wrapper
|
|
74
|
+
/** wrapper 栅格配置,默认为 24 - labelCol.span */
|
|
75
75
|
wrapperCol?: ColProps;
|
|
76
76
|
/** 是否应该更新(用于表单联动) */
|
|
77
77
|
shouldUpdate?: boolean | ((prevValues: FormValues, nextValues: FormValues, info: { source?: string }) => boolean);
|
|
@@ -22,6 +22,7 @@ const { RangePicker } = DatePicker;
|
|
|
22
22
|
*/
|
|
23
23
|
const FormItemsRenderer = ({
|
|
24
24
|
options,
|
|
25
|
+
labelCol,
|
|
25
26
|
span = 12,
|
|
26
27
|
collapse = false,
|
|
27
28
|
useAutoGenerateRequired = true,
|
|
@@ -260,7 +261,11 @@ const FormItemsRenderer = ({
|
|
|
260
261
|
return (
|
|
261
262
|
<>
|
|
262
263
|
{options.map((option, index) => {
|
|
264
|
+
// 列数
|
|
263
265
|
const itemSpan = option.render === FORM_ITEM_RENDER_ENUM.DIVIDER ? 24 : option.span ?? span;
|
|
266
|
+
const itemLabelCol = option.labelCol ? option.labelCol : (itemSpan === 24 ? { span: labelCol.span / 2 } : labelCol);
|
|
267
|
+
const itemWrapperCol = option.wrapperCol ? option.wrapperCol : { span: 24 - itemLabelCol.span };
|
|
268
|
+
|
|
264
269
|
// 使用 style 控制显示/隐藏
|
|
265
270
|
const style = collapse && index >= 3 ? { display: "none" } : undefined;
|
|
266
271
|
|
|
@@ -299,8 +304,8 @@ const FormItemsRenderer = ({
|
|
|
299
304
|
name={option.name}
|
|
300
305
|
label={renderLabel(option)}
|
|
301
306
|
rules={getRules(option)}
|
|
302
|
-
labelCol={
|
|
303
|
-
wrapperCol={
|
|
307
|
+
labelCol={itemLabelCol}
|
|
308
|
+
wrapperCol={itemWrapperCol}
|
|
304
309
|
{...getFormItemProps(option)}
|
|
305
310
|
>
|
|
306
311
|
{renderFormControl(option)}
|
|
@@ -318,22 +323,24 @@ const FormItemsRenderer = ({
|
|
|
318
323
|
return null;
|
|
319
324
|
|
|
320
325
|
return (
|
|
321
|
-
option.
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
326
|
+
<Col key={option.name || index} span={itemSpan} style={style}>
|
|
327
|
+
{
|
|
328
|
+
option.customizeRender
|
|
329
|
+
? (renderFormControl(option))
|
|
330
|
+
: (
|
|
331
|
+
<Form.Item
|
|
332
|
+
name={option.name}
|
|
333
|
+
label={renderLabel(option)}
|
|
334
|
+
rules={getRules(option)}
|
|
335
|
+
labelCol={itemLabelCol}
|
|
336
|
+
wrapperCol={itemWrapperCol}
|
|
337
|
+
{...getFormItemProps(option)}
|
|
338
|
+
>
|
|
339
|
+
{renderFormControl(option)}
|
|
340
|
+
</Form.Item>
|
|
341
|
+
)
|
|
342
|
+
}
|
|
343
|
+
</Col>
|
|
337
344
|
);
|
|
338
345
|
})}
|
|
339
346
|
</>
|