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/component/tool/CustomCard.dart';
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
import 'package:vbvs_app/controller/date/CalendarController.dart';
import 'package:vbvs_app/controller/login/login_controller.dart';
import 'package:vbvs_app/controller/main_bottom/global_controller.dart';
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
import 'package:vbvs_app/controller/user_info_controller.dart';
import 'package:vbvs_app/enum/LoginStatus.dart';

class MinePage extends StatefulWidget {
  const MinePage({super.key});

  @override
  State<MinePage> createState() => _MinePageState();
}

class _MinePageState extends State<MinePage> {
  GlobalController globalController = Get.find();
  UserInfoController userInfoController = Get.find();
  ThemeController themeController = Get.find();
  CalendarController calendarController = Get.find();
  LoginController loginController = Get.find();

  @override
  Widget build(BuildContext context) {
    SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
      statusBarColor: Colors.transparent, // 这里设置你希望的颜色
      statusBarIconBrightness: Brightness.light, // 状态栏图标的亮度
    ));
    int login = userInfoController.model.login!;
    return LayoutBuilder(
      builder: (context, bodySize) => GestureDetector(
        onTap: () => FocusScope.of(context).unfocus(),
        child: Container(
          decoration: BoxDecoration(
            image: DecorationImage(
              image: AssetImage('assets/img/bgImage.png'), // 本地图片
              fit: BoxFit.fill, // 填满整个 Container
            ),
          ),
          child: Scaffold(
            backgroundColor: Colors.transparent,
            body: SafeArea(
              top: true,
              child: Container(
                height: bodySize.maxHeight,
                child: Column(
                  mainAxisSize: MainAxisSize.max,
                  children: [
                    Container(
                      width: double.infinity,
                      decoration: BoxDecoration(
                        color: Colors.transparent,
                        borderRadius: BorderRadius.only(
                          bottomLeft: Radius.circular(
                              AppConstants().normal_container_radius),
                          bottomRight: Radius.circular(
                              AppConstants().normal_container_radius),
                          topLeft: Radius.circular(0.rpx),
                          topRight: Radius.circular(0.rpx),
                        ),
                      ),
                      child: Padding(
                        padding: EdgeInsetsDirectional.fromSTEB(
                            64.rpx, 0, 37.rpx, 0),
                        child: Column(
                          mainAxisSize: MainAxisSize.max,
                          children: [
                            Padding(
                              padding: EdgeInsetsDirectional.fromSTEB(
                                  0, 65.rpx, 0, 0),
                              child: Row(
                                mainAxisSize: MainAxisSize.max,
                                mainAxisAlignment: MainAxisAlignment.end,
                                children: [
                                  // ClickableContainer(
                                  //   backgroundColor:
                                  //       Colors.transparent, // 容器背景色
                                  //   highlightColor: themeController
                                  //       .currentColor.sc21, // 点击时的背景色
                                  //   padding: EdgeInsets
                                  //       .zero, // 这里去掉外部的 padding，避免影响点击范围
                                  //   onTap: () async {
                                  //     if (userInfoController.model.login ==
                                  //         LoginStatus.LOGIN.code) {
                                  //       // TopSlideNotification.show(
                                  //       //   context,
                                  //       //   text: "待开发功能".tr,
                                  //       // );
                                  //       await loginController.openWeChatCustomerService(context);
                                  //     } else {
                                  //       TopSlideNotification.show(
                                  //         context,
                                  //         text: "必须登录提示".tr,
                                  //         textColor:
                                  //             themeController.currentColor.sc9,
                                  //       );
                                  //       Get.toNamed("/loginPage");
                                  //     }
                                  //   },
                                  //   child: Padding(
                                  //     padding: EdgeInsetsDirectional.fromSTEB(
                                  //         0.rpx, 0.rpx, 0.rpx, 0.rpx),
                                  //     child: SvgPicture.asset(
                                  //       'assets/img/icon/earphone.svg',
                                  //       width: 29.rpx,
                                  //       height: 29.rpx, // 如果 SVG 中没有固定颜色，可以这样设置
                                  //       color: themeController.currentColor.sc3,
                                  //     ),
                                  //   ),
                                  // ),

                                  ClickableContainer(
                                    backgroundColor:
                                        Colors.transparent, // 容器背景色
                                    highlightColor: themeController
                                        .currentColor.sc21, // 点击时的背景色
                                    padding: EdgeInsets
                                        .zero, // 这里去掉外部的 padding，避免影响点击范围
                                    onTap: () {
                                      if (userInfoController.model.login ==
                                          LoginStatus.LOGIN.code) {
                                        Get.toNamed("/settingPage");
                                      } else {
                                        TopSlideNotification.show(
                                          context,
                                          text: "必须登录提示".tr,
                                          textColor:
                                              themeController.currentColor.sc9,
                                        );
                                        Get.toNamed("/loginPage");
                                      }
                                    },
                                    child: Padding(
                                      padding: EdgeInsetsDirectional.fromSTEB(
                                          0.rpx, 0.rpx, 0.rpx, 0.rpx),
                                      child: SvgPicture.asset(
                                        'assets/img/icon/setting.svg',
                                        width: 29.rpx,
                                        height: 29
                                            .rpx, // 如果 SVG 中没有固定颜色，使用 color 设置
                                        color: themeController.currentColor.sc3,
                                      ),
                                    ),
                                  ),
                                ].divide(SizedBox(width: 60.rpx)),
                              ),
                            ),
                            Padding(
                              padding: EdgeInsetsDirectional.fromSTEB(
                                  0, 50.rpx, 0, 66.rpx),
                              child: Row(
                                mainAxisSize: MainAxisSize.max,
                                mainAxisAlignment:
                                    MainAxisAlignment.spaceBetween,
                                children: [
                                  Obx(() {
                                    var userInfo =
                                        userInfoController.model.user;
                                    return Row(
                                      mainAxisSize: MainAxisSize.max,
                                      children: [
                                        Container(
                                          width: 120.rpx,
                                          height: 120.rpx,
                                          clipBehavior: Clip.antiAlias,
                                          decoration: BoxDecoration(
                                            shape: BoxShape.circle,
                                          ),
                                          child: login == 1
                                              ? (userInfoController.model.user!
                                                              .avatar ==
                                                          null ||
                                                      userInfoController.model
                                                          .user!.avatar!.isEmpty
                                                  ? Image.asset(
                                                      "assets/img/avatar.png",
                                                      fit: BoxFit.cover,
                                                    )
                                                  : Image.network(
                                                      userInfoController
                                                          .model.user!.avatar!,
                                                      fit: BoxFit.cover,
                                                    ))
                                              : Image.asset(
                                                  "assets/img/avatar.png",
                                                  fit: BoxFit.cover,
                                                ),
                                        ),
                                        Column(
                                          mainAxisSize: MainAxisSize.max,
                                          crossAxisAlignment:
                                              CrossAxisAlignment.start,
                                          children: [
                                            Text(
                                              login == 1
                                                  ? (userInfoController.model
                                                          .user!.nick_name ??
                                                      '未命名'.tr)
                                                  : "未命名".tr,
                                              style: TextStyle(
                                                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: TextStyle(
                                                fontFamily: 'Inter',
                                                color: themeController
                                                    .currentColor.sc4,
                                                fontSize: AppConstants()
                                                    .normal_text_fontSize,
                                                letterSpacing: 0.0,
                                              ),
                                            ),
                                          ].divide(SizedBox(height: 20.rpx)),
                                        ),
                                      ].divide(SizedBox(width: 35.rpx)),
                                    );
                                  }),
                                  CustomCard(
                                    borderRadius: 0,
                                    onTap: () async {
                                      if (login == 1) {
                                        await Get.toNamed("/updateUserPage");
                                        await userInfoController.getUserInfo();
                                        userInfoController.updateAll();
                                      } else {
                                        Get.toNamed("/loginPage");
                                      }
                                    },
                                    // colors: [themeController.currentColor.sc5],
                                    colors: [Colors.transparent],
                                    child: Row(
                                      mainAxisSize: MainAxisSize.max,
                                      children: [
                                        Text(
                                          login == 1 ? '编辑'.tr : '我的.去登录'.tr,
                                          style: TextStyle(
                                            fontFamily: 'Inter',
                                            color: themeController
                                                .currentColor.sc3,
                                            fontSize: AppConstants()
                                                .normal_text_fontSize,
                                            letterSpacing: 0.0,
                                          ),
                                        ),
                                        Padding(
                                          padding:
                                              EdgeInsetsDirectional.fromSTEB(
                                                  0, 6.rpx, 0, 0.rpx),
                                          child: SvgPicture.asset(
                                            'assets/img/icon/arrow_right.svg',
                                            width: 14.rpx,
                                            height:
                                                14.rpx, // 如果 SVG 中没有固定颜色，可以这样设置
                                            color: themeController
                                                .currentColor.sc3,
                                          ),
                                        ),
                                      ].divide(SizedBox(width: 16.rpx)),
                                    ),
                                  ),
                                ],
                              ),
                            ),
                          ],
                        ),
                      ),
                    ),
                    Padding(
                      padding: EdgeInsetsDirectional.fromSTEB(
                          30.rpx, 25.rpx, 30.rpx, 0),
                      child: Container(
                        width: double.infinity,
                        decoration: BoxDecoration(
                          color: Color(0xFF242835),
                          borderRadius: BorderRadius.circular(
                              AppConstants().normal_container_radius),
                        ),
                        child: Padding(
                          padding: EdgeInsetsDirectional.fromSTEB(
                              0.rpx, 0, 0.rpx, 0),
                          child: Column(
                            mainAxisSize: MainAxisSize.max,
                            children: [
                              ClickableContainer(
                                backgroundColor: Colors.transparent, // 容器背景色
                                highlightColor: themeController
                                    .currentColor.sc21, // 点击时的背景色
                                padding: EdgeInsetsDirectional.fromSTEB(
                                    40.rpx, 0.rpx, 40.rpx, 0.rpx),
                                onTap: () {
                                  UserInfoController userInfoController =
                                      Get.find();
                                  if (userInfoController.model.login !=
                                      LoginStatus.LOGIN.code) {
                                    TopSlideNotification.show(
                                      context,
                                      text: "必须登录提示".tr,
                                      textColor:
                                          themeController.currentColor.sc9,
                                    );
                                    Get.toNamed("/loginPage");
                                  } else {
                                    Get.toNamed("/deviceTypeList");
                                  }
                                },
                                child: Container(
                                  child: Padding(
                                    padding: EdgeInsetsDirectional.fromSTEB(
                                        0.rpx, 30.rpx, 0.rpx, 30.rpx),
                                    child: Row(
                                      mainAxisSize: MainAxisSize.max,
                                      mainAxisAlignment:
                                          MainAxisAlignment.spaceBetween,
                                      children: [
                                        Row(
                                          mainAxisSize: MainAxisSize.max,
                                          children: [
                                            SvgPicture.asset(
                                              'assets/img/icon/my_device.svg',
                                              width: 25.rpx,
                                              height: 25
                                                  .rpx, // 如果 SVG 中没有固定颜色，可以这样设置
                                              color: stringToColor("#00C1AA"),
                                            ),
                                            Text(
                                              '我的.我的设备'.tr,
                                              style: TextStyle(
                                                fontFamily: 'Inter',
                                                color: themeController
                                                    .currentColor.sc3,
                                                fontSize: AppConstants()
                                                    .title_text_fontSize,
                                                letterSpacing: 0.0,
                                              ),
                                            ),
                                          ].divide(SizedBox(width: 22.rpx)),
                                        ),
                                        SvgPicture.asset(
                                          'assets/img/icon/arrow_right.svg',
                                          width: 8.rpx,
                                          height:
                                              15.rpx, // 如果 SVG 中没有固定颜色，可以这样设置
                                          color:
                                              themeController.currentColor.sc3,
                                        ),
                                      ],
                                    ),
                                  ),
                                ),
                              ),
                              ClickableContainer(
                                backgroundColor: Colors.transparent, // 容器背景色
                                highlightColor: themeController
                                    .currentColor.sc21, // 点击时的背景色
                                padding: EdgeInsetsDirectional.fromSTEB(
                                    0.rpx, 0.rpx, 0.rpx, 0.rpx),
                                onTap: () {
                                  UserInfoController userInfoController =
                                      Get.find();
                                  if (userInfoController.model.login !=
                                      LoginStatus.LOGIN.code) {
                                    TopSlideNotification.show(
                                      context,
                                      text: "必须登录提示".tr,
                                      textColor:
                                          themeController.currentColor.sc9,
                                    );
                                    Get.toNamed("/loginPage");
                                  } else {
                                    // TopSlideNotification.show(
                                    //   context,
                                    //   text: "待开发.提示".tr,
                                    //   textColor:
                                    //       themeController.currentColor.sc2,
                                    // );
                                    Get.toNamed("/applyRepairPage");
                                  }
                                },
                                child: Container(
                                  child: Padding(
                                    padding: EdgeInsetsDirectional.fromSTEB(
                                        40.rpx, 30.rpx, 40.rpx, 30.rpx),
                                    child: Row(
                                      mainAxisSize: MainAxisSize.max,
                                      mainAxisAlignment:
                                          MainAxisAlignment.spaceBetween,
                                      children: [
                                        Row(
                                          mainAxisSize: MainAxisSize.max,
                                          children: [
                                            SvgPicture.asset(
                                              'assets/img/icon/device_repair.svg',
                                              width: 25.rpx,
                                              height: 25
                                                  .rpx, // 如果 SVG 中没有固定颜色，可以这样设置
                                              color: stringToColor("#00C1AA"),
                                            ),
                                            Text(
                                              '我的.设备报修'.tr,
                                              style: TextStyle(
                                                fontFamily: 'Inter',
                                                color: themeController
                                                    .currentColor.sc3,
                                                fontSize: AppConstants()
                                                    .title_text_fontSize,
                                                letterSpacing: 0.0,
                                              ),
                                            ),
                                          ].divide(SizedBox(width: 22.rpx)),
                                        ),
                                        SvgPicture.asset(
                                          'assets/img/icon/arrow_right.svg',
                                          width: 8.rpx,
                                          height:
                                              15.rpx, // 如果 SVG 中没有固定颜色，可以这样设置
                                          color:
                                              themeController.currentColor.sc3,
                                        ),
                                      ],
                                    ),
                                  ),
                                ),
                              ),
                              ClickableContainer(
                                backgroundColor: Colors.transparent, // 容器背景色
                                highlightColor: themeController
                                    .currentColor.sc21, // 点击时的背景色
                                padding: EdgeInsetsDirectional.fromSTEB(
                                    0.rpx, 0.rpx, 0.rpx, 0.rpx),
                                onTap: () {
                                  UserInfoController userInfoController =
                                      Get.find();
                                  if (userInfoController.model.login !=
                                      LoginStatus.LOGIN.code) {
                                    TopSlideNotification.show(
                                      context,
                                      text: "必须登录提示".tr,
                                      textColor:
                                          themeController.currentColor.sc9,
                                    );
                                    Get.toNamed("/loginPage");
                                  } else {
                                    // TopSlideNotification.show(
                                    //   context,
                                    //   text: "待开发.提示".tr,
                                    //   textColor:
                                    //       themeController.currentColor.sc2,
                                    // );
                                    Get.toNamed("/helpPage");
                                  }
                                },
                                child: Container(
                                  child: Padding(
                                    padding: EdgeInsetsDirectional.fromSTEB(
                                        40.rpx, 30.rpx, 40.rpx, 30.rpx),
                                    child: Row(
                                      mainAxisSize: MainAxisSize.max,
                                      mainAxisAlignment:
                                          MainAxisAlignment.spaceBetween,
                                      children: [
                                        Row(
                                          mainAxisSize: MainAxisSize.max,
                                          children: [
                                            SvgPicture.asset(
                                              'assets/img/icon/op_ex.svg',
                                              width: 25.rpx,
                                              height: 25
                                                  .rpx, // 如果 SVG 中没有固定颜色，可以这样设置
                                              color: stringToColor("#00C1AA"),
                                            ),
                                            Text(
                                              '我的.操作说明'.tr,
                                              style: TextStyle(
                                                fontFamily: 'Inter',
                                                color: themeController
                                                    .currentColor.sc3,
                                                fontSize: AppConstants()
                                                    .title_text_fontSize,
                                                letterSpacing: 0.0,
                                              ),
                                            ),
                                          ].divide(SizedBox(width: 22.rpx)),
                                        ),
                                        SvgPicture.asset(
                                          'assets/img/icon/arrow_right.svg',
                                          width: 8.rpx,
                                          height:
                                              14.rpx, // 如果 SVG 中没有固定颜色，可以这样设置
                                          color:
                                              themeController.currentColor.sc3,
                                        ),
                                      ],
                                    ),
                                  ),
                                ),
                              ),
                              ClickableContainer(
                                backgroundColor: Colors.transparent, // 容器背景色
                                highlightColor: themeController
                                    .currentColor.sc21, // 点击时的背景色
                                padding: EdgeInsetsDirectional.fromSTEB(
                                    40.rpx, 0.rpx, 40.rpx, 0.rpx),
                                onTap: () {
                                  UserInfoController userInfoController =
                                      Get.find();
                                  if (userInfoController.model.login !=
                                      LoginStatus.LOGIN.code) {
                                    TopSlideNotification.show(
                                      context,
                                      text: "必须登录提示".tr,
                                      textColor:
                                          themeController.currentColor.sc9,
                                    );
                                    Get.toNamed("/loginPage");
                                  } else {
                                    // TopSlideNotification.show(
                                    //   context,
                                    //   text: "待开发.提示".tr,
                                    //   textColor:
                                    //       themeController.currentColor.sc2,
                                    // );
                                    Get.toNamed("/followPage");
                                  }
                                },
                                child: Container(
                                  child: Padding(
                                    padding: EdgeInsetsDirectional.fromSTEB(
                                        0.rpx, 30.rpx, 0.rpx, 30.rpx),
                                    child: Row(
                                      mainAxisSize: MainAxisSize.max,
                                      mainAxisAlignment:
                                          MainAxisAlignment.spaceBetween,
                                      children: [
                                        Row(
                                          mainAxisSize: MainAxisSize.max,
                                          children: [
                                            SvgPicture.asset(
                                              'assets/img/icon/like.svg',
                                              width: 25.rpx,
                                              height: 25
                                                  .rpx, // 如果 SVG 中没有固定颜色，可以这样设置
                                              color: stringToColor("#00C1AA"),
                                            ),
                                            Text(
                                              '我的.关注我们'.tr,
                                              style: TextStyle(
                                                fontFamily: 'Inter',
                                                color: themeController
                                                    .currentColor.sc3,
                                                fontSize: AppConstants()
                                                    .title_text_fontSize,
                                                letterSpacing: 0.0,
                                              ),
                                            ),
                                          ].divide(SizedBox(width: 22.rpx)),
                                        ),
                                        SvgPicture.asset(
                                          'assets/img/icon/arrow_right.svg',
                                          width: 8.rpx,
                                          height:
                                              15.rpx, // 如果 SVG 中没有固定颜色，可以这样设置
                                          color:
                                              themeController.currentColor.sc3,
                                        ),
                                      ],
                                    ),
                                  ),
                                ),
                              ),
                              ClickableContainer(
                                backgroundColor: Colors.transparent, // 容器背景色
                                highlightColor: themeController
                                    .currentColor.sc21, // 点击时的背景色
                                padding: EdgeInsetsDirectional.fromSTEB(
                                    40.rpx, 0.rpx, 40.rpx, 0.rpx),
                                onTap: () {
                                  UserInfoController userInfoController =
                                      Get.find();
                                  if (userInfoController.model.login !=
                                      LoginStatus.LOGIN.code) {
                                    TopSlideNotification.show(
                                      context,
                                      text: "必须登录提示".tr,
                                      textColor:
                                          themeController.currentColor.sc9,
                                    );
                                    Get.toNamed("/loginPage");
                                  } else {
                                    // TopSlideNotification.show(
                                    //   context,
                                    //   text: "待开发.提示".tr,
                                    //   textColor:
                                    //       themeController.currentColor.sc2,
                                    // );
                                    Get.toNamed("/newSleepReportPage",
                                        arguments: {
                                          'date': DateTime.now()
                                              .millisecondsSinceEpoch,
                                          "mac": 'aaaaaaeeeeeq',
                                          'type': 1
                                        });
                                  }
                                },
                                child: Container(
                                  child: Padding(
                                    padding: EdgeInsetsDirectional.fromSTEB(
                                        0.rpx, 30.rpx, 0.rpx, 30.rpx),
                                    child: Row(
                                      mainAxisSize: MainAxisSize.max,
                                      mainAxisAlignment:
                                          MainAxisAlignment.spaceBetween,
                                      children: [
                                        Row(
                                          mainAxisSize: MainAxisSize.max,
                                          children: [
                                            SvgPicture.asset(
                                              'assets/img/icon/version.svg',
                                              width: 25.rpx,
                                              height: 25
                                                  .rpx, // 如果 SVG 中没有固定颜色，可以这样设置
                                              color: stringToColor("#00C1AA"),
                                            ),
                                            Text(
                                              '我的.当前版本'.tr,
                                              style: TextStyle(
                                                fontFamily: 'Inter',
                                                color: themeController
                                                    .currentColor.sc3,
                                                fontSize: AppConstants()
                                                    .title_text_fontSize,
                                                letterSpacing: 0.0,
                                              ),
                                            ),
                                          ].divide(SizedBox(width: 22.rpx)),
                                        ),
                                        Row(
                                          mainAxisSize: MainAxisSize.max,
                                          children: [
                                            Text(
                                              'V1.0.2506.06',
                                              style: TextStyle(
                                                fontFamily: 'Inter',
                                                color: Color(0xFFD9E3EB),
                                                fontSize: 26.rpx,
                                                letterSpacing: 0.0,
                                              ),
                                            ),
                                            SvgPicture.asset(
                                              'assets/img/icon/arrow_right.svg',
                                              width: 8.rpx,
                                              height: 15
                                                  .rpx, // 如果 SVG 中没有固定颜色，可以这样设置
                                              color: themeController
                                                  .currentColor.sc3,
                                            ),
                                          ].divide(SizedBox(width: 28.rpx)),
                                        ),
                                      ],
                                    ),
                                  ),
                                ),
                              ),
                            ]
                                .divide(SizedBox(height: 0.rpx))
                                .addToStart(SizedBox(height: 30.rpx))
                                .addToEnd(SizedBox(height: 30.rpx)),
                          ),
                        ),
                      ),
                    ),
                  ],
                ),
              ),
            ),
          ),
        ),
      ),
    );
  }
}
