|
@@ -1,144 +1,159 @@
|
|
|
-import { login, logout, userinfo, menuList, dingdingdetail } from '@/apis/user'
|
|
|
+import { login, logout, userinfo, menuList, dingdingdetail } from "@/apis/user";
|
|
|
import {
|
|
|
getToken,
|
|
|
setToken,
|
|
|
removeToken,
|
|
|
+ setUserId,
|
|
|
+ getUserId,
|
|
|
+ removeUserId,
|
|
|
getMenu,
|
|
|
setMenu,
|
|
|
removeMenu,
|
|
|
getBtn,
|
|
|
setBtn,
|
|
|
- removeBtn
|
|
|
-} from '@/utils/auth'
|
|
|
+ removeBtn,
|
|
|
+} from "@/utils/auth";
|
|
|
|
|
|
const state = {
|
|
|
token: getToken(),
|
|
|
- name: '',
|
|
|
- avatar: require('@/assets/img/avatar.gif'),
|
|
|
- introduction: '',
|
|
|
- roles: ['admin'],
|
|
|
+ name: "",
|
|
|
+ userid: getUserId(),
|
|
|
+ avatar: require("@/assets/img/avatar.gif"),
|
|
|
+ introduction: "",
|
|
|
+ roles: ["admin"],
|
|
|
btnList: getBtn(),
|
|
|
navList: getMenu(),
|
|
|
-}
|
|
|
+};
|
|
|
|
|
|
const mutations = {
|
|
|
SET_TOKEN: (state, token) => {
|
|
|
- state.token = token
|
|
|
+ state.token = token;
|
|
|
+ },
|
|
|
+ SET_USER_ID: (state, userid) => {
|
|
|
+ state.userid = userid;
|
|
|
},
|
|
|
SET_MENU: (state, menu) => {
|
|
|
- state.menu = menu
|
|
|
+ state.menu = menu;
|
|
|
},
|
|
|
SET_HAS: (state, has) => {
|
|
|
- state.has = has
|
|
|
+ state.has = has;
|
|
|
},
|
|
|
SET_INTRODUCTION: (state, introduction) => {
|
|
|
- state.introduction = introduction
|
|
|
+ state.introduction = introduction;
|
|
|
},
|
|
|
SET_NAME: (state, name) => {
|
|
|
- state.name = name
|
|
|
+ state.name = name;
|
|
|
},
|
|
|
SET_AVATAR: (state, avatar) => {
|
|
|
- state.avatar = avatar
|
|
|
+ state.avatar = avatar;
|
|
|
},
|
|
|
SET_ROLES: (state, roles) => {
|
|
|
- state.roles = roles
|
|
|
+ state.roles = roles;
|
|
|
},
|
|
|
navListFn(state, val) {
|
|
|
if (!val) {
|
|
|
val = [];
|
|
|
}
|
|
|
state.navList = val;
|
|
|
- setMenu(val)
|
|
|
+ setMenu(val);
|
|
|
},
|
|
|
btnListFn(state, val) {
|
|
|
if (!val) {
|
|
|
val = [];
|
|
|
}
|
|
|
- state.btnList = val
|
|
|
- setBtn(val)
|
|
|
-
|
|
|
+ state.btnList = val;
|
|
|
+ setBtn(val);
|
|
|
},
|
|
|
-}
|
|
|
+};
|
|
|
|
|
|
const actions = {
|
|
|
// user login
|
|
|
login({ commit }, userInfo) {
|
|
|
- const { username, password } = userInfo
|
|
|
+ const { username, password } = userInfo;
|
|
|
return new Promise((resolve, reject) => {
|
|
|
login({ username: username.trim(), password: password })
|
|
|
- .then(response => {
|
|
|
- const { data } = response
|
|
|
- if (response.code === 0) {
|
|
|
- commit('SET_TOKEN', data.token)
|
|
|
- setToken(data.token)
|
|
|
+ .then((response) => {
|
|
|
+ const { code, data } = response;
|
|
|
+ if (code === 0) {
|
|
|
+ const { token, userinfo } = data;
|
|
|
+ const { id } = userinfo;
|
|
|
+ console.log(id);
|
|
|
+ commit("SET_TOKEN", token);
|
|
|
+ commit("SET_USER_ID", id);
|
|
|
+ setUserId(id);
|
|
|
+ setToken(token);
|
|
|
}
|
|
|
- resolve(response)
|
|
|
- })
|
|
|
- .catch(error => {
|
|
|
- reject(error)
|
|
|
+ resolve(response);
|
|
|
})
|
|
|
- })
|
|
|
+ .catch((error) => {
|
|
|
+ reject(error);
|
|
|
+ });
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
dingUserInfor({ commit }, code) {
|
|
|
return new Promise(async (resolve, reject) => {
|
|
|
dingdingdetail(code)
|
|
|
- .then(response => {
|
|
|
- const { data } = response
|
|
|
- if (response.code === 0) {
|
|
|
- commit('SET_TOKEN', data.token)
|
|
|
- setToken(data.token)
|
|
|
- resolve("success")
|
|
|
+ .then((response) => {
|
|
|
+ const { code, data } = response;
|
|
|
+ if (code === 0) {
|
|
|
+ const { token, userinfo } = data;
|
|
|
+ const { id } = userinfo;
|
|
|
+ commit("SET_TOKEN", token);
|
|
|
+ setToken(token);
|
|
|
+ commit("SET_USER_ID", id);
|
|
|
+ setUserId(id);
|
|
|
+ resolve("success");
|
|
|
} else {
|
|
|
- resolve("error")
|
|
|
+ resolve("error");
|
|
|
}
|
|
|
})
|
|
|
- .catch(error => {
|
|
|
- reject(error)
|
|
|
- })
|
|
|
- })
|
|
|
+ .catch((error) => {
|
|
|
+ reject(error);
|
|
|
+ });
|
|
|
+ });
|
|
|
},
|
|
|
async getMenuList({ commit, that }) {
|
|
|
return new Promise(async (resolve, reject) => {
|
|
|
if (!getToken()) {
|
|
|
- resolve("noToken")
|
|
|
+ resolve("noToken");
|
|
|
} else {
|
|
|
- let res = await menuList({})
|
|
|
+ let res = await menuList({});
|
|
|
if (res.code === 0) {
|
|
|
- let list = res.data
|
|
|
- list = list.filter((item) => item.child && item.child.length > 0)
|
|
|
- let arrag = []
|
|
|
- let btnList = []
|
|
|
- console.log(list)
|
|
|
- list.forEach(v1 => {
|
|
|
+ let list = res.data;
|
|
|
+ list = list.filter((item) => item.child && item.child.length > 0);
|
|
|
+ let arrag = [];
|
|
|
+ let btnList = [];
|
|
|
+ console.log(list);
|
|
|
+ list.forEach((v1) => {
|
|
|
let pItem = {
|
|
|
name: v1.menu_route,
|
|
|
path: `/${v1.menu_route}`,
|
|
|
meta: {
|
|
|
title: v1.menu_name,
|
|
|
- icon: v1.menu_img
|
|
|
+ icon: v1.menu_img,
|
|
|
},
|
|
|
- children: []
|
|
|
- }
|
|
|
- v1.child.forEach(v2 => {
|
|
|
+ children: [],
|
|
|
+ };
|
|
|
+ v1.child.forEach((v2) => {
|
|
|
let item = {
|
|
|
path: v2.menu_route,
|
|
|
name: v2.menu_route,
|
|
|
meta: {
|
|
|
title: v2.menu_name,
|
|
|
- icon: v2.menu_img
|
|
|
+ icon: v2.menu_img,
|
|
|
},
|
|
|
- url: v2.menu_url
|
|
|
- }
|
|
|
+ url: v2.menu_url,
|
|
|
+ };
|
|
|
let model = {
|
|
|
menu_route: v2.menu_route,
|
|
|
- action: v2.action
|
|
|
- }
|
|
|
- btnList.push(model)
|
|
|
- pItem.children.push(item)
|
|
|
- })
|
|
|
- arrag.push(pItem)
|
|
|
- })
|
|
|
+ action: v2.action,
|
|
|
+ };
|
|
|
+ btnList.push(model);
|
|
|
+ pItem.children.push(item);
|
|
|
+ });
|
|
|
+ arrag.push(pItem);
|
|
|
+ });
|
|
|
console.log(arrag);
|
|
|
|
|
|
// 生成页面权限
|
|
@@ -148,128 +163,125 @@ const actions = {
|
|
|
// 生成路由
|
|
|
initRouter(arrag, that);
|
|
|
// state.commit("loginInfoCommit", res.data);
|
|
|
- resolve("success")
|
|
|
+ resolve("success");
|
|
|
} else if (res.code === 101 || res.code === 102) {
|
|
|
- resolve("noToken")
|
|
|
+ resolve("noToken");
|
|
|
} else {
|
|
|
- resolve(res)
|
|
|
+ resolve(res);
|
|
|
}
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
-
|
|
|
-
|
|
|
// user logout
|
|
|
logout({ commit, state, dispatch }) {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
- commit('SET_TOKEN', '')
|
|
|
- commit('SET_ROLES', [])
|
|
|
- removeToken()
|
|
|
- commit('SET_MENU', '')
|
|
|
- commit('SET_HAS', '')
|
|
|
+ commit("SET_TOKEN", "");
|
|
|
+ commit("SET_USER_ID", "");
|
|
|
+ commit("SET_ROLES", []);
|
|
|
+ removeToken();
|
|
|
+ removeUserId();
|
|
|
+ commit("SET_MENU", "");
|
|
|
+ commit("SET_HAS", "");
|
|
|
|
|
|
- removeMenu()
|
|
|
- removeBtn()
|
|
|
+ removeMenu();
|
|
|
+ removeBtn();
|
|
|
// reset visited views and cached views
|
|
|
// to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2485
|
|
|
- dispatch('tagsView/delAllViews', null, { root: true })
|
|
|
- resolve()
|
|
|
- })
|
|
|
+ dispatch("tagsView/delAllViews", null, { root: true });
|
|
|
+ resolve();
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
// remove token
|
|
|
resetToken({ commit }) {
|
|
|
- return new Promise(resolve => {
|
|
|
- commit('SET_TOKEN', '')
|
|
|
- commit('SET_ROLES', [])
|
|
|
- removeToken()
|
|
|
- resolve()
|
|
|
- })
|
|
|
+ return new Promise((resolve) => {
|
|
|
+ commit("SET_TOKEN", "");
|
|
|
+ commit("SET_USER_ID", "");
|
|
|
+ commit("SET_ROLES", []);
|
|
|
+ removeToken();
|
|
|
+ removeUserId();
|
|
|
+ resolve();
|
|
|
+ });
|
|
|
},
|
|
|
-
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
+};
|
|
|
|
|
|
function initRouter(arr) {
|
|
|
const IndexRoute = [
|
|
|
-
|
|
|
// 个人信息
|
|
|
{
|
|
|
- path: '/person',
|
|
|
- component: () => import('@/layout/index'),
|
|
|
- redirect: '/person/my-message',
|
|
|
+ path: "/person",
|
|
|
+ component: () => import("@/layout/index"),
|
|
|
+ redirect: "/person/my-message",
|
|
|
hidden: true,
|
|
|
alwaysShow: true,
|
|
|
meta: {
|
|
|
- title: '个人中心',
|
|
|
- icon: 'user'
|
|
|
+ title: "个人中心",
|
|
|
+ icon: "user",
|
|
|
},
|
|
|
children: [
|
|
|
{
|
|
|
- path: 'my-message',
|
|
|
- component: () => import('@/views/person-infor/my-message'),
|
|
|
- name: 'MyMessage',
|
|
|
+ path: "my-message",
|
|
|
+ component: () => import("@/views/person-infor/my-message"),
|
|
|
+ name: "MyMessage",
|
|
|
alwaysShow: true,
|
|
|
- meta: { title: '我的信息', noCache: true, breadcrumb: true }
|
|
|
+ meta: { title: "我的信息", noCache: true, breadcrumb: true },
|
|
|
},
|
|
|
{
|
|
|
- path: 'change-phone',
|
|
|
- component: () => import('@/views/person-infor/change-phone'),
|
|
|
- name: 'ChangePhone',
|
|
|
+ path: "change-phone",
|
|
|
+ component: () => import("@/views/person-infor/change-phone"),
|
|
|
+ name: "ChangePhone",
|
|
|
alwaysShow: true,
|
|
|
- meta: { title: '更换手机号', noCache: true, breadcrumb: true }
|
|
|
+ meta: { title: "更换手机号", noCache: true, breadcrumb: true },
|
|
|
},
|
|
|
{
|
|
|
- path: 'change-password',
|
|
|
- component: () => import('@/views/person-infor/change-password'),
|
|
|
- name: 'ChangePassword',
|
|
|
+ path: "change-password",
|
|
|
+ component: () => import("@/views/person-infor/change-password"),
|
|
|
+ name: "ChangePassword",
|
|
|
alwaysShow: true,
|
|
|
- meta: { title: '修改密码', noCache: true, breadcrumb: true }
|
|
|
- }
|
|
|
- ]
|
|
|
+ meta: { title: "修改密码", noCache: true, breadcrumb: true },
|
|
|
+ },
|
|
|
+ ],
|
|
|
},
|
|
|
//欢迎页
|
|
|
{
|
|
|
- path: '/welcome',
|
|
|
- component: () => import('@/layout/index'),
|
|
|
- redirect: '/welcome/dashboard',
|
|
|
+ path: "/welcome",
|
|
|
+ component: () => import("@/layout/index"),
|
|
|
+ redirect: "/welcome/dashboard",
|
|
|
children: [
|
|
|
{
|
|
|
- path: 'dashboard',
|
|
|
- component: () => import('@/views/dashboard/index'),
|
|
|
- name: 'Dashboard',
|
|
|
- meta: { title: '首页', icon: 'dashboard', affix: true }
|
|
|
+ path: "dashboard",
|
|
|
+ component: () => import("@/views/dashboard/index"),
|
|
|
+ name: "Dashboard",
|
|
|
+ meta: { title: "首页", icon: "dashboard", affix: true },
|
|
|
},
|
|
|
- ]
|
|
|
+ ],
|
|
|
},
|
|
|
];
|
|
|
|
|
|
- arr.map(v1 => {
|
|
|
- v1.component = (resolve) => require([`@/layout/index.vue`], resolve)
|
|
|
+ arr.map((v1) => {
|
|
|
+ v1.component = (resolve) => require([`@/layout/index.vue`], resolve);
|
|
|
if (v1.children && v1.children.length > 0) {
|
|
|
- v1.redirect = `/${v1.name}/${v1.children[0].name}`
|
|
|
- v1.children.map(v2 => {
|
|
|
- v2.component = (resolve) => require([`@/views/${v2.url}.vue`], resolve)
|
|
|
- return v2
|
|
|
- })
|
|
|
+ v1.redirect = `/${v1.name}/${v1.children[0].name}`;
|
|
|
+ v1.children.map((v2) => {
|
|
|
+ v2.component = (resolve) => require([`@/views/${v2.url}.vue`], resolve);
|
|
|
+ return v2;
|
|
|
+ });
|
|
|
}
|
|
|
- return v1
|
|
|
- })
|
|
|
- IndexRoute.push(...arr)
|
|
|
+ return v1;
|
|
|
+ });
|
|
|
+ IndexRoute.push(...arr);
|
|
|
IndexRoute.push({
|
|
|
- path: '404',
|
|
|
- component: () => import('@/views/error-page/404'),
|
|
|
+ path: "404",
|
|
|
+ component: () => import("@/views/error-page/404"),
|
|
|
hidden: false,
|
|
|
- noCache: true
|
|
|
- })
|
|
|
+ noCache: true,
|
|
|
+ });
|
|
|
|
|
|
IndexRoute.push({
|
|
|
path: "*",
|
|
|
- redirect: '/404',
|
|
|
- })
|
|
|
+ redirect: "/404",
|
|
|
+ });
|
|
|
window.vm.$router.addRoutes(IndexRoute);
|
|
|
}
|
|
|
|
|
@@ -277,5 +289,5 @@ export default {
|
|
|
namespaced: true,
|
|
|
state,
|
|
|
mutations,
|
|
|
- actions
|
|
|
-}
|
|
|
+ actions,
|
|
|
+};
|