Forráskód Böngészése

fix: 封装header

MTrun 3 éve
szülő
commit
7f67f482da

+ 0 - 2
src/components/Application/Application.vue

@@ -27,8 +27,6 @@ import {
   NLoadingBarProvider
 } from 'naive-ui'
 
-// @ts-ignore
 import { MessageContent } from '@/components/MessageContent'
-// @ts-ignore
 import { DialogContent } from '@/components/DialogContent'
 </script>

+ 3 - 0
src/layout/components/Header/index.ts

@@ -0,0 +1,3 @@
+import Header from './index.vue'
+
+export { Header }

+ 35 - 0
src/layout/components/Header/index.vue

@@ -0,0 +1,35 @@
+<template>
+  <div class="go-header">
+    <header class="go-header-box">
+      <div class="li">
+        <slot name="left"></slot>
+      </div>
+      <div class="ri">
+        <slot name="right">
+          <ThemeSelect />
+        </slot>
+      </div>
+    </header>
+    <n-divider class="go-header-divider" />
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ThemeSelect } from '@/components/ThemeSelect'
+</script>
+
+<style lang="scss" scoped>
+@include go(header) {
+  &-box {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 0 40px;
+    height: $--header-height;
+  }
+  &-divider {
+    margin: 0;
+    padding-top: 0;
+  }
+}
+</style>

+ 1 - 1
src/layout/components/Main/index.vue

@@ -1,7 +1,7 @@
 <template>
   <router-view>
     <template #default="{ Component, route }">
-      <transition name="zoom-fade" mode="out-in" appear>
+      <transition name="list-complete" mode="out-in" appear>
         <keep-alive>
           <component :is="Component" :key="route.fullPath" />
         </keep-alive>

+ 3 - 2
src/router/index.ts

@@ -5,13 +5,14 @@ import { createRouterGuards } from './router-guards'
 import { PageEnum } from '@/enums/pageEnum'
 import modules from '@/router/modules'
 import { HttpErrorPage, LoginRoute } from '@/router/base'
+import { Layout } from '@/router/constant'
 
 const RootRoute: Array<RouteRecordRaw> = [
   {
     path: '/',
     name: 'Root',
-    redirect: PageEnum.BASE_HOME_NAME,
-    component: () => import('@/app.vue'),
+    redirect: PageEnum.BASE_HOME,
+    component: Layout,
     meta: {
       title: 'Root',
     },

+ 1 - 3
src/router/router-guards.ts

@@ -1,13 +1,12 @@
 import { Router } from 'vue-router';
 import { PageEnum } from '@/enums/pageEnum'
 
+
 export function createRouterGuards(router: Router) {
   // 前置
   router.beforeEach(async (to, from, next) => {
     const Loading = window['$loading'] || null;
     Loading && Loading.start();
-
-    console.log(to)
     const isErrorPage = router.getRoutes().findIndex((item) => item.name === to.name);
     if (isErrorPage === -1) {
       next({ name: PageEnum.ERROR_PAGE_NAME_404 })
@@ -17,7 +16,6 @@ export function createRouterGuards(router: Router) {
 
   router.afterEach((to, _, failure) => {
     const Loading = window['$loading'] || null;
-    Loading && Loading.start();
     document.title = (to?.meta?.title as string) || document.title;
     Loading && Loading.finish();
   })

+ 0 - 0
src/utils/canvas.ts


+ 6 - 7
src/views/login/index.vue

@@ -14,14 +14,12 @@
         </transition-group>
       </aside>
     </div>
-    <header class="go-login-box-header">
-      <div></div>
-      <div class="header-ri">
+    <Header>
+      <template #left></template>
+      <template #right>
         <ThemeSelect />
-      </div>
-    </header>
-    <n-divider class="go-login-box-divider" />
-
+      </template>
+    </Header>
     <div class="go-login">
       <div class="go-login-carousel">
         <n-carousel autoplay :interval="Number(carouselInterval)">
@@ -127,6 +125,7 @@ import shuffle from 'lodash/shuffle'
 import { carouselInterval } from '@/settings/designSetting'
 import { useDesignStore } from '@/store/modules/designStore/designStore'
 import { ThemeSelect } from '@/components/ThemeSelect'
+import { Header } from '@/layout/components/Header'
 
 interface FormState {
   username: string