动态属性slots参数支持

This commit is contained in:
Gary Fu
2024-10-13 10:34:05 +08:00
parent b0ef42dc1d
commit 4a58f10027

View File

@@ -222,24 +222,6 @@ const formatResult = computed(() => {
return null
})
const slotsResult = computed(() => {
const results = {}
if (calcOption.value?.slots) {
const slots = calcOption.value.slots
for (const slotKey in slots) {
const slot = slots[slotKey]
if (isFunction(slot)) {
const slotResult = slot(modelValue.value, calcOption.value)
results[slotKey] = {
result: slotResult,
vnode: isVNode(slotResult)
}
}
}
}
return results
})
</script>
<template>
@@ -302,14 +284,14 @@ const slotsResult = computed(() => {
<template
v-for="(slot, slotKey) in (calcOption.slots||{})"
:key="slotKey"
#[slotKey]
#[slotKey]="scope"
>
<component
:is="slotsResult[slotKey].result"
v-if="slotsResult[slotKey]?.vnode"
:is="scope[`__slotResult__${slotKey}`]"
v-if="isVNode(scope[`__slotResult__${slotKey}`] = slot(scope))"
/>
<template v-else>
{{ slotsResult[slotKey].result }}
{{ scope[`__slotResult__${slotKey}`] }}
</template>
</template>
<template