mirror of
https://github.com/fugary/simple-element-plus-template.git
synced 2025-11-12 14:27:49 +00:00
动态属性slots参数支持
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user