|
|
|
|
@ -25,7 +25,8 @@ import {
|
|
|
|
|
ComponentNameEnum,
|
|
|
|
|
SelectComponentProps,
|
|
|
|
|
SelectOption,
|
|
|
|
|
RadioComponentProps
|
|
|
|
|
RadioComponentProps,
|
|
|
|
|
CheckboxComponentProps
|
|
|
|
|
} from '@/types/components.d'
|
|
|
|
|
|
|
|
|
|
const { renderSelectOptions } = useRenderSelect()
|
|
|
|
|
@ -230,33 +231,33 @@ export default defineComponent({
|
|
|
|
|
const { autoSetPlaceholder } = unref(getProps)
|
|
|
|
|
|
|
|
|
|
// 需要特殊处理的组件
|
|
|
|
|
const specialComponents = [ComponentNameEnum.RADIO]
|
|
|
|
|
const specialComponents = [ComponentNameEnum.RADIO, ComponentNameEnum.CHECKBOX]
|
|
|
|
|
|
|
|
|
|
if (specialComponents.findIndex((v) => v === item.component) !== -1) {
|
|
|
|
|
switch (item.component) {
|
|
|
|
|
case ComponentNameEnum.RADIO:
|
|
|
|
|
const componentProps = item.componentProps as RadioComponentProps
|
|
|
|
|
const valueAlias = componentProps?.props?.value || 'value'
|
|
|
|
|
const labelAlias = componentProps?.props?.label || 'label'
|
|
|
|
|
const disabledAlias = componentProps?.props?.disabled || 'disabled'
|
|
|
|
|
|
|
|
|
|
return componentProps?.options?.map((v) => {
|
|
|
|
|
return (
|
|
|
|
|
<Com
|
|
|
|
|
vModel={formModel.value[item.field]}
|
|
|
|
|
{...setComponentProps(item)}
|
|
|
|
|
label={v[valueAlias]}
|
|
|
|
|
disabled={v[disabledAlias]}
|
|
|
|
|
>
|
|
|
|
|
{() =>
|
|
|
|
|
componentProps?.slots?.default
|
|
|
|
|
? componentProps?.slots?.default({ option: v })
|
|
|
|
|
: v[labelAlias]
|
|
|
|
|
}
|
|
|
|
|
</Com>
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const componentProps =
|
|
|
|
|
item.component === ComponentNameEnum.RADIO
|
|
|
|
|
? (item.componentProps as RadioComponentProps)
|
|
|
|
|
: (item.componentProps as CheckboxComponentProps)
|
|
|
|
|
|
|
|
|
|
const valueAlias = componentProps?.props?.value || 'value'
|
|
|
|
|
const labelAlias = componentProps?.props?.label || 'label'
|
|
|
|
|
const disabledAlias = componentProps?.props?.disabled || 'disabled'
|
|
|
|
|
return componentProps?.options?.map((v) => {
|
|
|
|
|
return (
|
|
|
|
|
<Com
|
|
|
|
|
vModel={formModel.value[item.field]}
|
|
|
|
|
{...setComponentProps(item)}
|
|
|
|
|
label={v[valueAlias]}
|
|
|
|
|
disabled={v[disabledAlias]}
|
|
|
|
|
>
|
|
|
|
|
{() =>
|
|
|
|
|
componentProps?.slots?.default
|
|
|
|
|
? componentProps?.slots?.default({ option: v })
|
|
|
|
|
: v[labelAlias]
|
|
|
|
|
}
|
|
|
|
|
</Com>
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const componentSlots = (item?.componentProps as any)?.slots || {}
|
|
|
|
|
|