|
@@ -1,5 +1,6 @@
|
|
|
import Vue from 'vue';
|
|
|
import Vuex from 'vuex';
|
|
|
+import axios from 'axios';
|
|
|
import _ from 'lodash';
|
|
|
import { Notification } from 'element-ui';
|
|
|
const jwt = require('jsonwebtoken');
|
|
@@ -7,6 +8,8 @@ Vue.use(Vuex);
|
|
|
const api = {
|
|
|
interface: `/api/auth/login`,
|
|
|
getUser: `/api/auth/token`,
|
|
|
+ logout: '/api/auth/logout',
|
|
|
+ getMenu: `/api/auth/user/menus`,
|
|
|
updatePassword: '/api/user/pwd_edit',
|
|
|
};
|
|
|
const state = () => ({});
|
|
@@ -56,12 +59,24 @@ const actions = {
|
|
|
if (!key) {
|
|
|
console.log('游客身份');
|
|
|
}
|
|
|
- let res = await this.$axios.$post(api.getUser, { key: key });
|
|
|
- if (res.errcode == '0') {
|
|
|
- let user = jwt.decode(res.data.token);
|
|
|
- commit('setUser', user, { root: true });
|
|
|
+ let res = await axios.post(api.getUser, { key: key });
|
|
|
+ if (res.data.errcode == '0') {
|
|
|
+ let token = _.get(res, `data.data.token`);
|
|
|
+ if (token) {
|
|
|
+ let user = jwt.decode(token);
|
|
|
+ commit('setUser', user, { root: true });
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
+ async toGetMenu({ commit }, payload) {
|
|
|
+ const res = await this.$axios.$get(api.getMenu, payload);
|
|
|
+ return res;
|
|
|
+ },
|
|
|
+ async logout({ commit }, payload) {
|
|
|
+ let key = localStorage.getItem('token');
|
|
|
+ const res = await this.$axios.$post(api.logout, { key: key });
|
|
|
+ commit('deleteUser');
|
|
|
+ },
|
|
|
async update({ commit }, payload) {
|
|
|
let res = await this.$axios.$post(`${api.updatePassword}`, {
|
|
|
data: payload,
|