parent
18a5adc925
commit
e054022c55
14 changed files with 418 additions and 220 deletions
@ -1,4 +1,4 @@ |
||||
# 变量必须以 VITE_ 为前缀才能暴露给外部读取 |
||||
NODE_ENV = 'development' |
||||
VITE_APP_TITLE = '大屏数据' |
||||
VITE_APP_BASE_API = 'http://10.115.6.28:18083/' |
||||
VITE_APP_TITLE = '实验仿真' |
||||
VITE_APP_BASE_API = '//localhost:16066/jeecg-boot' |
@ -1,2 +1,14 @@ |
||||
import request from '@/utils/request' |
||||
|
||||
export const login = (data: any) => { |
||||
return request({ |
||||
url: '/sys/login', |
||||
method: 'post', |
||||
data |
||||
}) |
||||
} |
||||
export const getCode = (time: any) => { |
||||
return request({ |
||||
url: '/sys/randomImage/' + time, |
||||
}) |
||||
} |
@ -0,0 +1,23 @@ |
||||
import router from "./router"; |
||||
import userStore from "./store/modules/user"; |
||||
import { getToken } from "./utils/auth"; |
||||
import pinia from "./store"; |
||||
const store = userStore(pinia); |
||||
router.beforeEach((to: any, from: any, next: any) => { |
||||
if (to.path === "/login") { |
||||
if (store.token) { |
||||
next("/"); |
||||
} else { |
||||
next(); |
||||
} |
||||
// next();
|
||||
} else { |
||||
const token = getToken(); |
||||
if (token) { |
||||
next(); |
||||
} else { |
||||
next("/login"); |
||||
} |
||||
} |
||||
}); |
||||
export default router; |
@ -1,14 +1,31 @@ |
||||
import { defineStore } from "pinia"; |
||||
import { getToken } from "@/utils/auth"; |
||||
import { getToken,setToken } from "@/utils/auth"; |
||||
import { login } from "@/api"; |
||||
import { ElMessage } from "element-plus"; |
||||
const userStore = defineStore("userStore", { |
||||
state: () => ({ |
||||
token: getToken(), |
||||
userInfo: {}, |
||||
}), |
||||
actions: { |
||||
async logIn(){ |
||||
|
||||
async logIn(form: any) { |
||||
console.log(form); |
||||
const res: any = await login(form); |
||||
// if(res.code === 500) return ElMessage.error(res.msg)
|
||||
if(res.code !== 200) { |
||||
ElMessage.error(res.msg) |
||||
return false |
||||
} |
||||
this.token = res.result.token; |
||||
this.userInfo = res.result.userInfo; |
||||
setToken(this.token); |
||||
console.log(res); |
||||
return true |
||||
}, |
||||
clearStatus() { |
||||
this.token = ""; |
||||
this.userInfo = {}; |
||||
}, |
||||
}, |
||||
}); |
||||
export default userStore; |
||||
|
@ -1,23 +1,38 @@ |
||||
// 引入第三方请求库axios
|
||||
import axios from 'axios' |
||||
import axios from "axios"; |
||||
import pinia from "@/store"; |
||||
import { ElMessage } from "element-plus"; |
||||
|
||||
import userStore from "@/store/modules/user"; |
||||
// 创建axios实例
|
||||
const server = axios.create({ |
||||
baseURL: import.meta.env.VITE_APP_BASE_API, |
||||
timeout:10000, |
||||
}) |
||||
timeout: 30000, |
||||
}); |
||||
// 创建请求拦截器
|
||||
|
||||
server.interceptors.request.use((config) => { |
||||
return config |
||||
const useuserStore = userStore(pinia); |
||||
|
||||
}) |
||||
config.headers.Authorization = useuserStore.token; |
||||
config.headers["x-access-token"] = useuserStore.token; |
||||
return config; |
||||
}); |
||||
// 创建相应拦截器
|
||||
server.interceptors.response.use((response:any) => { |
||||
if(response.status === 200){ |
||||
return response.data |
||||
server.interceptors.response.use((response) => { |
||||
if (response.data.code === 401) { |
||||
const useuserStore = userStore(pinia); |
||||
|
||||
// useuserStore.clearStatus();
|
||||
// return Promise.reject(response);
|
||||
} |
||||
if (response.data.code === 412) { |
||||
ElMessage.error(response.data.message); |
||||
return Promise.reject(response); |
||||
} |
||||
// return response
|
||||
}) |
||||
return response.data; |
||||
}); |
||||
|
||||
// 暴露axios实例
|
||||
|
||||
export default server |
||||
export default server; |
||||
|
Loading…
Reference in new issue