From 0f31d04c7605d25cca96afc9d82682a12fde4138 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=90=8C?= <494089941@qq.com> Date: Thu, 26 May 2022 14:18:50 +0800 Subject: [PATCH 1/5] upgrade flutter screenutil --- lib/main.dart | 4 ++-- lib/new_ui/new_home/new_home_page.dart | 2 -- pubspec.lock | 2 +- pubspec.yaml | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 734b975..a042e05 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -90,14 +90,14 @@ class MyApp extends StatelessWidget { }, child: ScreenUtilInit( designSize: Size(750, 1334), - builder: () { + builder: (context,child) { return GetMaterialApp( debugShowCheckedModeBanner: false, title: '小蜜蜂管家', theme: AppTheme.theme, home: SplashPage(), builder: (context, widget) { - ScreenUtil.setContext(context); + // ScreenUtil.setContext(context); return MediaQuery( //Setting font does not change with system font size data: diff --git a/lib/new_ui/new_home/new_home_page.dart b/lib/new_ui/new_home/new_home_page.dart index 007ae15..864e945 100644 --- a/lib/new_ui/new_home/new_home_page.dart +++ b/lib/new_ui/new_home/new_home_page.dart @@ -18,8 +18,6 @@ import 'package:flutter_easyrefresh/easy_refresh.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:velocity_x/velocity_x.dart'; - -import '../../ui/home/messages/message.dart'; import 'application_util.dart'; import 'home_swiper.dart'; diff --git a/pubspec.lock b/pubspec.lock index 7036f2a..b835b96 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -430,7 +430,7 @@ packages: name: flutter_screenutil url: "https://pub.dartlang.org" source: hosted - version: "5.3.1" + version: "5.5.3+2" flutter_test: dependency: "direct dev" description: flutter diff --git a/pubspec.yaml b/pubspec.yaml index 23446fd..f8fe6b5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ dependencies: intl: ^0.17.0 cupertino_icons: ^1.0.2 #屏幕适配 - flutter_screenutil: ^5.3.1 + flutter_screenutil: ^5.5.3+2 #状态管理 provider: ^5.0.0 #路由 From 9917395f9fc2c25494f3f3ed58895726e1383c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=90=8C?= <494089941@qq.com> Date: Thu, 26 May 2022 14:24:09 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E7=A7=BB=E9=99=A4=20web=20socket=20ondone?= =?UTF-8?q?=20=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/utils/websocket/web_socket_util.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/utils/websocket/web_socket_util.dart b/lib/utils/websocket/web_socket_util.dart index da1ba00..9175c29 100644 --- a/lib/utils/websocket/web_socket_util.dart +++ b/lib/utils/websocket/web_socket_util.dart @@ -95,8 +95,7 @@ class WebSocketUtil { onStart?.call(); _webSocket!.stream.listen( (event) => webSocketReceiveMessage(event as String), - onError: webSocketOnError, - onDone: webSocketClosed); + onError: webSocketOnError, ); initHeartBeat(); } catch (e) { BotToast.showText(text: 'webSocket连接失败'); From 02305ecf2f55b68f4cffc3b03626ca4ea8cfb896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=90=8C?= <494089941@qq.com> Date: Thu, 26 May 2022 14:35:25 +0800 Subject: [PATCH 3/5] depart login clock timer --- lib/main.dart | 2 ++ lib/new_ui/auth/code_message_page.dart | 14 ++++++----- lib/new_ui/auth/forgot_psd_page.dart | 5 +++- lib/new_ui/auth/forgot_set_psd_page.dart | 5 +++- lib/new_ui/auth/other_login_page.dart | 11 +++++---- lib/provider/clock_timer_provider.dart | 30 ++++++++++++++++++++++++ 6 files changed, 54 insertions(+), 13 deletions(-) create mode 100644 lib/provider/clock_timer_provider.dart diff --git a/lib/main.dart b/lib/main.dart index a042e05..0d28e73 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,6 +2,7 @@ // Project imports: import 'package:aku_new_community_manager/provider/app_provider.dart'; +import 'package:aku_new_community_manager/provider/clock_timer_provider.dart'; import 'package:aku_new_community_manager/provider/data_provider.dart'; import 'package:aku_new_community_manager/provider/message_provider.dart'; import 'package:aku_new_community_manager/provider/user_provider.dart'; @@ -77,6 +78,7 @@ class MyApp extends StatelessWidget { ChangeNotifierProvider(create: (context) => AppProvider()), ChangeNotifierProvider(create: (context) => MessageProvider()), ChangeNotifierProvider(create: (context) => DataProvider()), + ChangeNotifierProvider(create: (context) => ClockTimerProvider()), ], child: GestureDetector( onTap: () { diff --git a/lib/new_ui/auth/code_message_page.dart b/lib/new_ui/auth/code_message_page.dart index 78b1933..a4a092b 100644 --- a/lib/new_ui/auth/code_message_page.dart +++ b/lib/new_ui/auth/code_message_page.dart @@ -1,10 +1,12 @@ import 'package:aku_new_community_manager/new_ui/auth/sign_func.dart'; +import 'package:aku_new_community_manager/provider/clock_timer_provider.dart'; import 'package:aku_new_community_manager/tools/user_tool.dart'; import 'package:aku_new_community_manager/ui/widgets/common/aku_scaffold.dart'; import 'package:bot_toast/bot_toast.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:provider/provider.dart'; import 'package:sms_autofill/sms_autofill.dart'; import 'package:velocity_x/velocity_x.dart'; @@ -24,20 +26,20 @@ class _CodeMessagePageState extends State { @override void initState() { - Future.delayed(Duration(milliseconds: 0), () async { - await SmsAutoFill().listenForCode(); - }); super.initState(); + SmsAutoFill().listenForCode(); } @override void dispose() { _controller.dispose(); + SmsAutoFill().unregisterListener(); super.dispose(); } @override Widget build(BuildContext context) { + ClockTimerProvider clockTimer = Provider.of(context); return AkuScaffold( title: '', body: SafeArea( @@ -115,14 +117,14 @@ class _CodeMessagePageState extends State { .communityModel!.id); if (base.success) { _errorMessage = null; - UserTool.appProvider.startTimer(); + clockTimer.startTimer(); } else { BotToast.showText(text: base.msg); } }, - child: (UserTool.appProvider.second >= 60 + child: (clockTimer.second >= 60 ? '重新发送验证码' - : '${UserTool.appProvider.second}秒后可重新发送') + : '${clockTimer.second}秒后可重新发送') .text .size(28.sp) .color(Color(0xFF5096F1)) diff --git a/lib/new_ui/auth/forgot_psd_page.dart b/lib/new_ui/auth/forgot_psd_page.dart index 4228912..fc6d058 100644 --- a/lib/new_ui/auth/forgot_psd_page.dart +++ b/lib/new_ui/auth/forgot_psd_page.dart @@ -1,6 +1,7 @@ import 'package:aku_new_community_manager/new_ui/auth/sign_func.dart'; import 'package:aku_new_community_manager/new_ui/auth/widget/login_button_widget.dart'; import 'package:aku_new_community_manager/new_ui/auth/widget/tel_textfield.dart'; +import 'package:aku_new_community_manager/provider/clock_timer_provider.dart'; import 'package:aku_new_community_manager/tools/user_tool.dart'; import 'package:aku_new_community_manager/ui/widgets/common/aku_scaffold.dart'; import 'package:bot_toast/bot_toast.dart'; @@ -8,6 +9,7 @@ import 'package:common_utils/common_utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:provider/provider.dart'; import 'package:velocity_x/velocity_x.dart'; import 'forgot_set_psd_page.dart'; @@ -30,6 +32,7 @@ class _ForgotPsdPageState extends State { @override Widget build(BuildContext context) { + ClockTimerProvider clockTimer = Provider.of(context); return AkuScaffold( title: '', backgroundColor: Colors.white, @@ -84,7 +87,7 @@ class _ForgotPsdPageState extends State { Get.to(() => ForgotSetPsdPage( tel: _telController.text, )); - UserTool.appProvider.startTimer(); + clockTimer.startTimer(); } else { BotToast.showText(text: base.msg); } diff --git a/lib/new_ui/auth/forgot_set_psd_page.dart b/lib/new_ui/auth/forgot_set_psd_page.dart index c536cc8..ec9669c 100644 --- a/lib/new_ui/auth/forgot_set_psd_page.dart +++ b/lib/new_ui/auth/forgot_set_psd_page.dart @@ -3,6 +3,7 @@ import 'package:aku_new_community_manager/new_ui/auth/psd_verify.dart'; import 'package:aku_new_community_manager/new_ui/auth/sign_func.dart'; import 'package:aku_new_community_manager/new_ui/auth/widget/login_button_widget.dart'; import 'package:aku_new_community_manager/new_ui/auth/widget/psd_textfield.dart'; +import 'package:aku_new_community_manager/provider/clock_timer_provider.dart'; import 'package:aku_new_community_manager/tools/user_tool.dart'; import 'package:aku_new_community_manager/ui/widgets/common/aku_scaffold.dart'; import 'package:bot_toast/bot_toast.dart'; @@ -10,6 +11,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:provider/provider.dart'; import 'package:velocity_x/velocity_x.dart'; class ForgotSetPsdPage extends StatefulWidget { @@ -52,6 +54,7 @@ class _ForgotSetPsdPageState extends State { @override Widget build(BuildContext context) { + ClockTimerProvider clockTimer = Provider.of(context); return AkuScaffold( title: '', backgroundColor: Colors.white, @@ -137,7 +140,7 @@ class _ForgotSetPsdPageState extends State { child: Row( mainAxisSize: MainAxisSize.min, children: [ - '|${UserTool.appProvider.second < 60 ? '${UserTool.appProvider.second}秒后重新获取' : '获取验证码'}' + '|${clockTimer.second < 60 ? '${clockTimer.second}秒后重新获取' : '获取验证码'}' .text .size(28.sp) .color(Color(0xFF5096F1)) diff --git a/lib/new_ui/auth/other_login_page.dart b/lib/new_ui/auth/other_login_page.dart index 66bc147..65f6076 100644 --- a/lib/new_ui/auth/other_login_page.dart +++ b/lib/new_ui/auth/other_login_page.dart @@ -3,6 +3,7 @@ import 'package:aku_new_community_manager/new_ui/auth/widget/login_button_widget import 'package:aku_new_community_manager/new_ui/auth/widget/psd_textfield.dart'; import 'package:aku_new_community_manager/new_ui/auth/widget/tel_textfield.dart'; import 'package:aku_new_community_manager/provider/app_provider.dart'; +import 'package:aku_new_community_manager/provider/clock_timer_provider.dart'; import 'package:aku_new_community_manager/tools/user_tool.dart'; import 'package:aku_new_community_manager/ui/widgets/common/aku_scaffold.dart'; import 'package:bot_toast/bot_toast.dart'; @@ -154,7 +155,7 @@ class _OtherLoginPageState extends State { } Widget _verificationView() { - AppProvider appProvider = Provider.of(context); + ClockTimerProvider clockTimer = Provider.of(context); return ListView( padding: EdgeInsets.symmetric(horizontal: 32.w), children: [ @@ -171,7 +172,7 @@ class _OtherLoginPageState extends State { ), 100.w.heightBox, LoginButtonWidget( - onTap: UserTool.appProvider.second < 60 + onTap: clockTimer.second < 60 ? () {} : () async { var check = checkInput(); @@ -184,13 +185,13 @@ class _OtherLoginPageState extends State { .communityModel!.id); if (base.success) { Get.to(() => CodeMessagePage(tel: _tel.text)); - appProvider.startTimer(); + clockTimer.startTimer(); } else { BotToast.showText(text: base.msg); } }, - text: appProvider.timerStart - ? '${appProvider.second}秒后重新获取' + text: clockTimer.timerStart + ? '${clockTimer.second}秒后重新获取' : '获取验证码'), 24.w.heightBox, Row( diff --git a/lib/provider/clock_timer_provider.dart b/lib/provider/clock_timer_provider.dart new file mode 100644 index 0000000..aa33dd8 --- /dev/null +++ b/lib/provider/clock_timer_provider.dart @@ -0,0 +1,30 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; + +class ClockTimerProvider extends ChangeNotifier{ + ///登录页验证码计时器 + int second = 60; + bool timerStart = false; + Timer? timer; + + void startTimer() { + timerStart = true; + timer = Timer.periodic(Duration(seconds: 1), (timer) { + if (second > 0) { + second--; + notifyListeners(); + } else { + stopTimer(); + } + }); + } + + void stopTimer() { + second = 60; + timerStart = false; + timer?.cancel(); + timer = null; + notifyListeners(); + } +} \ No newline at end of file From 336fcf35fc028d5a2c578f23a0afbf6fc4b12976 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=90=8C?= <494089941@qq.com> Date: Thu, 26 May 2022 14:46:12 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9websocket=E5=8F=8A?= =?UTF-8?q?=E5=85=B6model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main.dart | 7 - lib/ui/splash/splash_page.dart | 2 +- lib/utils/jpush_message_parse.dart | 2 +- .../websocket/alarm_models/fall_model.dart | 24 --- .../websocket/alarm_models/fall_model.g.dart | 16 -- .../websocket/alarm_models/fire_model.dart | 139 ++++++++++++++++-- .../websocket/alarm_models/fire_model.g.dart | 57 ++++++- lib/utils/websocket/fier_dialog.dart | 64 ++++---- 8 files changed, 213 insertions(+), 98 deletions(-) delete mode 100644 lib/utils/websocket/alarm_models/fall_model.dart delete mode 100644 lib/utils/websocket/alarm_models/fall_model.g.dart diff --git a/lib/main.dart b/lib/main.dart index 0d28e73..d49abc4 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -31,13 +31,6 @@ void main() async { const isDev = const String.fromEnvironment('ENV', defaultValue: 'dev')=='dev'; DevUtil.setDev(isDev); - WebSocketUtil().initWebSocket( - // heartDuration: Duration(seconds: 5), - onError: (e) { - LoggerData.addData(e); - }, onReceiveMes: (message) async { - await FireDialog.fireAlert(message); - }); jpush.addEventHandler( // 接收通知回调方法。 onReceiveNotification: (Map? message) async { diff --git a/lib/ui/splash/splash_page.dart b/lib/ui/splash/splash_page.dart index 284e4de..05b39e4 100644 --- a/lib/ui/splash/splash_page.dart +++ b/lib/ui/splash/splash_page.dart @@ -125,7 +125,7 @@ class _SplashPageState extends State { WebSocketUtil().initWebSocket( consolePrint: false, onReceiveMes: (message) async { - await FireDialog.fireAlert(message); + await FireDialog.fireAlarm(message); }, onError: (e) { LoggerData.addData(e); diff --git a/lib/utils/jpush_message_parse.dart b/lib/utils/jpush_message_parse.dart index 67de7de..e185261 100644 --- a/lib/utils/jpush_message_parse.dart +++ b/lib/utils/jpush_message_parse.dart @@ -25,7 +25,7 @@ class JpushMessageParse { type = _innerMap['type'] ?? '0'; switch (type) { case '1': - await FireDialog.fireAlert(subTitle!); + await FireDialog.fireAlarm(subTitle!); break; default: } diff --git a/lib/utils/websocket/alarm_models/fall_model.dart b/lib/utils/websocket/alarm_models/fall_model.dart deleted file mode 100644 index 87b2cb5..0000000 --- a/lib/utils/websocket/alarm_models/fall_model.dart +++ /dev/null @@ -1,24 +0,0 @@ -import 'package:json_annotation/json_annotation.dart'; - -part 'fall_model.g.dart'; - -@JsonSerializable() -class FallModel { - final String? userName; - final String? tel; - final String? address; - final num? lon; - final num? lat; - final int? type; - factory FallModel.fromJson(Map json) => - _$FallModelFromJson(json); - - const FallModel({ - this.userName, - this.tel, - this.address, - this.lon, - this.lat, - this.type, - }); -} diff --git a/lib/utils/websocket/alarm_models/fall_model.g.dart b/lib/utils/websocket/alarm_models/fall_model.g.dart deleted file mode 100644 index 7af23b2..0000000 --- a/lib/utils/websocket/alarm_models/fall_model.g.dart +++ /dev/null @@ -1,16 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'fall_model.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -FallModel _$FallModelFromJson(Map json) => FallModel( - userName: json['userName'] as String?, - tel: json['tel'] as String?, - address: json['address'] as String?, - lon: json['lon'] as num?, - lat: json['lat'] as num?, - type: json['type'] as int?, - ); diff --git a/lib/utils/websocket/alarm_models/fire_model.dart b/lib/utils/websocket/alarm_models/fire_model.dart index 751b55c..cfe6362 100644 --- a/lib/utils/websocket/alarm_models/fire_model.dart +++ b/lib/utils/websocket/alarm_models/fire_model.dart @@ -1,25 +1,136 @@ import 'package:json_annotation/json_annotation.dart'; +import 'package:equatable/equatable.dart'; part 'fire_model.g.dart'; @JsonSerializable() -class FireModel { - String? alarmNo; - String? alarmType; - String? deviceName; - String? deviceNo; - String? time; - int? type; +class FireModel extends Equatable { + final String model; + final String communityCode; + final int type; + final FireAlarm? fireAlarm; + final DeviceAlarm? deviceAlarm; + final OneButtonAlarm? oneButtonAlarm; + final ClientAlarm? clientAlarm; + final ElderlyCareEquipmentReminder? elderlyCareEquipmentReminder; factory FireModel.fromJson(Map json) => _$FireModelFromJson(json); - FireModel({ - this.alarmNo, - this.alarmType, - this.deviceName, - this.deviceNo, - this.time, - this.type, + @override + List get props => [ + model, + communityCode, + type, + fireAlarm, + deviceAlarm, + oneButtonAlarm, + clientAlarm, + elderlyCareEquipmentReminder, + ]; + + const FireModel({ + required this.model, + required this.communityCode, + required this.type, + this.fireAlarm, + this.deviceAlarm, + this.oneButtonAlarm, + this.clientAlarm, + this.elderlyCareEquipmentReminder, + }); +} + +@JsonSerializable() +class FireAlarm extends Equatable { + final String time; + final String deviceName; + factory FireAlarm.fromJson(Map json) =>_$FireAlarmFromJson(json); + @override + List get props => [ + time, + deviceName, + ]; + + const FireAlarm({ + required this.time, + required this.deviceName, + }); +} + +@JsonSerializable() +class DeviceAlarm extends Equatable { + final String time; + final String deviceName; + factory DeviceAlarm.fromJson(Map json) =>_$DeviceAlarmFromJson(json); + @override + List get props => [ + time, + deviceName, + ]; + + const DeviceAlarm({ + required this.time, + required this.deviceName, + }); +} + +@JsonSerializable() +class OneButtonAlarm extends Equatable { + final String time; + final String roomName; + final String name; + final String tel; + factory OneButtonAlarm.fromJson(Map json) =>_$OneButtonAlarmFromJson(json); + @override + List get props => [ + time, + roomName, + name, + tel, + ]; + + const OneButtonAlarm({ + required this.time, + required this.roomName, + required this.name, + required this.tel, + }); +} + +@JsonSerializable() +class ClientAlarm extends Equatable { + final String time; + final String content; + factory ClientAlarm.fromJson(Map json) =>_$ClientAlarmFromJson(json); + @override + List get props => [ + time, + content, + ]; + + const ClientAlarm({ + required this.time, + required this.content, + }); +} + +@JsonSerializable() +class ElderlyCareEquipmentReminder extends Equatable { + final String deviceNo; + final int deviceType; + final String content; + factory ElderlyCareEquipmentReminder.fromJson(Map json) =>_$ElderlyCareEquipmentReminderFromJson(json); + @override + List get props => [ + deviceNo, + deviceType, + content, + ]; + + const ElderlyCareEquipmentReminder({ + required this.deviceNo, + required this.deviceType, + required this.content, }); } diff --git a/lib/utils/websocket/alarm_models/fire_model.g.dart b/lib/utils/websocket/alarm_models/fire_model.g.dart index 092a400..3900f80 100644 --- a/lib/utils/websocket/alarm_models/fire_model.g.dart +++ b/lib/utils/websocket/alarm_models/fire_model.g.dart @@ -7,10 +7,55 @@ part of 'fire_model.dart'; // ************************************************************************** FireModel _$FireModelFromJson(Map json) => FireModel( - alarmNo: json['alarmNo'] as String?, - alarmType: json['alarmType'] as String?, - deviceName: json['deviceName'] as String?, - deviceNo: json['deviceNo'] as String?, - time: json['time'] as String?, - type: json['type'] as int?, + model: json['model'] as String, + communityCode: json['communityCode'] as String, + type: json['type'] as int, + fireAlarm: json['fireAlarm'] == null + ? null + : FireAlarm.fromJson(json['fireAlarm'] as Map), + deviceAlarm: json['deviceAlarm'] == null + ? null + : DeviceAlarm.fromJson(json['deviceAlarm'] as Map), + oneButtonAlarm: json['oneButtonAlarm'] == null + ? null + : OneButtonAlarm.fromJson( + json['oneButtonAlarm'] as Map), + clientAlarm: json['clientAlarm'] == null + ? null + : ClientAlarm.fromJson(json['clientAlarm'] as Map), + elderlyCareEquipmentReminder: json['elderlyCareEquipmentReminder'] == null + ? null + : ElderlyCareEquipmentReminder.fromJson( + json['elderlyCareEquipmentReminder'] as Map), + ); + +FireAlarm _$FireAlarmFromJson(Map json) => FireAlarm( + time: json['time'] as String, + deviceName: json['deviceName'] as String, + ); + +DeviceAlarm _$DeviceAlarmFromJson(Map json) => DeviceAlarm( + time: json['time'] as String, + deviceName: json['deviceName'] as String, + ); + +OneButtonAlarm _$OneButtonAlarmFromJson(Map json) => + OneButtonAlarm( + time: json['time'] as String, + roomName: json['roomName'] as String, + name: json['name'] as String, + tel: json['tel'] as String, + ); + +ClientAlarm _$ClientAlarmFromJson(Map json) => ClientAlarm( + time: json['time'] as String, + content: json['content'] as String, + ); + +ElderlyCareEquipmentReminder _$ElderlyCareEquipmentReminderFromJson( + Map json) => + ElderlyCareEquipmentReminder( + deviceNo: json['deviceNo'] as String, + deviceType: json['deviceType'] as int, + content: json['content'] as String, ); diff --git a/lib/utils/websocket/fier_dialog.dart b/lib/utils/websocket/fier_dialog.dart index deffc26..5203dca 100644 --- a/lib/utils/websocket/fier_dialog.dart +++ b/lib/utils/websocket/fier_dialog.dart @@ -1,18 +1,23 @@ import 'dart:convert'; -import 'package:aku_new_community_manager/style/app_style.dart'; +import 'package:aku_new_community_manager/const/resource.dart'; +import 'package:aku_new_community_manager/new_ui/new_home/new_home_page.dart'; +import 'package:aku_new_community_manager/utils/dev_util.dart'; +import 'package:common_utils/common_utils.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:flutter_screenutil/src/size_extension.dart'; + import 'package:get/get.dart'; -import 'package:velocity_x/velocity_x.dart'; +import 'package:aku_new_community_manager/extensions/num_ext.dart'; +import 'package:power_logger/power_logger.dart'; -import 'alarm_models/fall_model.dart'; import 'alarm_models/fire_model.dart'; class FireDialog { - static Future fireAlert(String subTitle) async { - Map json = jsonDecode(subTitle); + static fireAlarm(String content) async { + LoggerData.addData(content); + var json = jsonDecode(content); int type = json['type'] as int; await Get.dialog( @@ -20,12 +25,11 @@ class FireDialog { title: getImage(type), content: Column( children: [ - 20.w.heightBox, Text( getTitle(type), style: TextStyle(color: Colors.black, fontSize: 34.sp), ), - 10.w.heightBox, + 10.hb, Text( getContent(json, type), style: TextStyle(color: Colors.black, fontSize: 26.sp), @@ -38,6 +42,13 @@ class FireDialog { child: Text('确认'), onPressed: () => Get.back(), ), + if (DevUtil.isDev) + CupertinoDialogAction( + child: Text('清除所有弹窗'), + onPressed: () => Get.offAll( + () => NewHomePage(), + ), + ), ], ), barrierDismissible: false, @@ -53,7 +64,7 @@ class FireDialog { case 3: return '管家端APP报警'; case 4: - return '跌倒报警'; + return '消息通知'; case 5: return 'SOS紧急联系报警'; default: @@ -61,28 +72,26 @@ class FireDialog { } } - static String getContent(Map json, int type) { + static String getContent(dynamic json, int type) { + var alarmModel = FireModel.fromJson(json); switch (type) { case 1: - var alarmModel = FireModel.fromJson(json); - return '于${alarmModel.time},${alarmModel.deviceName}附近出现了火灾报警,请各位业主、租户保持镇静,不要慌乱,有序开始撤离!'; + return '于${DateUtil.formatDateStr(alarmModel.fireAlarm!.time, format: DateFormats.zh_y_mo_d_h_m)},' + '${alarmModel.fireAlarm!.deviceName}附近出现了火灾报警,请各位业主、租户保持镇静,不要慌乱,有序开始撤离!'; case 2: - var alarmModel = FireModel.fromJson(json); - return '于${alarmModel.time},小区内有设备${alarmModel.deviceName}发生了报警,请物业负责人员尽快前往现场排查故障!'; + return '于${DateUtil.formatDateStr(alarmModel.deviceAlarm!.time, format: DateFormats.zh_y_mo_d_h_m)},' + '小区内有设备${alarmModel.deviceAlarm!.deviceName}发生了报警,请物业负责人员尽快前往现场排查故障!'; case 3: - var alarmModel = FireModel.fromJson(json); - return '注意:\n于${alarmModel.time},${alarmModel.deviceNo}${alarmModel.deviceName}' + - '在管家端app上点击了"一键报警",请尽快联系他沟通情况。\n' + - '${alarmModel.deviceName}联系方式:${alarmModel.alarmNo}\n' + - '如未能联系到${alarmModel.deviceName}。可择情报警'; + return '注意:\n于${DateUtil.formatDateStr(alarmModel.oneButtonAlarm!.time, format: DateFormats.zh_y_mo_d_h_m)}' + ',${alarmModel.oneButtonAlarm!.roomName} ${alarmModel.oneButtonAlarm!.name}在管家端app上点击了"一键报警",请尽快联系他沟通情况。\n' + '${alarmModel.oneButtonAlarm!.name}联系方式:${alarmModel.oneButtonAlarm!.tel}\n' + '如未能联系到${alarmModel.oneButtonAlarm!.name}。可择情报警'; case 4: - var alarmModel = FallModel.fromJson(json); - return '注意:\n\n有住户 ${alarmModel.userName} 发生跌倒情况,请及时上门或联系人员前往查看,住户联系方式:${alarmModel.tel}\n\n' + - '跌倒位置————\n${alarmModel.address},经度${alarmModel.lon},纬度${alarmModel.lat}\n\n如未能联系到住户,可择情报警'; + return '${DateUtil.formatDateStr(alarmModel.deviceAlarm!.time, format: DateFormats.zh_y_mo_d_h_m)}\n\n${alarmModel!.clientAlarm!.content}'; case 5: - var alarmModel = FallModel.fromJson(json); - return '注意:\n\n有住户 ${alarmModel.userName} 使用了SOS紧急联系报警,请及时上门或联系人员前往查看,住户联系方式:${alarmModel.tel}\n\n' + - '跌倒位置————\n${alarmModel.address},经度${alarmModel.lon},纬度${alarmModel.lat}\n\n如未能联系到住户,可择情报警'; + return '注意:\n\n有住户使用了SOS紧急联系报警,请及时上门或联系人员前往查看,设备号:${alarmModel!.elderlyCareEquipmentReminder!.deviceNo}' + '\n\n${alarmModel.elderlyCareEquipmentReminder!.content}'; + default: return ''; } @@ -126,10 +135,7 @@ class FireDialog { fit: BoxFit.fitHeight, ); default: - return SizedBox( - width: 110.w, - height: 110.w, - ); + return SizedBox(width: 110.w, height: 110.w); } } } From b99616a1ff5642de07c4fd88dfba9e3675399dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=90=8C?= <494089941@qq.com> Date: Thu, 26 May 2022 14:54:57 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=93=E5=8C=85?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E8=B7=AF=E5=BE=84=E4=B8=BA?= =?UTF-8?q?=E7=9B=B8=E5=AF=B9=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/utils/websocket/fier_dialog.dart | 4 ++-- tool/config.dart | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/utils/websocket/fier_dialog.dart b/lib/utils/websocket/fier_dialog.dart index 5203dca..75b9055 100644 --- a/lib/utils/websocket/fier_dialog.dart +++ b/lib/utils/websocket/fier_dialog.dart @@ -87,9 +87,9 @@ class FireDialog { '${alarmModel.oneButtonAlarm!.name}联系方式:${alarmModel.oneButtonAlarm!.tel}\n' '如未能联系到${alarmModel.oneButtonAlarm!.name}。可择情报警'; case 4: - return '${DateUtil.formatDateStr(alarmModel.deviceAlarm!.time, format: DateFormats.zh_y_mo_d_h_m)}\n\n${alarmModel!.clientAlarm!.content}'; + return '${DateUtil.formatDateStr(alarmModel.deviceAlarm!.time, format: DateFormats.zh_y_mo_d_h_m)}\n\n${alarmModel.clientAlarm!.content}'; case 5: - return '注意:\n\n有住户使用了SOS紧急联系报警,请及时上门或联系人员前往查看,设备号:${alarmModel!.elderlyCareEquipmentReminder!.deviceNo}' + return '注意:\n\n有住户使用了SOS紧急联系报警,请及时上门或联系人员前往查看,设备号:${alarmModel.elderlyCareEquipmentReminder!.deviceNo}' '\n\n${alarmModel.elderlyCareEquipmentReminder!.content}'; default: diff --git a/tool/config.dart b/tool/config.dart index 8c00b3d..ce96cba 100644 --- a/tool/config.dart +++ b/tool/config.dart @@ -11,9 +11,9 @@ class Config { ///测试包文件夹 static String get apkDevDir => - '/users/zhangmeng/team/bee/aku_new_community_manager/dev'; + '../team/bee/aku_new_community_manager/dev'; ///正式包文件夹aku_new_community_manager static String get apkDir => - '/users/zhangmeng/team/bee/aku_new_community_manager/release'; + '../team/bee/aku_new_community_manager/release'; }