From a5582faa799ec0dda4828323c2e2d46036592044 Mon Sep 17 00:00:00 2001 From: wyf <494641114@qq.com> Date: Sat, 24 May 2025 17:28:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/DeviceDataComponentWidget.dart | 3 +- lib/pages/device/message_review_page.dart | 318 ++++++++++++++++++ lib/pages/login/login.dart | 8 +- lib/pages/login/other_login.dart | 11 +- lib/routers/routers.dart | 2 + 5 files changed, 324 insertions(+), 18 deletions(-) create mode 100644 lib/pages/device/message_review_page.dart diff --git a/lib/pages/device/component/DeviceDataComponentWidget.dart b/lib/pages/device/component/DeviceDataComponentWidget.dart index a994fb4..b017d9c 100644 --- a/lib/pages/device/component/DeviceDataComponentWidget.dart +++ b/lib/pages/device/component/DeviceDataComponentWidget.dart @@ -1164,7 +1164,8 @@ class _DeviceDataComponentWidgetState extends State { child: CustomCard( borderRadius: AppConstants().button_container_radius, onTap: () { - TopSlideNotification.show(context, text: "待开发功能".tr); + // TopSlideNotification.show(context, text: "待开发功能".tr); + Get.toNamed("/messageReviewPage",arguments: widget.device); }, colors: [ themeController.currentColor.sc1, diff --git a/lib/pages/device/message_review_page.dart b/lib/pages/device/message_review_page.dart new file mode 100644 index 0000000..73992a4 --- /dev/null +++ b/lib/pages/device/message_review_page.dart @@ -0,0 +1,318 @@ +import 'package:ef/ef.dart'; +import 'package:flutter/material.dart'; +import 'package:flutterflow_ui/flutterflow_ui.dart'; +import 'package:vbvs_app/common/color/ServiceConstant.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/common/util/requestWithLog.dart'; +import 'package:vbvs_app/component/NullDataComponentWidget.dart'; +import 'package:vbvs_app/component/tool/ClickableContainer.dart'; +import 'package:vbvs_app/controller/repair/repair_controller.dart'; +import 'package:vbvs_app/model/api_response.dart'; +import 'package:vbvs_app/pages/repair/component/RepairHistoryInfoWidget.dart'; + +class MessageReviewPage extends StatefulWidget { + var data; //1.绑定时 2.绑定后 + MessageReviewPage({super.key, required this.data}); + + @override + State createState() => _MessageReviewPageState(); +} + +class _MessageReviewPageState extends State { + RepairController repairController = Get.find(); + + @override + void initState() { + super.initState(); + loadData(); + } + + @override + void dispose() { + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (context, bodysize) => GestureDetector( + onTap: () => FocusScope.of(context).unfocus(), + child: Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/img/bgNoImg.png'), // 本地图片 + fit: BoxFit.fill, // 填满整个 Container + ), + ), + child: Scaffold( + backgroundColor: Colors.transparent, + appBar: AppBar( + backgroundColor: themeController.currentColor.sc17, + automaticallyImplyLeading: false, + iconTheme: IconThemeData( + color: themeController.currentColor.sc3, + ), + titleSpacing: 0, + title: Container( + width: double.infinity, + height: 180.rpx, + child: Stack( + alignment: Alignment.center, + children: [ + /// 居中标题 + Text( + '消息回看'.tr, + style: TextStyle( + fontFamily: 'Readex Pro', + color: themeController.currentColor.sc3, + letterSpacing: 0, + fontSize: 30.rpx, + ), + ), + Positioned( + left: 0, + // child: returnIconButtom, + child: returnIconButtomAddCallback(() {}), + ), + // Positioned( + // right: 20.rpx, + // child: ClickableContainer( + // backgroundColor: Colors.transparent, + // highlightColor: themeController.currentColor.sc16, + // padding: EdgeInsets.all(8.rpx), + // onTap: () {}, + // child: SvgPicture.asset( + // 'assets/img/icon/history.svg', + // width: 39.rpx, + // height: 39.rpx, + // color: themeController.currentColor.sc16, + // ), + // ), + // ), + ], + ), + ), + actions: [], + centerTitle: false, + ), + body: SafeArea( + top: true, + child: Padding( + padding: + EdgeInsetsDirectional.fromSTEB(30.rpx, 29.rpx, 30.rpx, 0), + // child: Obx(() { + // final isEmpty = repairController.repairHistory.value.isEmpty; + // if (isEmpty) { + // return Expanded(child: NullDataWidget()); + // } + // return SingleChildScrollView( + // child: Column( + // mainAxisSize: MainAxisSize.max, + // children: repairController.repairHistory.value + // .map((item) => RepairHistoryInfoWidget( + // data: item)) // 假设组件支持传 data + // .toList() + // .divide(SizedBox(height: 25.rpx)) + // .addToEnd(SizedBox(height: 25.rpx)), + // ), + // ); + // }), + child: Column( + children: [ + Padding( + padding: EdgeInsetsDirectional.fromSTEB( + 0.rpx, 0.rpx, 0.rpx, 120.rpx), + child: ClickableContainer( + backgroundColor: themeController.currentColor.sc5, + highlightColor: + themeController.currentColor.sc5, // 或你希望的点击水波纹颜色 + borderRadius: AppConstants() + .normal_container_radius, // 如果你想加圆角可以设置 eg. 12.rpx + padding: EdgeInsets.zero, + onTap: () { + print('点击了体征卡片'); + }, + child: Row( + mainAxisSize: MainAxisSize.max, + children: [ + Expanded( + flex: 1, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.end, + children: [ + Text( + '实时体征.姓名'.tr, + style: FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: 'Inter', + fontSize: 26.rpx, + letterSpacing: 0.0, + color: themeController + .currentColor.sc4, + ), + ), + Text( + '实时体征.年龄'.tr, + style: FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: 'Inter', + fontSize: 26.rpx, + letterSpacing: 0.0, + color: themeController + .currentColor.sc4, + ), + ), + ].divide(SizedBox(height: 34.rpx)), + ), + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + '${widget.data['person']?['name'] ?? '未命名'.tr}', + style: FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: 'Inter', + fontSize: 26.rpx, + letterSpacing: 0.0, + color: themeController + .currentColor.sc3, + ), + ), + Text( + '${MyUtils.getAgeByDate(MyUtils.formatBirthdayTime(widget.data['person']?['birthday'])) ?? '未知数据'.tr}', + style: FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: 'Inter', + fontSize: 26.rpx, + letterSpacing: 0.0, + color: themeController + .currentColor.sc3, + ), + ), + ].divide(SizedBox(height: 34.rpx)), + ), + ] + .divide(SizedBox(width: 33.rpx)) + .addToStart(SizedBox(width: 37.rpx)), + ), + ] + .addToStart(SizedBox(height: 36.rpx)) + .addToEnd(SizedBox(height: 36.rpx)), + ), + ), + Expanded( + flex: 1, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.end, + children: [ + Text( + '实时体征.设备ID'.tr, + style: FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: 'Inter', + fontSize: 26.rpx, + letterSpacing: 0.0, + color: themeController + .currentColor.sc4, + ), + ), + Text( + '实时体征.体重'.tr, + style: FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: 'Inter', + fontSize: 26.rpx, + letterSpacing: 0.0, + color: themeController + .currentColor.sc4, + ), + ), + ].divide(SizedBox(height: 34.rpx)), + ), + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + '${widget.data['code'] ?? '未知数据'.tr}', + // "D11250300003", + style: FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: 'Inter', + fontSize: 26.rpx, + letterSpacing: 0.0, + color: themeController + .currentColor.sc3, + ), + ), + Text( + '${widget.data['person']?['weight'] ?? '未知数据'.tr}kg', + style: FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: 'Inter', + fontSize: 26.rpx, + letterSpacing: 0.0, + color: themeController + .currentColor.sc3, + ), + ), + ].divide(SizedBox(height: 34.rpx)), + ), + ] + .divide(SizedBox(width: 33.rpx)) + .addToStart(SizedBox(width: 37.rpx)), + ), + ] + .addToStart(SizedBox(height: 36.rpx)) + .addToEnd(SizedBox(height: 36.rpx)), + ), + ), + ], + ), + ), + ), + ], + ), + ), + ), + ), + ), + ), + ); + } + + Future loadData() async { + String serviceAddress = ServiceConstant.service_address; + String serviceName = ServiceConstant.server_service; + String serviceApi = ServiceConstant.submit_repair; + String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; + ApiResponse apiResponse = await requestWithLog( + logTitle: "查询报修数据", method: MyHttpMethod.get, queryUrl: queryUrl); + RepairController repairController = Get.find(); + repairController.repairHistory.value = apiResponse.data; + repairController.updateAll(); + } +} diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index 2e7ae2e..1e6c102 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -506,12 +506,7 @@ class _EPageState extends State { // }, onTap: () async { //loginController.model.isIos == true && - if (loginController - .model.isWeChatNotInstalled != - true) { - TopSlideNotification.show(context,text: "微信安装提示".tr,textColor: themeController.currentColor.sc9); - } else { - if (loginController + if (loginController .model.register_agree == null || loginController @@ -527,7 +522,6 @@ class _EPageState extends State { } await loginController .wxLoginSendAuth(context); - } }, child: Container( width: 91.rpx, diff --git a/lib/pages/login/other_login.dart b/lib/pages/login/other_login.dart index 3a4c5e0..f2f7fc4 100644 --- a/lib/pages/login/other_login.dart +++ b/lib/pages/login/other_login.dart @@ -827,15 +827,7 @@ class _OtherLoginPageState extends State { padding: EdgeInsets.zero, onTap: () async { //loginController.model.isIos == true && - if (loginController - .model.isWeChatNotInstalled != - true) { - TopSlideNotification.show(context, - text: "微信安装提示".tr, - textColor: - themeController.currentColor.sc9); - } else { - if (loginController + if (loginController .model.register_agree == null || loginController @@ -851,7 +843,6 @@ class _OtherLoginPageState extends State { } await loginController .wxLoginSendAuth(context); - } }, child: Container( width: 91.rpx, diff --git a/lib/routers/routers.dart b/lib/routers/routers.dart index 45d6143..5498cb9 100644 --- a/lib/routers/routers.dart +++ b/lib/routers/routers.dart @@ -6,6 +6,7 @@ import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/pages/device/BodyDeviceWidget.dart'; import 'package:vbvs_app/pages/device/device_detail.dart'; import 'package:vbvs_app/pages/device/instant_body_page.dart'; +import 'package:vbvs_app/pages/device/message_review_page.dart'; import 'package:vbvs_app/pages/device_bind/MobileScannerTestPage.dart'; import 'package:vbvs_app/pages/device_bind/bind_device_success.dart'; import 'package:vbvs_app/pages/device_bind/blueteeth_device_page.dart'; @@ -82,6 +83,7 @@ var routes = { "/repairDetailPage": (contxt, {arguments}) => RepairDetailPage(data: arguments), "/applyRepairSuccess": (contxt) => ApplyRepairSuccess(), + "/messageReviewPage": (contxt,{arguments}) => MessageReviewPage(data: arguments), }; var onGenerateRoute = (RouteSettings settings) {