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
|
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>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -302,14 +284,14 @@ const slotsResult = computed(() => {
|
|||||||
<template
|
<template
|
||||||
v-for="(slot, slotKey) in (calcOption.slots||{})"
|
v-for="(slot, slotKey) in (calcOption.slots||{})"
|
||||||
:key="slotKey"
|
:key="slotKey"
|
||||||
#[slotKey]
|
#[slotKey]="scope"
|
||||||
>
|
>
|
||||||
<component
|
<component
|
||||||
:is="slotsResult[slotKey].result"
|
:is="scope[`__slotResult__${slotKey}`]"
|
||||||
v-if="slotsResult[slotKey]?.vnode"
|
v-if="isVNode(scope[`__slotResult__${slotKey}`] = slot(scope))"
|
||||||
/>
|
/>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
{{ slotsResult[slotKey].result }}
|
{{ scope[`__slotResult__${slotKey}`] }}
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
<template
|
<template
|
||||||
|
|||||||
Reference in New Issue
Block a user