|
@@ -1,13 +1,13 @@
|
|
-import {setToken, setRefreshToken, removeToken, removeRefreshToken} from '@/util/auth'
|
|
|
|
-import {Message} from 'element-ui'
|
|
|
|
-import {setStore, getStore} from '@/util/store'
|
|
|
|
-import {isURL, validatenull} from '@/util/validate'
|
|
|
|
-import {deepClone} from '@/util/util'
|
|
|
|
|
|
+import { setToken, setRefreshToken, removeToken, removeRefreshToken } from '@/util/auth'
|
|
|
|
+import { Message } from 'element-ui'
|
|
|
|
+import { setStore, getStore } from '@/util/store'
|
|
|
|
+import { isURL, validatenull } from '@/util/validate'
|
|
|
|
+import { deepClone } from '@/util/util'
|
|
import website from '@/config/website'
|
|
import website from '@/config/website'
|
|
-import {loginByUsername, loginBySocial, loginBySso, getUserInfo, logout, refreshToken, getButtons, registerUser} from '@/api/user'
|
|
|
|
-import {getTopMenu, getRoutes} from '@/api/system/menu'
|
|
|
|
|
|
+import { loginByUsername, loginBySocial, loginBySso, getUserInfo, logout, refreshToken, getButtons, registerUser } from '@/api/user'
|
|
|
|
+import { getTopMenu, getRoutes } from '@/api/system/menu'
|
|
import md5 from 'js-md5'
|
|
import md5 from 'js-md5'
|
|
-
|
|
|
|
|
|
+import axios from 'axios';
|
|
|
|
|
|
function addPath(ele, first) {
|
|
function addPath(ele, first) {
|
|
const menu = website.menu;
|
|
const menu = website.menu;
|
|
@@ -34,21 +34,37 @@ function addPath(ele, first) {
|
|
|
|
|
|
const user = {
|
|
const user = {
|
|
state: {
|
|
state: {
|
|
- tenantId: getStore({name: 'tenantId'}) || '',
|
|
|
|
- userInfo: getStore({name: 'userInfo'}) || [],
|
|
|
|
- permission: getStore({name: 'permission'}) || {},
|
|
|
|
|
|
+ tenantId: getStore({ name: 'tenantId' }) || '',
|
|
|
|
+ userInfo: getStore({ name: 'userInfo' }) || [],
|
|
|
|
+ permission: getStore({ name: 'permission' }) || {},
|
|
roles: [],
|
|
roles: [],
|
|
menuId: {},
|
|
menuId: {},
|
|
- menu: getStore({name: 'menu'}) || [],
|
|
|
|
- menuAll: getStore({name: 'menuAll'}) || [],
|
|
|
|
- token: getStore({name: 'token'}) || '',
|
|
|
|
- refreshToken: getStore({name: 'refreshToken'}) || '',
|
|
|
|
|
|
+ menu: getStore({ name: 'menu' }) || [],
|
|
|
|
+ menuAll: getStore({ name: 'menuAll' }) || [],
|
|
|
|
+ token: getStore({ name: 'token' }) || '',
|
|
|
|
+ refreshToken: getStore({ name: 'refreshToken' }) || '',
|
|
},
|
|
},
|
|
actions: {
|
|
actions: {
|
|
//根据用户名登录
|
|
//根据用户名登录
|
|
- LoginByUsername({commit}, userInfo) {
|
|
|
|
|
|
+ LoginByUsername({ commit }, userInfo) {
|
|
return new Promise((resolve, reject) => {
|
|
return new Promise((resolve, reject) => {
|
|
- loginByUsername(userInfo.tenantId, userInfo.deptId, userInfo.roleId, userInfo.username, md5(userInfo.password), userInfo.type, userInfo.key, userInfo.code).then(res => {
|
|
|
|
|
|
+ axios.post('/api/blade-auth/oauth/token', null, {
|
|
|
|
+ headers: {
|
|
|
|
+ 'Tenant-Id': userInfo.tenantId,
|
|
|
|
+ 'Dept-Id': (website.switchMode ? userInfo.deptId : ''),
|
|
|
|
+ 'Role-Id': (website.switchMode ? userInfo.roleId : ''),
|
|
|
|
+ 'Captcha-Key': userInfo.key,
|
|
|
|
+ 'Captcha-Code': userInfo.code,
|
|
|
|
+ },
|
|
|
|
+ params: {
|
|
|
|
+ tenantId: userInfo.tenantId,
|
|
|
|
+ username: userInfo.username,
|
|
|
|
+ password: md5(userInfo.password),
|
|
|
|
+ grant_type: (website.captchaMode ? "captcha" : "password"),
|
|
|
|
+ scope: "all",
|
|
|
|
+ type: userInfo.type
|
|
|
|
+ }
|
|
|
|
+ }).then(res => {
|
|
const data = res.data;
|
|
const data = res.data;
|
|
if (data.error_description) {
|
|
if (data.error_description) {
|
|
Message({
|
|
Message({
|
|
@@ -67,10 +83,29 @@ const user = {
|
|
}).catch(error => {
|
|
}).catch(error => {
|
|
reject(error);
|
|
reject(error);
|
|
})
|
|
})
|
|
|
|
+ // loginByUsername(userInfo.tenantId, userInfo.deptId, userInfo.roleId, userInfo.username, md5(userInfo.password), userInfo.type, userInfo.key, userInfo.code).then(res => {
|
|
|
|
+ // const data = res.data;
|
|
|
|
+ // if (data.error_description) {
|
|
|
|
+ // Message({
|
|
|
|
+ // message: data.error_description,
|
|
|
|
+ // type: 'error'
|
|
|
|
+ // })
|
|
|
|
+ // } else {
|
|
|
|
+ // commit('SET_TOKEN', data.access_token);
|
|
|
|
+ // commit('SET_REFRESH_TOKEN', data.refresh_token);
|
|
|
|
+ // commit('SET_TENANT_ID', data.tenant_id);
|
|
|
|
+ // commit('SET_USER_INFO', data);
|
|
|
|
+ // commit('DEL_ALL_TAG');
|
|
|
|
+ // commit('CLEAR_LOCK');
|
|
|
|
+ // }
|
|
|
|
+ // resolve();
|
|
|
|
+ // }).catch(error => {
|
|
|
|
+ // reject(error);
|
|
|
|
+ // })
|
|
})
|
|
})
|
|
},
|
|
},
|
|
//根据手机号登录
|
|
//根据手机号登录
|
|
- LoginByPhone({commit}, userInfo) {
|
|
|
|
|
|
+ LoginByPhone({ commit }, userInfo) {
|
|
return new Promise((resolve) => {
|
|
return new Promise((resolve) => {
|
|
loginByUsername(userInfo.phone, userInfo.code).then(res => {
|
|
loginByUsername(userInfo.phone, userInfo.code).then(res => {
|
|
const data = res.data.data;
|
|
const data = res.data.data;
|
|
@@ -82,7 +117,7 @@ const user = {
|
|
})
|
|
})
|
|
},
|
|
},
|
|
//根据第三方信息登录
|
|
//根据第三方信息登录
|
|
- LoginBySocial({commit}, userInfo) {
|
|
|
|
|
|
+ LoginBySocial({ commit }, userInfo) {
|
|
return new Promise((resolve) => {
|
|
return new Promise((resolve) => {
|
|
loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state).then(res => {
|
|
loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state).then(res => {
|
|
const data = res.data;
|
|
const data = res.data;
|
|
@@ -104,7 +139,7 @@ const user = {
|
|
})
|
|
})
|
|
},
|
|
},
|
|
//根据单点信息登录
|
|
//根据单点信息登录
|
|
- LoginBySso({commit}, userInfo) {
|
|
|
|
|
|
+ LoginBySso({ commit }, userInfo) {
|
|
return new Promise((resolve) => {
|
|
return new Promise((resolve) => {
|
|
loginBySso(userInfo.state, userInfo.code).then(res => {
|
|
loginBySso(userInfo.state, userInfo.code).then(res => {
|
|
const data = res.data;
|
|
const data = res.data;
|
|
@@ -155,7 +190,7 @@ const user = {
|
|
});
|
|
});
|
|
},
|
|
},
|
|
//获取用户信息
|
|
//获取用户信息
|
|
- GetUserInfo({commit}) {
|
|
|
|
|
|
+ GetUserInfo({ commit }) {
|
|
return new Promise((resolve, reject) => {
|
|
return new Promise((resolve, reject) => {
|
|
getUserInfo().then((res) => {
|
|
getUserInfo().then((res) => {
|
|
const data = res.data.data;
|
|
const data = res.data.data;
|
|
@@ -167,7 +202,7 @@ const user = {
|
|
})
|
|
})
|
|
},
|
|
},
|
|
//刷新token
|
|
//刷新token
|
|
- refreshToken({state, commit}, userInfo) {
|
|
|
|
|
|
+ refreshToken({ state, commit }, userInfo) {
|
|
window.console.log('handle refresh token');
|
|
window.console.log('handle refresh token');
|
|
return new Promise((resolve, reject) => {
|
|
return new Promise((resolve, reject) => {
|
|
refreshToken(state.refreshToken, state.tenantId,
|
|
refreshToken(state.refreshToken, state.tenantId,
|
|
@@ -185,7 +220,7 @@ const user = {
|
|
})
|
|
})
|
|
},
|
|
},
|
|
// 登出
|
|
// 登出
|
|
- LogOut({commit}) {
|
|
|
|
|
|
+ LogOut({ commit }) {
|
|
return new Promise((resolve, reject) => {
|
|
return new Promise((resolve, reject) => {
|
|
logout().then(() => {
|
|
logout().then(() => {
|
|
commit('SET_TOKEN', '');
|
|
commit('SET_TOKEN', '');
|
|
@@ -204,7 +239,7 @@ const user = {
|
|
})
|
|
})
|
|
},
|
|
},
|
|
//注销session
|
|
//注销session
|
|
- FedLogOut({commit}) {
|
|
|
|
|
|
+ FedLogOut({ commit }) {
|
|
return new Promise(resolve => {
|
|
return new Promise(resolve => {
|
|
commit('SET_TOKEN', '');
|
|
commit('SET_TOKEN', '');
|
|
commit('SET_MENU_ALL_NULL', []);
|
|
commit('SET_MENU_ALL_NULL', []);
|
|
@@ -228,23 +263,44 @@ const user = {
|
|
})
|
|
})
|
|
},
|
|
},
|
|
//获取系统菜单
|
|
//获取系统菜单
|
|
- GetMenu({commit, dispatch}, topMenuId) {
|
|
|
|
|
|
+ // GetMenu({commit, dispatch}, topMenuId) {
|
|
|
|
+ // return new Promise(resolve => {
|
|
|
|
+ // getRoutes(topMenuId).then((res) => {
|
|
|
|
+ // const data = res.data.data
|
|
|
|
+ // let menu = deepClone(data);
|
|
|
|
+ // menu.forEach(ele => {
|
|
|
|
+ // addPath(ele, true);
|
|
|
|
+ // });
|
|
|
|
+ // commit('SET_MENU_ALL', menu)
|
|
|
|
+ // commit('SET_MENU', menu)
|
|
|
|
+ // dispatch('GetButtons');
|
|
|
|
+ // resolve(menu)
|
|
|
|
+ // })
|
|
|
|
+ // })
|
|
|
|
+ // },
|
|
|
|
+ GetMenu({ commit, dispatch }, topMenuId) {
|
|
return new Promise(resolve => {
|
|
return new Promise(resolve => {
|
|
- getRoutes(topMenuId).then((res) => {
|
|
|
|
- const data = res.data.data
|
|
|
|
|
|
+ getRoutes(topMenuId == 'police' ? '' : topMenuId).then((res) => {
|
|
|
|
+ const data = res.data.data;
|
|
let menu = deepClone(data);
|
|
let menu = deepClone(data);
|
|
menu.forEach(ele => {
|
|
menu.forEach(ele => {
|
|
|
|
+ if (ele.path.substr(0, 1) == '/') {
|
|
|
|
+ ele.path = ele.path.substr(1);
|
|
|
|
+ }
|
|
addPath(ele, true);
|
|
addPath(ele, true);
|
|
});
|
|
});
|
|
- commit('SET_MENU_ALL', menu)
|
|
|
|
- commit('SET_MENU', menu)
|
|
|
|
|
|
+ if (topMenuId == 'police') {
|
|
|
|
+ menu.unshift({ name: '首页', id: 0, source: 'iconfont iconicon_message', path: 'index', children: [] });
|
|
|
|
+ }
|
|
|
|
+ commit('SET_MENU_ALL', menu);
|
|
|
|
+ commit('SET_MENU', menu);
|
|
dispatch('GetButtons');
|
|
dispatch('GetButtons');
|
|
- resolve(menu)
|
|
|
|
- })
|
|
|
|
- })
|
|
|
|
|
|
+ resolve(menu);
|
|
|
|
+ });
|
|
|
|
+ });
|
|
},
|
|
},
|
|
//获取系统按钮
|
|
//获取系统按钮
|
|
- GetButtons({commit}) {
|
|
|
|
|
|
+ GetButtons({ commit }) {
|
|
return new Promise((resolve) => {
|
|
return new Promise((resolve) => {
|
|
getButtons().then(res => {
|
|
getButtons().then(res => {
|
|
const data = res.data.data;
|
|
const data = res.data.data;
|
|
@@ -258,7 +314,7 @@ const user = {
|
|
SET_TOKEN: (state, token) => {
|
|
SET_TOKEN: (state, token) => {
|
|
setToken(token);
|
|
setToken(token);
|
|
state.token = token;
|
|
state.token = token;
|
|
- setStore({name: 'token', content: state.token})
|
|
|
|
|
|
+ setStore({ name: 'token', content: state.token })
|
|
},
|
|
},
|
|
SET_MENU_ID(state, menuId) {
|
|
SET_MENU_ID(state, menuId) {
|
|
state.menuId = menuId;
|
|
state.menuId = menuId;
|
|
@@ -284,18 +340,18 @@ const user = {
|
|
SET_REFRESH_TOKEN: (state, refreshToken) => {
|
|
SET_REFRESH_TOKEN: (state, refreshToken) => {
|
|
setRefreshToken(refreshToken)
|
|
setRefreshToken(refreshToken)
|
|
state.refreshToken = refreshToken;
|
|
state.refreshToken = refreshToken;
|
|
- setStore({name: 'refreshToken', content: state.refreshToken})
|
|
|
|
|
|
+ setStore({ name: 'refreshToken', content: state.refreshToken })
|
|
},
|
|
},
|
|
SET_TENANT_ID: (state, tenantId) => {
|
|
SET_TENANT_ID: (state, tenantId) => {
|
|
state.tenantId = tenantId;
|
|
state.tenantId = tenantId;
|
|
- setStore({name: 'tenantId', content: state.tenantId})
|
|
|
|
|
|
+ setStore({ name: 'tenantId', content: state.tenantId })
|
|
},
|
|
},
|
|
SET_USER_INFO: (state, userInfo) => {
|
|
SET_USER_INFO: (state, userInfo) => {
|
|
if (validatenull(userInfo.avatar)) {
|
|
if (validatenull(userInfo.avatar)) {
|
|
userInfo.avatar = "/img/bg/img-logo.png";
|
|
userInfo.avatar = "/img/bg/img-logo.png";
|
|
}
|
|
}
|
|
state.userInfo = userInfo;
|
|
state.userInfo = userInfo;
|
|
- setStore({name: 'userInfo', content: state.userInfo})
|
|
|
|
|
|
+ setStore({ name: 'userInfo', content: state.userInfo })
|
|
},
|
|
},
|
|
SET_ROLES: (state, roles) => {
|
|
SET_ROLES: (state, roles) => {
|
|
state.roles = roles;
|
|
state.roles = roles;
|
|
@@ -322,7 +378,7 @@ const user = {
|
|
result.forEach(ele => {
|
|
result.forEach(ele => {
|
|
state.permission[ele] = true;
|
|
state.permission[ele] = true;
|
|
});
|
|
});
|
|
- setStore({name: 'permission', content: state.permission})
|
|
|
|
|
|
+ setStore({ name: 'permission', content: state.permission })
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|