// import axios from './common/httpAxios' import { request } from '@/server/common/request_helper' import { httpGET } 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) => { let opts = { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'username=' + user.loginName + '&password=' + user.password } return fetch(request('/data/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)) getLoginUserData() 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) => { let token = sessionStorage.getItem('loginedInfo') && JSON.parse(sessionStorage.getItem('loginedInfo')).access_token let opts = { headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': token || '' } } return fetch(request('/data/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('/data/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 }) }