UNPKG

yinghe-lowcode-zln

Version:

基于vue、ant-design-vue,datagrid的低代码平台

210 lines (201 loc) 7.05 kB
import Vue from 'vue' import { ctos3Api } from '../../../packages/api/manage.js' import { login, loginSys, getInfo, logout } from '@/api/material/login' import { ACCESS_TOKEN, USER_NAME, OPERATOR, EXPORT_ID, COMPANY_NAME, USER_INFO, USER_AUTH, SYS_BUTTON_AUTH, ORG_ID, SEARCH_ITEMS_LIST } from '@/store/mutation-types' import { welcome, requestBuilder } from '../../../packages/utils/util' const user = { state: { token: '', username: '', realname: '', welcome: '祝你开心每一天!', permissionList: [], info: {} }, 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 } }, actions: { // 登录 Login({ commit }, userInfo) { return new Promise((resolve, reject) => { return loginSys(requestBuilder('login', userInfo)).then(response => { if (response.code === '0000') { const expires = 7 * 24 * 60 * 60 * 1000 const result = response.result || {} const data = result.data || {} const userNo = data.loginName || '' const token = result.token || '' const userName = data.userName || '' Vue.ls.set(ACCESS_TOKEN, token, expires) Vue.ls.set(OPERATOR, userNo, expires) Vue.ls.set(EXPORT_ID, response.result.data.companyCod, expires) Vue.ls.set(USER_NAME, userName, expires) Vue.ls.set(COMPANY_NAME, response.result.data.companyName, expires) localStorage.setItem(ACCESS_TOKEN, JSON.stringify({ 'value': token }), 7 * 24 * 60 * 60 * 1000) Vue.ls.set(USER_INFO, response.result.data, 7 * 24 * 60 * 60 * 1000) commit('SET_TOKEN', token) commit('SET_INFO', response.result.data) commit('SET_NAME', { username:userName, realname: userName, welcome: welcome() }) // commit('SET_AVATAR', userInfo.avatar) resolve(response) } else { reject(response) } }).catch(error => { reject(error) }) }) }, // 获取用户信息 GetInfo({ commit }, userInfo) { return getInfo(requestBuilder('getInfo', userInfo)).then(response => { const result = response.result || {} // const user = response.result.user const roles = response.result.roles const avatar = result.avatar || '' const orgName = result.orgName || '' const dataFlag = result.dataFlag || '' const personName = result.user.userName || '' const departmentName = result.departmentName || '' const departmentSysId = result.departmentSysId || '' if (roles && roles.length > 0) { commit('SET_ROLES', roles) sessionStorage.setItem(SYS_BUTTON_AUTH,JSON.stringify(response.result.permissions)) commit('SET_PERMISSIONS', response.result.permissions) commit('SET_BUTTONS', response.result.buttonMap) commit('SET_NAME', { name: personName, welcome: welcome() }) commit('SET_AVATAR', avatar) commit('SET_INFO', result) Vue.ls.set(ORG_NAME, orgName) Vue.ls.set(DEPT_ID, departmentSysId) Vue.ls.set(CURRENT_ORG_ID,result.user.orgId) Vue.ls.set(DEPT_NAME, departmentName) Vue.ls.set(DATA_FLAG, dataFlag) return Promise.resolve(response) } else { return Promise.reject(new Error(response.message || '获取用户失败!')) } // 角色及权限校验 /* if (role && permissions.length > 0) { permissions.map(per => { if (per.actionEntitySet && per.actionEntitySet.length > 0) { per.actionList = per.actionEntitySet.map(action => { return action.action }) } }) role.permissionList = permissions.map(permission => { return permission.permissionId }) commit('SET_NAME', { name: personName, welcome: welcome() }) commit('SET_AVATAR', avatar) commit('SET_ROLES', role) commit('SET_INFO', result) Vue.ls.set(ORG_NAME, orgName) Vue.ls.set(DEPT_ID, departmentSysId) Vue.ls.set(DEPT_NAME, departmentName) Vue.ls.set(DATA_FLAG, dataFlag) return Promise.resolve(response) } else { return Promise.reject(new Error(response.message || '获取用户失败!')) } */ }) }, // 获取用户信息 GetPermissionList({ commit }) { return new Promise((resolve, reject) => { const params = {} params.serviceName = 'userService' params.methodName = 'getUserPermissionByToken' params.rpcParams = [] ctos3Api(params).then(response => { const menuData = response.responseData.resultData.menu const authData = response.responseData.resultData.auth const allAuthData = response.responseData.resultData.auth // 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) { menuData.forEach((item, index) => { if (item['children']) { item['redirect'] = null const hasChildrenMenu = item['children'].filter((i) => { return !i.hidden || i.hidden === false }) if (hasChildrenMenu === null || hasChildrenMenu.length === 0) { item['hidden'] = true } } }) commit('SET_PERMISSIONLIST', menuData) } else { // reject('getPermissionList: permissions must be a non-null array !') } resolve(response) }).catch(error => { reject(error) }) }) }, // 登出 Logout({ dispatch, commit, state }) { return logout(requestBuilder('loginout', {})) .catch(() => { }) .finally(() => { commit('SET_TOKEN', '') commit('SET_ROLES', []) commit('SET_PERMISSIONS', []) commit('SET_BUTTONS', {}) dispatch('DelAllTags', []) Vue.ls.remove("system") Vue.ls.remove(ACCESS_TOKEN) Vue.ls.remove(OPERATOR) Vue.ls.remove(ORG_ID) localStorage.removeItem(SEARCH_ITEMS_LIST) }) } } } export default user