刘翔宇-旅管家 3 years ago
parent 133c6a2c16
commit a406e0b3ba

@ -2,8 +2,8 @@
ENV = 'development' ENV = 'development'
# base api # base api
VUE_APP_DOMIAN=http://192.168.60.99:9003/ V#UE_APP_DOMIAN=http://192.168.60.99:9003/
#VUE_APP_DOMIAN=http://hdcontract.ali251.langye.net/ VUE_APP_DOMIAN=http://hdcontract.ali251.langye.net/
VUE_APP_BASE_API = '' VUE_APP_BASE_API = ''

@ -12,7 +12,8 @@ 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
}) })
} }

@ -1,95 +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_DOMIAN, // url = base url + request url getToken
// withCredentials: true, // send cookies when cross-domain requests } from '@/utils/auth'
timeout: 5000 // request timeout let loading;
})
// create an axios instance
// request interceptor const service = axios.create({
service.interceptors.request.use( baseURL: process.env.VUE_APP_DOMIAN, // 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) { if (!config.noloading) {
// let each request carry token // do something before request is sent
// ['X-Token'] is a custom headers key loading = Loading.service({
// please modify it according to the actual situation lock: true,
//config.headers['X-Token'] = getToken(); background: "rgba(0,0,0,0.4)",
text: "正在加载中..."
config.headers['Authorization'] ="Bearer "+getToken() })
} }
return config if (store.getters.token) {
}, // let each request carry token
error => { // ['X-Token'] is a custom headers key
// do something with request error // please modify it according to the actual situation
console.log(error) // for debug //config.headers['X-Token'] = getToken();
return Promise.reject(error)
} config.headers['Authorization'] = "Bearer " + getToken()
) }
return config
// response interceptor },
service.interceptors.response.use( error => {
/** // do something with request error
* If you want to get http information such as headers or status console.log(error) // for debug
* Please return response => response return Promise.reject(error)
*/ }
)
/**
* Determine the request status by custom code // response interceptor
* Here is just an example service.interceptors.response.use(
* You can also judge the status by HTTP Status Code /**
*/ * If you want to get http information such as headers or status
response => { * Please return response => response
loading.close() */
const res = response.data
/**
// if the custom code is not 20000, it is judged as an error. * Determine the request status by custom code
if (res.errcode) { * Here is just an example
Message({ * You can also judge the status by HTTP Status Code
message: res.errmsg || 'Error', */
type: 'error', response => {
duration: 5 * 1000 if (loading) {
}) loading.close()
}
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; const res = response.data
if (res.errcode === 50008 || res.errcode === 50012 || res.errcode === 50014) {
// to re-login // if the custom code is not 20000, it is judged as an error.
MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', { if (res.errcode) {
confirmButtonText: 'Re-Login', Message({
cancelButtonText: 'Cancel', message: res.errmsg || 'Error',
type: 'warning' type: 'error',
}).then(() => { duration: 5 * 1000
store.dispatch('user/resetToken').then(() => { })
location.reload()
}) // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
}) if (res.errcode === 50008 || res.errcode === 50012 || res.errcode === 50014) {
} // to re-login
return Promise.reject(new Error(res.errmsg || 'Error')) MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again',
} else { 'Confirm logout', {
return res confirmButtonText: 'Re-Login',
} cancelButtonText: 'Cancel',
}, type: 'warning'
error => { }).then(() => {
loading.close() store.dispatch('user/resetToken').then(() => {
console.log('err' + error) // for debug location.reload()
Message({ })
message: error.message, })
type: 'error', }
duration: 5 * 1000 return Promise.reject(new Error(res.errmsg || 'Error'))
}) } else {
return Promise.reject(error) 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">
@ -12,7 +12,7 @@
<svg-icon icon-class="user" /> <svg-icon icon-class="user" />
</span> </span>
<el-input ref="username" v-model="loginForm.username" placeholder="请输入账号" name="username" type="text" <el-input ref="username" v-model="loginForm.username" placeholder="请输入账号" name="username" type="text"
tabindex="1" auto-complete="on" /> tabindex="1" auto-complete="off" />
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="password">
@ -20,8 +20,8 @@
<svg-icon icon-class="password" /> <svg-icon icon-class="password" />
</span> </span>
<el-input :key="passwordType" ref="password" v-model="loginForm.password" :type="passwordType" <el-input :key="passwordType" ref="password" v-model="loginForm.password" :type="passwordType"
placeholder="请输入密码" name="password" tabindex="2" auto-complete="on" @keyup.enter.native="handleLogin" /> placeholder="请输入密码" name="password" tabindex="2" auto-complete="off" @keyup.enter.native="handleLogin" />
<!-- <span class="show-pwd" @click="showPwd"> <!-- <span class="show-pwd" @click="showPwd">
<svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" /> <svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" />
</span> --> </span> -->
</el-form-item> </el-form-item>
@ -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: ''
@ -77,20 +79,18 @@
redirect: undefined redirect: undefined
} }
}, },
watch: { beforeCreate() {
$route: {
handler: function(route) {
this.redirect = route.query && route.query.redirect
},
immediate: true
}
}, },
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
console.log(query.token)
//this.$store.dispatch('user/logout')
this.$store.dispatch('user/loginskip', { this.$store.dispatch('user/loginskip', {
token: query.token, token: query.token,
tp: query.tp tp: query.tp
@ -105,6 +105,14 @@
}) })
} }
}, },
watch: {
$route: {
handler: function(route) {
this.redirect = route.query && route.query.redirect
},
immediate: true
}
},
methods: { methods: {
showPwd() { showPwd() {
if (this.passwordType === 'password') { if (this.passwordType === 'password') {
@ -119,11 +127,11 @@
handleLogin() { handleLogin() {
this.$refs.loginForm.validate(valid => { this.$refs.loginForm.validate(valid => {
if (valid) { if (valid) {
this.loading = true; this.loading = true
this.$store.dispatch('user/login', this.loginForm).then(() => { this.$store.dispatch('user/login', this.loginForm).then(() => {
console.log(this.redirect) console.log(this.redirect)
this.$router.push({ this.$router.push({
path: '/' path: this.redirect || '/'
}) })
this.loading = false this.loading = false
}).catch(() => { }).catch(() => {
@ -191,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