刘翔宇-旅管家 3 years ago
parent 18d94bc663
commit 312b662c0a

@ -1,42 +1,47 @@
import request from '@/utils/request' import request from '@/utils/request'
export function login(data) { export function login(data) {
return request({ return request({
url: '/api/admin/auth/login', url: '/api/admin/auth/login',
method: 'post', method: 'post',
data data
}) })
} }
export function loginOss(data) { export function loginOss(data) {
return request({ return request({
url: '/api/admin/auth/oss-login', url: '/api/admin/auth/oss-login',
method: 'post', method: 'post',
data data,
}) noloading: true
} })
}
export function getInfo(token) {
return request({ export function getInfo(token) {
url: '/api/admin/auth/me', return request({
method: 'post', url: '/api/admin/auth/me',
params: { token } method: 'post',
}) params: {
} token
}
export function logout() { })
return request({ }
url: '/api/admin/auth/logout',
method: 'post' export function logout() {
}) return request({
} url: '/api/admin/auth/logout',
method: 'post'
export function getAuthMenu(token) { })
return request({ }
url: '/api/admin/auth/permissions',
method: 'get', export function getAuthMenu(token) {
params: { token } return request({
}) url: '/api/admin/auth/permissions',
method: 'get',
params: {
token
}
})
} }

@ -1,94 +1,108 @@
import axios from 'axios' import axios from 'axios'
import { MessageBox, Message ,Loading} from 'element-ui' import {
import store from '@/store' MessageBox,
import { getToken } from '@/utils/auth' Message,
let loading; Loading
} from 'element-ui'
// create an axios instance import store from '@/store'
const service = axios.create({ import {
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url getToken
// withCredentials: true, // send cookies when cross-domain requests } from '@/utils/auth'
timeout: 500000 // request timeout let loading;
})
// create an axios instance
// request interceptor const service = axios.create({
service.interceptors.request.use( baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
config => { // withCredentials: true, // send cookies when cross-domain requests
// do something before request is sent timeout: 500000 // request timeout
loading = Loading.service({ })
lock:true,
background:"rgba(0,0,0,0.4)", // request interceptor
text:"正在加载中..." service.interceptors.request.use(
}) config => {
if (store.getters.token) {
// let each request carry token if (!config.noloading) {
// ['X-Token'] is a custom headers key // do something before request is sent
// please modify it according to the actual situation loading = Loading.service({
//config.headers['X-Token'] = getToken(); lock: true,
background: "rgba(0,0,0,0.4)",
config.headers['Authorization'] ="Bearer "+getToken() text: "正在加载中..."
} })
return config }
}, if (store.getters.token) {
error => { // let each request carry token
// do something with request error // ['X-Token'] is a custom headers key
console.log(error) // for debug // please modify it according to the actual situation
return Promise.reject(error) //config.headers['X-Token'] = getToken();
}
) config.headers['Authorization'] = "Bearer " + getToken()
}
// response interceptor return config
service.interceptors.response.use( },
/** error => {
* If you want to get http information such as headers or status // do something with request error
* Please return response => response console.log(error) // for debug
*/ return Promise.reject(error)
}
/** )
* Determine the request status by custom code
* Here is just an example // response interceptor
* You can also judge the status by HTTP Status Code service.interceptors.response.use(
*/ /**
response => { * If you want to get http information such as headers or status
loading.close() * Please return response => response
const res = response.data */
// if the custom code is not 20000, it is judged as an error. /**
if (res.errcode) { * Determine the request status by custom code
Message({ * Here is just an example
message: res.errmsg || 'Error', * You can also judge the status by HTTP Status Code
type: 'error', */
duration: 5 * 1000 response => {
}) if (loading) {
loading.close()
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; }
if (res.errcode === 50008 || res.errcode === 50012 || res.errcode === 50014) { const res = response.data
// to re-login
MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', { // if the custom code is not 20000, it is judged as an error.
confirmButtonText: 'Re-Login', if (res.errcode) {
cancelButtonText: 'Cancel', Message({
type: 'warning' message: res.errmsg || 'Error',
}).then(() => { type: 'error',
store.dispatch('user/resetToken').then(() => { duration: 5 * 1000
location.reload() })
})
}) // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
} if (res.errcode === 50008 || res.errcode === 50012 || res.errcode === 50014) {
return Promise.reject(new Error(res.errmsg || 'Error')) // to re-login
} else { MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again',
return res 'Confirm logout', {
} confirmButtonText: 'Re-Login',
}, cancelButtonText: 'Cancel',
error => { type: 'warning'
loading.close() }).then(() => {
console.log('err' + error) // for debug store.dispatch('user/resetToken').then(() => {
Message({ location.reload()
message: error.message, })
type: 'error', })
duration: 5 * 1000 }
}) return Promise.reject(new Error(res.errmsg || 'Error'))
return Promise.reject(error) } else {
} return res
) }
},
error => {
if (loading) {
loading.close()
}
console.log('err' + error) // for debug
Message({
message: error.message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
)
export default service export default service

@ -1,5 +1,5 @@
<template> <template>
<div class="login-container"> <div class="login-container" v-if="showLogin">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on" <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on"
label-position="left"> label-position="left">
@ -31,6 +31,7 @@
</el-form> </el-form>
</div> </div>
<div v-else class="login-container-w"></div>
</template> </template>
<script> <script>
@ -56,6 +57,7 @@
} }
} }
return { return {
showLogin: false,
loginForm: { loginForm: {
username: '', username: '',
password: '' password: ''
@ -76,9 +78,17 @@
passwordType: 'password', passwordType: 'password',
redirect: undefined redirect: undefined
} }
},
beforeCreate() {
}, },
created() { created() {
var query = this.$route.query; var query = this.$route.query;
if (query.tp) {
this.showLogin = false;
} else {
this.showLogin = true;
}
if (query.token && query.userid && query.tp) { if (query.token && query.userid && query.tp) {
this.loading = true this.loading = true
this.$store.dispatch('user/loginskip', { this.$store.dispatch('user/loginskip', {
@ -189,6 +199,13 @@
$dark_gray:#889aa4; $dark_gray:#889aa4;
$light_gray:#eee; $light_gray:#eee;
.login-container-w {
min-height: 100%;
width: 100%;
background-color: #ffffff;
overflow: hidden;
}
.login-container { .login-container {
min-height: 100%; min-height: 100%;
width: 100%; width: 100%;

Loading…
Cancel
Save