From 3b71fe31358d3d7c0304116dfa2864de5c22740e Mon Sep 17 00:00:00 2001 From: ccnetcore Date: Sat, 20 Dec 2025 11:33:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=E6=BF=80=E6=B4=BB?= =?UTF-8?q?=E7=A0=81=E5=85=91=E6=8D=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yi.Ai.Vue3/src/api/activationCode/index.ts | 5 + .../src/components/ProductPackage/index.vue | 102 +++- .../components/ActivationCode.vue | 483 ++++++++++++++++++ .../components/Header/components/Avatar.vue | 23 + Yi.Ai.Vue3/src/stores/modules/user.ts | 20 + Yi.Ai.Vue3/src/utils/request.ts | 3 +- Yi.Ai.Vue3/types/components.d.ts | 1 + Yi.Ai.Vue3/types/import_meta.d.ts | 1 - 8 files changed, 634 insertions(+), 4 deletions(-) create mode 100644 Yi.Ai.Vue3/src/api/activationCode/index.ts create mode 100644 Yi.Ai.Vue3/src/components/userPersonalCenter/components/ActivationCode.vue diff --git a/Yi.Ai.Vue3/src/api/activationCode/index.ts b/Yi.Ai.Vue3/src/api/activationCode/index.ts new file mode 100644 index 00000000..da57f95e --- /dev/null +++ b/Yi.Ai.Vue3/src/api/activationCode/index.ts @@ -0,0 +1,5 @@ +import { post } from '@/utils/request'; + +export function redeemActivationCode(data: { code: string }) { + return post('/activationCode/Redeem', data); +} diff --git a/Yi.Ai.Vue3/src/components/ProductPackage/index.vue b/Yi.Ai.Vue3/src/components/ProductPackage/index.vue index 3639ce35..bdb4b060 100644 --- a/Yi.Ai.Vue3/src/components/ProductPackage/index.vue +++ b/Yi.Ai.Vue3/src/components/ProductPackage/index.vue @@ -142,6 +142,7 @@ function cleanupPayment() { const tabs = [ { key: 'member', label: '会员套餐' }, { key: 'token', label: '尊享Token包' }, + { key: 'activation', label: '激活码' }, ]; const benefitsData = { @@ -210,8 +211,11 @@ function selectPackage(pkg: any) { } watch(activeTab, () => { + if (activeTab.value === 'activation') { + return; + } const packages = packagesData.value[activeTab.value as 'member' | 'token']; - if (packages.length > 0) { + if (packages && packages.length > 0) { const firstPackage = packages[0]; selectedId.value = firstPackage.id; selectedPrice.value = firstPackage.price; @@ -315,6 +319,11 @@ function close() { function onClose() { emit('close'); } + +function goToActivation() { + close(); + userStore.openUserCenter('activationCode'); +}