diff --git a/src/api/api.js b/src/api/api.js index fcb1e090..7189cf73 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -20,6 +20,8 @@ const checkOnlyUser = (params) => getAction('/sys/user/checkOnlyUser', params) const changePassword = (params) => postAction('/sys/user/changePassword', params) // 单点登录获取用户信息 const getSSOUserInfo = (params) => postAction('/iam/loginByOauth2', params) +// OA单点登录 +const getTodoSSOUserInfo = (params) => postAction('/oa/login', params) // 上传手写章 const uploadHandStamp = (params) => postAction('/sys/user/uploadHandStamp', params) @@ -223,6 +225,7 @@ export { getEnterpriseLevelMapList, getSSOUserInfo, + getTodoSSOUserInfo, uploadHandStamp, addAsmsInterface, diff --git a/src/permission.js b/src/permission.js index c05b9973..1676303e 100644 --- a/src/permission.js +++ b/src/permission.js @@ -5,7 +5,7 @@ import NProgress from 'nprogress' // progress bar import 'nprogress/nprogress.css' // progress bar style import { ACCESS_TOKEN, OAUTH2_LOGIN_PAGE_PATH, UI_CACHE_DB_DICT_DATA, USER_INFO, USER_NAME } from '@/store/mutation-types' import { generateIndexRouter, isOAuth2AppEnv, findFirstRoute, welcome } from '@/utils/util' -import { getSSOUserInfo } from './api/api' +import { getSSOUserInfo, getTodoSSOUserInfo } from './api/api' import { isCanLookDetail } from './api/enterpriseStandardLibraryApi' import { updatePageHeight } from './components/tools/setting' @@ -16,7 +16,18 @@ whiteList.push(OAUTH2_LOGIN_PAGE_PATH) router.beforeEach(async (to, from, next) => { // 单点登录 - if (to.query.code) { + if (to.query.ticket) { + const { result } = await getTodoSSOUserInfo({ ticket: to.query.ticket }) + const userInfo = result.userInfo + Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(UI_CACHE_DB_DICT_DATA, result.sysAllDictItems, 7 * 24 * 60 * 60 * 1000) + store.commit('SET_TOKEN', result.token) + store.commit('SET_INFO', userInfo) + store.commit('SET_NAME', { username: userInfo.username, realname: userInfo.realname, welcome: welcome() }) + store.commit('SET_AVATAR', userInfo.avatar) + } else if (to.query.code) { const { result } = await getSSOUserInfo({ code: to.query.code }) const userInfo = result.userInfo Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) diff --git a/src/views/dashboard/search/GeneralSearch.vue b/src/views/dashboard/search/GeneralSearch.vue index c1b639bc..24018991 100644 --- a/src/views/dashboard/search/GeneralSearch.vue +++ b/src/views/dashboard/search/GeneralSearch.vue @@ -1,6 +1,6 @@ - + + + + + +