Display: Add template for title and footer in BaseCard vue component

pull/5964/head
Angel Fernando Quiroz Campos 9 months ago
parent 13595d25d3
commit f9a14a73cf
No known key found for this signature in database
GPG Key ID: B284841AE3E562CD
  1. 31
      assets/vue/components/basecomponents/BaseCard.vue

@ -1,10 +1,23 @@
<template> <template>
<Card <Card :class="customClass">
:class="customClass" <template
> #header
<template #header> v-if="slots.header"
>
<slot name="header"></slot> <slot name="header"></slot>
</template> </template>
<template
#title
v-if="slots.title"
>
<slot name="title"></slot>
</template>
<template
#footer
v-if="slots.footer"
>
<slot name="footer"></slot>
</template>
<template #content> <template #content>
<slot></slot> <slot></slot>
</template> </template>
@ -12,8 +25,8 @@
</template> </template>
<script setup> <script setup>
import Card from 'primevue/card' import Card from "primevue/card"
import {computed} from "vue" import { computed, useSlots } from "vue"
const props = defineProps({ const props = defineProps({
plain: { plain: {
@ -22,10 +35,12 @@ const props = defineProps({
}, },
}) })
const slots = useSlots()
const customClass = computed(() => { const customClass = computed(() => {
let resultClass = '' let resultClass = ""
if (props.plain) { if (props.plain) {
resultClass += 'bg-gray-15 border border-gray-25 shadow-none ' resultClass += "bg-gray-15 border border-gray-25 shadow-none "
} }
return resultClass return resultClass
}) })

Loading…
Cancel
Save