diff --git a/Code/Fe/public/config.js b/Code/Fe/public/config.js index bce2a27..6afd744 100644 --- a/Code/Fe/public/config.js +++ b/Code/Fe/public/config.js @@ -3,7 +3,7 @@ window.SITE_CONFIG['base'] = 'http://dev.ccwin-in.com:60069' window.SITE_CONFIG['columnsApiNames'] = '/api/abp/application-localization' // window.SITE_CONFIG['columnsApiNames'] = '/api/abp/application-configuration' window.SITE_CONFIG['columnsApiNamesZh'] = 'Winin' -window.SITE_CONFIG['isAutoLogin'] = false +window.SITE_CONFIG['isAutoLogin'] = true window.SITE_CONFIG['isSinglePage'] = false window.SITE_CONFIG['userNameOrEmailAddress'] = 'admin' window.SITE_CONFIG['client_secret'] = '1q2w3E*' diff --git a/Code/Fe/src/layout/components/Navbar.vue b/Code/Fe/src/layout/components/Navbar.vue index 6f898db..9da40da 100644 --- a/Code/Fe/src/layout/components/Navbar.vue +++ b/Code/Fe/src/layout/components/Navbar.vue @@ -82,7 +82,7 @@ export default { // this.$router.push(`/login?redirect=${this.$route.fullPath}`); localStorage.removeItem("interfaceBoardColumnsNames") localStorage.removeItem("currentUserInfo") - this.$router.push('/login?isAutoLogin=false') + this.$router.push(`/login?redirect=${this.$route.fullPath}&isAutoLogin=false`) }, handleClick() { diff --git a/Code/Fe/src/permission.js b/Code/Fe/src/permission.js index 33c5468..72c1859 100644 --- a/Code/Fe/src/permission.js +++ b/Code/Fe/src/permission.js @@ -1,17 +1,11 @@ import router from './router' import store from './store' -import { - Message -} from 'element-ui' +import { Message } from 'element-ui' import NProgress from 'nprogress' // progress bar import 'nprogress/nprogress.css' // progress bar style -import { - getToken -} from '@/utils/auth' // get token from cookie +import { getToken } from '@/utils/auth' // get token from cookie import getPageTitle from '@/utils/get-page-title' -import { - asyncRoutes -} from '@/router' +import { asyncRoutes } from '@/router' import { getInterfaceBoard } from "@/api/wms-interface" import { login,getUsersByUserName } from "@/api/wms-auth" @@ -19,195 +13,107 @@ NProgress.configure({ showSpinner: false }) // NProgress Configuration -const whiteList = ['/login', '/auth-redirect', '/testForm'] // no redirect whitelist - - router.beforeEach(async (to, from, next) => { - // 添加路由信息,方便代码修改定位 - // console.log('----------------' + to.meta.title + '-----------------------'+ to.fullPath.substring(to.fullPath.lastIndexOf('-')+1,to.fullPath.length) + '.vue' ); // start progress bar NProgress.start() - // set page title document.title = getPageTitle() // 判断是否自动登录 let isAutoLogin = JSON.parse(localStorage.getItem('isAutoLogin')) + const interfaceBoardColumnsNames = localStorage.getItem("interfaceBoardColumnsNames") // 如果路径中有isAutoLogin参数则优先,否则读取配置文件中的isAutoLogin参数 let _url_isAutoLogin = to.query.isAutoLogin if( _url_isAutoLogin== 'false' || _url_isAutoLogin == 'true'){ isAutoLogin = JSON.parse(_url_isAutoLogin) } let userInfo = localStorage.getItem('currentUserInfo') - let _zh = localStorage.getItem('columnsApiNamesZh') // 是否有用户信息: // 1、如果没有判断是否为自动登录(是自动登录则自动执行登录,账号密码为配置信息中的值,不是自动登录则跳到登录页) - // 2、如果有用户信息:则检查是否有api接口的表头数据,没有的话重新获取 + // 2、有/没有:则检查是否有api接口的表头数据,没有的话重新获取 if(userInfo){ if(store.getters.permission_routes && store.getters.permission_routes.length > 0){ next() }else{ const accessRoutes = await store.dispatch('permission/getApiColumnsNames') router.addRoutes(accessRoutes) + console.log(52) next({ ...to, + query:{ + loginName:from.query.loginName, + isAutoLogin:from.query.isAutoLogin, + }, replace: true }) } - // next({ - // ...to, - // replace: true - // }) - // if(menuList){ - // next() - // }else{ - // const accessRoutes = await store.dispatch('permission/getApiColumnsNames') - // router.addRoutes(accessRoutes) - // next() - // } - // if(store.getters.permission_routes && store.getters.permission_routes.length > 0){ - // next() - // }else{ - // // const accessRoutes = await store.dispatch('permission/getApiColumnsNames') - // // router.addRoutes(accessRoutes) - // next() - // } - // if(isAutoLogin || to.query.loginName){ - // // let loginForm= { - // // userNameOrEmailAddress:localStorage.getItem("userNameOrEmailAddress"), - // // password:localStorage.getItem("client_secret"), - // // // rememberMe:true, - // // // grant_type: 'password', - // // // client_id: 'Auth_App', - // // } - // // // store.dispatch('user/login', loginForm).then(() => { - // // login(loginForm).then(()=>{ - // let _username = to.query.loginName ? to.query.loginName : localStorage.getItem("userNameOrEmailAddress") - // getUsersByUserName(_username).then(res=>{ - // // todo:currentUserInfo全程需要优化 - // localStorage.setItem("currentUserInfo", JSON.stringify(res)); - // }) - // .catch(err => { - // console.log('获取用户信息失败,请重试') - // }) - // // 提前获取接口监控看板表头数据并存储 - // getInterfaceBoard().then(result => { - // localStorage.setItem("interfaceBoardColumnsNames", JSON.stringify(result.resources[_zh].texts)); - // next('/') - // }) - // .catch(err => { - // console.log('获取表头失败,请重试') - // }) - // // }) - // // .catch((error) => { - // // console.log('登录失败') - // // }) - // } - // else{ - // if (to.path != '/login') { - // next('/login') - // }else{ - // next() - // } - // NProgress.done() - // } }else{ - if(to.path == '/login'){ - next() - }else{ - next('/login') + if(!interfaceBoardColumnsNames){ + const accessRoutes = await store.dispatch('permission/getApiColumnsNames') + router.addRoutes(accessRoutes) + console.log(123,to) + next({ + ...to, + query:{ + loginName:to.query.loginName, + isAutoLogin:to.query.isAutoLogin, + }, + replace: true + }) + } + if(isAutoLogin || to.query.loginName){ + // let loginForm= { + // userNameOrEmailAddress:localStorage.getItem("userNameOrEmailAddress"), + // password:localStorage.getItem("client_secret"), + // // rememberMe:true, + // // grant_type: 'password', + // // client_id: 'Auth_App', + // } + // // store.dispatch('user/login', loginForm).then(() => { + // login(loginForm).then(()=>{ + let _username = to.query.loginName ? to.query.loginName : localStorage.getItem("userNameOrEmailAddress") + if(to.path != '/login'){ + getUsersByUserName(_username).then(res=>{ + // todo:currentUserInfo全程需要优化 + if(res && JSON.stringify(res).length > 0){ + localStorage.setItem("currentUserInfo", JSON.stringify(res)); + // next('/') + next({ + ...to, + query:{ + loginName:to.query.loginName, + isAutoLogin:to.query.isAutoLogin, + }, + replace: true + }) + }else{ + next(`/login?loginName=${to.query.loginName}&isAutoLogin=${to.query.isAutoLogin}`) + // next(`/login`) + Message.error('获取用户信息失败,请重试') + } + }) + .catch(err => { + console.log('获取用户信息失败,请重试') + }) + }else{ + next() + } + // }) + // .catch((error) => { + // console.log('登录失败') + // }) + } + else{ + if (to.path != '/login') { + Message.error('获取用户信息失败,请重新登录') + next(`/login?loginName=${to.query.loginName}&isAutoLogin=${to.query.isAutoLogin}`) + next(`/login`) + }else{ + next() + } } - // if (to.path != '/login') { - // next('/login') - // }else{ - // next() - // } NProgress.done() - // 重新获取api接口表头 - // const _interfaceBoardColumnsNames = localStorage.getItem("interfaceBoardColumnsNames") - // if( !_interfaceBoardColumnsNames || _interfaceBoardColumnsNames == 'undefined' || _interfaceBoardColumnsNames == 'null'){ - // getInterfaceBoard().then(result => { - // // todo-new:columnsApiNamesZh配置的地址补全(evel) - // localStorage.setItem("interfaceBoardColumnsNames", JSON.stringify(result.resources[_zh].texts)); - // setTimeout(()=>{ - // next() - // },0) - // }) - // }else{ - // next() - // } } - - - // determine whether the user has logged in - - // todo-new:如果token接口恢复做处理 - const hasToken = getToken() - // else if (hasToken) { - // // if(from.path != '/login'){ - // // let _interfaceBoardColumnsNames = localStorage.getItem("interfaceBoardColumnsNames") - // // if(!_interfaceBoardColumnsNames){ - // // // next({ - // // // path: '/' - // // // }) - // // // NProgress.done() - // // } - // // } - // if (to.path === '/login') { - // // if is logged in, redirect to the home page - // next({ - // path: '/' - // }) - // NProgress.done() // hack: https://github.com/PanJiaChen/vue-element-admin/pull/2939 - // } else { - // // determine whether the user has obtained his permission roles through getInfo - // const hasRoles =await store.getters.roles && await store.getters.roles.length > 0 - // if (hasRoles) { - // next() - // } else { - // try { - // // get user info - // // note: roles must be a object array! such as: ['admin'] or ,['developer','editor'] - - // const { - // roles - // } = await store.dispatch('user/getInfo') - // // generate accessible routes map based on roles - - // // const accessRoutes = await store.dispatch('permission/generateRoutes', localStorage.getItem('userId')) - // // router.addRoutes(accessRoutes) - - // // 原码 防止刷新出现空白页(系统暂无出现所以注释) - // // const accessRoutes = await store.dispatch('permission/generateRoutes', roles) - // // router.addRoutes(accessRoutes) - - // // hack method to ensure that addRoutes is complete - // // set the replace: true, so the navigation will not leave a history record - // next({ - // ...to, - // replace: true - // }) - // } catch (error) { - // // remove token and go to login page to re-login - // await store.dispatch('user/resetToken') - // Message.error(error || 'Has Error') - // next(`/login?redirect=${to.path}`) - // NProgress.done() - // } - // } - // } - // } else { - // /* has no token*/ - - // if (whiteList.indexOf(to.path) !== -1) { - // // in the free login whitelist, go directly - // next() - // } else { - // // other pages that do not have permission to access are redirected to the login page. - // next(`/login?redirect=${to.path}`) - // NProgress.done() - // } - // } }) router.afterEach(() => { @@ -223,4 +129,4 @@ router.afterEach(() => { }, 1000) // finish progress bar NProgress.done() -}) +}) \ No newline at end of file