feat: add copyright components to enable preferences to configure copyright more accurately

This commit is contained in:
vben
2024-07-06 16:19:37 +08:00
parent 826907f6c3
commit 13f3af96b7
13 changed files with 116 additions and 8 deletions

View File

@@ -1,6 +1,7 @@
<script setup lang="ts">
import { preferences } from '@vben-core/preferences';
import { Copyright } from '../basic/copyright';
import Toolbar from './toolbar.vue';
defineOptions({
@@ -28,7 +29,10 @@ defineOptions({
<div
class="text-muted-foreground absolute bottom-3 flex text-center text-xs"
>
{{ preferences.app.copyright }}
<Copyright
v-if="preferences.copyright.enable"
v-bind="preferences.copyright"
/>
</div>
</div>
</template>

View File

@@ -0,0 +1,44 @@
<script lang="ts" setup>
interface Props {
companyName: string;
companySiteLink?: string;
date: string;
icp?: string;
icpLink?: string;
}
defineOptions({
name: 'Copyright',
});
withDefaults(defineProps<Props>(), {
companyName: 'Vben Admin Pro',
companySiteLink: '',
date: '2024',
icp: '',
icpLink: '',
});
</script>
<template>
<div class="text-md flex-center">
<a
v-if="icp"
:href="icpLink || 'javascript:void 0'"
class="hover:text-primary-hover"
target="_blank"
>
{{ icp }}
</a>
Copyright © {{ date }}
<a
v-if="companyName"
:href="companySiteLink || 'javascript:void 0'"
class="hover:text-primary-hover mx-1"
target="_blank"
>
{{ companyName }}
</a>
</div>
</template>

View File

@@ -0,0 +1 @@
export { default as Copyright } from './copyright.vue';

View File

@@ -14,6 +14,7 @@ import { mapTree } from '@vben-core/toolkit';
import { MenuRecordRaw } from '@vben-core/typings';
import { LayoutContent } from './content';
import { Copyright } from './copyright';
import { LayoutFooter } from './footer';
import { LayoutHeader } from './header';
import {
@@ -267,8 +268,11 @@ function clearPreferencesAndLogout() {
</template>
<!-- 页脚 -->
<template v-if="preferences.footer.enable" #footer>
<LayoutFooter v-if="preferences.app.copyright">
{{ preferences.app.copyright }}
<LayoutFooter>
<Copyright
v-if="preferences.copyright.enable"
v-bind="preferences.copyright"
/>
</LayoutFooter>
</template>
</VbenAdminLayout>