| | |
| | | import {Message} from 'element-ui' |
| | | import {setStore, getStore} from '@/util/store' |
| | | import {isURL, validatenull} from '@/util/validate' |
| | | import {deepClone,queryStringToObject} from '@/util/util' |
| | | import {deepClone, queryStringToObject} from '@/util/util' |
| | | import website from '@/config/website' |
| | | import {loginByUsername, loginBySocial, loginBySso, getUserInfo, logout, refreshToken, getButtons} from '@/api/user' |
| | | import {loginByUsername, loginBySocial, loginBySso, getUserInfo, logout, refreshToken, getButtons,getUserPhoto} from '@/api/user' |
| | | import {getTopMenu, getRoutes} from '@/api/system/menu' |
| | | import md5 from 'js-md5' |
| | | import func from "@/util/func"; |
| | | |
| | | |
| | | function addPath(ele, first) { |
| | |
| | | const propsDefault = { |
| | | label: propsConfig.label || 'name', |
| | | path: propsConfig.path || 'path', |
| | | icon: propsConfig.icon || 'icon', |
| | | children: propsConfig.children || 'children' |
| | | icon: propsConfig.icon || 'source', |
| | | children: propsConfig.children || 'children', |
| | | } |
| | | const icon = ele[propsDefault.icon]; |
| | | ele[propsDefault.icon] = validatenull(icon) ? menu.iconDefault : icon; |
| | |
| | | function updateCode(items) { |
| | | items.forEach(item => { |
| | | item.pathValue = item.path; |
| | | item.path = '/' + item.code; |
| | | item.path = '/' + item.id; |
| | | item.query = {}; // 初始化 item.query |
| | | if(item.pathValue.indexOf('?')!=-1) { |
| | | if (item.pathValue.indexOf('?') != -1) { |
| | | item.query = queryStringToObject(item.pathValue) |
| | | } |
| | | if (item.children && item.children.length > 0) { |
| | |
| | | //根据用户名登录 |
| | | LoginByUsername({commit}, userInfo) { |
| | | return new Promise((resolve, reject) => { |
| | | loginByUsername(userInfo.deptId, userInfo.roleId, userInfo.username, userInfo.password, userInfo.type, userInfo.key,).then(res => { |
| | | let passwordDes = func.encryptData(userInfo.password, 'daliantan0v0vcip') |
| | | loginByUsername(userInfo.deptId, userInfo.roleId, userInfo.username, passwordDes, userInfo.type, userInfo.key,).then(res => { |
| | | const data = res.data; |
| | | if (data.code === 200) { |
| | | if (data.obj.failCode === 'loginSuccess' || data.obj.failCode === 'passwordRemainDay') { |
| | | commit('SET_TOKEN', data.obj.tokenVO.accessToken); |
| | | commit('SET_REFRESH_TOKEN', data.obj.tokenVO.accessToken); |
| | | // commit('SET_TENANT_ID', data.tenant_id); |
| | | // commit('SET_USER_INFO', data.obj.sessionInfo); 用户信息 |
| | | commit('DEL_ALL_TAG'); |
| | | commit('CLEAR_LOCK'); |
| | | } else { |
| | | Message({ |
| | | message: data.msg, |
| | | type: 'error' |
| | | |
| | | getUserInfo().then((res) => { |
| | | const data = res.data; |
| | | commit('SET_USER_INFO', data.obj); |
| | | }).catch(err => { |
| | | console.log(err) |
| | | }) |
| | | } |
| | | resolve(); |
| | | resolve(data); |
| | | }).catch(error => { |
| | | // console.log(error) |
| | | reject(error); |
| | | }) |
| | | }) |
| | |
| | | commit('CLEAR_LOCK'); |
| | | } |
| | | resolve(); |
| | | }) |
| | | }) |
| | | }, |
| | | //获取用户信息 |
| | | GetUserInfo({commit}) { |
| | | return new Promise((resolve, reject) => { |
| | | getUserInfo().then((res) => { |
| | | const data = res.data.data; |
| | | commit('SET_ROLES', data.roles); |
| | | resolve(data); |
| | | }).catch(err => { |
| | | reject(err); |
| | | }) |
| | | }) |
| | | }, |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | //获取用户信息 |
| | | GetUserInfo({commit}) { |
| | | return new Promise((resolve, reject) => { |
| | | getUserInfo().then((res) => { |
| | | const data = res.data.data; |
| | | console.log('user', res) |
| | | // commit('SET_USER_INFO', data.roles); |
| | | resolve(data); |
| | | }).catch(err => { |
| | | reject(err); |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | //获取系统菜单 |
| | | GetMenu({commit, dispatch}, topMenuId) { |
| | | return new Promise(resolve => { |
| | |
| | | |
| | | commit('SET_MENU_ALL', menu) |
| | | commit('SET_MENU', menu) |
| | | //dispatch('GetButtons');s |
| | | dispatch('GetButtons'); |
| | | resolve(menu) |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | //获取系统按钮 |
| | | GetButtons({commit}) { |
| | | return new Promise((resolve) => { |
| | |
| | | state.tenantId = tenantId; |
| | | setStore({name: 'tenantId', content: state.tenantId}) |
| | | }, |
| | | // SET_USER_INFO: (state, userInfo) => { |
| | | // getUserPhoto().then(res => { |
| | | // userInfo.avatar = URL.createObjectURL(res.data); |
| | | // console.log('userInfo',userInfo) |
| | | // }) |
| | | // state.userInfo = userInfo; |
| | | // setStore({name: 'userInfo', content: state.userInfo}) |
| | | // }, |
| | | SET_USER_INFO: (state, userInfo) => { |
| | | if (validatenull(userInfo.avatar)) { |
| | | userInfo.avatar = "/img/bg/img-logo.png"; |
| | | } |
| | | state.userInfo = userInfo; |
| | | setStore({name: 'userInfo', content: state.userInfo}) |
| | | getUserPhoto().then(res => { |
| | | // 将 Blob 转换为 Base64 |
| | | const reader = new FileReader(); |
| | | reader.onloadend = (result) => { |
| | | userInfo.avatar = reader.result; // 存储 Base64 字符串 |
| | | |
| | | // 更新状态并存储到 localStorage |
| | | state.userInfo = userInfo; |
| | | setStore({ name: 'userInfo', content: state.userInfo }); |
| | | }; |
| | | reader.readAsDataURL(res.data); // 调用reader方法 |
| | | }); |
| | | }, |
| | | SET_ROLES: (state, roles) => { |
| | | state.roles = roles; |
| | | }, |
| | | |
| | | SET_PERMISSION: (state, permission) => { |
| | | let permission_new = {}; |
| | | permission.forEach(item => { |
| | | let children = {}; |
| | | if (item.children && item.children.length > 0) { |
| | | item.children.forEach(child => { |
| | | // const childObject = { |
| | | // [child.code]: true, |
| | | // source: child.source |
| | | // }; |
| | | // Object.assign(children, childObject); |
| | | children[child.code] = { |
| | | source: child.source |
| | | } |
| | | }); |
| | | } |
| | | Vue.set(permission_new, item.id, children); |
| | | }); |
| | | state.permission = permission_new; |
| | | setStore({name: "permission", content: permission_new}); |
| | | }, |
| | | } |
| | | |
| | | } |
| | | export default user |