import 'package:ef/ef.dart'; import 'package:flutter/material.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/CustomCard.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'; class HomePage extends StatefulWidget { const HomePage({super.key}); @override State createState() => _HomePageState(); } class _HomePageState extends State { GlobalController globalController = Get.find(); UserInfoController userInfoController = Get.find(); ThemeController themeController = Get.find(); @override Widget build(BuildContext context) { return LayoutBuilder( builder: (context, bodySize) => GestureDetector( onTap: () => FocusScope.of(context).unfocus(), child: Scaffold( // appBar: AppBar( // backgroundColor: AppColors.bg_color, // automaticallyImplyLeading: false, // title: Container( // width: double.infinity, // height: 70.rpx, // child: Obx( // () => InkWell( // onTap: () { // Get.toNamed("/editUserInfoPage"); // }, // child: Row( // mainAxisSize: MainAxisSize.max, // mainAxisAlignment: MainAxisAlignment.spaceBetween, // children: [ // Row( // mainAxisSize: MainAxisSize.max, // children: [ // Container( // width: 56.rpx, // height: 56.rpx, // clipBehavior: Clip.antiAlias, // decoration: BoxDecoration( // shape: BoxShape.circle, // ), // ), // Container( // width: 20.rpx, // height: 0, // decoration: BoxDecoration( // color: Colors.white, // shape: BoxShape.rectangle, // ), // ), // Text( // userInfoController.model.user!.nickName ?? '匿名', // style: FlutterFlowTheme.of(context) // .bodyMedium // .override( // fontFamily: 'Readex Pro', // color: Colors.white, // letterSpacing: 0, // fontSize: 30.rpx), // ), // ], // ), // ], // ), // ), // ), // ), // actions: [], // centerTitle: false, // ), body: SafeArea( top: true, // child: Text("首页"), child: Container( height: bodySize.maxHeight, decoration: BoxDecoration( image: DecorationImage( image: AssetImage('assets/img/bgImage.png'), // 本地图片 fit: BoxFit.fill, // 填满整个 Container ), ), child: Padding( padding: EdgeInsetsDirectional.fromSTEB( AppConstants().main_left_right_padding, 47.rpx, AppConstants().main_left_right_padding, 0), child: SingleChildScrollView( child: Column( mainAxisSize: MainAxisSize.max, children: [ Padding( padding: EdgeInsetsDirectional.fromSTEB( AppConstants().content_left_right_padding, 0, AppConstants().content_left_right_padding, 0), child: Container( width: double.infinity, child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ CustomCard( borderRadius: 20.rpx, onTap: () async { Get.toNamed("/loginPage"); }, title: '首页.登录' .tr, // 虽然 title 传入了,但当前组件里没用它(可忽略或用于调试) colors: [ stringToColor("#45D989"), stringToColor("#00C1AA"), ], child: Container( width: 100.rpx, height: 60.rpx, alignment: Alignment.center, padding: EdgeInsetsDirectional.fromSTEB( 16.rpx, 0, 16.rpx, 0), child: Text( '首页.登录'.tr, style: FlutterFlowTheme.of(context) .titleSmall .override( fontFamily: 'Inter Tight', color: Colors.white, letterSpacing: 0.0, ), ), ), ), Icon( Icons.add_circle_outline_outlined, color: FlutterFlowTheme.of(context).primaryText, size: 38.rpx, ), // Lottie.asset( // 'assets/img/loading.json', // width: 200, // height: 200, // fit: BoxFit.contain, // ) ], ), ), ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 19.rpx, 13.rpx, 0, 13.rpx), child: Container( width: double.infinity, child: Row( children: [ Text( '首页.已关联体征监测设备'.tr, style: FlutterFlowTheme.of(context) .bodyMedium .override( fontFamily: 'Inter', fontSize: AppConstants().title_text_fontSize, letterSpacing: 0.0, ), ), Text( ' 0', style: FlutterFlowTheme.of(context) .bodyMedium .override( fontFamily: 'Inter', fontSize: AppConstants().title_text_fontSize, letterSpacing: 0.0, ), ), ], )), ), Container( width: MediaQuery.sizeOf(context).width, height: MediaQuery.sizeOf(context).height * 0.277, constraints: BoxConstraints( minWidth: 690.rpx, minHeight: 450.rpx, ), decoration: BoxDecoration( color: stringToColor("#242835"), borderRadius: BorderRadius.circular( AppConstants().normal_container_radius), // 圆角半径 ), child: Column( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Container( width: MediaQuery.sizeOf(context).width * 0.66, height: MediaQuery.sizeOf(context).height * 0.055, constraints: BoxConstraints( minWidth: 500.rpx, minHeight: 90.rpx, ), decoration: BoxDecoration( gradient: LinearGradient( colors: [Colors.red, Colors.orange], // 渐变颜色数组 begin: Alignment.topLeft, end: Alignment.bottomRight, ), borderRadius: BorderRadius.circular( AppConstants() .button_container_radius), // 圆角半径 ), child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, children: [ Icon( Icons.arrow_back, color: FlutterFlowTheme.of(context) .primaryText, size: 28.rpx, ), Text( '首页.扫一扫绑定'.tr, style: FlutterFlowTheme.of(context) .bodyMedium .override( fontFamily: 'Inter', fontSize: AppConstants() .normal_text_fontSize, letterSpacing: 0.0, ), ), ].divide(SizedBox( width: 17.rpx, )), ), ), CustomCard( borderRadius: AppConstants() .button_container_radius, // 圆角半径 onTap: () { print('Button pressed ...'); Get.toNamed("/deviceType"); }, colors: [ stringToColor("45D989"), stringToColor("00C1AA") ], // 渐变色是同一个色,也可以根据需要调整 title: '首页.蓝牙绑定'.tr, // 可选,虽然这个 title 没用,但可以作为调试用 child: Container( width: MediaQuery.sizeOf(context).width * 0.66, height: MediaQuery.sizeOf(context).height * 0.055, constraints: BoxConstraints( minWidth: 500.rpx, minHeight: 90.rpx, ), child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, children: [ Icon( Icons.arrow_back, color: FlutterFlowTheme.of(context) .primaryText, size: 28.rpx, ), Text( '首页.蓝牙绑定'.tr, style: FlutterFlowTheme.of(context) .bodyMedium .override( fontFamily: 'Inter', fontSize: AppConstants() .normal_text_fontSize, letterSpacing: 0.0, ), ), ].divide(SizedBox( width: 17.rpx, )), ), ), ) ], ), ), Padding( padding: EdgeInsetsDirectional.fromSTEB(0, 26.rpx, 0, 0), child: Container( width: MediaQuery.sizeOf(context).width, decoration: BoxDecoration( color: Color(0xFFFBF5D5), borderRadius: BorderRadius.circular( AppConstants().normal_container_radius), // 圆角半径 ), child: Padding( padding: EdgeInsetsDirectional.fromSTEB( 25.rpx, 25.rpx, 25.rpx, 25.rpx), child: Row( mainAxisSize: MainAxisSize.max, crossAxisAlignment: CrossAxisAlignment.start, children: [ Icon( Icons.volume_mute, color: FlutterFlowTheme.of(context).primaryText, size: 30.rpx, ), Expanded( child: Column( mainAxisSize: MainAxisSize.max, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( '首页.提示标题'.tr, style: FlutterFlowTheme.of(context) .bodyMedium .override( fontFamily: 'Inter', fontSize: AppConstants() .normal_text_fontSize, letterSpacing: 0.0, fontWeight: FontWeight.w500, color: Colors.orange), ), Text( '首页.提示内容1'.tr, style: FlutterFlowTheme.of(context) .bodyMedium .override( fontFamily: 'Inter', fontSize: AppConstants() .normal_text_fontSize, letterSpacing: 0.0, ), ), Text( '首页.提示内容2'.tr, style: FlutterFlowTheme.of(context) .bodyMedium .override( fontFamily: 'Inter', fontSize: AppConstants() .normal_text_fontSize, letterSpacing: 0.0, ), ), Text( '首页.提示内容3'.tr, style: FlutterFlowTheme.of(context) .bodyMedium .override( fontFamily: 'Inter', fontSize: AppConstants() .normal_text_fontSize, letterSpacing: 0.0, ), ), ].divide(SizedBox( height: AppConstants() .text_padding_up_dowm_p)), ), ) ].divide(SizedBox(width: 20.rpx)), ), ), ), ), ], ), ), ), ), ), ), ), ); } }