// import axios from './common/httpAxios' import { request } from '@/server/common/request_helper' import { httpGET, httpPUT } from '@/server/common/httpFetch' import router from '@/router' import toast from '@/components/common/toasted' require('es6-promise').polyfill() require('isomorphic-fetch') export const tologin = user => { const opts = { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'username=' + user.loginName + '&password=' + user.password } return fetch(request('/loginData/api-u/sys/login'), opts) .then(res => res.json()) .then(json => { if (!json.code && json.access_token) { const loginedInfo = { access_token: json.token_type + ' ' + json.access_token, refresh_token: json.refresh_token } sessionStorage.setItem('expires_in', json.expires_in) sessionStorage.setItem('loginedInfo', JSON.stringify(loginedInfo)) if (user.rememberMe) { const { rememberMe, ...loginInfo } = user localStorage.setItem('loginInfo', JSON.stringify(loginInfo)) } getLoginUserData() toast({ type: 'success', message: '登录成功!' }) return true } else { sessionStorage.removeItem('menuInfo') sessionStorage.removeItem('loginedInfo') sessionStorage.removeItem('expires_in') sessionStorage.removeItem('userInfo') toast({ type: 'error', message: json.error_description && json.error_description !== '' ? json.error_description : '登陆失败!' }) } }) } // 退出 export const logout = str => { const token = sessionStorage.getItem('loginedInfo') && JSON.parse(sessionStorage.getItem('loginedInfo')).access_token const opts = { headers: { 'Content-Type': 'application/json', Accept: 'application/json', Authorization: token || '' } } return ( fetch(request('/loginData/api-u/sys/logout'), opts) // .then(res => res.json()) .then(json => { if (json.ok) { toast({ type: 'success', message: '退出成功!' }) sessionStorage.removeItem('menuInfo') sessionStorage.removeItem('loginedInfo') sessionStorage.removeItem('expires_in') sessionStorage.removeItem('userInfo') router.push({ path: '/login' }) } else { router.push({ path: '/login' }) toast({ type: 'warning', message: '抱歉退出失败!' }) } }) ) } // 获取户信息用 export const getLoginUserData = () => { return httpGET('/loginData/api-u/users/current').then(json => { if (!json.error) { sessionStorage.setItem('userInfo', JSON.stringify(json)) // toast({ // type: 'success', // message: '登录成功!' // }) /* 判断当前是否在登录页,如果在登录页 */ if (window.location.href.indexOf('/login') !== -1) { router.push({ path: '/', query: { is_login: true } }) } return json } }) } // 获取菜单数据 export const getMenuListData = data => { return httpGET('/data/api-u/sysmenus/me', { body: data }) } /** * @description 修改密码 * @param {string} id 用户id * @param {string} newPassword 新密码 * @param {string} oldPassword 旧密码 * @param {string} orgId 组织ID */ export const editPassword = body => { return httpPUT('data/api-u/users/password', { body, header: { 'Content-Type': 'application/x-www-form-urlencoded' } }) }