From 4392dd4a3ee1047e6fcf4e33f8df988da50b9a41 Mon Sep 17 00:00:00 2001 From: speakeloudest Date: Tue, 30 Dec 2025 02:28:09 -0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E8=AF=95=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/user-center/DeviceList.vue | 82 ++++++++++++++------ src/components/user-center/PaymentMethod.vue | 23 +++--- src/components/user-center/PlanCard.vue | 2 +- src/pages/UserCenter/MobileLayout/index.vue | 28 +++---- src/pages/UserCenter/index.vue | 50 +++++++++--- 5 files changed, 123 insertions(+), 62 deletions(-) diff --git a/src/components/user-center/DeviceList.vue b/src/components/user-center/DeviceList.vue index d37f9eb..72113eb 100644 --- a/src/components/user-center/DeviceList.vue +++ b/src/components/user-center/DeviceList.vue @@ -1,5 +1,28 @@ + + - - diff --git a/src/components/user-center/PaymentMethod.vue b/src/components/user-center/PaymentMethod.vue index 1b2666c..174ad53 100644 --- a/src/components/user-center/PaymentMethod.vue +++ b/src/components/user-center/PaymentMethod.vue @@ -1,22 +1,27 @@ diff --git a/src/components/user-center/PlanCard.vue b/src/components/user-center/PlanCard.vue index 5c16ddf..de447f7 100644 --- a/src/components/user-center/PlanCard.vue +++ b/src/components/user-center/PlanCard.vue @@ -24,7 +24,7 @@ ]" class="absolute top-[20px] -right-[40px] h-[16px] w-[126px] origin-center rotate-45 bg-black text-center text-[14px] leading-[16px] font-[200] text-[#ADFF5B]" > - 111 off% + {{ plan.discount }} diff --git a/src/pages/UserCenter/MobileLayout/index.vue b/src/pages/UserCenter/MobileLayout/index.vue index 38cc81f..1b2b5b0 100644 --- a/src/pages/UserCenter/MobileLayout/index.vue +++ b/src/pages/UserCenter/MobileLayout/index.vue @@ -4,18 +4,18 @@
-
11emai
-
到期时间: 122222
+
{{ userInfo.email }}
+
到期时间: {{ userInfo.expireDate }}
-
+
- +
- +
@@ -43,19 +43,13 @@ import PlanCard from '@/components/user-center/PlanCard.vue' import DeviceList from '@/components/user-center/DeviceList.vue' import PaymentMethod from '@/components/user-center/PaymentMethod.vue' import { Button } from '@/components/ui/button' -import request from '@/utils/request' -// --- Mock Data --- -const devices = [ - { id: '1', name: 'XXX的 MacBook Pro 15-inch', type: 'desktop' as const, deviceId: '87654321' }, - { id: '2', name: 'XXX的 iPhone 15 Pro Max', type: 'mobile' as const, deviceId: '12345678' }, -] -const plans = [ - { id: 'p1', days: 7, price: 2.79, dailyPrice: '0.39' }, - { id: 'p2', days: 30, price: 5.99, dailyPrice: '0.19', discount: '50% off' }, - { id: 'p3', days: 90, price: 12.99, dailyPrice: '0.14', discount: '64% off' }, - { id: 'p4', days: 365, price: 44.99, dailyPrice: '0.12', discount: '70% off', inverted: true }, -] +const props = defineProps<{ + devices: any[] + plans: any[] + payments: any[] + userInfo: { email: string; expireDate: string } +}>() // --- State --- const selectedPlanId = ref('p2') diff --git a/src/pages/UserCenter/index.vue b/src/pages/UserCenter/index.vue index 9bc7dbf..52d9984 100644 --- a/src/pages/UserCenter/index.vue +++ b/src/pages/UserCenter/index.vue @@ -20,7 +20,12 @@
- +
@@ -36,28 +41,49 @@ import request from '@/utils/request' const selectedPlanId = ref('p2') const selectedPayment = ref('alipay') +const devices = ref([]) +const plans = ref([]) +const payments = ref([]) +const userSubInfo = ref({ + email: '', + expireDate: '', +}) + // --- Handlers --- const handlePlanSelect = (id: string) => { selectedPlanId.value = id } -const devices = ref([]) function init() { // 设备列表 - request.get('/public/user/devices').then((res) => { - devices.value = res.list + // request.get('/public/user/devices').then((res: any) => { + // devices.value = + // res.list?.map((item: any) => ({ + // id: item.id, + // name: item.user_agent || 'Unknown Device', + // type: item.user_agent?.toLowerCase().includes('android') ? 'mobile' : 'desktop', + // deviceId: item.id, + // })) || [] + // }) + + // 用户信息 + request.get('/public/user/info').then((res: any) => { + const emailInfo = res.auth_methods?.find((item: any) => item.auth_type === 'email') + devices.value = res.user_devices + console.log(res.user_devices) + + if (emailInfo) { + userSubInfo.value.email = emailInfo.auth_identifier + } }) // 订阅详情 - request.get('/public/subscribe/list').then((res) => { - console.log(222, res.list) + request.get('/public/subscribe/list').then((res: any) => { + plans.value = res.list + console.log(plans.value) }) // 获取支付方式 - request.get('/public/payment/methods').then((res) => { - console.log(33, res) - }) - // 订阅列表 - request.get('/public/subscribe/list').then((res) => { - console.log(44, res) + request.get('/public/payment/methods').then((res: any) => { + payments.value = res.list || [] }) } init()