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 | 209 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 198 insertions(+), 11 deletions(-) diff --git a/entry/src/main/ets/pages/account/AccountPage.ets b/entry/src/main/ets/pages/account/AccountPage.ets index dc6e525..9da5a55 100644 --- a/entry/src/main/ets/pages/account/AccountPage.ets +++ b/entry/src/main/ets/pages/account/AccountPage.ets @@ -1,9 +1,88 @@ +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 = '' } +class DialogParams { + text: string = ""; -@Entry + constructor(text: string) { + this.text = text; + } +} +@Builder +function buildText(params: DialogParams) { + Column({ space: 12 }) { + Text('宸叉矡閫�') + .width('100%') + .fontSize(18) + .fontWeight(700) + .textAlign(TextAlign.Center) + Text('4') + .fontSize(26) + .fontWeight(700) + .fontColor('#1761f4') + .width('100%') + .textAlign(TextAlign.Center) + Text('绱娌熼�氬矖浣嶆暟') + .fontSize(14) + .fontColor('#666666') + Text('鎮ㄦ槸鑱屽満涓殑涓祦鐮ユ煴') + .width('100%') + .textAlign(TextAlign.Center) + .padding(16) + .fontSize(14) + .fontColor(Color.Black) + .fontWeight(500) + .backgroundColor('#f6f7fa') + } + .width(300) + .padding(20) + .borderRadius(14) + .backgroundColor(Color.White) +} + +@Builder +function buildText1(params: DialogParams) { + Column({ space: 12 }) { + Text('甯姪涓績') + .width('100%') + .fontSize(18) + .fontWeight(700) + .fontColor(Color.Black) + .textAlign(TextAlign.Center) + Text('400-100-1212') + .fontSize(26) + .fontWeight(700) + .fontColor(Color.Black) + .width('100%') + .textAlign(TextAlign.Center) + Button('鎷ㄦ墦鐢佃瘽') + .width('100%') + .type(ButtonType.Normal) + .borderRadius(8) + } + .width(300) + .padding(20) + .borderRadius(14) + .backgroundColor(Color.White) +} + @Component export struct AccountPage { @State ListItems: accountListItem[] = [ @@ -12,6 +91,52 @@ { title: '甯姪涓績', icon: $r('app.media.account_help') }, { title: '鍏充簬鎴戜滑', icon: $r('app.media.account_info') }, ] + @State dialogMessage: string = '娉ㄥ唽鎴愬姛'; + private ctx: UIContext = this.getUIContext(); + 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('涓汉涓績') @@ -28,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%') @@ -46,10 +171,15 @@ .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: 'pages/account/UserInfoPage' + }) + }) Column({ space: 16 }) { Row() { @@ -64,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('瀛︿範鏃堕暱') @@ -122,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) @@ -131,8 +278,14 @@ .fontWeight(500) .fontColor(Color.Black) } + .onClick(() => { + router.pushUrl({ + url: 'pages/account/CourseCollection' + }) + }) + Column({ space: 6 }) { - Image($r('app.media.account_jianli')) + Image($r('app.media.account_vitae')) .width(40) .height(40) Text('涓汉绠�鍘�') @@ -140,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) @@ -149,6 +308,12 @@ .fontWeight(500) .fontColor(Color.Black) } + .onClick(() => { + console.log('鐐瑰嚮') + this.contentNode = new ComponentContent(this.ctx, wrapBuilder(buildText), new DialogParams((this.dialogMessage))); + PromptActionClass.setContentNode(this.contentNode); + PromptActionClass.openDialog() + }) } .width('100%') .backgroundColor(Color.White) @@ -176,6 +341,25 @@ } .width('100%') .padding(8) + .onClick(() => { + if (item.title == '闅愮璁剧疆') { + router.pushUrl({ + 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' + }) + } + }) } }) } @@ -199,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