From fa3ac93010bea3805438ee3ab0a182bfbf7423da Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期一, 27 五月 2024 16:19:31 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/components/Application/src/AppLogo.vue | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 89 insertions(+), 0 deletions(-) diff --git a/src/components/Application/src/AppLogo.vue b/src/components/Application/src/AppLogo.vue new file mode 100644 index 0000000..221b688 --- /dev/null +++ b/src/components/Application/src/AppLogo.vue @@ -0,0 +1,89 @@ +<!-- + * @Author: Jeecg + * @Description: logo component +--> +<template> + <div class="anticon" :class="getAppLogoClass" @click="goHome"> + <img src="../../../assets/images/lanpu.png" /> + <div class="ml-2 truncate md:opacity-100" :class="getTitleClass" v-show="showTitle"> + {{ title }} + </div> + </div> +</template> +<script lang="ts" setup> + import { computed, unref } from 'vue'; + import { useGlobSetting } from '/@/hooks/setting'; + import { useGo } from '/@/hooks/web/usePage'; + import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; + import { useDesign } from '/@/hooks/web/useDesign'; + import { PageEnum } from '/@/enums/pageEnum'; + import { useUserStore } from '/@/store/modules/user'; + + const props = defineProps({ + /** + * The theme of the current parent component + */ + theme: { type: String, validator: (v: string) => ['light', 'dark'].includes(v) }, + /** + * Whether to show title + */ + showTitle: { type: Boolean, default: true }, + /** + * The title is also displayed when the menu is collapsed + */ + alwaysShowTitle: { type: Boolean }, + }); + + const { prefixCls } = useDesign('app-logo'); + const { getCollapsedShowTitle } = useMenuSetting(); + const userStore = useUserStore(); + const { title } = useGlobSetting(); + const go = useGo(); + + const getAppLogoClass = computed(() => [prefixCls, props.theme, { 'collapsed-show-title': unref(getCollapsedShowTitle) }]); + + const getTitleClass = computed(() => [ + `${prefixCls}__title`, + { + 'xs:opacity-0': !props.alwaysShowTitle, + }, + ]); + + function goHome() { + go(userStore.getUserInfo.homePath || PageEnum.BASE_HOME); + } +</script> +<style lang="less" scoped> + @prefix-cls: ~'@{namespace}-app-logo'; + + .@{prefix-cls} { + display: flex; + align-items: center; + padding-left: 7px; + cursor: pointer; + transition: all 0.2s ease; + + &.light { + border-bottom: 1px solid @border-color-base; + } + + &.collapsed-show-title { + padding-left: 20px; + } + + &.light &__title { + color: @primary-color; + } + + &.dark &__title { + color: @white; + } + + &__title { + font-size: 16px; + font-weight: 700; + transition: all 0.5s; + line-height: normal; + } + } +</style> -- Gitblit v1.9.3