Unverified Commit 62d3d7bb authored by okhadis2019's avatar okhadis2019 Committed by GitHub
Browse files

页面头部导航栏显示问题 (#395)


Co-authored-by: default avatar2020mac <2020mac@2020macdeMacBook-Pro.local>
parent e1dfa1e4
This diff is collapsed.
......@@ -22,7 +22,8 @@
"vant": "^2.0.6",
"vue": "^2.5.17",
"vue-router": "^3.0.1",
"vuelidate": "^0.7.4"
"vuelidate": "^0.7.4",
"vuex": "^3.4.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.0.5",
......
<template>
<div id="app">
<v-header></v-header>
<keep-alive>
<router-view class="view-router" v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
......@@ -7,5 +8,13 @@
<router-view name="tabbar"></router-view>
</div>
</template>
<script>
import header from "@/components/Header";
export default {
components:{
'v-header': header
}
}
</script>
<style lang="scss" src="./assets/scss/global.scss" />
<template>
<div>
<van-nav-bar :title="title" left-text="返回" left-arrow @click-left="goBack" v-show="showHeader"/>
</div>
</template>
<script>
import { NavBar } from 'vant';
import { mapState } from 'vuex';
export default {
name:"v-header",
data(){
return {
title:"",
};
},
computed: {
showHeader:function(){
let header=this.$store.getters.showHeader;
this.title=this.$store.getters.titleHeader;
return header
}
},
methods: {
goBack() {
this.$router.back(-1);
}
},
components: {
[NavBar.name]:NavBar,
}
}
</script>
......@@ -6,6 +6,8 @@ import '@/assets/scss/global.scss';
import '@/assets/scss/iconfont/iconfont.css';
import VueCountdown from '@chenfengyuan/vue-countdown';
import store from './store'
import filters from '@/filter';
......@@ -34,5 +36,6 @@ Vue.config.productionTip = false;
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app');
......@@ -9,8 +9,9 @@ export default [
tabbar: Tabbar
},
meta: {
keepAlive: true
}
keepAlive: true,
showHeader:false
},
},
{
path: '*',
......
......@@ -7,6 +7,7 @@ import items from './items';
import user from './user';
import order from './order';
import login from './login';
import store from '../store/index';
Vue.use(Router);
......@@ -20,10 +21,20 @@ RouterModel.beforeEach((to, from, next) => {
);
if (!Authorization) {
if (to.meta.login) {
console.log("login");
next({ name: 'login', query: { redirect: to.name } });
return;
}
}
console.log(to.meta,"meta");
//页面顶部菜单拦截
let emptyObj=JSON.stringify(to.meta) == "{}";
let undefinedObj=typeof(to.meta.showHeader)=="undefined";
if(!emptyObj&&!undefinedObj){
store.commit("CHANGE_HEADER",to.meta);
}else{
store.commit("CHANGE_HEADER",{showHeader:true,title:""});
}
next();
});
......
......@@ -5,7 +5,8 @@ export default [
path: '/items',
name: 'class',
meta: {
keepAlive: true
keepAlive: true,
showHeader:false
},
components: {
default: () => import('@/views/items/tabbar-catalog'),
......@@ -16,7 +17,9 @@ export default [
path: '/items/search',
name: 'search',
meta: {
keepAlive: true
keepAlive: true,
title:"搜索",
showHeader:false
},
component: () => import('@/views/items/search')
},
......
......@@ -2,6 +2,10 @@ export default [
{
path: '/login',
name: 'login',
meta: {
showHeader:false,
title:"登录"
},
component: () => import('@/views/login/login')
},
{
......
......@@ -5,7 +5,9 @@ export default [
path: '/order',
name: 'cart',
meta: {
login: true
login: true,
showHeader:false,
title:"购物车"
},
components: {
default: () => import('@/views/order/tabbar-cart'),
......
......@@ -22,7 +22,10 @@ export default [
path: '/user',
name: 'user',
meta: {
keepAlive: true
keepAlive: true,
login: true,
showHeader:false,
title:"购物车"
},
components: { default: tab_user, tabbar: Tabbar }
},
......
export const showHeader = state => state.showHeader
export const titleHeader = state => state.title
\ No newline at end of file
import Vue from 'vue'
import Vuex from 'vuex'
import * as getters from './getters'
import mutations from './mutations'
Vue.use(Vuex)
const state = {
showHeader:true,
}
export default new Vuex.Store({
strict: process.env.NODE_ENV !== 'production',
state,
getters,
mutations
})
export const CHANGE_HEADER= 'CHANGE_HEADER'
import * as types from './mutation-types'
export default {
[types.CHANGE_HEADER] (state,payload) {
state.showHeader=payload.showHeader;
state.title=payload.title;
}
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment