123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- import Vue from 'vue'
- import { login, logout, phoneLogin, thirdLogin } from "@/api/login"
- import { ACCESS_TOKEN, USER_NAME,USER_INFO,USER_AUTH,SYS_BUTTON_AUTH,UI_CACHE_DB_DICT_DATA,TENANT_ID,CACHE_INCLUDED_ROUTES } from "@/store/mutation-types"
- import { welcome } from "@/utils/util"
- import { queryPermissionsByUser } from '@/api/api'
- import { getAction } from '@/api/manage'
- const user = {
- state: {
- token: '',
- username: '',
- realname: '',
- tenantid:'',
- welcome: '',
- avatar: '',
- permissionList: [],
- info: {},
- // 系统安全模式
- sysSafeMode: null,
- },
- mutations: {
- SET_TOKEN: (state, token) => {
- state.token = token
- },
- SET_NAME: (state, { username, realname, welcome }) => {
- state.username = username
- state.realname = realname
- state.welcome = welcome
- },
- SET_AVATAR: (state, avatar) => {
- state.avatar = avatar
- },
- SET_PERMISSIONLIST: (state, permissionList) => {
- state.permissionList = permissionList
- },
- SET_INFO: (state, info) => {
- state.info = info
- },
- SET_TENANT: (state, id) => {
- state.tenantid = id
- },
- SET_SYS_SAFE_MODE: (state, sysSafeMode) => {
- if (typeof sysSafeMode === 'boolean') {
- state.sysSafeMode = sysSafeMode
- } else {
- state.sysSafeMode = false
- }
- },
- },
- actions: {
- ValidateLogin(ticket) {
- return new Promise((resolve, reject) => {
- getAction("/sys/validateLogin",{ticket}).then(response => {
- if(response.success){
- const result = response.result
- 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)
- // commit('SET_TOKEN', result.token)
- // commit('SET_INFO', userInfo)
- // commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname, welcome: welcome() })
- // commit('SET_AVATAR', userInfo.avatar)
- console.log("222==="+response)
- resolve(response)
- }else{
- resolve(response)
- }
- }).catch(error => {
- console.log("222==="+error)
- reject(error)
- })
- })
- },
- // 登录
- Login({ commit }, userInfo) {
- return new Promise((resolve, reject) => {
- login(userInfo).then(response => {
- if(response.code =='200'){
- const result = response.result
- 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)
- commit('SET_TOKEN', result.token)
- commit('SET_INFO', userInfo)
- commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname, welcome: welcome() })
- commit('SET_AVATAR', userInfo.avatar)
- resolve(response)
- }else{
- reject(response)
- }
- }).catch(error => {
- reject(error)
- })
- })
- },
- //手机号登录
- PhoneLogin({ commit }, userInfo) {
- return new Promise((resolve, reject) => {
- phoneLogin(userInfo).then(response => {
- if(response.code =='200'){
- const result = response.result
- 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)
- commit('SET_TOKEN', result.token)
- commit('SET_INFO', userInfo)
- commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname, welcome: welcome() })
- commit('SET_AVATAR', userInfo.avatar)
- resolve(response)
- }else{
- reject(response)
- }
- }).catch(error => {
- reject(error)
- })
- })
- },
- // 获取用户信息
- GetPermissionList({ commit }) {
- return new Promise((resolve, reject) => {
- queryPermissionsByUser().then(response => {
- const menuData = response.result.menu;
- const authData = response.result.auth;
- const allAuthData = response.result.allAuth;
- //Vue.ls.set(USER_AUTH,authData);
- sessionStorage.setItem(USER_AUTH,JSON.stringify(authData));
- sessionStorage.setItem(SYS_BUTTON_AUTH,JSON.stringify(allAuthData));
- if (menuData && menuData.length > 0) {
- // //update--begin--autor:qinfeng-----date:20200109------for:JEECG-63 一级菜单的子菜单全部是隐藏路由,则一级菜单不显示------
- // menuData.forEach((item, index) => {
- // if (item["children"]) {
- // let hasChildrenMenu = item["children"].filter((i) => {
- // return !i.hidden || i.hidden == false
- // })
- // if (hasChildrenMenu == null || hasChildrenMenu.length == 0) {
- // item["hidden"] = true
- // }
- // }
- // })
- // //console.log(" menu show json ", menuData)
- // //update--end--autor:qinfeng-----date:20200109------for:JEECG-63 一级菜单的子菜单全部是隐藏路由,则一级菜单不显示------
- commit('SET_PERMISSIONLIST', menuData)
- // 设置系统安全模式
- commit('SET_SYS_SAFE_MODE', response.result.sysSafeMode)
- } else {
- reject('getPermissionList: permissions must be a non-null array !')
- }
- resolve(response)
- }).catch(error => {
- reject(error)
- })
- })
- },
- // 登出
- Logout({ commit, state }) {
- return new Promise((resolve) => {
- let logoutToken = state.token;
- commit('SET_TOKEN', '')
- commit('SET_PERMISSIONLIST', [])
- Vue.ls.remove(ACCESS_TOKEN)
- Vue.ls.remove(USER_INFO)
- Vue.ls.remove(USER_NAME)
- Vue.ls.remove(UI_CACHE_DB_DICT_DATA)
- Vue.ls.remove(CACHE_INCLUDED_ROUTES)
- Vue.ls.remove(TENANT_ID)
- //console.log('logoutToken: '+ logoutToken)
- logout(logoutToken).then(() => {
- if (process.env.VUE_APP_SSO == 'true') {
- let sevice = 'http://' + window.location.host + '/'
- let serviceUrl = encodeURIComponent(sevice)
- window.location.href = process.env.VUE_APP_CAS_BASE_URL + '/logout?service=' + serviceUrl
- }
- resolve()
- }).catch(() => {
- resolve()
- })
- })
- },
- // 第三方登录
- ThirdLogin({ commit }, param) {
- return new Promise((resolve, reject) => {
- thirdLogin(param.token,param.thirdType).then(response => {
- if(response.code =='200'){
- const result = response.result
- 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)
- commit('SET_TOKEN', result.token)
- commit('SET_INFO', userInfo)
- commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname, welcome: welcome() })
- commit('SET_AVATAR', userInfo.avatar)
- resolve(response)
- }else{
- reject(response)
- }
- }).catch(error => {
- reject(error)
- })
- })
- },
- saveTenant({ commit }, id){
- Vue.ls.set(TENANT_ID, id, 7 * 24 * 60 * 60 * 1000)
- commit('SET_TENANT', id)
- }
- }
- }
- export default user
|