|
@@ -1,24 +1,39 @@
|
|
<template>
|
|
<template>
|
|
<!-- , width: fixedHeader ? `calc(100% - ${sidebarOpened ? 256 : 80}px)` : '100%' -->
|
|
<!-- , width: fixedHeader ? `calc(100% - ${sidebarOpened ? 256 : 80}px)` : '100%' -->
|
|
- <a-layout-header v-if="!headerBarFixed" :class="[fixedHeader && 'ant-header-fixedHeader', sidebarOpened ? 'ant-header-side-opened' : 'ant-header-side-closed', ]" :style="{ padding: '0' }">
|
|
|
|
- <div v-if="mode === 'sidemenu'" class="header">
|
|
|
|
|
|
+ <a-layout-header
|
|
|
|
+ v-if="!headerBarFixed"
|
|
|
|
+ :class="[fixedHeader && 'ant-header-fixedHeader', sidebarOpened ? 'ant-header-side-opened' : 'ant-header-side-closed', ]"
|
|
|
|
+ :style="{ padding: '0' }"
|
|
|
|
+ >
|
|
|
|
+ <div
|
|
|
|
+ v-if="mode === 'sidemenu'"
|
|
|
|
+ class="header"
|
|
|
|
+ >
|
|
<a-icon
|
|
<a-icon
|
|
v-if="device==='mobile'"
|
|
v-if="device==='mobile'"
|
|
class="trigger"
|
|
class="trigger"
|
|
:type="collapsed ? 'menu-fold' : 'menu-unfold'"
|
|
:type="collapsed ? 'menu-fold' : 'menu-unfold'"
|
|
- @click="toggle"></a-icon>
|
|
|
|
|
|
+ @click="toggle"
|
|
|
|
+ ></a-icon>
|
|
<a-icon
|
|
<a-icon
|
|
v-else
|
|
v-else
|
|
class="trigger"
|
|
class="trigger"
|
|
:type="collapsed ? 'menu-unfold' : 'menu-fold'"
|
|
:type="collapsed ? 'menu-unfold' : 'menu-fold'"
|
|
- @click="toggle"/>
|
|
|
|
|
|
+ @click="toggle"
|
|
|
|
+ />
|
|
|
|
|
|
<user-menu></user-menu>
|
|
<user-menu></user-menu>
|
|
</div>
|
|
</div>
|
|
- <div v-else :class="['top-nav-header-index', theme]">
|
|
|
|
|
|
+ <div
|
|
|
|
+ v-else
|
|
|
|
+ :class="['top-nav-header-index', theme]"
|
|
|
|
+ >
|
|
<div class="header-index-wide">
|
|
<div class="header-index-wide">
|
|
<div class="header-index-left">
|
|
<div class="header-index-left">
|
|
- <logo class="top-nav-header" :show-title="device !== 'mobile'" />
|
|
|
|
|
|
+ <logo
|
|
|
|
+ class="top-nav-header"
|
|
|
|
+ :show-title="device !== 'mobile'"
|
|
|
|
+ />
|
|
<s-menu
|
|
<s-menu
|
|
v-if="device !== 'mobile'"
|
|
v-if="device !== 'mobile'"
|
|
mode="horizontal"
|
|
mode="horizontal"
|
|
@@ -29,7 +44,8 @@
|
|
v-else
|
|
v-else
|
|
class="trigger"
|
|
class="trigger"
|
|
:type="collapsed ? 'menu-fold' : 'menu-unfold'"
|
|
:type="collapsed ? 'menu-fold' : 'menu-unfold'"
|
|
- @click="toggle"></a-icon>
|
|
|
|
|
|
+ @click="toggle"
|
|
|
|
+ ></a-icon>
|
|
</div>
|
|
</div>
|
|
<user-menu class="header-index-right"></user-menu>
|
|
<user-menu class="header-index-right"></user-menu>
|
|
</div>
|
|
</div>
|
|
@@ -43,7 +59,8 @@ import UserMenu from '../tools/UserMenu'
|
|
import SMenu from '../menu/'
|
|
import SMenu from '../menu/'
|
|
import Logo from '../tools/Logo'
|
|
import Logo from '../tools/Logo'
|
|
|
|
|
|
-import { mixin } from '@/utils/mixin.js'
|
|
|
|
|
|
+import { mixin } from '@/utils/mixin'
|
|
|
|
+import { handleScrollHeader } from '@/utils/util'
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: 'GlobalHeader',
|
|
name: 'GlobalHeader',
|
|
@@ -85,16 +102,19 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted () {
|
|
mounted () {
|
|
- window.addEventListener('scroll', this.handleScroll)
|
|
|
|
|
|
+ const _this = this
|
|
|
|
+ handleScrollHeader(direction => {
|
|
|
|
+ _this.handleScroll(direction)
|
|
|
|
+ })
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
- handleScroll () {
|
|
|
|
|
|
+ handleScroll (direction) {
|
|
if (this.autoHideHeader) {
|
|
if (this.autoHideHeader) {
|
|
const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
|
|
const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
|
|
- if (scrollTop > 100) {
|
|
|
|
- this.headerBarFixed = true
|
|
|
|
- } else {
|
|
|
|
|
|
+ if (direction === 'up') {
|
|
this.headerBarFixed = false
|
|
this.headerBarFixed = false
|
|
|
|
+ } else {
|
|
|
|
+ scrollTop > 100 && (this.headerBarFixed = true)
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
this.headerBarFixed = false
|
|
this.headerBarFixed = false
|