🎉 2.0.5.RELEASE

pull/59/head
smallchill 7 years ago
parent 3a65e5533e
commit b270513db7
  1. 13
      src/api/system/menu.js
  2. 10
      src/api/user.js
  3. 22
      src/page/index/top/top-menu.vue
  4. 12
      src/store/modules/user.js

@ -59,3 +59,16 @@ export const getMenu = (id) => {
}
})
}
export const getTopMenu = () => request({
url: '/api/blade-system/menu/top-menu',
method: 'get'
});
export const getRoutes = (topMenuId) => request({
url: '/api/blade-system/menu/routes',
method: 'get',
params: {
topMenuId,
}
});

@ -37,16 +37,6 @@ export const getUserInfo = () => request({
method: 'get'
});
export const getMenu = () => request({
url: '/api/blade-system/menu/routes',
method: 'get'
});
export const getTopMenu = () => request({
url: baseUrl + '/user/getTopMenu',
method: 'get'
});
export const sendLogs = (list) => request({
url: baseUrl + '/user/logout',
method: 'post',

@ -3,12 +3,20 @@
<el-menu :default-active="activeIndex"
mode="horizontal"
text-color="#333">
<el-menu-item index="0"
@click.native="openMenu(itemHome)"
key="0">
<template slot="title">
<i :class="itemHome.source"></i>
<span>{{generateTitle(itemHome)}}</span>
</template>
</el-menu-item>
<template v-for="(item,index) in items">
<el-menu-item :index="item.parentId+''"
<el-menu-item :index="item.id+''"
@click.native="openMenu(item)"
:key="index">
<template slot="title">
<i :class="item.icon"></i>
<i :class="item.source" style="padding-right: 5px;"></i>
<span>{{generateTitle(item)}}</span>
</template>
</el-menu-item>
@ -23,8 +31,12 @@ export default {
name: "top-menu",
data() {
return {
itemHome: {
name: '首页',
source: 'el-icon-menu',
},
activeIndex: "0",
items: []
items: [],
};
},
created() {
@ -41,12 +53,12 @@ export default {
},
generateTitle(item) {
return this.$router.$avueRouter.generateTitle(
item.label,
item.name,
(item.meta || {}).i18n
);
},
openMenu(item) {
this.$store.dispatch("GetMenu", item.parentId).then(data => {
this.$store.dispatch("GetMenu", item.id).then(data => {
if (data.length !== 0) {
this.$router.$avueRouter.formatRoutes(data, true);
}

@ -4,7 +4,8 @@ import { setStore, getStore } from '@/util/store'
import {isURL, validatenull} from '@/util/validate'
import {deepClone} from '@/util/util'
import webiste from '@/config/website'
import { loginByUsername, getUserInfo, getMenu, getTopMenu, logout, refreshToken, getButtons } from '@/api/user'
import {loginByUsername, getUserInfo, logout, refreshToken, getButtons} from '@/api/user'
import {getTopMenu, getRoutes} from '@/api/system/menu'
function addPath(ele, first) {
@ -54,7 +55,7 @@ const user = {
} else {
commit('SET_TOKEN', data.access_token);
commit('SET_REFRESH_TOKEN', data.refresh_token);
commit('SET_USERIFNO', data);
commit('SET_USER_INFO', data);
commit('DEL_ALL_TAG');
commit('CLEAR_LOCK');
}
@ -140,6 +141,7 @@ const user = {
resolve()
})
},
//获取顶部菜单
GetTopMenu() {
return new Promise(resolve => {
getTopMenu().then((res) => {
@ -149,9 +151,9 @@ const user = {
})
},
//获取系统菜单
GetMenu({ commit, dispatch }, parentId) {
GetMenu({commit, dispatch}, topMenuId) {
return new Promise(resolve => {
getMenu(parentId).then((res) => {
getRoutes(topMenuId).then((res) => {
const data = res.data.data
let menu = deepClone(data);
menu.forEach(ele => {
@ -175,7 +177,7 @@ const user = {
state.refreshToken = refreshToken;
setStore({name: 'refreshToken', content: state.refreshToken, type: 'session'})
},
SET_USERIFNO: (state, userInfo) => {
SET_USER_INFO: (state, userInfo) => {
state.userInfo = userInfo;
setStore({name: 'userInfo', content: state.userInfo})
},

Loading…
Cancel
Save