优化FormItemsRenderer

master
LiuJiaNan 2025-12-30 15:32:30 +08:00
parent f74290bdda
commit 1d5d723944
2 changed files with 17 additions and 5 deletions

View File

@ -100,6 +100,8 @@ export interface FormOption<T extends keyof FORM_ITEM_RENDER_TYPE_MAP = keyof FO
items?: OptionItem[]; items?: OptionItem[];
/** 字段键配置 */ /** 字段键配置 */
itemsField?: itemsFieldConfig; itemsField?: itemsFieldConfig;
/** checkbox 的栅格数量,如果不传入不使用栅格,传入才使用 */
checkboxCol?: number;
/** 传递给表单控件的属性,支持函数动态计算 */ /** 传递给表单控件的属性,支持函数动态计算 */
componentProps?: FORM_ITEM_RENDER_TYPE_MAP[T] | ((formValues: FormValues) => FORM_ITEM_RENDER_TYPE_MAP[T]); componentProps?: FORM_ITEM_RENDER_TYPE_MAP[T] | ((formValues: FormValues) => FORM_ITEM_RENDER_TYPE_MAP[T]);
/** 传递给 Form.Item 的属性,支持函数动态计算 */ /** 传递给 Form.Item 的属性,支持函数动态计算 */

View File

@ -284,11 +284,21 @@ const FormItemsRenderer = ({
{(option.items || []).map((item) => { {(option.items || []).map((item) => {
const value = item[itemsFieldKey.valueKey]; const value = item[itemsFieldKey.valueKey];
const label = item[typeof itemsFieldKey.labelKey === "function" ? itemsFieldKey.labelKey(item) : itemsFieldKey.labelKey]; const label = item[typeof itemsFieldKey.labelKey === "function" ? itemsFieldKey.labelKey(item) : itemsFieldKey.labelKey];
return ( return option.checkboxCol
<Checkbox key={value} value={value}> ? (
{label} <Row>
</Checkbox> <Col span={option.checkboxCol}>
); <Checkbox key={value} value={value}>
{label}
</Checkbox>
</Col>
</Row>
)
: (
<Checkbox key={value} value={value}>
{label}
</Checkbox>
);
})} })}
</Checkbox.Group> </Checkbox.Group>
); );