diff --git a/src/api/api.js b/src/api/api.js index fb3868d..499317d 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -4,6 +4,8 @@ import {UI_CACHE_DB_DICT_DATA } from '@/store/mutation-types' // idm 系统单点登录 获取用户信息 const loginIdmPlatform = (params) => postAction(`/sys/singleSignOn?code=${params.code}`) +// idm 系统单点登录 通过token获取userInfo +const getUserInfo = (params) => getAction(`/sys/user/getUserInfoByToken`, params) //角色管理 const addRole = (params)=>postAction('/sys/role/add',params) const editRole = (params)=>postAction('/sys/role/edit',params) @@ -195,6 +197,7 @@ export { getKeyIv, getContactsByCompanyNoLimit, loginIdmPlatform, + getUserInfo, companyAdminResetPassword, companyAdminEnable, queryCompanyInfoById diff --git a/src/permission.js b/src/permission.js index a8f1633..84f7501 100644 --- a/src/permission.js +++ b/src/permission.js @@ -7,7 +7,7 @@ import 'nprogress/nprogress.css' // progress bar style import { ACCESS_TOKEN, INDEX_MAIN_PAGE_PATH,USER_INFO } from '@/store/mutation-types' import { generateIndexRouter } from '@/utils/util' import { menuPermission } from './utils/hasPermission' -import {loginIdmPlatform} from '@api/api' +import {loginIdmPlatform, getUserInfo} from '@api/api' import {notification} from 'ant-design-vue' import { filterTreeData, isExternalTerminal } from './utils/util' @@ -21,17 +21,31 @@ router.beforeEach(async (to, from, next) => { if (to.query.token) { Vue.ls.set(ACCESS_TOKEN, to.query.token, 7 * 24 * 60 * 60 * 1000) store.commit('SET_TOKEN', to.query.token) + // 通过token获取登录的用户信息 + let userInfoFromUrlResult = await getUserInfo() + if(userInfoFromUrlResult.success) { + Vue.ls.set(USER_INFO, userInfoFromUrlResult.result , 7 * 24 * 60 * 60 * 1000) + store.commit('SET_INFO', userInfoFromUrlResult.result) + } // 判断是否是会员系统iframe嵌入的,如果是 不先做左侧菜单和 头部标签 if(to.query.system === 'member') { store.commit('SET_SYSTEM', to.query.system) } } // idm系统单点登录 - if(to.path === '/user/login' && to.query.code){ + if(to.path === '/user/login' && to.query.code){ let result = await loginIdmPlatform({code:to.query.code}) if(result.success){ - Vue.ls.set(USER_INFO, result.result.userInfo, 7 * 24 * 60 * 60 * 1000) - Vue.ls.set(ACCESS_TOKEN, result.result.token, 7 * 24 * 60 * 60 * 1000) + // TODO 判断当前用户是否是领导角色,如果是的话跳转到内网的网址的首页 并用token 登录 + let userInfo = result.result.userInfo + const token = result.result.token + // 领导角色需要跳转到内网, + if(userInfo.roleCode.includes('bmfzr') || userInfo.roleCode.includes('sld') || userInfo.roleCode.includes('admin')) { + window.open(`${window._CONFIG.intranetUrl}dashboard/analysis?token=${token}`, '_self') + } else { + Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(ACCESS_TOKEN, token, 7 * 24 * 60 * 60 * 1000) + } }else { notification['error']({ message: '登录失败', diff --git a/src/views/packManagement/PackProjectMaintenance.vue b/src/views/packManagement/PackProjectMaintenance.vue index 85cb5fd..5894538 100644 --- a/src/views/packManagement/PackProjectMaintenance.vue +++ b/src/views/packManagement/PackProjectMaintenance.vue @@ -108,6 +108,13 @@ + +