1
0
mirror of https://github.com/zclzone/vue-naive-admin.git synced 2025-04-30 22:29:01 +08:00

fix(slot): 优化部分slot写法,减少手动判断 (#101)

* fix(slot): 优化部分slot写法,减少手动判断

* fix(slot): 优化部分slot写法,减少手动判断
This commit is contained in:
leip247 2024-11-13 11:05:03 +08:00 committed by GitHub
parent 69e6e9a14a
commit 6af6eb3c99
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 36 additions and 31 deletions

View File

@ -11,8 +11,9 @@
<main :class="{ 'flex-1': full }" class="m-12"> <main :class="{ 'flex-1': full }" class="m-12">
<slot /> <slot />
</main> </main>
<slot v-if="$slots.footer" name="footer" /> <slot name="footer">
<TheFooter v-else-if="showFooter" class="mb-12 mt-auto" /> <TheFooter v-if="showFooter" class="mb-12 mt-auto" />
</slot>
<n-back-top :bottom="20" /> <n-back-top :bottom="20" />
</main> </main>
</template> </template>

View File

@ -16,16 +16,18 @@
<slot v-if="$slots.header" name="header" /> <slot v-if="$slots.header" name="header" />
<template v-else> <template v-else>
<div class="flex items-center"> <div class="flex items-center">
<slot v-if="$slots['title-prefix']" name="title-prefix" /> <slot name="title-prefix">
<template v-else-if="back"> <template v-if="back">
<div <div
class="mr-16 flex cursor-pointer items-center text-16 opacity-60 transition-all-300 hover:opacity-40" class="mr-16 flex cursor-pointer items-center text-16 opacity-60 transition-all-300 hover:opacity-40"
@click="router.back()" @click="router.back()"
> >
<i class="i-material-symbols:arrow-left-alt" /> <i class="i-material-symbols:arrow-left-alt" />
<span class="ml-4">返回</span> <span class="ml-4">返回</span>
</div> </div>
</template> </template>
</slot>
<div class="mr-12 h-16 w-4 rounded-l-2 bg-primary" /> <div class="mr-12 h-16 w-4 rounded-l-2 bg-primary" />
<h2 class="font-normal"> <h2 class="font-normal">
{{ title ?? route.meta?.title }} {{ title ?? route.meta?.title }}
@ -39,10 +41,11 @@
<slot /> <slot />
</AppCard> </AppCard>
<slot v-if="$slots.footer" name="footer" /> <slot name="footer">
<AppCard v-else-if="showFooter" class="flex-shrink-0 py-12"> <AppCard v-if="showFooter" class="flex-shrink-0 py-12">
<TheFooter /> <TheFooter />
</AppCard> </AppCard>
</slot>
</main> </main>
</template> </template>

View File

@ -26,21 +26,22 @@
<!-- 底部按钮 --> <!-- 底部按钮 -->
<template #footer> <template #footer>
<slot v-if="$slots.footer" name="footer" /> <slot name="footer">
<footer v-else-if="modalOptions.showFooter" class="flex justify-end"> <footer v-if="modalOptions.showFooter" class="flex justify-end">
<n-button v-if="modalOptions.showCancel" @click="handleCancel()"> <n-button v-if="modalOptions.showCancel" @click="handleCancel()">
{{ modalOptions.cancelText }} {{ modalOptions.cancelText }}
</n-button> </n-button>
<n-button <n-button
v-if="modalOptions.showOk" v-if="modalOptions.showOk"
type="primary" type="primary"
:loading="modalOptions.okLoading" :loading="modalOptions.okLoading"
class="ml-20" class="ml-20"
@click="handleOk()" @click="handleOk()"
> >
{{ modalOptions.okText }} {{ modalOptions.okText }}
</n-button> </n-button>
</footer> </footer>
</slot>
</template> </template>
</n-card> </n-card>
</n-modal> </n-modal>