logo.vue 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <!--
  2. * @Description:: 请补充填写
  3. * @Version: 请配置版本号
  4. * @Author: 舟舟
  5. * @Date: 2022-06-25 23:01:29
  6. * @LastEditors: 舟舟
  7. * @LastEditTime: 2023-06-29 13:05:21
  8. * @FilePath: /parking/src/layouts/backend/components/logo.vue
  9. -->
  10. <template>
  11. <div class="layout-logo">
  12. <img style="width:70%" src="~assets/logo.svg" alt="logo" v-if="(config.layout.layoutMode == 'Default' && ! config.layout.menuCollapse) || (config.layout.layoutMode == 'Classic' && ! config.layout.menuCollapse)"/>
  13. <div v-if="config.layout.menuCollapse" :style="{ color: config.layout.logoTitleColor }" class="website-name">
  14. <img class="logo-img" src="~assets/logo_small.svg" alt="logo" v-if="(config.layout.layoutMode == 'Default' && config.layout.menuCollapse) || config.layout.layoutMode == 'Classic'"/>
  15. </div>
  16. <Icon
  17. v-if="config.layout.layoutMode == 'Default'"
  18. @click="onMenuCollapse"
  19. :name="config.layout.menuCollapse ? 'local-IndentIncrease' : 'local-IndentDecrease'"
  20. :class="config.layout.menuCollapse ? 'unfold' : ''"
  21. :color="config.layout.logoTitleColor"
  22. size="18"
  23. class="fold"
  24. style="margin-right: 20px"
  25. />
  26. </div>
  27. </template>
  28. <script setup lang="ts">
  29. import { useConfig } from '/@/stores/config'
  30. import { useSiteConfig } from '/@/stores/siteConfig'
  31. import { closeShade } from '/@/utils/pageShade'
  32. const config = useConfig()
  33. const siteConfig = useSiteConfig()
  34. const onMenuCollapse = function () {
  35. if (config.layout.shrink && !config.layout.menuCollapse) {
  36. closeShade()
  37. }
  38. config.setLayout('menuCollapse', !config.layout.menuCollapse)
  39. }
  40. </script>
  41. <style scoped lang="scss">
  42. .layout-logo {
  43. width: 100%;
  44. height: 50px;
  45. display: flex;
  46. align-items: center;
  47. justify-content: center;
  48. box-sizing: border-box;
  49. padding: 10px;
  50. background: v-bind('config.layout.layoutMode != "Streamline" ? config.layout.menuTopBarBackground:"transparent"');
  51. }
  52. .logo-img {
  53. width: 28px;
  54. }
  55. .website-name {
  56. padding-left: 4px;
  57. font-size: var(--el-font-size-extra-large);
  58. font-weight: 600;
  59. }
  60. .fold {
  61. margin-left: auto;
  62. }
  63. .unfold {
  64. margin: 0 auto;
  65. }
  66. </style>