GitBucket
4.6.0
Toggle navigation
Sign in
Files
Branches
1
Tags
Issues
Pull Requests
Labels
Milestones
Wiki
08335
/
hivui-platform-template
hivui平台项目模板
Browse code
Merge branch 'master' of http://git.hieap.cn/gitbucket/git/08335/hivui-platform-template
master
commit
625da8e6a71f118abb017c8c7f485593d64ee38d
2 parents
bf85243
+
bdccd03
12112
authored
on 9 Nov 2023
Showing
1 changed file
project/hivuiMain/store/modules/user.js
Ignore Space
Show notes
View
project/hivuiMain/store/modules/user.js
import {baseLogin, logout} from '@main/api/login' import {getInfo,getBzList,getSSOInfo,getSSOTicket} from '@main/api/user' import { getToken, setToken, removeToken } from '@main/utils/auth' import {getUrlValue,getUrlSearch} from '@main/utils' import md5 from 'js-md5' if(window.Scp==null){ window.Scp = {} } if(window.Scp.User==null){ window.Scp.User={} } const user = { namespaced: true, state: { token: getToken(), avatar: '', introduction: '', roles: [], //后面加的 userInfo: {}, bzList: null, id:Scp.User.id, name:Scp.User.name, deptId:Scp.User.deptId, deptName:Scp.User.deptName, positionId:Scp.User.positionId, postionName:Scp.User.postionName, bzId:Scp.User.bzId, bzName:Scp.User.bzName, bzDeptId:Scp.User.bzDeptId, bzDeptName:Scp.User.bzDeptName, bzPositionId:Scp.User.bzPositionId, bzPositionName:Scp.User.bzPositionName, orgId:Scp.User.orgId , defOrgId:Scp.User.defOrgId, showPwDialog:false, ssoInfo:null, }, mutations: { SET_CODE: (state, code) => { state.code = code }, SET_TOKEN: (state, token) => { state.token = token }, SET_INTRODUCTION: (state, introduction) => { state.introduction = introduction }, SET_NAME: (state, name) => { state.name = name }, SET_AVATAR: (state, avatar) => { state.avatar = avatar }, SET_ROLES: (state, roles) => { state.roles = roles }, SET_USERINFO: (state, userInfo) => { state.userInfo = userInfo }, SET_BZLIST: (state, bzList) => { state.bzList = bzList }, SET_PWDIALOG: (state, isShow) => { state.showPwDialog = isShow }, }, actions: { load({ commit, state }) { }, // user login login({ commit }, userInfo) { let pushData={}; if(userInfo){ const { username, password } = userInfo pushData={ username: username.trim(), password: md5(password) }; } return new Promise((resolve, reject) => { if(window.HIVUI_SETTING.url!=location.origin){ let searchParams=getUrlSearch(location.href); delete searchParams.ticket; let service=location.origin+location.pathname+"?"; for(let k in searchParams){ service+=k+"="+searchParams[k]+"&"; } service=service.slice(0,-1); pushData={ type:"casPre", ticket:getUrlValue('','ticket'), service:service }; } baseLogin(pushData).then(response => { const data = response commit('SET_TOKEN', data.token) setToken(data.token) resolve() }).catch(error => { reject(error) }) }) }, // 多岗 getBzList({ commit, state }) { return new Promise((resolve, reject) => { getBzList().then(response => { let _arr=response.dataPack if (_arr) { if (!_arr || _arr.length < 0) { reject('getInfo: data must be a non-null array!') } commit("SET_BZLIST",_arr); resolve(_arr) }else{ reject('Verification failed, please Login again.'); } }).catch(error => { reject(error) }); }) }, // get user info getInfo({ commit, state }) { return new Promise((resolve, reject) => { getInfo().then(response => { if (!response.dataPack) { reject('Verification failed, please Login again.') } //const { info ,org} = response.data; const info = response.dataPack // if (!info) { // reject('Verification failed, please Login again.') // } //const { roles, name, avatar, introduction } = data window.Scp.User=info; let roles = ['admim'], avatar = "", introduction = "", name = info.fuserid, userInfo = info; // roles must be a non-empty array if (!roles || roles.length <= 0) { reject('getInfo: roles must be a non-null array!') } commit('SET_USERINFO', userInfo) commit('SET_ROLES', roles) commit('SET_NAME', name) commit('SET_AVATAR', avatar) commit('SET_INTRODUCTION', introduction) resolve(info) }).catch(error => { reject(error) }) }) }, // user logout logout({ commit, state }) { return new Promise((resolve, reject) => { if(!getToken()){ resolve(); }else{ logout().then(() => { commit('SET_TOKEN', ''); commit('SET_ROLES', []); removeToken(); resolve(); }).catch(error => { reject(error); }); } }); }, // remove token resetToken({ commit }) { return new Promise(resolve => { commit('SET_TOKEN', '') commit('SET_ROLES', []) removeToken() resolve() }) }, // dynamically modify permissions changeRoles({ commit, dispatch }, role) { return new Promise(async resolve => { const token = role + '-token' commit('SET_TOKEN', token) setToken(token) const { roles } = await dispatch('getInfo') //resetRouter() // generate accessible routes map based on roles const accessRoutes = await dispatch('permission/generateRoutes', roles, { root: true }) // dynamically add accessible routes router.addRoutes(accessRoutes) // reset visited views and cached views dispatch('tagsView/delAllViews', null, { root: true }) resolve() }) }, //修改密码弹窗 showPwDialog({ commit, dispatch }, isShow){ commit('SET_PWDIALOG', isShow); }, //获取单点登录服务器信息 getSSOInfo({state, dispatch}){ return new Promise((resolve, reject) => { getSSOInfo().then((res)=>{ state.ssoInfo=res.dataPack; resolve(res); }).catch(err=>{ reject(err); }); }); }, //单点跳转功能 async openSSOFuncPage({state, dispatch},opt){ await dispatch("getSSOInfo"); if(state.ssoInfo){ let res=await getSSOTicket(state.ssoInfo.serverUrl,{ 'clientId': state.ssoInfo.clientId, 'token': state.token, 'pn':state.ssoInfo.serverPn, }); if (res.status == 200) { let __service = encodeURIComponent((opt.serviceUrl.startsWith("http")?"":location.origin+(opt.serviceUrl.startsWith("/")?"":"/"))+opt.serviceUrl); let returnUrl = state.ssoInfo.serverUrl + (state.ssoInfo.serverUrl.endsWith("/")?"":"/")+"sso/remote-login?service=" + __service + "&ticket=" + res.dataPack; return returnUrl; //window.open(returnUrl, "_black"); } } return opt.serviceUrl; }, } } export default user
import {baseLogin, logout} from '@main/api/login' import {getInfo,getBzList,getSSOInfo,getSSOTicket} from '@main/api/user' import { getToken, setToken, removeToken } from '@main/utils/auth' import {getUrlValue,getUrlSearch} from '@main/utils' import md5 from 'js-md5' if(window.Scp==null){ window.Scp = {} } if(window.Scp.User==null){ window.Scp.User={} } const user = { namespaced: true, state: { token: getToken(), avatar: '', introduction: '', roles: [], //后面加的 userInfo: {}, bzList: null, id:Scp.User.id, name:Scp.User.name, deptId:Scp.User.deptId, deptName:Scp.User.deptName, positionId:Scp.User.positionId, postionName:Scp.User.postionName, bzId:Scp.User.bzId, bzName:Scp.User.bzName, bzDeptId:Scp.User.bzDeptId, bzDeptName:Scp.User.bzDeptName, bzPositionId:Scp.User.bzPositionId, bzPositionName:Scp.User.bzPositionName, orgId:Scp.User.orgId , defOrgId:Scp.User.defOrgId, showPwDialog:false, ssoInfo:null, }, mutations: { SET_CODE: (state, code) => { state.code = code }, SET_TOKEN: (state, token) => { state.token = token }, SET_INTRODUCTION: (state, introduction) => { state.introduction = introduction }, SET_NAME: (state, name) => { state.name = name }, SET_AVATAR: (state, avatar) => { state.avatar = avatar }, SET_ROLES: (state, roles) => { state.roles = roles }, SET_USERINFO: (state, userInfo) => { state.userInfo = userInfo }, SET_BZLIST: (state, bzList) => { state.bzList = bzList }, SET_PWDIALOG: (state, isShow) => { state.showPwDialog = isShow }, }, actions: { load({ commit, state }) { }, // user login login({ commit }, userInfo) { let pushData={}; if(userInfo){ const { username, password } = userInfo pushData={ username: username.trim(), password: md5(password) }; } return new Promise((resolve, reject) => { if(window.HIVUI_SETTING.url!=location.origin){ let searchParams=getUrlSearch(location.href); delete searchParams.ticket; let service=location.origin+location.pathname+"?"; for(let k in searchParams){ service+=k+"="+searchParams[k]+"&"; } service=service.slice(0,-1); pushData={ type:"casPre", ticket:getUrlValue('','ticket'), service:service }; } baseLogin(pushData).then(response => { const data = response commit('SET_TOKEN', data.token) setToken(data.token) resolve() }).catch(error => { reject(error) }) }) }, // 多岗 getBzList({ commit, state }) { return new Promise((resolve, reject) => { getBzList().then(response => { let _arr=response.dataPack if (_arr) { if (!_arr || _arr.length < 0) { reject('getInfo: data must be a non-null array!') } commit("SET_BZLIST",_arr); resolve(_arr) }else{ reject('Verification failed, please Login again.'); } }).catch(error => { reject(error) }); }) }, // get user info getInfo({ commit, state }) { return new Promise((resolve, reject) => { getInfo().then(response => { if (!response.dataPack) { reject('Verification failed, please Login again.') } //const { info ,org} = response.data; const info = response.dataPack // if (!info) { // reject('Verification failed, please Login again.') // } //const { roles, name, avatar, introduction } = data window.Scp.User=info; let roles = ['admim'], avatar = "", introduction = "", name = info.fuserid, userInfo = info; // roles must be a non-empty array if (!roles || roles.length <= 0) { reject('getInfo: roles must be a non-null array!') } commit('SET_USERINFO', userInfo) commit('SET_ROLES', roles) commit('SET_NAME', name) commit('SET_AVATAR', avatar) commit('SET_INTRODUCTION', introduction) resolve(info) }).catch(error => { reject(error) }) }) }, // user logout logout({ commit, state }) { return new Promise((resolve, reject) => { if(!getToken()){ resolve(); }else{ logout().then(() => { commit('SET_TOKEN', ''); commit('SET_ROLES', []); removeToken(); resolve(); }).catch(error => { reject(error); }); } }); }, // remove token resetToken({ commit }) { return new Promise(resolve => { commit('SET_TOKEN', '') commit('SET_ROLES', []) removeToken() resolve() }) }, // dynamically modify permissions changeRoles({ commit, dispatch }, role) { return new Promise(async resolve => { const token = role + '-token' commit('SET_TOKEN', token) setToken(token) const { roles } = await dispatch('getInfo') //resetRouter() // generate accessible routes map based on roles const accessRoutes = await dispatch('permission/generateRoutes', roles, { root: true }) // dynamically add accessible routes router.addRoutes(accessRoutes) // reset visited views and cached views dispatch('tagsView/delAllViews', null, { root: true }) resolve() }) }, //修改密码弹窗 showPwDialog({ commit, dispatch }, isShow){ commit('SET_PWDIALOG', isShow); }, //获取单点登录服务器信息 getSSOInfo({state, dispatch}){ return new Promise((resolve, reject) => { getSSOInfo().then((res)=>{ state.ssoInfo=res.dataPack; resolve(res); }).catch(err=>{ reject(err); }); }); }, //单点跳转功能 async openSSOFuncPage({state, dispatch},opt){ await dispatch("getSSOInfo"); if(state.ssoInfo){ let res=await getSSOTicket(state.ssoInfo.serverUrl,{ 'clientId': state.ssoInfo.clientId, 'token': state.token, }); if (res.status == 200) { let __service = encodeURIComponent((opt.serviceUrl.startsWith("http")?"":location.origin+(opt.serviceUrl.startsWith("/")?"":"/"))+opt.serviceUrl); let returnUrl = state.ssoInfo.serverUrl + (state.ssoInfo.serverUrl.endsWith("/")?"":"/")+"sso/remote-login?service=" + __service + "&ticket=" + res.dataPack; return returnUrl; //window.open(returnUrl, "_black"); } } return opt.serviceUrl; }, } } export default user
Show line notes below