// 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'
|
}
|
})
|
}
|