import 'package:ef/ef.dart'; import 'package:flutter/material.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/controller/mh/apply_repair_controller.dart'; import 'package:vbvs_app/controller/mh/repair_list_controller.dart'; class DeviceRepairPage extends GetView { final scaffoldKey = GlobalKey(); BoxConstraints? bodysize; // final ScrollController scrollController = ScrollController(); // final RepairListController controller = Get.find(); // DeviceRepairPage() { // controller.model.limit = AppConstants.limit; // controller.model.offset = 0; // controller.model.isLoading = false; // controller.model.hasMore = true; // controller.model.repairList.clear(); // controller.initData(); // Get.put(RepairListController()); // scrollController.addListener(() { // if (scrollController.position.pixels == // scrollController.position.maxScrollExtent && // controller.model.hasMore) { // controller.initData(); // controller.updateAll(); // } // }); // } final List mockData = List.generate(4, (index) { return ApplyRepairModel() ..device_name = "SWESO1号智能一键入眠床" ..status = index == 0 ? "已提交" : "已完成" ..create_time = DateTime(2024, 5, 12, 12, 5, 12); }); @override Widget build(BuildContext context) { return LayoutBuilder(builder: (context, cc) { bodysize = cc; return 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( // key: scaffoldKey, backgroundColor: Colors.transparent, appBar: AppBar( 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( '设备报修', textAlign: TextAlign.center, style: TextStyle( color: Colors.white, fontSize: 30.rpx, ), ), // 左侧图标 Positioned( left: 20.rpx, child: returnIconButtomNew, ), ], ), ), centerTitle: false, ), body: SafeArea( top: true, child: Padding( padding: EdgeInsets.fromLTRB(30.rpx, 6.rpx, 30.rpx, 0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ // 报修须知 Container( height: 412.rpx, decoration: BoxDecoration( border: Border.all( color: Color(0XFFC8CBD2), width: 0.rpx), borderRadius: BorderRadius.circular(10), ), child: Padding( padding: EdgeInsets.fromLTRB( 27.rpx, 49.rpx, 43.rpx, 39.rpx), child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ // 固定的标题部分 Text( "报修须知", style: TextStyle( fontSize: 30.rpx, fontWeight: FontWeight.bold, color: Colors.white, ), textAlign: TextAlign.center, ), SizedBox(height: 33.rpx), // 可滚动的正文部分,限定高度 Expanded( child: SingleChildScrollView( child: RichText( text: TextSpan( style: TextStyle( color: Color(0XFF929699), fontSize: 26.rpx, ), children: [ TextSpan( text: "尊敬的用户,感谢您选择我司产品。在使用过程中,如果设备出现故障需要维修,请首先确认设备是否正确连接控制器或网络,检查设置是否正常,排除误操作问题。若问题依然存在,请记录下设备名称、设备编号、和具体故障内容,方便我们快速地为您提供帮助。您可以通过智慧棉花糖APP保修页面直接报修或拨打 ", style: TextStyle( color: Color(0XFF929699), fontSize: 26.rpx, height: 1.3)), TextSpan( text: "400-8756-966", style: TextStyle( color: Colors.white, // height: 1.3, decoration: TextDecoration .underline, // 添加下划线 decorationColor: Colors.white, decorationThickness: 4.rpx, ), ), TextSpan( text: " 反馈。", style: TextStyle( color: Color(0XFF929699), fontSize: 26.rpx, height: 1.3)), ], ), ), ), ), ], ))), SizedBox(height: 24.rpx), InkWell( onTap: () { // bool isOk = true; // for (var i = 0; i < 2; i++) { // var d = controller.model.peopleList[i]; // print("${d.toJson()}"); // String before = "人员信息${i == 0 ? "A" : "B"}:"; // if (isOk && // d.height != null && // d.height != "" && // int.tryParse("${d.height}") == null) { // showToast("$before身高请输入数字"); // isOk = false; // } // if (isOk && // d.weight != null && // d.weight != "" && // int.tryParse("${d.weight}") == null) { // showToast("$before体重请输入数字"); // isOk = false; // } // if (isOk && // d.tel != null && // d.tel != "" && // MyUtils.isValidPhoneNumber("${d.tel}") == // false) { // showToast("$before请输入正确的电话"); // isOk = false; // } // if (isOk && // d.emergencyContact != null && // d.emergencyContact != "" && // MyUtils.isValidPhoneNumber( // "${d.emergencyContact}") == // false) { // showToast("$before请输入正确的紧急联系人电话"); // isOk = false; // } // if (isOk) { // controller.savePeoples().then((d) { // showToast("保存成功", color: color_success); // }).catchError((d) { // print("$d"); // showToast("保存失败"); // }); // } // } // controller.model.peopleList.forEach((d) {}); }, child: CustomCard( borderRadius: 10, gradientDirection: GradientDirection.vertical, onTap: () { Get.toNamed("/applyRepairPage"); }, colors: const [ Color(0xFFFCFCFC), Color(0xFFF8FAF9), Color(0XFFECF6F3), Color(0XFFD9F0E9), Color(0xFFCEECE3) ], child: Container( width: double.infinity, height: 90.rpx, alignment: Alignment.center, decoration: BoxDecoration( borderRadius: BorderRadius.circular(6), ), child: Text( "我要报修", style: FlutterFlowTheme.of(context) .bodyMedium .override( fontFamily: 'Readex Pro', color: stringToColor("#011D33"), letterSpacing: 0, fontSize: 30.rpx, ), ), ), )), SizedBox(height: 235.rpx), // 报修历史标题 Container( width: double.infinity, child: Text("报修历史", style: TextStyle( color: Colors.white, fontSize: 30.rpx, height: 1)), ), SizedBox(height: 32.rpx), // 报修历史列表 Expanded( child: ListView.builder( itemCount: mockData.length, itemBuilder: (context, index) { final item = mockData[index]; return ClickableContainer( backgroundColor: Colors.transparent, highlightColor: Color(0XFF055466), padding: EdgeInsets.only(top: 0), onTap: () { Get.toNamed("/repairHistoryListPage"); }, child: Container( height: 119.rpx, // margin: const EdgeInsets.only(bottom: 10), // padding: const EdgeInsets.symmetric( // vertical: 12, horizontal: 16), decoration: BoxDecoration( // color: const Color(0xFF06486F), border: Border( top: index == 0 ? BorderSide( color: const Color(0xFF929699), width: 1.rpx) : BorderSide.none, bottom: BorderSide( color: const Color(0xFF929699), width: 1.rpx), ), ), child: Padding( padding: EdgeInsets.fromLTRB( 17.rpx, 0, 30.rpx, 0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, children: [ // 左侧设备信息 Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( item.device_name ?? '', style: TextStyle( color: Colors.white, fontSize: 30.rpx), ), const SizedBox(height: 4), Text( "提交时间:${item.create_time?.toString().substring(0, 19) ?? ''}", style: TextStyle( color: Colors.white60, fontSize: 20.rpx), ), ], ), // 右侧状态 Row( children: [ Text( item.status ?? '', style: TextStyle( color: Colors.white, fontSize: 26.rpx), ), Icon(Icons.arrow_forward_ios, color: Colors.white, size: 30.rpx), ], ) ], ), ))); }, ), ), ], ), )) // Container( // width: bodysize!.maxWidth, // height: bodysize!.maxHeight * 1, // decoration: BoxDecoration( // color: Color(0xFFF6F6F6), // ), // child: Column( // mainAxisSize: MainAxisSize.max, // children: [ // // TitleComponentWidget( // // titleName: '设备报修', // // ), // Expanded( // child: Padding( // padding: EdgeInsetsDirectional.fromSTEB(15, 0, 15, 0), // child: Container( // width: bodysize!.maxWidth, // height: bodysize!.maxHeight * 0.9, // decoration: BoxDecoration( // color: Color(0xFFF6F6F6), // ), // child: Column( // mainAxisSize: MainAxisSize.max, // children: [ // Padding( // padding: // EdgeInsetsDirectional.fromSTEB(0, 14, 0, 13), // child: Container( // width: bodysize!.maxWidth, // height: bodysize!.maxHeight * 0.186, // constraints: BoxConstraints( // minHeight: 170, // ), // decoration: BoxDecoration( // color: FlutterFlowTheme.of(context) // .secondaryBackground, // borderRadius: BorderRadius.circular(16), // border: Border.all( // color: Colors.white, // ), // ), // child: Column( // mainAxisSize: MainAxisSize.max, // children: [ // Padding( // padding: EdgeInsetsDirectional.fromSTEB( // 0, 14, 0, 18), // child: Text( // '报修须知', // style: FlutterFlowTheme.of(context) // .bodyMedium // .override( // fontFamily: 'Readex Pro', // fontSize: AppFontsize.title_size, // letterSpacing: 0, // fontWeight: FontWeight.w600, // ), // ), // ), // Flexible( // child: Padding( // padding: EdgeInsetsDirectional.fromSTEB( // 14, 0, 14, 14), // 应用 padding // child: SingleChildScrollView( // child: Column( // mainAxisSize: MainAxisSize.max, // children: [ // Text( // '尊敬的用户,感谢您选择我司产品。在使用过程中,如果设备出现故障或需要维修,请首先确认设备是否正确连接电源和网络,检查设置是否正常,排除基本操作问题。若问题依然存在,请记录下设备名称、设备型号、和具体故障情况等,方便我们更快速地为您提供帮助。您可以通过智慧眠花糖APP保修或者直接拨打400-8756-966反馈。', // style: FlutterFlowTheme.of( // context) // .bodyMedium // .override( // fontFamily: 'Readex Pro', // color: Color(0xFF333333), // fontSize: AppFontsize // .small_text_size, // letterSpacing: 0, // lineHeight: 1.5, // ), // ), // // 如果需要,可以在 Text 下面添加其他小部件 // ], // ), // ), // ), // ) // ], // ), // ), // ), // Padding( // padding: // EdgeInsetsDirectional.fromSTEB(0, 0, 0, 42), // child: Container( // width: bodysize!.maxWidth, // height: 46, // decoration: BoxDecoration( // color: FlutterFlowTheme.of(context) // .secondaryBackground, // borderRadius: BorderRadius.circular(16), // ), // child: Container( // width: bodysize!.maxWidth, // height: bodysize!.maxHeight * 0.056, // decoration: BoxDecoration( // color: FlutterFlowTheme.of(context) // .secondaryBackground, // borderRadius: BorderRadius.circular(16), // ), // child: FFButtonWidget( // onPressed: () { // Get.toNamed("/applyRepairPage"); // }, // text: '我要报修', // options: FFButtonOptions( // height: 46, // padding: EdgeInsetsDirectional.fromSTEB( // 24, 0, 24, 0), // iconPadding: EdgeInsetsDirectional.fromSTEB( // 0, 0, 0, 0), // color: Color(0xFFE55E92), // textStyle: FlutterFlowTheme.of(context) // .titleSmall // .override( // fontFamily: 'Readex Pro', // color: Colors.white, // fontSize: AppFontsize.title_size, // letterSpacing: 0, // ), // elevation: 0, // borderSide: BorderSide( // color: Colors.transparent, // width: 1, // ), // borderRadius: BorderRadius.circular(8), // ), // ), // ), // ), // ), // Expanded( // child: Container( // width: bodysize!.maxWidth, // height: bodysize!.maxHeight * 1, // decoration: BoxDecoration( // color: Color(0xFFF6F6F6), // ), // child: Column( // mainAxisSize: MainAxisSize.max, // children: [ // Align( // alignment: AlignmentDirectional(-1, 0), // child: Padding( // padding: EdgeInsetsDirectional.fromSTEB( // 14, 0, 0, 17), // child: Text( // '报修历史', // style: FlutterFlowTheme.of(context) // .bodyMedium // .override( // fontFamily: 'Readex Pro', // color: Color(0xFF333333), // fontSize: AppFontsize.title_size, // letterSpacing: 0, // fontWeight: FontWeight.w600, // ), // ), // ), // ), // Obx(() { // return Visibility( // visible: // controller.model.repairList != null && // controller // .model.repairList!.isNotEmpty, // replacement: // EmptyMessageWidget(), // child: Expanded( // // child: Obx(() => // child: ListView( // controller: // scrollController, // 绑定 ScrollController // shrinkWrap: true, // scrollDirection: Axis.vertical, // children: (controller // .model.repairList // .asMap() // .entries // .map((e) => // RepairHistoryWidget( // index: e.key, // repairListController: // controller)) // .toList() as List) // .divide(const SizedBox( // height: 13, // )) // .addToEnd(SizedBox( // height: AppConstants // .list_end_height, // ))) // // ), // ), // ); // }), // ], // ), // ), // ), // ], // ), // ), // ), // ), // ], // ), // ), ), )); }); } }