fix: 封装header

This commit is contained in:
MTrun 2021-12-16 20:08:05 +08:00
parent 884dc57ee4
commit 7f67f482da
8 changed files with 49 additions and 15 deletions

View File

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

View File

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

View File

@ -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>

View File

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

View File

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

View File

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

0
src/utils/canvas.ts Normal file
View File

View File

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