parent
18a5adc925
commit
e054022c55
14 changed files with 418 additions and 220 deletions
@ -1,4 +1,4 @@ |
|||||||
# 变量必须以 VITE_ 为前缀才能暴露给外部读取 |
# 变量必须以 VITE_ 为前缀才能暴露给外部读取 |
||||||
NODE_ENV = 'development' |
NODE_ENV = 'development' |
||||||
VITE_APP_TITLE = '大屏数据' |
VITE_APP_TITLE = '实验仿真' |
||||||
VITE_APP_BASE_API = 'http://10.115.6.28:18083/' |
VITE_APP_BASE_API = '//localhost:16066/jeecg-boot' |
@ -1,2 +1,14 @@ |
|||||||
import request from '@/utils/request' |
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 { 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", { |
const userStore = defineStore("userStore", { |
||||||
state: () => ({ |
state: () => ({ |
||||||
token: getToken(), |
token: getToken(), |
||||||
userInfo: {}, |
userInfo: {}, |
||||||
}), |
}), |
||||||
actions: { |
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; |
export default userStore; |
||||||
|
@ -1,23 +1,38 @@ |
|||||||
// 引入第三方请求库axios
|
// 引入第三方请求库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实例
|
// 创建axios实例
|
||||||
const server = axios.create({ |
const server = axios.create({ |
||||||
baseURL:import.meta.env.VITE_APP_BASE_API, |
baseURL: import.meta.env.VITE_APP_BASE_API, |
||||||
timeout:10000, |
timeout: 30000, |
||||||
}) |
}); |
||||||
// 创建请求拦截器
|
// 创建请求拦截器
|
||||||
|
|
||||||
server.interceptors.request.use((config) => { |
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) => { |
server.interceptors.response.use((response) => { |
||||||
if(response.status === 200){ |
if (response.data.code === 401) { |
||||||
return response.data |
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实例
|
// 暴露axios实例
|
||||||
|
|
||||||
export default server |
export default server; |
||||||
|
Loading…
Reference in new issue