From 6aefcdbed857db92905c6d96f7a77fee985a95db Mon Sep 17 00:00:00 2001 From: Gsh <15170702455@163.com> Date: Mon, 30 Jun 2025 16:02:39 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E7=99=BB=E5=BD=95=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yi.Ai.Vue3/package.json | 2 +- Yi.Ai.Vue3/pnpm-lock.yaml | 10 +++++----- Yi.Ai.Vue3/src/components/ModelSelect/index.vue | 9 ++++++++- Yi.Ai.Vue3/src/layouts/components/Header/index.vue | 4 ++-- .../src/pages/chat/layouts/chatWithId/index.vue | 3 ++- Yi.Ai.Vue3/src/utils/request.ts | 14 +++++++++++++- 6 files changed, 31 insertions(+), 11 deletions(-) diff --git a/Yi.Ai.Vue3/package.json b/Yi.Ai.Vue3/package.json index 5047cb8e..833c8f70 100644 --- a/Yi.Ai.Vue3/package.json +++ b/Yi.Ai.Vue3/package.json @@ -39,7 +39,7 @@ "@vueuse/integrations": "^13.3.0", "element-plus": "^2.9.11", "fingerprintjs": "^0.5.3", - "hook-fetch": "^2.0.0-beta.1", + "hook-fetch": "^2.0.3-beta.1", "nprogress": "^0.2.0", "pinia": "^3.0.3", "pinia-plugin-persistedstate": "^4.3.0", diff --git a/Yi.Ai.Vue3/pnpm-lock.yaml b/Yi.Ai.Vue3/pnpm-lock.yaml index 022eff68..a5759f3d 100644 --- a/Yi.Ai.Vue3/pnpm-lock.yaml +++ b/Yi.Ai.Vue3/pnpm-lock.yaml @@ -39,8 +39,8 @@ importers: specifier: ^0.5.3 version: 0.5.3 hook-fetch: - specifier: ^2.0.0-beta.1 - version: 2.0.0-beta.1(react@19.1.0)(typescript-api-pro@0.0.7)(vue@3.5.16(typescript@5.8.3)) + specifier: ^2.0.3-beta.1 + version: 2.0.3(react@19.1.0)(typescript-api-pro@0.0.7)(vue@3.5.16(typescript@5.8.3)) nprogress: specifier: ^0.2.0 version: 0.2.0 @@ -2811,8 +2811,8 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - hook-fetch@2.0.0-beta.1: - resolution: {integrity: sha512-c1pLT1madA4oL1K0+2PNjrdMtXper1CSLJHcsstzohoKKnqYrUF6TKM45Wrwdam7ZGX74j/5XPjfgPuC7VPs7A==} + hook-fetch@2.0.3: + resolution: {integrity: sha512-clY3vKTiG6R7GxzRIB5wWxieRr+mQ6HMCoWSoapgIRJ0dhhJEVA/CTXrVzI4p+yweZ332SJlvclPdJjEbRd75A==} peerDependencies: react: ^19.1.0 typescript-api-pro: ^0.0.6 @@ -8066,7 +8066,7 @@ snapshots: he@1.2.0: {} - hook-fetch@2.0.0-beta.1(react@19.1.0)(typescript-api-pro@0.0.7)(vue@3.5.16(typescript@5.8.3)): + hook-fetch@2.0.3(react@19.1.0)(typescript-api-pro@0.0.7)(vue@3.5.16(typescript@5.8.3)): dependencies: qs: 6.14.0 radash: 12.1.0 diff --git a/Yi.Ai.Vue3/src/components/ModelSelect/index.vue b/Yi.Ai.Vue3/src/components/ModelSelect/index.vue index c7a7c0e0..caaf69f6 100644 --- a/Yi.Ai.Vue3/src/components/ModelSelect/index.vue +++ b/Yi.Ai.Vue3/src/components/ModelSelect/index.vue @@ -3,8 +3,10 @@ import type { GetSessionListVO } from '@/api/model/types'; import Popover from '@/components/Popover/index.vue'; import SvgIcon from '@/components/SvgIcon/index.vue'; +import { useUserStore } from '@/stores'; import { useModelStore } from '@/stores/modules/model'; +const userStore = useUserStore(); const modelStore = useModelStore(); onMounted(async () => { @@ -40,9 +42,14 @@ async function showPopover() { // 获取最新的模型列表 await modelStore.requestModelList(); } - +// 用户角色 +// const isUserRoleVip = computed(() => { +// const roles = userStore.userInfo?.roles ?? []; +// return roles.some(role => role.roleCode === 'YiXinAi-Vip'); +// }); // 点击 function handleClick(item: GetSessionListVO) { + console.log('handleClick--', item); modelStore.setCurrentModelInfo(item); popoverRef.value?.hide?.(); } diff --git a/Yi.Ai.Vue3/src/layouts/components/Header/index.vue b/Yi.Ai.Vue3/src/layouts/components/Header/index.vue index fbc00666..f47d7200 100644 --- a/Yi.Ai.Vue3/src/layouts/components/Header/index.vue +++ b/Yi.Ai.Vue3/src/layouts/components/Header/index.vue @@ -69,8 +69,8 @@ onKeyStroke(event => event.ctrlKey && event.key.toLowerCase() === 'k', handleCtr
- - + +
diff --git a/Yi.Ai.Vue3/src/pages/chat/layouts/chatWithId/index.vue b/Yi.Ai.Vue3/src/pages/chat/layouts/chatWithId/index.vue index eb5e166e..4144421b 100644 --- a/Yi.Ai.Vue3/src/pages/chat/layouts/chatWithId/index.vue +++ b/Yi.Ai.Vue3/src/pages/chat/layouts/chatWithId/index.vue @@ -108,7 +108,7 @@ function handleDataChunk(chunk: AnyObject) { // 另一种思考中形式,content中有 的格式 // 一开始匹配到 开始,匹配到 结束,并处理标签中的内容为思考内容 - console.log(chunk.choices,"chunk.choices") + console.log(chunk.choices, 'chunk.choices'); const parsedChunk = chunk.choices?.[0].delta.content; if (parsedChunk) { const thinkStart = parsedChunk.includes(''); @@ -148,6 +148,7 @@ function handleDataChunk(chunk: AnyObject) { // 封装错误处理逻辑 function handleError(err: any) { + console.log('Fetch error:-------', err); console.error('Fetch error:', err); } diff --git a/Yi.Ai.Vue3/src/utils/request.ts b/Yi.Ai.Vue3/src/utils/request.ts index 517c110c..cf34ca90 100644 --- a/Yi.Ai.Vue3/src/utils/request.ts +++ b/Yi.Ai.Vue3/src/utils/request.ts @@ -77,7 +77,7 @@ function jwtPlugin(): HookFetchPlugin { beforeRequest: async (config) => { config.headers = new Headers(config.headers); if (userStore.refreshToken) { - config.headers.set('refresh_token', `Bearer ${userStore.refreshToken}`); + config.headers.set('refresh_token', `${userStore.refreshToken}`); } if (userStore.token) { config.headers.set('authorization', `Bearer ${userStore.token}`); @@ -85,9 +85,13 @@ function jwtPlugin(): HookFetchPlugin { return config; }, + afterResponse: async (response: any) => { + console.log('response---', response); + console.log('response.headers---', response.headers); console.log('response.response.headers---', response.response.headers); if (response.response.headers?.refresh_token) { + console.log('返回有token---response.response.headers-:', response.response.headers); userStore.setToken(response.response.headers?.access_token, response.response.headers?.refresh_token); } @@ -108,6 +112,14 @@ function jwtPlugin(): HookFetchPlugin { ElMessage.error(response.result?.msg); return Promise.reject(response); }, + onError: async (error) => { + console.log('error---', error); + console.log('response---', error.response); + if (error.status === 403) { + // 弹窗提示 + ElMessage.error('业务错误,请稍后再试'); + } + }, }; }