# Conflicts:
#	lib/new_ui/auth/other_login_page.dart
master
戴余标 2 years ago
commit 2edf92701b

@ -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/timer_provider.dart';
@ -31,13 +32,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<String, dynamic>? message) async {
@ -92,14 +86,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:

@ -1,4 +1,5 @@
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';
@ -27,15 +28,14 @@ class _CodeMessagePageState extends State<CodeMessagePage> {
@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();
}

@ -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';

@ -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';

@ -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';

@ -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();
}
}

@ -125,7 +125,7 @@ class _SplashPageState extends State<SplashPage> {
WebSocketUtil().initWebSocket(
consolePrint: false,
onReceiveMes: (message) async {
await FireDialog.fireAlert(message);
await FireDialog.fireAlarm(message);
},
onError: (e) {
LoggerData.addData(e);

@ -25,7 +25,7 @@ class JpushMessageParse {
type = _innerMap['type'] ?? '0';
switch (type) {
case '1':
await FireDialog.fireAlert(subTitle!);
await FireDialog.fireAlarm(subTitle!);
break;
default:
}

@ -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<String, dynamic> json) =>
_$FallModelFromJson(json);
const FallModel({
this.userName,
this.tel,
this.address,
this.lon,
this.lat,
this.type,
});
}

@ -1,16 +0,0 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'fall_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
FallModel _$FallModelFromJson(Map<String, dynamic> 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?,
);

@ -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<String, dynamic> json) =>
_$FireModelFromJson(json);
FireModel({
this.alarmNo,
this.alarmType,
this.deviceName,
this.deviceNo,
this.time,
this.type,
@override
List<Object?> 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<String, dynamic> json) =>_$FireAlarmFromJson(json);
@override
List<Object?> 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<String, dynamic> json) =>_$DeviceAlarmFromJson(json);
@override
List<Object?> 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<String, dynamic> json) =>_$OneButtonAlarmFromJson(json);
@override
List<Object?> 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<String, dynamic> json) =>_$ClientAlarmFromJson(json);
@override
List<Object?> 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<String, dynamic> json) =>_$ElderlyCareEquipmentReminderFromJson(json);
@override
List<Object?> get props => [
deviceNo,
deviceType,
content,
];
const ElderlyCareEquipmentReminder({
required this.deviceNo,
required this.deviceType,
required this.content,
});
}

@ -7,10 +7,55 @@ part of 'fire_model.dart';
// **************************************************************************
FireModel _$FireModelFromJson(Map<String, dynamic> 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<String, dynamic>),
deviceAlarm: json['deviceAlarm'] == null
? null
: DeviceAlarm.fromJson(json['deviceAlarm'] as Map<String, dynamic>),
oneButtonAlarm: json['oneButtonAlarm'] == null
? null
: OneButtonAlarm.fromJson(
json['oneButtonAlarm'] as Map<String, dynamic>),
clientAlarm: json['clientAlarm'] == null
? null
: ClientAlarm.fromJson(json['clientAlarm'] as Map<String, dynamic>),
elderlyCareEquipmentReminder: json['elderlyCareEquipmentReminder'] == null
? null
: ElderlyCareEquipmentReminder.fromJson(
json['elderlyCareEquipmentReminder'] as Map<String, dynamic>),
);
FireAlarm _$FireAlarmFromJson(Map<String, dynamic> json) => FireAlarm(
time: json['time'] as String,
deviceName: json['deviceName'] as String,
);
DeviceAlarm _$DeviceAlarmFromJson(Map<String, dynamic> json) => DeviceAlarm(
time: json['time'] as String,
deviceName: json['deviceName'] as String,
);
OneButtonAlarm _$OneButtonAlarmFromJson(Map<String, dynamic> 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<String, dynamic> json) => ClientAlarm(
time: json['time'] as String,
content: json['content'] as String,
);
ElderlyCareEquipmentReminder _$ElderlyCareEquipmentReminderFromJson(
Map<String, dynamic> json) =>
ElderlyCareEquipmentReminder(
deviceNo: json['deviceNo'] as String,
deviceType: json['deviceType'] as int,
content: json['content'] as String,
);

@ -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<String, dynamic> 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<String, dynamic> 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);
}
}
}

@ -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连接失败');

@ -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

@ -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
#路由

@ -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';
}

Loading…
Cancel
Save