import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:star_lock/app_settings/app_colors.dart'; import 'package:star_lock/flavors.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_logic.dart'; import 'package:star_lock/tools/custom_bottom_sheet.dart'; import '../../../appRouters.dart'; import '../../../tools/commonItem.dart'; import '../../../tools/customNetworkImage.dart'; import '../../../tools/titleAppBar.dart'; import '../../../translations/trans_lib.dart'; class MinePersonInfoPage extends StatefulWidget { MinePersonInfoPage({Key? key, this.showAppBar = true, this.showAbout = false}) : super(key: key); bool showAppBar; bool showAbout; @override State createState() => _MinePersonInfoPageState(); } class _MinePersonInfoPageState extends State { final logic = Get.put(MinePersonInfoLogic()); final state = Get.find().state; @override Widget build(BuildContext context) { return Scaffold( backgroundColor: F.sw( defaultCall: () => AppColors.mainBackgroundColor, xhjCall: () => AppColors.mainBackgroundColor), appBar: widget.showAppBar ? TitleAppBar( barTitle: TranslationLoader.lanKeys!.personalInformation!.tr, haveBack: true, backgroundColor: AppColors.mainColor) : null, body: Column( children: [ F.sw( defaultCall: () => SizedBox(), xhjCall: () => Container( width: 1.sw, height: 0.2.sw, margin: EdgeInsets.only(top: 15.h, left: 20.w, right: 20.w), padding: EdgeInsets.symmetric(horizontal: 25.w), decoration: BoxDecoration( image: const DecorationImage( image: AssetImage('images/xhj_main_bg.jpg'), fit: BoxFit.cover, ), borderRadius: BorderRadius.circular(20.r), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.15), offset: const Offset(0, 0), blurRadius: 10.r, spreadRadius: 0, ), ], ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, children: [ Text( '系统设置', style: TextStyle( color: AppColors.blackColor, fontSize: 28.sp, fontWeight: FontWeight.w600, ), ), Text( '系统的全局配置在此项内进行设置', style: TextStyle( color: AppColors.blackColor.withOpacity(0.6), fontSize: 20.sp, fontWeight: FontWeight.w600, ), ), ], ), )), SizedBox( height: 20.h, ), Container( margin: EdgeInsets.symmetric(vertical: 10.h, horizontal: 15.w), child: ClipRRect( borderRadius: BorderRadius.circular(20.r), child: Column( children: [ Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.avatar!.tr, rightTitle: "", allHeight: 100.h, isHaveLine: true, isHaveDirection: true, isHaveRightWidget: true, rightWidget: ClipRRect( borderRadius: BorderRadius.circular(36.w), child: CustomNetworkImage( url: state.headUrl.value, defaultUrl: 'images/controls_user.png', width: 72.w, height: 72.w), ), action: () async { _openModalBottomSheet(); }, )), Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.nickName!.tr, rightTitle: state.mineInfoData.value.nickname != null ? state.mineInfoData.value.nickname! : "", isHaveLine: true, isHaveDirection: true, action: () { Navigator.pushNamed( context, Routers.minePersonInfoEditNamePage, arguments: { 'mineInfoData': state.mineInfoData.value }).then((value) => logic.getUserInfoRequest()); })), Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.mobileNumber!.tr, rightTitle: state.mineInfoData.value.mobile != null ? state.mineInfoData.value.mobile! : TranslationLoader.lanKeys!.goBind!.tr, isHaveLine: true, isHaveDirection: true, action: () { //有手机号 则去修改手机号 否则去绑定新的手机号 isFrom:1 短信,2 邮箱 if (state.mineInfoData.value.mobile!.isNotEmpty) { Navigator.pushNamed( context, Routers.mineUnbindPhoneOrEmailPage, arguments: { 'mobile': state.mineInfoData.value.mobile!, 'isFrom': '1' }).then((value) => logic.getUserInfoRequest()); } else { Navigator.pushNamed( context, Routers.mineBindPhoneOrEmailPage, arguments: { 'mobile': state.mineInfoData.value.mobile!, 'isFrom': '1' }).then((value) => logic.getUserInfoRequest()); } })), Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.email!.tr, rightTitle: state.mineInfoData.value.email != null ? state.mineInfoData.value.email! : TranslationLoader.lanKeys!.goBind!.tr, isHaveLine: true, isHaveDirection: true, action: () { //有邮箱 则去修改邮箱 否则去绑定新的邮箱 isFrom:1 短信,2 邮箱 if (state.mineInfoData.value.email!.isNotEmpty) { Navigator.pushNamed( context, Routers.mineUnbindPhoneOrEmailPage, arguments: { 'isFrom': '2', 'email': state.mineInfoData.value.email! }).then((value) => logic.getUserInfoRequest()); } else { Navigator.pushNamed( context, Routers.mineBindPhoneOrEmailPage, arguments: { 'isFrom': '2', 'email': state.mineInfoData.value.email! }).then((value) => logic.getUserInfoRequest()); } })), CommonItem( leftTitel: TranslationLoader.lanKeys!.resetPasswords!.tr, rightTitle: "", isHaveLine: true, isHaveDirection: true, action: () { Navigator.pushNamed( context, Routers.minePersonInfoResetPasswordPage); }), Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.safetyProblem!.tr, rightTitle: state.mineInfoData.value.haveSafeAnswer == 0 ? "去设置".tr : "", isHaveLine: true, isHaveDirection: true, action: () { if (state.mineInfoData.value.haveSafeAnswer == 0) { Navigator.pushNamed(context, Routers.minePersonInfoSetSafetyProblemPage) .then((value) => logic.getUserInfoRequest()); } else { Navigator.pushNamed(context, Routers.minePersonInfoViewSafetyProblemPage); } })), Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.countryAndRegion!.tr, rightTitle: state.mineInfoData.value.countryName != null ? state.mineInfoData.value.countryName! : "", isHaveLine: true, isHaveDirection: false)), if (F.isLite == false && widget.showAbout) CommonItem( leftTitel: TranslationLoader.lanKeys!.valueAddedServices!.tr, isHaveLine: true, isHaveDirection: true, action: () { Get.back(); Get.toNamed(Routers.valueAddedServicesPage); }, ), if (widget.showAbout) CommonItem( leftTitel: TranslationLoader.lanKeys!.set!.tr, isHaveLine: true, isHaveDirection: true, action: () { Get.back(); Get.toNamed(Routers.mineSetPage); }, ), if (widget.showAbout) CommonItem( leftTitel: TranslationLoader.lanKeys!.about!.tr, isHaveLine: false, isHaveDirection: true, action: () { Get.back(); Get.toNamed(Routers.aboutPage); }, ), ], ), ), ), ], )); } Future _openModalBottomSheet() async { showModalBottomSheet( context: context, shape: RoundedRectangleBorder( borderRadius: BorderRadiusDirectional.circular(10)), builder: (BuildContext context) { return AlertBottomWidget( topTitle: '', items: const ['拍照', '从相册选择'], chooseCallback: logic.chooseCallback, ); }); } @override void dispose() { super.dispose(); } }