top-menu

3.x
smallchill 3 years ago
parent 3ebb87362f
commit 6fb0ca49ed
  1. 24
      src/page/index/index.vue
  2. 36
      src/page/index/top/top-menu.vue
  3. 4
      src/store/modules/user.js

@ -61,39 +61,41 @@ export default {
computed: {
...mapGetters(["isHorizontal", "isRefresh", "isLock", "isCollapse", "isSearch", "menu", "setting",]),
validSidebar () {
return !((this.$route.meta || {}).menu == false || (this.$route.query || {}).menu == 'false')
return !((this.$route.meta || {}).menu === false || (this.$route.query || {}).menu === 'false')
}
},
props: [],
methods: {
//
openMenu (item = {}) {
this.$store.dispatch("GetMenu", item.parentId).then(data => {
openMenu(item = {}) {
this.$store.dispatch("GetMenu", item.id).then(data => {
if (data.length !== 0) {
this.$router.$avueRouter.formatRoutes(data, true);
}
//
if (!validatenull(item)) {
//
/*if (!this.validatenull(item)) {
let itemActive = {},
childItemActive = 0;
//vue-router
if (item.path) {
itemActive = item;
} else {
if (this.menu[childItemActive].length == 0) {
if (this.menu[childItemActive].length === 0) {
itemActive = this.menu[childItemActive];
} else {
itemActive = this.menu[childItemActive].children[childItemActive];
}
}
this.$store.commit('SET_MENUID', item);
this.$store.commit('SET_MENU_ID', item);
this.$router.push({
path: itemActive.path
path: this.$router.$avueRouter.getPath({
name: (itemActive.label || itemActive.name),
src: itemActive.path
}, itemActive.meta)
});
}
}*/
});
},
}
};
</script>
</script>

@ -3,13 +3,20 @@
:default-active="activeIndex"
mode="horizontal"
text-color="#333">
<template v-for="(item,index) in items"
:key="index">
<el-menu-item :index="item.parentId+''"
@click="openMenu(item)">
<el-menu-item index="0" @click.native="openHome(itemHome)">
<template #title>
<i class="icon-caidan"></i>
<span>{{generateTitle(item)}}</span>
<i :class="itemHome.source" style="padding-right: 5px;"></i>
<span>{{itemHome.name}}</span>
</template>
</el-menu-item>
<template v-for="(item,index) in items" :key="index">
<el-menu-item :index="item.id+''"
@click="openMenu(item)">
<template #title >
<i :class="item.source" style="padding-right: 5px;"></i>
<span>{{item.name}}</span>
</template>
</el-menu-item>
</template>
@ -22,6 +29,10 @@ export default {
name: "top-menu",
data () {
return {
itemHome: {
name: '首页',
source: 'iconfont iconicon_work',
},
activeIndex: "0",
items: []
};
@ -37,14 +48,17 @@ export default {
openMenu (item) {
this.index.openMenu(item)
},
getMenu () {
openHome(itemHome) {
this.index.openMenu(itemHome);
this.$router.push({
path: this.website.fistPage
});
},
getMenu() {
this.$store.dispatch("GetTopMenu").then(res => {
this.items = res;
});
},
generateTitle (item) {
return this.$router.$avueRouter.generateTitle(item);
}
}
};
</script>
</script>

@ -188,7 +188,7 @@ const user = {
state.refreshToken = token;
setStore({ name: 'refreshToken', content: state.token })
},
SET_MENUID (state, menuId) {
SET_MENU_ID (state, menuId) {
state.menuId = menuId;
},
SET_TENANT_ID: (state, tenantId) => {
@ -252,4 +252,4 @@ const user = {
}
}
export default user
export default user

Loading…
Cancel
Save