优化FormItemsRenderer
parent
05232aa88d
commit
5eadb56698
|
|
@ -230,6 +230,15 @@ const FormItemsRenderer = ({
|
|||
: (listOptions ?? []);
|
||||
};
|
||||
|
||||
// 获取可选项的属性(适用于 SELECT、RADIO、CHECKBOX)
|
||||
const getSelectableItemAttributes = (item, itemsFieldKey) => {
|
||||
const value = item[itemsFieldKey.valueKey];
|
||||
const label = typeof itemsFieldKey.labelKey === "function" ? itemsFieldKey.labelKey(item) : item[itemsFieldKey.labelKey];
|
||||
const disabled = item.disabled;
|
||||
|
||||
return { value, label, disabled };
|
||||
};
|
||||
|
||||
// 渲染表单控件
|
||||
const renderFormControl = (option) => {
|
||||
const componentProps = getComponentProps(option);
|
||||
|
|
@ -253,9 +262,7 @@ const FormItemsRenderer = ({
|
|||
return (
|
||||
<Select placeholder={placeholder} showSearch allowClear optionFilterProp="children" {...componentProps}>
|
||||
{(option.items || []).map((item) => {
|
||||
const value = item[itemsFieldKey.valueKey];
|
||||
const label = typeof itemsFieldKey.labelKey === "function" ? itemsFieldKey.labelKey(item) : (item[itemsFieldKey.labelKey]);
|
||||
const disabled = item.disabled;
|
||||
const { value, label, disabled } = getSelectableItemAttributes(item, itemsFieldKey);
|
||||
return (
|
||||
<Select.Option key={value} value={value} disabled={disabled}>
|
||||
{label}
|
||||
|
|
@ -269,9 +276,7 @@ const FormItemsRenderer = ({
|
|||
return (
|
||||
<Radio.Group {...componentProps}>
|
||||
{(option.items || []).map((item) => {
|
||||
const value = item[itemsFieldKey.valueKey];
|
||||
const label = typeof itemsFieldKey.labelKey === "function" ? itemsFieldKey.labelKey(item) : (item[itemsFieldKey.labelKey]);
|
||||
const disabled = item.disabled;
|
||||
const { value, label, disabled } = getSelectableItemAttributes(item, itemsFieldKey);
|
||||
return (
|
||||
<Radio key={value} value={value} disabled={disabled}>
|
||||
{label}
|
||||
|
|
@ -289,9 +294,7 @@ const FormItemsRenderer = ({
|
|||
? (
|
||||
<Row>
|
||||
{(option.items || []).map((item) => {
|
||||
const value = item[itemsFieldKey.valueKey];
|
||||
const label = typeof itemsFieldKey.labelKey === "function" ? itemsFieldKey.labelKey(item) : (item[itemsFieldKey.labelKey]);
|
||||
const disabled = item.disabled;
|
||||
const { value, label, disabled } = getSelectableItemAttributes(item, itemsFieldKey);
|
||||
return (
|
||||
<Col span={option.checkboxCol} key={value}>
|
||||
<Checkbox value={value} disabled={disabled}>
|
||||
|
|
@ -304,9 +307,7 @@ const FormItemsRenderer = ({
|
|||
)
|
||||
: (
|
||||
(option.items || []).map((item) => {
|
||||
const value = item[itemsFieldKey.valueKey];
|
||||
const label = typeof itemsFieldKey.labelKey === "function" ? itemsFieldKey.labelKey(item) : (item[itemsFieldKey.labelKey]);
|
||||
const disabled = item.disabled;
|
||||
const { value, label, disabled } = getSelectableItemAttributes(item, itemsFieldKey);
|
||||
return (
|
||||
<Checkbox key={value} value={value} disabled={disabled}>
|
||||
{label}
|
||||
|
|
|
|||
Loading…
Reference in New Issue