user-page

This commit is contained in:
2022-10-26 13:41:29 +08:00
parent afee57df73
commit 099d2b4423
10 changed files with 132 additions and 54 deletions

View File

@@ -29,6 +29,21 @@ class _UserPageState extends State<UserPage> {
height: 0,
color: AppColors.border,
),
ActionItem(
'服务',
onTap: () {
Get.toNamed(UserRoutes.share);
},
),
const Divider(
height: 0,
color: AppColors.border,
),
const SizedBox(height: 8),
const Divider(
height: 0,
color: AppColors.border,
),
ActionItem(
'分享邀请',
onTap: () {
@@ -41,18 +56,7 @@ class _UserPageState extends State<UserPage> {
indent: 16,
),
ActionItem(
'安全设置',
onTap: () {
Get.toNamed(UserRoutes.safe);
},
),
const Divider(
height: 0,
color: AppColors.border,
indent: 16,
),
ActionItem(
'设置中心',
'设置',
onTap: () {
Get.toNamed(UserRoutes.setting);
},

View File

@@ -40,11 +40,16 @@ class UserTopBar extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
_.userInfo.value.nickname ?? '',
style: const TextStyle(
fontSize: 22,
fontWeight: FontWeight.w400,
InkWell(
onTap: () {
Get.toNamed(UserRoutes.info);
},
child: Text(
_.userInfo.value.nickname ?? '',
style: const TextStyle(
fontSize: 22,
fontWeight: FontWeight.w400,
),
),
),
Row(

View File

@@ -1,9 +1,8 @@
import 'package:chat/configs/app_colors.dart';
import 'package:chat/controllers/user_controller.dart';
import 'package:chat/routes/user_routes.dart';
import 'package:chat/services/auth_service.dart';
import 'package:chat/views/user/widgets/link_action_item.dart';
import 'package:chat/widgets/custom_circle_avatar.dart';
import 'package:chat/widgets/custom_avatar.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:image_cropper/image_cropper.dart';
@@ -45,11 +44,10 @@ class _UserInfoPageState extends State<UserInfoPage> {
_cropImage((await result.first.file)!.path);
},
trailing: CustomCircleAvatar(
isLink: true,
trailing: CustomAvatar(
_.userInfo.value.avatar,
size: 44,
borderWidth: 0.8,
borderColor: AppColors.primary,
size: 52,
),
),
LinkActionItem(

View File

@@ -1,5 +1,10 @@
import 'package:chat/configs/app_colors.dart';
import 'package:chat/routes/user_routes.dart';
import 'package:chat/services/auth_service.dart';
import 'package:chat/views/home/widgets/action_button.dart';
import 'package:chat/views/home/widgets/action_item.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class UserSettingPage extends StatefulWidget {
const UserSettingPage({Key? key}) : super(key: key);
@@ -17,11 +22,90 @@ class _UserSettingPageState extends State<UserSettingPage> {
),
body: Column(
children: [
ElevatedButton(
onPressed: () {
ActionItem(
'账号与安全',
onTap: () {
Get.toNamed(UserRoutes.safe);
},
),
const Divider(
height: 0,
color: AppColors.border,
),
const SizedBox(height: 8),
const Divider(
height: 0,
color: AppColors.border,
),
ActionItem(
'新消息通知',
onTap: () {
Get.toNamed(UserRoutes.safe);
},
),
const Divider(
height: 0,
color: AppColors.border,
indent: 16,
),
ActionItem(
'隐私权限',
onTap: () {
Get.toNamed(UserRoutes.safe);
},
),
const Divider(
height: 0,
color: AppColors.border,
),
const SizedBox(height: 8),
ActionItem(
'关于ZH-CHAT',
onTap: () {
Get.toNamed(UserRoutes.safe);
},
),
const Divider(
height: 0,
color: AppColors.border,
indent: 16,
),
ActionItem(
'帮助与反馈',
onTap: () {
Get.toNamed(UserRoutes.safe);
},
),
const SizedBox(height: 8),
const Divider(
height: 0,
color: AppColors.border,
),
ActionItem(
'版本更新',
onTap: () {
Get.toNamed(UserRoutes.safe);
},
),
const Divider(
height: 0,
color: AppColors.border,
),
const SizedBox(height: 8),
const Divider(
height: 0,
color: AppColors.border,
),
ActionButton(
'退出',
color: AppColors.primary,
onTap: () async {
AuthService.to.logout();
},
child: const Text('退出登录'),
),
const Divider(
height: 0,
color: AppColors.border,
),
],
),

View File

@@ -59,9 +59,13 @@ class LinkActionItem extends StatelessWidget {
),
if (trailing != null) trailing!,
if (isLink == true)
const Icon(
Icons.chevron_right,
color: AppColors.unactive,
const Padding(
padding: EdgeInsets.only(left: 4),
child: Icon(
Icons.arrow_forward_ios,
color: AppColors.unactive,
size: 14,
),
),
],
),