Browse Source

refactor(src): 全局拦截过期

dev
lihui 4 days ago
parent
commit
f2ab8102c4
  1. 39
      src/main.ts
  2. 17
      src/router/index.js
  3. 14
      src/util/request.js

39
src/main.ts

@ -12,27 +12,32 @@ import VxeUI from 'vxe-pc-ui'
import 'vxe-pc-ui/lib/style.css'
import VxeUITable from 'vxe-table'
import 'vxe-table/lib/style.css'
const a = createApp(App)
import { useAdminStore } from '../src/store'
// 修正导入路径
import { useAdminStore } from './store'
import request from "@/util/request";
const app = createApp(App)
const pinia = createPinia()
// 全局注册 ElementPlus 图标
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
a.component(key, component)
app.component(key, component)
}
const pinia = createPinia()
// 使用 ElementPlus 和路由器
a.use(ElementPlus, {
locale: zhCn
// 先注册组件再挂载
app.component('downloadExcel', JsonExcel)
app.config.globalProperties.$http = request
// 使用各种插件
app.use(ElementPlus, {
locale: zhCn
})
.use(router)
.use(VxeUI)
.use(VxeUITable)
.use(pinia)
.mount('#app')
.use(router)
.use(VxeUI)
.use(VxeUITable)
.use(pinia)
.mount('#app')
// 恢复localStorage数据
// 在 app 挂载之后再使用 store
const adminStore = useAdminStore()
adminStore.initFromLocalStorage()
// 注册 JsonExcel 组件
a.component('downloadExcel', JsonExcel)
adminStore.initFromLocalStorage()

17
src/router/index.js

@ -287,23 +287,6 @@ const router = createRouter({
routes
});
// 全局拦截器:token过期处理
axios.interceptors.response.use(
response => response,
error => {
if (error.response && error.response.status === 401) {
localStorage.removeItem('token');
router.push({
name: 'login',
query: {
machineId: localStorage.getItem('machineId'),
expired: true
}
});
}
return Promise.reject(error);
}
);
// 工具函数:从菜单树提取所有权限ID
const getAllPermissionIds = (menuTree) => {

14
src/util/request.js

@ -44,13 +44,13 @@ service.interceptors.response.use(
return response
},
error => {
// const { response } = error
// if (response && response.status === 401) {
// const machineId = localStorage.getItem('machineId')
// localStorage.removeItem('token')
// window.location.href = `/login?machineId=${machineId}`
// return Promise.resolve({ needsLogin: true })
// }
const { response } = error
if (response && response.status === 401) {
const machineId = localStorage.getItem('machineId')
localStorage.removeItem('token')
window.location.href = `#/login?machineId=${machineId}`
return Promise.resolve({ needsLogin: true })
}
return Promise.reject(error)
}
)

Loading…
Cancel
Save