diff --git a/apps/platform/package.json b/apps/platform/package.json index 86dd9a0..0fbf5da 100644 --- a/apps/platform/package.json +++ b/apps/platform/package.json @@ -54,7 +54,8 @@ "vue-types": "~5.1.3", "vue-virtual-scroller": "2.0.0-beta.8", "wujie": "^1.0.25", - "xlsx": "~0.18.5" + "xlsx": "~0.18.5", + "@sy/unified-login": "1.0.29" }, "devDependencies": { "@commitlint/cli": "~19.5.0", diff --git a/apps/platform/src/io/instance.ts b/apps/platform/src/io/instance.ts index dbe4256..0d091f7 100644 --- a/apps/platform/src/io/instance.ts +++ b/apps/platform/src/io/instance.ts @@ -1,41 +1,30 @@ import axios from 'axios'; -import { useUserStore } from '@/store/modules/user'; -import router from '@/router'; +// import { useUserStore } from '@/store/modules/user'; +// import router from '@/router'; +import appClient from '@/io/tianti'; + +console.log('appClient', appClient); + +// axios拦截器 +const { reqInterceptor, resInterceptor } = appClient.getInterceptor(); +console.log('reqInterceptor', reqInterceptor); +console.log('resInterceptor', resInterceptor); const baseApiUrl = import.meta.env.VITE_BASE_API_URL; // 创建独立实例 const instance = axios.create({ - baseURL: baseApiUrl, // 基础URL直接放在实例配置中 + baseURL: baseApiUrl, }); -// 请求拦截器改为使用实例 instance.interceptors.request.use( - (config) => { - // 可在此处添加统一请求头等配置 - return config; - }, - (error) => { - return Promise.reject(error); - }, + (config) => config, + (error) => Promise.reject(error), ); +instance.interceptors.request.use(reqInterceptor.fulfilled, reqInterceptor.rejected); -// 响应拦截器改为使用实例 -instance.interceptors.response.use( - (response) => { - // 如果响应数据中 code 为 -1,清空登录状态并跳转到登录页 - if (response?.data?.code === -1) { - const userStore = useUserStore(); - userStore.clearLoginStatus(); // 清空用户信息 - router.push('/login'); // 直接使用路由实例 - console.error('请求失败:', response.data.msg); - } - return response; - }, - (error) => { - return Promise.reject(error); - }, -); +// 响应拦截器 +instance.interceptors.response.use(resInterceptor.fulfilled, resInterceptor.rejected); // 导出实例 export default instance; diff --git a/apps/platform/src/io/tianti.ts b/apps/platform/src/io/tianti.ts new file mode 100644 index 0000000..5b0b44b --- /dev/null +++ b/apps/platform/src/io/tianti.ts @@ -0,0 +1,12 @@ +// @ts-ignore +import AxiosAppClient from '@sy/unified-login/es/app-client/axios'; + +export type Env = 'dev' | 'test' | 'pre' | 'prod'; + +const appClient = new AxiosAppClient({ + appKey: 'y-code', // 应用标识,不同项目不能一样 + env: 'prod', // dev:本地开发;test:测试;pre:预发布;prod:正式 + devBaseUrl: `https://localhost:${import.meta.env.VITE_PORT}`, // 应用开发环境地址 +}); + +export default appClient; diff --git a/apps/platform/src/layout/header/index.vue b/apps/platform/src/layout/header/index.vue index 3d9fc26..d4e39c7 100644 --- a/apps/platform/src/layout/header/index.vue +++ b/apps/platform/src/layout/header/index.vue @@ -33,10 +33,15 @@ -->