From 791a96ae03cf92478244127b294c1fe520d31e89 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期六, 11 十月 2025 11:17:10 +0800
Subject: [PATCH] 优化

---
 entry/src/main/ets/pages/account/AccountPage.ets |  113 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 98 insertions(+), 15 deletions(-)

diff --git a/entry/src/main/ets/pages/account/AccountPage.ets b/entry/src/main/ets/pages/account/AccountPage.ets
index 556bb32..9da5a55 100644
--- a/entry/src/main/ets/pages/account/AccountPage.ets
+++ b/entry/src/main/ets/pages/account/AccountPage.ets
@@ -1,6 +1,19 @@
-import { ComponentContent, router } from "@kit.ArkUI"
+import { ComponentContent, promptAction, router } from "@kit.ArkUI"
 import { PromptActionClass } from '../../utils/PromptActionClass';
+import { http } from "@kit.NetworkKit";
+import { HttpResponseResult } from "../../data/HttpResponse";
+import { common } from "@kit.AbilityKit";
+import { DOMAIN } from "../../utils/config";
 
+export class UserInfo {
+  nickName: string = ''
+  mobilePhone: string = ''
+  age: string = ''
+  gender: string = ''
+  job: string = ''
+  preferJob: string = ''
+  introduce: string = ''
+}
 class accountListItem {
   title: string = ''
   icon: string | Resource = ''
@@ -70,7 +83,6 @@
   .backgroundColor(Color.White)
 }
 
-@Entry
 @Component
 export struct AccountPage {
   @State ListItems: accountListItem[] = [
@@ -84,12 +96,47 @@
   private contentNode: ComponentContent<Object> =
     new ComponentContent(this.ctx, wrapBuilder(buildText), new DialogParams((this.dialogMessage)));
   params: DialogParams = new DialogParams('娉ㄥ唽鎴愬姛')
+  @State userInfo: UserInfo = {
+    nickName: '',
+    mobilePhone: '',
+    age: '',
+    gender: '',
+    job: '',
+    preferJob: '',
+    introduce: '',
+  }
+  @Link selectIndex: number | undefined;
 
   aboutToAppear(): void {
     PromptActionClass.setContext(this.ctx);
     PromptActionClass.setContentNode(this.contentNode);
     PromptActionClass.setOptions({ alignment: DialogAlignment.Center, offset: { dx: 0, dy: 0 } });
+    this.getUserInfo()
   }
+
+  getUserInfo() {
+    let httpRequest = http.createHttp();
+    httpRequest.request(
+      `${DOMAIN}/quiz-community/public/v1.0/users/userinfo`,
+      {
+        method: http.RequestMethod.GET,
+        header: { 'Content-Type': 'application/json', 'x-jwt-token': `Bearer ${AppStorage.get('x-jwt-token')}` },
+      },
+      (err, data) => {
+        console.log('response', '/users/userinfo')
+        console.log(JSON.stringify(data.result))
+        if (data.responseCode == 200) {
+          const resData = (typeof data.result == 'string' ? JSON.parse(data.result) : data.result) as HttpResponseResult<UserInfo>
+          if (resData.code == 200) {
+            this.userInfo = resData.data as UserInfo
+          } else {
+            promptAction.showToast({ message: resData.msg })
+          }
+        }
+      }
+    )
+  }
+
   build() {
     Column() {
       Text('涓汉涓績')
@@ -106,13 +153,13 @@
             .width(50)
             .height(50)
           Column() {
-            Text('鏉庡己')
+            Text(this.userInfo.nickName || '鏉庡己')
               .fontSize(16)
               .width('100%')
               .fontWeight(600)
               .fontColor(Color.Black)
               .textAlign(TextAlign.Start)
-            Text('鐢� | 28宀� | 鍓嶇寮�鍙戝伐绋嬪笀')
+            Text(`${this.userInfo.gender || '鐢�'} | ${this.userInfo.age || 28}宀� | ${this.userInfo.job || '鍓嶇寮�鍙戝伐绋嬪笀'}`)
               .fontColor('#333333')
               .fontSize(14)
               .width('100%')
@@ -124,13 +171,13 @@
           .justifyContent(FlexAlign.SpaceBetween)
           .layoutWeight(1)
           Image($r('app.media.chevron_right'))
-            .width(18)
-            .height(18)
+            .width(14)
+            .height(14)
         }
         .width('100%')
         .onClick(() =>{
           router.pushUrl({
-            url: ''
+            url: 'pages/account/UserInfoPage'
           })
         })
 
@@ -147,14 +194,25 @@
               .backgroundColor(Color.White)
               .padding({ left: 10, right: 10, top: 4, bottom: 4 })
               .fontColor('#1756f4')
+              .onClick(() => {
+                this.selectIndex = 1
+              })
           }
           .width('100%')
           .justifyContent(FlexAlign.SpaceBetween)
 
-          Text('褰撳墠瀛︿範绾у埆锛氶潚閾�')
-            .width('100%')
-            .fontColor(Color.White)
-            .fontSize(14)
+          Row() {
+            Text('褰撳墠瀛︿範绾у埆锛氶潚閾�')
+              .fontColor(Color.White)
+              .fontSize(14)
+            Image($r('app.media.bronze_icon'))
+              .width(20)
+              .height(20)
+              .margin({ left: 6 })
+          }
+          .width('100%')
+          .justifyContent(FlexAlign.Start)
+
           Row() {
             Column({ space: 4 }) {
               Text('瀛︿範鏃堕暱')
@@ -205,6 +263,12 @@
             .fontWeight(500)
             .fontColor(Color.Black)
         }
+        .onClick(() => {
+          router.pushUrl({
+            url: 'pages/account/LearningRecordPage'
+          })
+        })
+
         Column({ space: 6 }) {
           Image($r('app.media.account_course'))
             .width(40)
@@ -214,6 +278,12 @@
             .fontWeight(500)
             .fontColor(Color.Black)
         }
+        .onClick(() => {
+          router.pushUrl({
+            url: 'pages/account/CourseCollection'
+          })
+        })
+
         Column({ space: 6 }) {
           Image($r('app.media.account_vitae'))
             .width(40)
@@ -223,6 +293,12 @@
             .fontWeight(500)
             .fontColor(Color.Black)
         }
+        .onClick(() => {
+          router.pushUrl({
+            url: 'pages/account/PersonVitae'
+          })
+        })
+
         Column({ space: 6 }) {
           Image($r('app.media.account_communicated'))
             .width(40)
@@ -268,16 +344,20 @@
               .onClick(() => {
                 if (item.title == '闅愮璁剧疆') {
                   router.pushUrl({
-                    url: ''
+                    url: 'pages/account/SettingPage'
                   })
                 } else if (item.title == '娑堟伅閫氱煡') {
-
+                  router.pushUrl({
+                    url: 'pages/account/MessagePushPage'
+                  })
                 } else if (item.title == '甯姪涓績') {
                   this.contentNode = new ComponentContent(this.ctx, wrapBuilder(buildText1), new DialogParams((this.dialogMessage)));
                   PromptActionClass.setContentNode(this.contentNode);
                   PromptActionClass.openDialog()
                 } else if (item.title == '鍏充簬鎴戜滑') {
-
+                  router.pushUrl({
+                    url: 'pages/account/AboutPage'
+                  })
                 }
               })
             }
@@ -303,10 +383,13 @@
           .width('100%')
           .fontColor(Color.White)
           .backgroundColor('#1761f4')
+          .onClick(() => {
+            (getContext(this) as common.UIAbilityContext)?.terminateSelf()
+          })
       }
       .padding(16)
       .width('100%')
-      .background(Color.White)
+      .backgroundColor(Color.White)
       .height(300)
 
     }

--
Gitblit v1.8.0