更新 地理信息 周边企业 住房介绍 修改警告弹窗

hmxc
章文轩 3 years ago
parent a960f56810
commit ccc7c46a79

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

@ -5,6 +5,7 @@ import 'package:aku_community/utils/headers.dart';
const ktextPrimary = Color(0xff333333);
const ktextSubColor = Color(0xff666666);
const ktextThirdColor = Color(0xff999999);
const kForeGroundColor = Color(0xFFFFFFFF);
const kPrimaryColor = Color(0xFFFFC40C);
const kDarkPrimaryColor = Color(0xFFFF8200);

@ -120,6 +120,9 @@ class R {
/// ![preview](file:///Users/datang/aku_community/assets/icons/app_add.png)
static const String ASSETS_ICONS_APP_ADD_PNG = 'assets/icons/app_add.png';
/// ![preview](file:///Users/datang/aku_community/assets/icons/app_alarm.png)
static const String ASSETS_ICONS_APP_ALARM_PNG = 'assets/icons/app_alarm.png';
/// ![preview](file:///Users/datang/aku_community/assets/icons/app_reduce.png)
static const String ASSETS_ICONS_APP_REDUCE_PNG =
'assets/icons/app_reduce.png';
@ -178,6 +181,10 @@ class R {
/// ![preview](file:///Users/datang/aku_community/assets/icons/contract.png)
static const String ASSETS_ICONS_CONTRACT_PNG = 'assets/icons/contract.png';
/// ![preview](file:///Users/datang/aku_community/assets/icons/device_alarm.png)
static const String ASSETS_ICONS_DEVICE_ALARM_PNG =
'assets/icons/device_alarm.png';
/// ![preview](file:///Users/datang/aku_community/assets/icons/facility.png)
static const String ASSETS_ICONS_FACILITY_PNG = 'assets/icons/facility.png';
@ -187,6 +194,10 @@ class R {
/// ![preview](file:///Users/datang/aku_community/assets/icons/finish.png)
static const String ASSETS_ICONS_FINISH_PNG = 'assets/icons/finish.png';
/// ![preview](file:///Users/datang/aku_community/assets/icons/fire_alarm.png)
static const String ASSETS_ICONS_FIRE_ALARM_PNG =
'assets/icons/fire_alarm.png';
/// ![preview](file:///Users/datang/aku_community/assets/icons/goods_borrow.png)
static const String ASSETS_ICONS_GOODS_BORROW_PNG =
'assets/icons/goods_borrow.png';

@ -253,6 +253,9 @@ class _Manager {
///app
String get communityIntroduceInfo => '/user/communityIntroduction/findEnable';
///
String get geographyInformation => '/user/geography/findGeographyInfo';
////
String get completeFeedBack => '/user/advice/completeFeedback';
@ -311,6 +314,12 @@ class _Manager {
///app:
String get sharePayRecord =>
'/user/meterReadingShareDetails/findAllMeterShareOrderByTel';
///
String get houseType =>
'/user/houseTypeDescription/list';
}
class _Community {

@ -6,8 +6,10 @@ import 'package:aku_community/pages/convenient_phone/convenient_phone_page.dart'
import 'package:aku_community/pages/electronic_commerc/electronic_commerc_page.dart';
import 'package:aku_community/pages/event_activity/event_voting_page.dart';
import 'package:aku_community/pages/express_packages/express_package_page.dart';
import 'package:aku_community/pages/geographic_information/geographic_information_page.dart';
import 'package:aku_community/pages/goods_deto_page/goods_deto_page.dart';
import 'package:aku_community/pages/goods_manage_page/select_borrow_return_page.dart';
import 'package:aku_community/pages/house_introduce/house_introduce.dart';
import 'package:aku_community/pages/industry_committee/industry_committee_page.dart';
import 'package:aku_community/pages/life_pay/life_pay_choose_page.dart';
import 'package:aku_community/pages/one_alarm/widget/alarm_page.dart';
@ -15,6 +17,7 @@ import 'package:aku_community/pages/opening_code_page/opening_code_page.dart';
import 'package:aku_community/pages/renovation_manage/new_renovation/new_renovation_page.dart';
import 'package:aku_community/pages/service_browse/service_browse_page.dart';
import 'package:aku_community/pages/setting_page/settings_page.dart';
import 'package:aku_community/pages/surrounding_enterprises/Surrounding_enterprises_page.dart';
import 'package:aku_community/pages/things_page/fixed_submit_page.dart';
import 'package:aku_community/pages/visitor_access_page/visitor_access_page.dart';
import 'package:aku_community/ui/community/activity/activity_list_page.dart';
@ -91,6 +94,11 @@ List<AO> appObjects = [
AO('服务浏览', R.ASSETS_ICONS_SERVICE_PNG, () => ServiceBrowsePage()),
AO('社区介绍', R.ASSETS_ICONS_INTRODUCE_PNG, () => CommunityIntroducePage()),
AO('家政服务', R.ASSETS_ICONS_HOUSE_KEEPING_PNG, () => HouseKeepingPage()),
AO('地理信息', R.ASSETS_ICONS_INTRODUCE_PNG, () => GeographicInformationPage()),
AO('周边企业', R.ASSETS_ICONS_HOUSE_KEEPING_PNG, () => SurroundingEnterprisesPage()),
AO('住房介绍', R.ASSETS_ICONS_INTRODUCE_PNG, () => HouseIntroducePage()),
// AO(
// '小区教育',
// R.ASSETS_IMAGES_PLACEHOLDER_WEBP,
@ -174,7 +182,13 @@ List<String> _smartManagerApp = [
'电子商务',
'服务浏览',
'社区介绍',
'家政服务'
'家政服务',
'地理信息',
'周边企业',
'住房介绍'
// '小区教育',
// '健康运动',
// '家政服务',

@ -22,9 +22,9 @@ void main() async {
WidgetsFlutterBinding.ensureInitialized();
///firebase crashlytics initalize
await MainInitialize.initFirebase();
//await MainInitialize.initFirebase();
MainInitialize.initTheme();
MainInitialize.initWechat();
// MainInitialize.initWechat();
MainInitialize.initWebSocket();
await MainInitialize.initJPush();
@ -73,7 +73,14 @@ class _MyAppState extends State<MyApp> {
],
supportedLocales: [const Locale('zh')],
locale: Locale('zh'),
builder: BotToastInit(),
//builder: BotToastInit(),
builder: (context, child) {
return MediaQuery(
//
data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
child: BotToastInit().call(context,child),
);
},
navigatorObservers: [BotToastNavigatorObserver()],
),
),

@ -0,0 +1,43 @@
import 'package:aku_community/model/common/img_model.dart';
import 'package:flustars/flustars.dart';
class GeographicInformationModel {
int? id;
String? name;
String? content;
String? createDate;
List<ImgModel>? imgUrls;
DateTime? get getCreateDate => DateUtil.getDateTime(createDate!);
GeographicInformationModel(
{this.id, this.name, this.content, this.createDate, this.imgUrls});
GeographicInformationModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
content = json['content'];
createDate = json['createDate'];
if (json['imgUrls'] != null) {
imgUrls =
(json['imgUrls'] as List).map((e) => ImgModel.fromJson(e)).toList();
} else
imgUrls = [];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
data['content'] = this.content;
data['createDate'] = this.createDate;
if (this.imgUrls != null) {
data['imgUrls'] = this.imgUrls!.map((v) => v.toJson()).toList();
}
return data;
}
factory GeographicInformationModel.init() =>
GeographicInformationModel(id: -1, name: '', content: '', createDate: '');
}

@ -0,0 +1,39 @@
import 'package:aku_community/model/common/img_model.dart';
import 'package:flustars/flustars.dart';
class HouseIntroduceModel {
int? id;
String? name;
String? content;
String? releaseDate;
List<ImgModel>? imgUrls;
DateTime? get getReleaseDate => DateUtil.getDateTime(releaseDate!);
HouseIntroduceModel(
{this.id, this.name, this.content, this.releaseDate, this.imgUrls});
HouseIntroduceModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
content = json['content'];
releaseDate = json['releaseDate'];
if (json['imgUrls'] != null) {
imgUrls =
(json['imgUrls'] as List).map((e) => ImgModel.fromJson(e)).toList();
} else
imgUrls = [];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
data['content'] = this.content;
data['releaseDate'] = this.releaseDate;
if (this.imgUrls != null) {
data['imgUrls'] = this.imgUrls!.map((v) => v.toJson()).toList();
}
return data;
}
}

@ -0,0 +1,77 @@
import 'package:aku_community/models/geographic_information/geographic_information_model.dart';
import 'package:aku_community/models/house_introduce/house_introduce_model.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:aku_community/base/base_style.dart';
import 'package:aku_community/const/resource.dart';
import 'package:aku_community/constants/api.dart';
import 'package:aku_community/model/common/img_model.dart';
import 'package:aku_community/models/community_introduce/community_introduce_model.dart';
import 'package:aku_community/utils/network/base_model.dart';
import 'package:aku_community/utils/network/net_util.dart';
import 'package:aku_community/widget/bee_scaffold.dart';
class GeographicInformationPage extends StatefulWidget {
GeographicInformationPage({Key? key,})
: super(key: key);
@override
_GeographicInformationPageState createState() => _GeographicInformationPageState();
}
class _GeographicInformationPageState extends State<GeographicInformationPage> {
GeographicInformationModel _model = GeographicInformationModel.init();
bool _onload = false;
@override
Widget build(BuildContext context) {
return BeeScaffold(
bodyColor: Colors.white,
title: '地理信息',
body:EasyRefresh(
firstRefresh: true,
header: MaterialHeader(),
onRefresh: () async {
BaseModel baseModel =
await NetUtil().get(API.manager.geographyInformation);
if (baseModel.status! && baseModel.data != null) {
_model = GeographicInformationModel.fromJson(baseModel.data);
}
_onload = false;
setState(() {});
},
child: _onload
? Container()
:
ListView(
children: [
SizedBox(
child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_IMAGES_PLACEHOLDER_WEBP,
fit: BoxFit.cover,
image: API
.image(ImgModel.first(_model.imgUrls))),
width: double.infinity,
height: 424.w,
),
24.w.heightBox,
Padding(
padding: EdgeInsets.only(left: 32.w,right: 32.w,top: 40.w),
child: Text(
_model.content ?? '',
style: TextStyle(
fontSize: 26.sp,
color: (ktextSubColor),
fontWeight: FontWeight.bold),
)),
],
),
));
}
}

@ -0,0 +1,81 @@
import 'package:aku_community/models/house_introduce/house_introduce_model.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:aku_community/base/base_style.dart';
import 'package:aku_community/const/resource.dart';
import 'package:aku_community/constants/api.dart';
import 'package:aku_community/model/common/img_model.dart';
import 'package:aku_community/widget/bee_scaffold.dart';
class HouseDetailPage extends StatefulWidget {
final HouseIntroduceModel houseIntroduceModel;
HouseDetailPage({Key? key, required this.houseIntroduceModel})
: super(key: key);
@override
_HouseDetailPageState createState() => _HouseDetailPageState();
}
class _HouseDetailPageState extends State<HouseDetailPage> {
bool _onload = false;
@override
Widget build(BuildContext context) {
return BeeScaffold(
bodyColor: Colors.white,
title: '住房详情',
body: ListView(
children: [
SizedBox(
child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_IMAGES_PLACEHOLDER_WEBP,
fit: BoxFit.cover,
image: API
.image(ImgModel.first(widget.houseIntroduceModel.imgUrls))),
width: double.infinity,
height: 424.w,
),
24.w.heightBox,
Padding(
padding: EdgeInsets.symmetric(horizontal: 32.w),
child:
// widget.houseIntroduceModel.content!.text
// .size(28.sp)
// .color(ktextPrimary)
// .make(),
Text(
widget.houseIntroduceModel.name ?? '',
style: TextStyle(
fontSize: 30.sp,
color: (ktextPrimary),
fontWeight: FontWeight.bold),
)),
Padding(
padding: EdgeInsets.only(left: 32.w,right: 32.w,top: 16.w),
child: Text(
'发布于:${widget.houseIntroduceModel.getReleaseDate}' ,
style: TextStyle(
fontSize: 20.sp,
color: (ktextThirdColor),
fontWeight: FontWeight.bold),
)),
Padding(
padding: EdgeInsets.only(left: 32.w,right: 32.w,top: 40.w),
child: Text(
widget.houseIntroduceModel.content ?? '',
style: TextStyle(
fontSize: 26.sp,
color: (ktextSubColor),
fontWeight: FontWeight.bold),
)),
],
),
);
}
}

@ -0,0 +1,129 @@
import 'package:aku_community/models/house_introduce/house_introduce_model.dart';
import 'package:aku_community/utils/hive_store.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:get/get.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:aku_community/base/base_style.dart';
import 'package:aku_community/constants/api.dart';
import 'package:aku_community/constants/app_theme.dart';
import 'package:aku_community/model/common/img_model.dart';
import 'package:aku_community/model/user/committee_item_model.dart';
import 'package:aku_community/pages/things_page/widget/bee_list_view.dart';
import 'package:aku_community/utils/headers.dart';
import 'package:aku_community/widget/bee_scaffold.dart';
import 'house_detail_page.dart';
class HouseIntroducePage extends StatefulWidget {
HouseIntroducePage({Key? key}) : super(key: key);
@override
_HouseIntroducePageState createState() => _HouseIntroducePageState();
}
class _HouseIntroducePageState extends State<HouseIntroducePage> {
EasyRefreshController _refreshController = EasyRefreshController();
@override
void initState() {
super.initState();
// Future.delayed(Duration(milliseconds: 0), () async {
// var agreement = await HiveStore.appBox?.get('IndustryCommitteePage') ?? false;
// if (!agreement) {
// await TipsDialog.tipsDialog();
// HiveStore.appBox!.put('IndustryCommitteePage',true);
// }
// });
}
Widget _buildCard(HouseIntroduceModel model) {
return GestureDetector(
onTap: (){
Get.to(HouseDetailPage(houseIntroduceModel: model,));
},
child: Container(
padding: EdgeInsets.all(20.w),
color: Colors.white,
height: 250.w,
child: Row(
// .padding(EdgeInsets.all(20.w)).white.withRounded(value: 8.w).make()
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(4.w),
child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_IMAGES_PLACEHOLDER_WEBP,
image: API.image(ImgModel.first(model.imgUrls)),
height: 200.w,
width: 240.w,
fit: BoxFit.fill,
),
),
24.wb,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
width: 440.w,
child: Text(
'${model.name}',
style: TextStyle(
fontSize: 30.sp,
fontWeight: FontWeight.bold,
color: ktextPrimary
),
maxLines: 4,
overflow: TextOverflow.ellipsis,
),
),
Spacer(),
'发布于:${model.getReleaseDate}'
.text
.size(20.sp)
.color(ktextThirdColor)
.make(),
],
),
],
),
),
);
}
Widget build(BuildContext context) {
return BeeScaffold(
title: '住房介绍',
systemStyle: SystemStyle.genStyle(bottom: Color(0xFF2A2A2A)),
body: BeeListView<HouseIntroduceModel>(
path: API.manager.houseType,
convert: (model) {
return model.tableList!
.map((e) => HouseIntroduceModel.fromJson(e))
.toList();
},
controller: _refreshController,
builder: (items) {
return ListView.separated(
padding: EdgeInsets.symmetric(vertical: 20.w),
itemBuilder: (context, index) {
return _buildCard(items[index]);
},
separatorBuilder: (context, index) => 20.hb,
itemCount: items.length,
);
},
),
);
}
}

@ -110,7 +110,7 @@ class _SplashPageState extends State<SplashPage> {
context,
debug: DeveloperUtil.dev,
);
Future.delayed(Duration(milliseconds: 1000), () async {
Future.delayed(Duration(milliseconds: 0), () async {
await _originOp();
var agreement = await HiveStore.appBox?.get('agreement') ?? false;
if (!agreement) {

@ -0,0 +1,129 @@
import 'package:aku_community/models/house_introduce/house_introduce_model.dart';
import 'package:aku_community/pages/surrounding_enterprises/surrounding_enterprises_detail_page.dart';
import 'package:aku_community/utils/hive_store.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:get/get.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:aku_community/base/base_style.dart';
import 'package:aku_community/constants/api.dart';
import 'package:aku_community/constants/app_theme.dart';
import 'package:aku_community/model/common/img_model.dart';
import 'package:aku_community/model/user/committee_item_model.dart';
import 'package:aku_community/pages/things_page/widget/bee_list_view.dart';
import 'package:aku_community/utils/headers.dart';
import 'package:aku_community/widget/bee_scaffold.dart';
class SurroundingEnterprisesPage extends StatefulWidget {
SurroundingEnterprisesPage({Key? key}) : super(key: key);
@override
_SurroundingEnterprisesPageState createState() => _SurroundingEnterprisesPageState();
}
class _SurroundingEnterprisesPageState extends State<SurroundingEnterprisesPage> {
EasyRefreshController _refreshController = EasyRefreshController();
@override
void initState() {
super.initState();
// Future.delayed(Duration(milliseconds: 0), () async {
// var agreement = await HiveStore.appBox?.get('IndustryCommitteePage') ?? false;
// if (!agreement) {
// await TipsDialog.tipsDialog();
// HiveStore.appBox!.put('IndustryCommitteePage',true);
// }
// });
}
Widget _buildCard(HouseIntroduceModel model) {
return GestureDetector(
onTap: (){
Get.to(SurroundingEnterprisesDetailPage(houseIntroduceModel: model,));
},
child: Container(
padding: EdgeInsets.all(20.w),
color: Colors.white,
height: 250.w,
child: Row(
// .padding(EdgeInsets.all(20.w)).white.withRounded(value: 8.w).make()
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(4.w),
child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_IMAGES_PLACEHOLDER_WEBP,
image: API.image(ImgModel.first(model.imgUrls)),
height: 200.w,
width: 240.w,
fit: BoxFit.fill,
),
),
24.wb,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
width: 440.w,
child: Text(
'${model.name}',
style: TextStyle(
fontSize: 30.sp,
fontWeight: FontWeight.bold,
color: ktextPrimary
),
maxLines: 4,
overflow: TextOverflow.ellipsis,
),
),
Spacer(),
'发布于:${model.getReleaseDate}'
.text
.size(20.sp)
.color(ktextThirdColor)
.make(),
],
),
],
),
),
);
}
Widget build(BuildContext context) {
return BeeScaffold(
title: '住房介绍',
systemStyle: SystemStyle.genStyle(bottom: Color(0xFF2A2A2A)),
body: BeeListView<HouseIntroduceModel>(
path: API.manager.houseType,
convert: (model) {
return model.tableList!
.map((e) => HouseIntroduceModel.fromJson(e))
.toList();
},
controller: _refreshController,
builder: (items) {
return ListView.separated(
padding: EdgeInsets.symmetric(vertical: 20.w),
itemBuilder: (context, index) {
return _buildCard(items[index]);
},
separatorBuilder: (context, index) => 20.hb,
itemCount: items.length,
);
},
),
);
}
}

@ -0,0 +1,83 @@
import 'package:aku_community/models/house_introduce/house_introduce_model.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:aku_community/base/base_style.dart';
import 'package:aku_community/const/resource.dart';
import 'package:aku_community/constants/api.dart';
import 'package:aku_community/model/common/img_model.dart';
import 'package:aku_community/models/community_introduce/community_introduce_model.dart';
import 'package:aku_community/utils/network/base_model.dart';
import 'package:aku_community/utils/network/net_util.dart';
import 'package:aku_community/widget/bee_scaffold.dart';
class SurroundingEnterprisesDetailPage extends StatefulWidget {
final HouseIntroduceModel houseIntroduceModel;
SurroundingEnterprisesDetailPage({Key? key, required this.houseIntroduceModel})
: super(key: key);
@override
_SurroundingEnterprisesDetailPageState createState() => _SurroundingEnterprisesDetailPageState();
}
class _SurroundingEnterprisesDetailPageState extends State<SurroundingEnterprisesDetailPage> {
bool _onload = false;
@override
Widget build(BuildContext context) {
return BeeScaffold(
bodyColor: Colors.white,
title: '住房详情',
body: ListView(
children: [
SizedBox(
child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_IMAGES_PLACEHOLDER_WEBP,
fit: BoxFit.cover,
image: API
.image(ImgModel.first(widget.houseIntroduceModel.imgUrls))),
width: double.infinity,
height: 424.w,
),
24.w.heightBox,
Padding(
padding: EdgeInsets.symmetric(horizontal: 32.w),
child:
// widget.houseIntroduceModel.content!.text
// .size(28.sp)
// .color(ktextPrimary)
// .make(),
Text(
widget.houseIntroduceModel.name ?? '',
style: TextStyle(
fontSize: 30.sp,
color: (ktextPrimary),
fontWeight: FontWeight.bold),
)),
Padding(
padding: EdgeInsets.only(left: 32.w,right: 32.w,top: 16.w),
child: Text(
'发布于:${widget.houseIntroduceModel.getReleaseDate}' ,
style: TextStyle(
fontSize: 20.sp,
color: (ktextThirdColor),
fontWeight: FontWeight.bold),
)),
Padding(
padding: EdgeInsets.only(left: 32.w,right: 32.w,top: 40.w),
child: Text(
widget.houseIntroduceModel.content ?? '',
style: TextStyle(
fontSize: 26.sp,
color: (ktextSubColor),
fontWeight: FontWeight.bold),
)),
],
),
);
}
}

@ -0,0 +1,36 @@
class AlarmModel {
String? alarmNo;
String? alarmType;
String? deviceName;
String? deviceNo;
String? time;
int? type;
AlarmModel(
{this.alarmNo,
this.alarmType,
this.deviceName,
this.deviceNo,
this.time,
this.type});
AlarmModel.fromJson(Map<String, dynamic> json) {
alarmNo = json['alarmNo'];
alarmType = json['alarmType'];
deviceName = json['deviceName'];
deviceNo = json['deviceNo'];
time = json['time'];
type = json['type'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['alarmNo'] = this.alarmNo;
data['alarmType'] = this.alarmType;
data['deviceName'] = this.deviceName;
data['deviceNo'] = this.deviceNo;
data['time'] = this.time;
data['type'] = this.type;
return data;
}
}

@ -1,3 +1,5 @@
import 'dart:convert';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -7,21 +9,25 @@ import 'package:get/get.dart';
import 'package:aku_community/extensions/num_ext.dart';
import 'package:aku_community/pages/tab_navigator.dart';
import 'package:aku_community/utils/developer_util.dart';
import 'package:aku_community/utils/headers.dart';
import 'AlarmModel.dart';
class FireDialog {
static fireAlarm(String content) async {
var json = jsonDecode(content);
AlarmModel alarmModel = AlarmModel.fromJson(json);
await Get.dialog(
CupertinoAlertDialog(
title: Text('发生火灾'),
title: getImage(alarmModel),
content: Column(
children: [
Text(content),
Text(getTitle(alarmModel)),
10.hb,
Icon(
CupertinoIcons.bell_fill,
color: Colors.red,
size: 48.w,
),
Text(getContent(alarmModel)),
],
),
actions: [
@ -41,4 +47,49 @@ class FireDialog {
barrierDismissible: false,
);
}
static String getTitle(AlarmModel alarmModel){
switch(alarmModel.type){
case 1:
return '发现火灾!请立刻组织疏散人群!';
case 2:
return '设备故障';
case 3:
return '管家端APP报警';
default:
return '';
}
}
static String getContent(AlarmModel alarmModel){
switch(alarmModel.type){
case 1:
return '${alarmModel.time},${alarmModel.deviceName}附近出现了火灾报警,请各位业主、租户保持镇静,不要慌乱,有序开始撤离!';
case 2:
return '${alarmModel.time},小区内有设备${alarmModel.deviceName}发生了报警,请物业负责人员尽快前往现场排查故障!';
case 3:
return '注意:\n${alarmModel.time},${alarmModel.deviceNo}${alarmModel.deviceName}'+
'在管家端app上点击了"一键报警",请尽快联系他沟通情况。\n'+
'${alarmModel.deviceName}联系方式:${alarmModel.alarmNo}\n'+
'如未能联系到${alarmModel.deviceName}。可择情报警'
;
default:
return '';
}
}
static Widget getImage(AlarmModel alarmModel){
switch(alarmModel.type){
case 1:
return Image.asset(R.ASSETS_ICONS_FIRE_ALARM_PNG,width: 110.w,height: 110.w,fit: BoxFit.fill,);
case 2:
return Image.asset(R.ASSETS_ICONS_DEVICE_ALARM_PNG,width: 110.w,height: 110.w,fit: BoxFit.fill,);
case 3:
return Image.asset(R.ASSETS_ICONS_APP_ALARM_PNG,width: 110.w,height: 110.w,fit: BoxFit.fill,);
default:
return SizedBox();
}
}
}

Loading…
Cancel
Save