router.beforeEach((to,from,next)=>{
if(to.meta.goLogin){
const item = localStorage.getItem('token')
if(item){
next()
}else{
next({
path:'/login',
})
}
}else{
next()
}
})
配置公共地址
export default{
prod:{
baseUrl:`https://www.liulongbin.top:8888`
},
test:{
baseUrl:`https://www.liulongbin.top:8888`
},
local:{
baseUrl:`https://www.liulongbin.top:8888`
}
}
封装axios
import axios from 'axios'
import evn from './evn.js'
import { Message} from 'element-ui'
const server = axios.create({
baseURL:`${evn.prod.baseUrl}/api/private/v1`,
timeout:5000
})
server.interceptors.request.use((config)=>{
if(config.url !== '/login'){
const token = localStorage.getItem('token')
if(token){
config.headers['Authorization'] = token
}
}
return config
},err=>{
return Promise.reject(err)
})
server.interceptors.response.use(res=>{
const resOK = [200,201,204]
if(resOK.includes(res.data.meta.status)){
Message({
message: res.data.meta.msg,
type: 'success'
})
return res.data.data
}
return Promise.reject('返回数据有误,请检查')
},err=>{
return Promise.reject(err)
})
export default server
封装项目接口
import request from './request'
import request from '../request'
const user = async function(data){
let {state} = await request({url:'/users',method:'get',data:data})
return state
}
const userAdd = async function(data){
let state = await request({url:'/users',method:'post',data:data})
return Promise.resolve(state)
}
const userChange = async function(data){
let state = await request({url:`users/:${data.uId}/state/:${data.type}`,method:'post'})
return Promise.resolve(state)
}
export{
user,
userAdd,
userChange
}