更新登录

This commit is contained in:
wyf
2025-06-09 15:31:18 +08:00
parent 71a4504f78
commit 8dfc522a69
31 changed files with 1737 additions and 1662 deletions

View File

@@ -2,13 +2,15 @@ import 'package:ef/ef.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:flutterflow_ui/flutterflow_ui.dart';
import 'package:vbvs_app/common/color/appConstants.dart';
import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
import 'package:vbvs_app/controller/main_bottom/global_controller.dart';
import 'package:vbvs_app/controller/mh_controller/muser_info_controller.dart';
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
import 'package:vbvs_app/enum/LoginStatus.dart';
import 'package:vbvs_app/controller/user_info_controller.dart';
import 'dart:ui' as ui;
class NewMinePage extends StatefulWidget {
const NewMinePage({super.key});
@@ -19,7 +21,7 @@ class NewMinePage extends StatefulWidget {
class _MinePageState extends State<NewMinePage> {
GlobalController globalController = Get.find();
MUserInfoController userInfoController = Get.find();
UserInfoController userInfoController = Get.find();
ThemeController themeController = Get.find();
final GlobalKey _textKey = GlobalKey();
@@ -27,7 +29,18 @@ class _MinePageState extends State<NewMinePage> {
@override
void initState() {
super.initState();
_calculateTextHalfWidth('Eason Chan');
final login = userInfoController.model.login;
String text;
if (login == 0) {
text = '未命名'.tr;
} else {
final nickname = userInfoController.model.user?.nick_name;
text = (nickname != null && nickname.isNotEmpty) ? nickname : '未命名'.tr;
}
// _calculateTextHalfWidth(text);
}
void _calculateTextHalfWidth(String text) {
@@ -40,14 +53,13 @@ class _MinePageState extends State<NewMinePage> {
);
final textPainter = TextPainter(
text: textSpan,
textDirection: TextDirection.ltr,
textDirection: ui.TextDirection.ltr,
);
textPainter.layout(); // 计算文本宽度
setState(() {
_textHalfWidth = textPainter.width / 2;
});
}
@override
Widget build(BuildContext context) {
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
@@ -102,20 +114,20 @@ class _MinePageState extends State<NewMinePage> {
color: Colors.white,
// color: Colors.white,
))),
ClickableContainer(
backgroundColor: Colors.transparent,
highlightColor: Colors.transparent,
padding: EdgeInsets.only(right: 11.rpx),
onTap: () {
// ClickableContainer(
// backgroundColor: Colors.transparent,
// highlightColor: Colors.transparent,
// padding: EdgeInsets.only(right: 11.rpx),
// onTap: () {
},
child: Container(
height: 42.rpx,
width: 42.rpx,
child: SvgPicture.asset(
'assets/img/icon/people_info.svg',
color: Colors.white,
))),
// },
// child: Container(
// height: 42.rpx,
// width: 42.rpx,
// child: SvgPicture.asset(
// 'assets/img/icon/people_info.svg',
// color: Colors.white,
// ))),
],
),
body: SafeArea(
@@ -160,32 +172,9 @@ class _MinePageState extends State<NewMinePage> {
child: Stack(
alignment: Alignment.center, // 使子组件在Stack中居中
children: [
Container(
// width: 194.rpx,
height: 63.rpx,
child: Column(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.center, // 文字水平居中
children: [
Text(
'Eason Chan',
style: TextStyle(
fontSize: 30.rpx,
color: Colors.white,
height: 1),
),
Text(
'135****2598',
style: TextStyle(
fontSize: 26.rpx,
color: const Color(0XFF929699),
height: 1),
),
],
),
),
Obx(() {
return getUserInfo(userInfoController);
}),
Positioned(
left: MediaQuery.of(context).size.width / 2 +
_textHalfWidth +
@@ -195,8 +184,25 @@ class _MinePageState extends State<NewMinePage> {
backgroundColor: Colors.transparent,
highlightColor: const Color(0xFF055466),
padding: EdgeInsets.zero,
onTap: () {
Get.toNamed("/editUserInfoPage");
onTap: () async {
await Get.toNamed("/editUserInfoPage");
await userInfoController.getUserInfo();
userInfoController.updateAll();
final login =
userInfoController.model.login;
String text;
if (login == 0) {
text = '未命名'.tr;
} else {
final nickname = userInfoController
.model.user?.nick_name;
text = (nickname != null &&
nickname.isNotEmpty)
? nickname
: '未命名'.tr;
}
_calculateTextHalfWidth(text);
},
child: Container(
width: 42.rpx,
@@ -210,6 +216,7 @@ class _MinePageState extends State<NewMinePage> {
),
)),
),
],
),
),
@@ -412,4 +419,45 @@ class _MinePageState extends State<NewMinePage> {
),
);
}
Widget getUserInfo(UserInfoController userInfoController) {
int login = userInfoController.model.login!;
return Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
login == 1
? (userInfoController.model.user!.nick_name ?? '未命名'.tr)
: "未命名".tr,
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Inter',
color: themeController.currentColor.sc3,
fontSize: AppConstants().title_text_fontSize,
letterSpacing: 0.0,
),
),
Text(
login == 1
? (() {
final user = userInfoController.model.user!;
if (user.email != null && user.email!.isNotEmpty) {
return user.email!;
} else if (user.phone != null && user.phone!.isNotEmpty) {
return MyUtils.hidePhoneNumber(user.phone!);
} else {
return "微信用户".tr;
}
})()
: "未知数据".tr,
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Inter',
color: themeController.currentColor.sc4,
fontSize: AppConstants().normal_text_fontSize,
letterSpacing: 0.0,
),
),
].divide(SizedBox(height: 20.rpx)),
);
}
}