import 'package:ef/ef.dart'; import 'package:flutter/material.dart'; import 'package:flutterflow_ui/flutterflow_ui.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/mh_controller/people_info_controller.dart'; import 'package:flutter/services.dart'; class DevicePeopleInfo extends GetView { Map data; DevicePeopleInfo({required this.data}); PeopleInfoController controller = Get.put(PeopleInfoController()); getInfoRow(context, String k, String str) { return Row( mainAxisSize: MainAxisSize.max, children: [ Container( constraints: BoxConstraints( minWidth: 30.rpx, maxWidth: 140.rpx, minHeight: 62.rpx, ), child: Align( alignment: AlignmentDirectional(-1, 0), child: Text( overflow: TextOverflow.ellipsis, maxLines: 2, k, style: TextStyle( fontFamily: 'Inter', fontSize: 26.rpx, letterSpacing: 0.0, color: Color(0xFF929699), ), ), ), ), Container( constraints: BoxConstraints( minWidth: 30.rpx, minHeight: 62.rpx, ), child: Align( alignment: AlignmentDirectional(-1, 0), child: Text( overflow: TextOverflow.ellipsis, maxLines: 1, str, style: TextStyle( fontFamily: 'Inter', fontSize: 26.rpx, letterSpacing: 0.0, color: Colors.white, ), ), ), ) ].divide(SizedBox(width: 0.rpx)), ); } @override Widget build(BuildContext context) { WidgetsBinding.instance.addPostFrameCallback((_) { controller.getPeoples(data['mac'.tr]); }); return LayoutBuilder( builder: (context, boxConstraints) => GestureDetector( // onTap: () => FocusScope.of(context).unfocus(),, child: Container( decoration: const BoxDecoration( image: DecorationImage( image: AssetImage('assets/images/new_background.png'), // 本地图片 fit: BoxFit.fill, // 填满整个 Container ), ), child: Scaffold( backgroundColor: Colors.transparent, appBar: AppBar( systemOverlayStyle: SystemUiOverlayStyle( statusBarColor: Colors.transparent, // 状态栏背景色 statusBarIconBrightness: Brightness.light, // 图标颜色(Android) statusBarBrightness: Brightness.light, // 图标颜色(iOS) ), backgroundColor: Colors.transparent, automaticallyImplyLeading: false, iconTheme: IconThemeData(color: Colors.white), titleSpacing: 0, title: AppBar( systemOverlayStyle: SystemUiOverlayStyle( statusBarColor: Colors.transparent, // 状态栏背景色 statusBarIconBrightness: Brightness.light, // 图标颜色(Android) statusBarBrightness: Brightness.light, // 图标颜色(iOS) ), backgroundColor: Colors.transparent, iconTheme: const IconThemeData(color: Colors.white), automaticallyImplyLeading: false, titleSpacing: 0, title: SizedBox( width: double.infinity, height: 180.rpx, child: Stack( alignment: Alignment.center, children: [ // 中间居中的标题 Text( '详情'.tr, textAlign: TextAlign.center, style: TextStyle( color: Colors.white, fontSize: 30.rpx, ), ), // 左侧图标 Positioned( left: 0.rpx, child: returnIconButtomNew(), ), ], ), ), centerTitle: false, ), actions: [], centerTitle: false, ), body: SafeArea( top: true, child: Obx( () => Container( padding: EdgeInsets.only(left: 30.rpx, right: 30.rpx, top: 30.rpx), width: MediaQuery.sizeOf(context).width, height: MediaQuery.sizeOf(context).height * 1.123, // decoration: BoxDecoration( // // color: AppColors.bg_color, // image: DecorationImage( // image: AssetImage("assets/images/background.png"), // fit: BoxFit.cover, // ), // ), child: SingleChildScrollView( child: Column( mainAxisSize: MainAxisSize.max, children: [ ClickableContainer( backgroundColor: Color(0xFFFF036060), highlightColor: Colors.transparent, borderRadius: 16.rpx, padding: EdgeInsets.fromLTRB(30.rpx, 20.rpx, 0, 20.rpx), onTap: () {}, child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(16.rpx)), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( alignment: Alignment.centerLeft, child: Text( '设备信息'.tr, style: TextStyle( fontFamily: 'Readex Pro', color: Colors.white, fontSize: 30.rpx, ), ), ), getInfoRow(context, "设备名称".tr, "${data["name"] ?? "-"}"), getInfoRow(context, "房间".tr, "${data["roomName"] ?? "-"}"), getInfoRow( context, "设备状态".tr, "${data["status"]?["status"] == 1 ? "已绑定".tr : data["status"]?["status"] == 0 ? "已绑定".tr : "-"}", ), getInfoRow( context, "MAC", "${data["mac"] ?? "-"}"), ], ), )), if (controller.model.peopleList.isNotEmpty) ...List.generate(controller.model.peopleList.length, (index) { final person = controller.model.peopleList[index]; // String location_ = ''; // if ("${data["bindMacB"]}".length > 6 && // (person["direction"] == 1 || // person["direction"] == 2)) { // location_ = // person["direction"] == 1 ? '左侧' : '右侧'; // } return ClickableContainer( backgroundColor: Color(0xFF003058), highlightColor: Color(0xFF036060), borderRadius: 16.rpx, padding: EdgeInsets.fromLTRB( 30.rpx, 20.rpx, 30.rpx, 20.rpx), onTap: () {}, child: Column( children: [ Container( width: double.infinity, alignment: Alignment.centerLeft, child: Text( index == 0 ? 'person_info_A'.tr : 'person_info_B'.tr, style: TextStyle( fontFamily: 'Readex Pro', color: Colors.white, fontSize: 32.rpx, letterSpacing: 0, ), ), ), getInfoRow(context, "姓名".tr, "${person["name"] ?? "-"}"), getInfoRow(context, "性别".tr, "${person["gender"] == null ? "-" : (person["gender"] == 1 ? "男".tr : "女".tr)}"), getInfoRow(context, "身高".tr, "${person["height"] == null ? "-" : "${person["height"]}cm"}"), getInfoRow(context, "体重".tr, "${person["weight"] == null ? "-" : "${person["weight"]}kg"}"), getInfoRow(context, "生日".tr, "${person["birthday"] == null ? "-" : time_08_Formatter_pattern(person["birthday"], "yyyy年MM月dd日")}"), getInfoRow(context, "联系方式".tr, "${person["contact"] ?? "-"}"), ], ), ); }) ].divide(SizedBox( height: 25.rpx, )), ), ), ), ), ), ), )), ); } }