fix:登录判断优化
This commit is contained in:
@@ -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",
|
||||
|
||||
10
Yi.Ai.Vue3/pnpm-lock.yaml
generated
10
Yi.Ai.Vue3/pnpm-lock.yaml
generated
@@ -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
|
||||
|
||||
@@ -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?.();
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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('业务错误,请稍后再试');
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user