fix:登录判断优化

This commit is contained in:
Gsh
2025-06-30 16:02:39 +08:00
parent 3d22a2ef65
commit 6aefcdbed8
6 changed files with 31 additions and 11 deletions

View File

@@ -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",

View File

@@ -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

View File

@@ -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?.();
}

View File

@@ -69,8 +69,8 @@ onKeyStroke(event => event.ctrlKey && event.key.toLowerCase() === 'k', handleCtr
<!-- 右边 -->
<div class="right-box flex h-full items-center pr-20px flex-shrink-0 mr-auto flex-row">
<Avatar v-show="userStore.token" />
<LoginBtn v-show="!userStore.token" />
<Avatar v-show="userStore.userInfo" />
<LoginBtn v-show="!userStore.userInfo" />
</div>
</div>
</div>

View File

@@ -108,7 +108,7 @@ function handleDataChunk(chunk: AnyObject) {
// 另一种思考中形式content中有 <think></think> 的格式
// 一开始匹配到 <think> 开始,匹配到 </think> 结束,并处理标签中的内容为思考内容
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('<think>');
@@ -148,6 +148,7 @@ function handleDataChunk(chunk: AnyObject) {
// 封装错误处理逻辑
function handleError(err: any) {
console.log('Fetch error:-------', err);
console.error('Fetch error:', err);
}

View File

@@ -77,7 +77,7 @@ function jwtPlugin(): HookFetchPlugin<BaseResponse> {
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<BaseResponse> {
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<BaseResponse> {
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('业务错误,请稍后再试');
}
},
};
}