|
@@ -183,27 +183,7 @@ export default defineComponent({
|
|
|
const renderFormItem = (item: FormSchema) => {
|
|
|
// 单独给只有options属性的组件做判断
|
|
|
// const notRenderOptions = ['SelectV2', 'Cascader', 'Transfer']
|
|
|
- const componentSlots = (item?.componentProps as any)?.slots || {}
|
|
|
- const slotsMap: Recordable = {
|
|
|
- ...setItemComponentSlots(componentSlots)
|
|
|
- }
|
|
|
- // 如果是select组件,并且没有自定义模板,自动渲染options
|
|
|
- if (item.component === ComponentNameEnum.SELECT) {
|
|
|
- slotsMap.default = !componentSlots.default
|
|
|
- ? () => renderSelectOptions(item)
|
|
|
- : () => {
|
|
|
- return componentSlots.default(
|
|
|
- unref((item?.componentProps as SelectComponentProps)?.options)
|
|
|
- )
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- // 虚拟列表
|
|
|
- if (item.component === ComponentNameEnum.SELECT_V2 && componentSlots.default) {
|
|
|
- slotsMap.default = ({ item }: any) => {
|
|
|
- return componentSlots.default(item)
|
|
|
- }
|
|
|
- }
|
|
|
// if (
|
|
|
// item?.component !== 'SelectV2' &&
|
|
|
// item?.component !== 'Cascader' &&
|
|
@@ -268,19 +248,56 @@ export default defineComponent({
|
|
|
label={v[valueAlias]}
|
|
|
disabled={v[disabledAlias]}
|
|
|
>
|
|
|
- {v[labelAlias]}
|
|
|
+ {() =>
|
|
|
+ componentProps?.slots?.default
|
|
|
+ ? componentProps?.slots?.default({ option: v })
|
|
|
+ : v[labelAlias]
|
|
|
+ }
|
|
|
</Com>
|
|
|
)
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ const componentSlots = (item?.componentProps as any)?.slots || {}
|
|
|
+ const slotsMap: Recordable = {
|
|
|
+ ...setItemComponentSlots(componentSlots)
|
|
|
+ }
|
|
|
+ // 如果是select组件,并且没有自定义模板,自动渲染options
|
|
|
+ if (item.component === ComponentNameEnum.SELECT) {
|
|
|
+ slotsMap.default = !componentSlots.default
|
|
|
+ ? () => renderSelectOptions(item)
|
|
|
+ : () => {
|
|
|
+ return componentSlots.default(
|
|
|
+ unref((item?.componentProps as SelectComponentProps)?.options)
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 虚拟列表
|
|
|
+ if (item.component === ComponentNameEnum.SELECT_V2 && componentSlots.default) {
|
|
|
+ slotsMap.default = ({ item }) => {
|
|
|
+ return componentSlots.default(item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 单选框组
|
|
|
+ if (item.component === ComponentNameEnum.RADIO_GROUP) {
|
|
|
+ slotsMap.default = !componentSlots.default
|
|
|
+ ? () => renderRadioOptions(item)
|
|
|
+ : () => {
|
|
|
+ return componentSlots.default(
|
|
|
+ unref((item?.componentProps as RadioComponentProps)?.options)
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return (
|
|
|
<Com
|
|
|
vModel={formModel.value[item.field]}
|
|
|
{...(autoSetPlaceholder && setTextPlaceholder(item))}
|
|
|
{...setComponentProps(item)}
|
|
|
- style={item.componentProps?.style}
|
|
|
+ style={item.componentProps?.style || {}}
|
|
|
>
|
|
|
{{ ...slotsMap }}
|
|
|
</Com>
|