mirror of
https://gitee.com/dromara/go-view.git
synced 2025-02-23 15:52:49 +08:00
fix: 封装header
This commit is contained in:
parent
884dc57ee4
commit
7f67f482da
@ -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>
|
||||||
|
3
src/layout/components/Header/index.ts
Normal file
3
src/layout/components/Header/index.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
import Header from './index.vue'
|
||||||
|
|
||||||
|
export { Header }
|
35
src/layout/components/Header/index.vue
Normal file
35
src/layout/components/Header/index.vue
Normal 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>
|
@ -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>
|
||||||
|
@ -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',
|
||||||
},
|
},
|
||||||
|
@ -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
0
src/utils/canvas.ts
Normal 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
|
||||||
|
Loading…
Reference in New Issue
Block a user