-
-
-
-
- {{ item.title }}
+
+
+
+ YiXinAI-VIP
+
+
+
+ 普通用户 · 开通 VIP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ userStore.userInfo?.user.nick ?? '未登录用户' }}
+
+
+
+ YiXinAI-VIP
+
+
+
+ 普通用户 · 开通 VIP
+
+
+
-
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
-
-
+
+
diff --git a/Yi.Ai.Vue3/src/pages/products/index.vue b/Yi.Ai.Vue3/src/pages/products/index.vue
index f9538c14..1086dcaf 100644
--- a/Yi.Ai.Vue3/src/pages/products/index.vue
+++ b/Yi.Ai.Vue3/src/pages/products/index.vue
@@ -14,7 +14,7 @@ const pricing = [
'AI超级加速',
'无限制使用',
'售后微信群支持',
- '可用29.9元优惠券',
+ '可用20元优惠券',
],
},
{
@@ -27,7 +27,6 @@ const pricing = [
'AI超级加速',
'无限制使用',
'售后微信群支持',
- '不支持优惠券',
],
},
{
@@ -39,8 +38,9 @@ const pricing = [
'基础+高级模型访问',
'AI超级加速',
'无限制使用',
+ '售后微信群支持',
'售后微信群优先处理',
- '可用49.9元优惠券',
+ '可用20元优惠券',
],
},
];
@@ -149,7 +149,7 @@ function openContact() {
{{ plan.period }}
-
+
-
{{ feature }}
diff --git a/Yi.Ai.Vue3/src/stores/modules/user.ts b/Yi.Ai.Vue3/src/stores/modules/user.ts
index 7948f135..d759ff3a 100644
--- a/Yi.Ai.Vue3/src/stores/modules/user.ts
+++ b/Yi.Ai.Vue3/src/stores/modules/user.ts
@@ -1,4 +1,3 @@
-import type { LoginUser } from '@/api/auth/types';
import { defineStore } from 'pinia';
import { useRouter } from 'vue-router';
@@ -9,9 +8,6 @@ export const useUserStore = defineStore(
const refreshToken = ref();
const router = useRouter();
const setToken = (value: string, refreshValue?: string) => {
- // 让接口报401
- // token.value = `${value}cdsfds`;
-
token.value = value;
if (refreshValue) {
refreshToken.value = refreshValue;
@@ -22,9 +18,10 @@ export const useUserStore = defineStore(
refreshToken.value = void 0;
};
- const userInfo = ref();
+ const userInfo = ref();
const setUserInfo = (value: any) => {
userInfo.value = value;
+ console.log('userInfo', userInfo.value);
};
const clearUserInfo = () => {
userInfo.value = void 0;
diff --git a/Yi.Ai.Vue3/src/utils/request.ts b/Yi.Ai.Vue3/src/utils/request.ts
index 92ef1822..517c110c 100644
--- a/Yi.Ai.Vue3/src/utils/request.ts
+++ b/Yi.Ai.Vue3/src/utils/request.ts
@@ -75,13 +75,22 @@ function jwtPlugin(): HookFetchPlugin {
return {
name: 'jwt',
beforeRequest: async (config) => {
+ config.headers = new Headers(config.headers);
+ if (userStore.refreshToken) {
+ config.headers.set('refresh_token', `Bearer ${userStore.refreshToken}`);
+ }
if (userStore.token) {
- config.headers = new Headers(config.headers);
config.headers.set('authorization', `Bearer ${userStore.token}`);
}
+
return config;
},
- afterResponse: async (response) => {
+ afterResponse: async (response: any) => {
+ console.log('response.response.headers---', response.response.headers);
+ if (response.response.headers?.refresh_token) {
+ userStore.setToken(response.response.headers?.access_token, response.response.headers?.refresh_token);
+ }
+
if (response.result?.code === 200)
return response;
diff --git a/Yi.Ai.Vue3/types/components.d.ts b/Yi.Ai.Vue3/types/components.d.ts
index 2d516763..858c571d 100644
--- a/Yi.Ai.Vue3/types/components.d.ts
+++ b/Yi.Ai.Vue3/types/components.d.ts
@@ -26,6 +26,9 @@ declare module 'vue' {
ElImage: typeof import('element-plus/es')['ElImage']
ElInput: typeof import('element-plus/es')['ElInput']
ElMain: typeof import('element-plus/es')['ElMain']
+ ElTable: typeof import('element-plus/es')['ElTable']
+ ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
+ ElTag: typeof import('element-plus/es')['ElTag']
ElTooltip: typeof import('element-plus/es')['ElTooltip']
FilesSelect: typeof import('./../src/components/FilesSelect/index.vue')['default']
IconSelect: typeof import('./../src/components/IconSelect/index.vue')['default']