请求优化

This commit is contained in:
bob
2025-03-08 19:13:48 +08:00
parent 69d8015c5a
commit 2df87f5fb1
8 changed files with 28 additions and 26 deletions

View File

@@ -1,13 +1,13 @@
ENV = 'demo-dev' ENV = 'demo-dev'
# REST API地址 # REST API地址
VITE_BASE_URL = '/api' # 配合vite.config.js中的代理配置解决跨域问题 VITE_RESTAPI_URL = '/api' # 配合vite.config.js中的代理配置解决跨域问题
# 本地开发OSS对象服务跨域代理标识 # 本地开发OSS对象服务跨域代理标识
VITE_OSS_CORS_FLAG = '/oss/' # 本地开发需要在vite.config.js中配置代理 VITE_OSS_CORS_FLAG = '/oss/' # 本地开发需要在vite.config.js中配置代理
# ws地址 # ws地址
VITE_WS_URL = 'ws://localhost:8080/ws' VITE_WS_URL = '/ws'
# title # title
VITE_TITLE = 'Open AnyLink(开发环境)' VITE_TITLE = 'Open AnyLink(开发环境)'

View File

@@ -1,13 +1,13 @@
ENV = 'demo-prod' ENV = 'demo-prod'
# REST API地址 # REST API地址
VITE_BASE_URL = 'https://open-anylink.com/api/' VITE_RESTAPI_URL = '/api/'
# 本地开发OSS对象服务跨域代理标识 # 本地开发OSS对象服务跨域代理标识
VITE_OSS_CORS_FLAG = '' # 生产环境不用配置代理在OSS控制台的bucket下设置跨域来源即可 VITE_OSS_CORS_FLAG = '' # 生产环境不用配置代理在OSS控制台的bucket下设置跨域来源即可
# ws地址 # ws地址
VITE_WS_URL = 'wss://open-anylink.com/ws' VITE_WS_URL = '/ws'
# title # title
VITE_TITLE = 'Open AnyLink' VITE_TITLE = 'Open AnyLink'

View File

@@ -1,13 +1,13 @@
ENV = 'development' ENV = 'development'
# REST API地址 # REST API地址
VITE_BASE_URL = '/api' # 配合vite.config.js中的代理配置解决跨域问题 VITE_RESTAPI_URL = '/api' # 配合vite.config.js中的代理配置解决跨域问题
# 本地开发OSS对象服务跨域代理标识 # 本地开发OSS对象服务跨域代理标识
VITE_OSS_CORS_FLAG = '/oss/' # 本地开发需要在vite.config.js中配置代理 VITE_OSS_CORS_FLAG = '/oss/' # 本地开发需要在vite.config.js中配置代理
# ws地址 # ws地址
VITE_WS_URL = 'ws://localhost:8080/ws' VITE_WS_URL = '/ws'
# title # title
VITE_TITLE = 'Open AnyLink(开发环境)' VITE_TITLE = 'Open AnyLink(开发环境)'

View File

@@ -1,13 +1,13 @@
ENV = 'production' ENV = 'production'
# REST API地址 # REST API地址
VITE_BASE_URL = 'https://open-anylink.com/api/' VITE_RESTAPI_URL = '/api/'
# 本地开发OSS对象服务跨域代理标识 # 本地开发OSS对象服务跨域代理标识
VITE_OSS_CORS_FLAG = '' # 生产环境不用配置代理在OSS控制台的bucket下设置跨域来源即可 VITE_OSS_CORS_FLAG = '' # 生产环境不用配置代理在OSS控制台的bucket下设置跨域来源即可
# ws地址 # ws地址
VITE_WS_URL = 'wss://open-anylink.com/ws' VITE_WS_URL = '/ws'
# title # title
VITE_TITLE = 'Open AnyLink' VITE_TITLE = 'Open AnyLink'

View File

@@ -6,7 +6,7 @@ import { v4 as uuidv4 } from 'uuid'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import { CLIENT_TYPE, CLIENT_NAME, CLIENT_VERSION } from '@/const/userConst' import { CLIENT_TYPE, CLIENT_NAME, CLIENT_VERSION } from '@/const/userConst'
const baseURL = import.meta.env.VITE_BASE_URL const baseURL = import.meta.env.VITE_RESTAPI_URL
const noTokenReqList = [ const noTokenReqList = [
'/user/getCaptcha', '/user/getCaptcha',
'/user/verifyCaptcha', '/user/verifyCaptcha',

View File

@@ -170,23 +170,24 @@ router.beforeEach(async (to, from, next) => {
const userData = userStore() const userData = userStore()
const isLogin = await userData.isLogin() const isLogin = await userData.isLogin()
// 如果没有登录,且访问的是非登录页,拦截到登录 if (!isLogin) {
if (!isLogin && to.path !== '/login') { if (to.path === '/login') {
next('/login') next()
return } else if (router.getRoutes().some((route) => route.path === to.path)) {
} next('/login')
} else {
// 如果有登录,且访问的是登录页,拦截到首页 // 其他请求一律转到/根请求
if (isLogin && to.path === '/login') { next('/')
next('/') }
return
}
// 检查是否是其他请求(除了已定义的路由之外的请求)
if (!router.getRoutes().some((route) => route.path === to.path)) {
next('/')
} else { } else {
next() if (to.path === '/login') {
next('/message')
} else if (router.getRoutes().some((route) => route.path === to.path)) {
next()
} else {
// 其他请求一律转到/根请求
next('/')
}
} }
}) })

View File

@@ -133,7 +133,7 @@ const login = async () => {
userData.setIsRemenberMe(isRemenberMe.value) userData.setIsRemenberMe(isRemenberMe.value)
await userData.updateUser() //这里要用await确保拿到结果了再跳转否则其他页面依赖user的不能及时得到更新 await userData.updateUser() //这里要用await确保拿到结果了再跳转否则其他页面依赖user的不能及时得到更新
ElMessage.success('登录成功') ElMessage.success('登录成功')
router.push('/') router.push('/message')
}) })
.catch(() => { .catch(() => {
formModel.value.password = '' formModel.value.password = ''

View File

@@ -7,6 +7,7 @@ import svgLoader from 'vite-svg-loader'
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig({ export default defineConfig({
plugins: [vue(), svgLoader()], plugins: [vue(), svgLoader()],
base: '/im',
resolve: { resolve: {
alias: { alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)) '@': fileURLToPath(new URL('./src', import.meta.url))