fix:登录判断优化
This commit is contained in:
@@ -39,7 +39,7 @@
|
|||||||
"@vueuse/integrations": "^13.3.0",
|
"@vueuse/integrations": "^13.3.0",
|
||||||
"element-plus": "^2.9.11",
|
"element-plus": "^2.9.11",
|
||||||
"fingerprintjs": "^0.5.3",
|
"fingerprintjs": "^0.5.3",
|
||||||
"hook-fetch": "^2.0.0-beta.1",
|
"hook-fetch": "^2.0.3-beta.1",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"pinia": "^3.0.3",
|
"pinia": "^3.0.3",
|
||||||
"pinia-plugin-persistedstate": "^4.3.0",
|
"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
|
specifier: ^0.5.3
|
||||||
version: 0.5.3
|
version: 0.5.3
|
||||||
hook-fetch:
|
hook-fetch:
|
||||||
specifier: ^2.0.0-beta.1
|
specifier: ^2.0.3-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))
|
version: 2.0.3(react@19.1.0)(typescript-api-pro@0.0.7)(vue@3.5.16(typescript@5.8.3))
|
||||||
nprogress:
|
nprogress:
|
||||||
specifier: ^0.2.0
|
specifier: ^0.2.0
|
||||||
version: 0.2.0
|
version: 0.2.0
|
||||||
@@ -2811,8 +2811,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
|
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
hook-fetch@2.0.0-beta.1:
|
hook-fetch@2.0.3:
|
||||||
resolution: {integrity: sha512-c1pLT1madA4oL1K0+2PNjrdMtXper1CSLJHcsstzohoKKnqYrUF6TKM45Wrwdam7ZGX74j/5XPjfgPuC7VPs7A==}
|
resolution: {integrity: sha512-clY3vKTiG6R7GxzRIB5wWxieRr+mQ6HMCoWSoapgIRJ0dhhJEVA/CTXrVzI4p+yweZ332SJlvclPdJjEbRd75A==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^19.1.0
|
react: ^19.1.0
|
||||||
typescript-api-pro: ^0.0.6
|
typescript-api-pro: ^0.0.6
|
||||||
@@ -8066,7 +8066,7 @@ snapshots:
|
|||||||
|
|
||||||
he@1.2.0: {}
|
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:
|
dependencies:
|
||||||
qs: 6.14.0
|
qs: 6.14.0
|
||||||
radash: 12.1.0
|
radash: 12.1.0
|
||||||
|
|||||||
@@ -3,8 +3,10 @@
|
|||||||
import type { GetSessionListVO } from '@/api/model/types';
|
import type { GetSessionListVO } from '@/api/model/types';
|
||||||
import Popover from '@/components/Popover/index.vue';
|
import Popover from '@/components/Popover/index.vue';
|
||||||
import SvgIcon from '@/components/SvgIcon/index.vue';
|
import SvgIcon from '@/components/SvgIcon/index.vue';
|
||||||
|
import { useUserStore } from '@/stores';
|
||||||
import { useModelStore } from '@/stores/modules/model';
|
import { useModelStore } from '@/stores/modules/model';
|
||||||
|
|
||||||
|
const userStore = useUserStore();
|
||||||
const modelStore = useModelStore();
|
const modelStore = useModelStore();
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
@@ -40,9 +42,14 @@ async function showPopover() {
|
|||||||
// 获取最新的模型列表
|
// 获取最新的模型列表
|
||||||
await modelStore.requestModelList();
|
await modelStore.requestModelList();
|
||||||
}
|
}
|
||||||
|
// 用户角色
|
||||||
|
// const isUserRoleVip = computed(() => {
|
||||||
|
// const roles = userStore.userInfo?.roles ?? [];
|
||||||
|
// return roles.some(role => role.roleCode === 'YiXinAi-Vip');
|
||||||
|
// });
|
||||||
// 点击
|
// 点击
|
||||||
function handleClick(item: GetSessionListVO) {
|
function handleClick(item: GetSessionListVO) {
|
||||||
|
console.log('handleClick--', item);
|
||||||
modelStore.setCurrentModelInfo(item);
|
modelStore.setCurrentModelInfo(item);
|
||||||
popoverRef.value?.hide?.();
|
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">
|
<div class="right-box flex h-full items-center pr-20px flex-shrink-0 mr-auto flex-row">
|
||||||
<Avatar v-show="userStore.token" />
|
<Avatar v-show="userStore.userInfo" />
|
||||||
<LoginBtn v-show="!userStore.token" />
|
<LoginBtn v-show="!userStore.userInfo" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ function handleDataChunk(chunk: AnyObject) {
|
|||||||
|
|
||||||
// 另一种思考中形式,content中有 <think></think> 的格式
|
// 另一种思考中形式,content中有 <think></think> 的格式
|
||||||
// 一开始匹配到 <think> 开始,匹配到 </think> 结束,并处理标签中的内容为思考内容
|
// 一开始匹配到 <think> 开始,匹配到 </think> 结束,并处理标签中的内容为思考内容
|
||||||
console.log(chunk.choices,"chunk.choices")
|
console.log(chunk.choices, 'chunk.choices');
|
||||||
const parsedChunk = chunk.choices?.[0].delta.content;
|
const parsedChunk = chunk.choices?.[0].delta.content;
|
||||||
if (parsedChunk) {
|
if (parsedChunk) {
|
||||||
const thinkStart = parsedChunk.includes('<think>');
|
const thinkStart = parsedChunk.includes('<think>');
|
||||||
@@ -148,6 +148,7 @@ function handleDataChunk(chunk: AnyObject) {
|
|||||||
|
|
||||||
// 封装错误处理逻辑
|
// 封装错误处理逻辑
|
||||||
function handleError(err: any) {
|
function handleError(err: any) {
|
||||||
|
console.log('Fetch error:-------', err);
|
||||||
console.error('Fetch error:', err);
|
console.error('Fetch error:', err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ function jwtPlugin(): HookFetchPlugin<BaseResponse> {
|
|||||||
beforeRequest: async (config) => {
|
beforeRequest: async (config) => {
|
||||||
config.headers = new Headers(config.headers);
|
config.headers = new Headers(config.headers);
|
||||||
if (userStore.refreshToken) {
|
if (userStore.refreshToken) {
|
||||||
config.headers.set('refresh_token', `Bearer ${userStore.refreshToken}`);
|
config.headers.set('refresh_token', `${userStore.refreshToken}`);
|
||||||
}
|
}
|
||||||
if (userStore.token) {
|
if (userStore.token) {
|
||||||
config.headers.set('authorization', `Bearer ${userStore.token}`);
|
config.headers.set('authorization', `Bearer ${userStore.token}`);
|
||||||
@@ -85,9 +85,13 @@ function jwtPlugin(): HookFetchPlugin<BaseResponse> {
|
|||||||
|
|
||||||
return config;
|
return config;
|
||||||
},
|
},
|
||||||
|
|
||||||
afterResponse: async (response: any) => {
|
afterResponse: async (response: any) => {
|
||||||
|
console.log('response---', response);
|
||||||
|
console.log('response.headers---', response.headers);
|
||||||
console.log('response.response.headers---', response.response.headers);
|
console.log('response.response.headers---', response.response.headers);
|
||||||
if (response.response.headers?.refresh_token) {
|
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);
|
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);
|
ElMessage.error(response.result?.msg);
|
||||||
return Promise.reject(response);
|
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