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

@ -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