From b160e2a9ba9aaa93f3114a57e3354d94240eca53 Mon Sep 17 00:00:00 2001 From: zhangmeng <494089941@qq.com> Date: Thu, 25 Mar 2021 14:51:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E7=9A=84=E9=97=AE=E9=A2=98=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20=E5=B7=A1=E6=A3=80=E7=AE=A1=E7=90=86=E9=A6=96?= =?UTF-8?q?=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/src/debug/AndroidManifest.xml | 1 + android/app/src/main/AndroidManifest.xml | 2 + .../main/res/xml/network_security_config.xml | 4 + ios/Runner.xcodeproj/project.pbxproj | 4 +- ios/Runner/Info.plist | 5 + lib/const/api.dart | 3 + .../inspection/inspection_list_model.dart | 44 +++++ lib/style/app_style.dart | 13 ++ .../inspection_manage_card.dart | 168 +++++++++++------- .../inspection_manage_details_page.dart | 3 +- .../inspection_manage_page.dart | 50 ++++-- lib/ui/splash/splash_page.dart | 2 +- 12 files changed, 213 insertions(+), 86 deletions(-) create mode 100644 android/app/src/main/res/xml/network_security_config.xml create mode 100644 lib/models/manager/inspection/inspection_list_model.dart diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index cf05c20..d492885 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -4,4 +4,5 @@ to allow setting breakpoints, to provide hot reload, etc. --> + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 22a4b35..5d7155f 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -26,5 +26,7 @@ + diff --git a/android/app/src/main/res/xml/network_security_config.xml b/android/app/src/main/res/xml/network_security_config.xml new file mode 100644 index 0000000..dca93c0 --- /dev/null +++ b/android/app/src/main/res/xml/network_security_config.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 65ad20e..0f4bc9c 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -43,7 +43,7 @@ 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info-Debug.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Debug.plist"; sourceTree = ""; }; BB0EBAE2C9CD25508CE8905A /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; D3841BBC25E0B59A00442C11 /* 小蜜蜂智慧社区管家端.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "小蜜蜂智慧社区管家端.entitlements"; sourceTree = ""; }; EAD6594E3E9D112D0B561296 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; @@ -117,7 +117,7 @@ 97C146FA1CF9000F007C117D /* Main.storyboard */, 97C146FD1CF9000F007C117D /* Assets.xcassets */, 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, - 97C147021CF9000F007C117D /* Info.plist */, + 97C147021CF9000F007C117D /* Info-Debug.plist */, 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 8073b4a..cf2ce6e 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -65,5 +65,10 @@ UIViewControllerBasedStatusBarAppearance + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + diff --git a/lib/const/api.dart b/lib/const/api.dart index 21bd31e..8caf056 100644 --- a/lib/const/api.dart +++ b/lib/const/api.dart @@ -137,6 +137,9 @@ class _Manage { ///物品出户:根据房产id查询业主名称和手机号(联系业主) String get goodsOutContactOwner => '/user/articleOut/contactOwner'; + + ///巡检管理:查询所有的巡检管理信息 + String get inspectionList => '/user/inspection/list'; } class _Upload { diff --git a/lib/models/manager/inspection/inspection_list_model.dart b/lib/models/manager/inspection/inspection_list_model.dart new file mode 100644 index 0000000..d2c5c85 --- /dev/null +++ b/lib/models/manager/inspection/inspection_list_model.dart @@ -0,0 +1,44 @@ +class InspectionListModel { + int id; + String code; + String name; + String beginDate; + String endDate; + String actualBeginDate; + String actualEndDate; + int status; + + InspectionListModel( + {this.id, + this.code, + this.name, + this.beginDate, + this.endDate, + this.actualBeginDate, + this.actualEndDate, + this.status}); + + InspectionListModel.fromJson(Map json) { + id = json['id']; + code = json['code']; + name = json['name']; + beginDate = json['beginDate']; + endDate = json['endDate']; + actualBeginDate = json['actualBeginDate']; + actualEndDate = json['actualEndDate']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['code'] = this.code; + data['name'] = this.name; + data['beginDate'] = this.beginDate; + data['endDate'] = this.endDate; + data['actualBeginDate'] = this.actualBeginDate; + data['actualEndDate'] = this.actualEndDate; + data['status'] = this.status; + return data; + } +} diff --git a/lib/style/app_style.dart b/lib/style/app_style.dart index c1d8355..02e6412 100644 --- a/lib/style/app_style.dart +++ b/lib/style/app_style.dart @@ -9,6 +9,19 @@ export 'package:aku_community_manager/const/resource.dart'; //默认小区名称 const kEstateName = '深圳华茂悦峰'; +//颜色,渐变主颜色和次级颜色 +const kPrimaryColor = Color(0xFFFDCF12); +const kMinorColor = Color(0xFFFFDF5D); +const kSubColor = Color(0xFF3F8FFE); +//字体 +///主字体颜色 +const primaryTextColor = Color(0xFF333333); + +///次字体颜色 +const minorTextColor = Color(0xFF999999); + +///背景色 +const backgroundColor = Color(0xFFF9F9F9); class AppStyle { //颜色,渐变主颜色和次级颜色 diff --git a/lib/ui/manage_pages/inspection_manage/inspection_manage_card.dart b/lib/ui/manage_pages/inspection_manage/inspection_manage_card.dart index 99c7ba7..a418af7 100644 --- a/lib/ui/manage_pages/inspection_manage/inspection_manage_card.dart +++ b/lib/ui/manage_pages/inspection_manage/inspection_manage_card.dart @@ -1,66 +1,94 @@ -// Flutter imports: -import 'package:flutter/material.dart'; - -// Package imports: -import 'package:aku_ui/common_widgets/aku_common_widgets.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:get/get.dart'; -import 'package:get/instance_manager.dart'; - -// Project imports: -import 'package:aku_community_manager/const/resource.dart'; -import 'package:aku_community_manager/mock_models/manage_models/manage_model.dart'; +import 'package:aku_community_manager/models/manager/inspection/inspection_list_model.dart'; import 'package:aku_community_manager/style/app_style.dart'; -import 'package:aku_community_manager/tools/widget_tool.dart'; -import 'package:aku_community_manager/ui/manage_pages/inspection_manage/inspection_manage_details_page.dart'; +import 'package:aku_ui/aku_ui.dart'; +import 'package:common_utils/common_utils.dart'; +import 'package:flutter/material.dart'; +import 'package:velocity_x/velocity_x.dart'; -class InspectionManageCard { - final InspectionManageCardModel cardModel; +class InspectionManageCard extends StatefulWidget { + final InspectionListModel cardModel; final bool extra; - InspectionManageCard(this.cardModel, {this.extra = true}); + InspectionManageCard({Key key, this.cardModel, this.extra = true}) + : super(key: key); + + @override + _InspectionManageCardState createState() => _InspectionManageCardState(); +} - Widget inspectionManageCard() { +class _InspectionManageCardState extends State { + @override + Widget build(BuildContext context) { TextStyle _textstyle = TextStyle(color: AppStyle.minorTextColor, fontSize: 28.sp); + Map _inspectionStatus = { + 1: '待巡检', + 2: '已巡检', + }; + Color _inspectionColor(int status) { + switch (status) { + case 1: + return Color(0xFF4501); + break; + case 2: + return Color(0x999999); + default: + return Colors.black; + } + } + return Column( mainAxisSize: MainAxisSize.min, children: [ - AkuBox.h(16), + 16.w.heightBox, AkuButton( - onPressed: extra + onPressed: widget.extra ? () { - Get.to(InspectionManageDetailsPage( - cardModel: cardModel, - )); + // Get.to( + // InspectionManageDetailsPage( + // widget.cardModel: widget.cardModel, + // ), + // ); } : () {}, child: Container( alignment: Alignment.centerLeft, padding: EdgeInsets.only( - left: 24.w, right: 24.w, bottom: extra ? 48.w : 40.w), + left: 24.w, right: 24.w, bottom: widget.extra ? 48.w : 40.w), width: double.infinity, - height: extra ? 362.w : 270.w, + height: widget.extra ? 362.w : 270.w, decoration: BoxDecoration( borderRadius: BorderRadius.circular(8.w), color: Color(0xFFFFFFFF)), child: Column(children: [ Container( - height: extra ? 93.w : 86.w, - width: double.infinity, - alignment: Alignment.centerLeft, - child: Text( - cardModel.title, - style: TextStyle( - color: AppStyle.primaryTextColor, - fontSize: extra ? 32.sp : 36.sp, - fontWeight: FontWeight.bold), - )), - extra + height: widget.extra ? 93.w : 86.w, + width: double.infinity, + alignment: Alignment.centerLeft, + child: Row( + children: [ + Text( + '1号巡检任务', + style: TextStyle( + color: AppStyle.primaryTextColor, + fontSize: widget.extra ? 32.sp : 36.sp, + fontWeight: FontWeight.bold), + ), + Spacer(), + _inspectionStatus[widget.cardModel.status] + .text + .color(_inspectionColor(widget.cardModel.status)) + .bold + .size(28.sp) + .make() + ], + ), + ), + widget.extra ? Divider( height: 1.w, ) : SizedBox(), - extra ? AkuBox.h(24) : SizedBox(), + widget.extra ? 24.w.heightBox : SizedBox(), Row( children: [ Image.asset( @@ -68,14 +96,14 @@ class InspectionManageCard { width: 40.w, height: 40.w, ), - AkuBox.w(4), + 4.w.widthBox, Text( - '巡检日期', + '巡检编号', style: _textstyle, ), Spacer(), Text( - cardModel.date, + widget.cardModel.code, style: AppStyle().primaryStyle, ) ], @@ -88,37 +116,41 @@ class InspectionManageCard { width: 40.w, height: 40.w, ), - AkuBox.w(4), - Text('巡检周期', style: _textstyle), + 4.w.widthBox, + Text('规定巡检时间', style: _textstyle), Spacer(), Text( - cardModel.cycle, + '${DateUtil.formatDateStr(widget.cardModel.beginDate, format: "yyyy-MM-dd HH:mm")}~${DateUtil.formatDateStr(widget.cardModel.endDate, format: "HH:mm")}', style: AppStyle().primaryStyle, ), ], ), Spacer(), - Row( - children: [ - Image.asset( - R.ASSETS_MANAGE_IC_TIME_PNG, - width: 40.w, - height: 40.w, - ), - AkuBox.w(4), - Text( - '巡检时间', - style: _textstyle, - ), - Spacer(), - Text( - cardModel.time, - style: AppStyle().primaryStyle, - ), - ], - ), - extra ? Spacer() : SizedBox(), - extra + ...widget.cardModel.actualBeginDate == null + ? [SizedBox()] + : [ + Row( + children: [ + Image.asset( + R.ASSETS_MANAGE_IC_TIME_PNG, + width: 40.w, + height: 40.w, + ), + 4.w.widthBox, + Text( + '开始巡检时间', + style: _textstyle, + ), + Spacer(), + Text( + '${DateUtil.formatDateStr(widget.cardModel.actualBeginDate, format: "yyyy-MM-dd HH:mm")}', + style: AppStyle().primaryStyle, + ), + ], + ), + Spacer(), + ], + widget.cardModel.actualEndDate == null ? Row( children: [ Image.asset( @@ -126,16 +158,14 @@ class InspectionManageCard { width: 40.w, height: 40.w, ), - AkuBox.w(4), + 4.w.widthBox, Text( - '巡检人员', + '结束巡检时间', style: _textstyle, ), Spacer(), Text( - cardModel.persons.length > 2 - ? '${cardModel.persons[0]}、${cardModel.persons[1]}等' - : cardModel.persons[0], + '${DateUtil.formatDateStr(widget.cardModel.actualEndDate, format: "yyyy-MM-dd HH:mm")}', style: AppStyle().primaryStyle, ), ], diff --git a/lib/ui/manage_pages/inspection_manage/inspection_manage_details_page.dart b/lib/ui/manage_pages/inspection_manage/inspection_manage_details_page.dart index d6378d3..a9fce7f 100644 --- a/lib/ui/manage_pages/inspection_manage/inspection_manage_details_page.dart +++ b/lib/ui/manage_pages/inspection_manage/inspection_manage_details_page.dart @@ -9,7 +9,6 @@ import 'package:aku_community_manager/const/resource.dart'; import 'package:aku_community_manager/mock_models/manage_models/manage_model.dart'; import 'package:aku_community_manager/style/app_style.dart'; import 'package:aku_community_manager/tools/widget_tool.dart'; -import 'package:aku_community_manager/ui/manage_pages/inspection_manage/inspection_manage_card.dart'; import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart'; class InspectionManageDetailsPage extends StatelessWidget { @@ -22,7 +21,7 @@ class InspectionManageDetailsPage extends StatelessWidget { title: '巡检详情', body: Column( children: [ - InspectionManageCard(cardModel, extra: false).inspectionManageCard(), + // InspectionManageCard(cardModel:cardModel, extra: false), Container( width: double.infinity, color: Color(0xFFFFFFFF), diff --git a/lib/ui/manage_pages/inspection_manage/inspection_manage_page.dart b/lib/ui/manage_pages/inspection_manage/inspection_manage_page.dart index d80a5a2..f407c1a 100644 --- a/lib/ui/manage_pages/inspection_manage/inspection_manage_page.dart +++ b/lib/ui/manage_pages/inspection_manage/inspection_manage_page.dart @@ -1,14 +1,16 @@ // Flutter imports: +import 'package:aku_community_manager/const/api.dart'; +import 'package:aku_community_manager/models/manager/inspection/inspection_list_model.dart'; +import 'package:aku_community_manager/ui/manage_pages/inspection_manage/inspection_manage_card.dart'; +import 'package:aku_community_manager/ui/widgets/common/bee_list_view.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'; // Package imports: -import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:provider/provider.dart'; // Project imports: -import 'package:aku_community_manager/provider/manage_provider.dart'; -import 'package:aku_community_manager/style/app_style.dart'; -import 'package:aku_community_manager/ui/manage_pages/inspection_manage/inspection_manage_card.dart'; import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart'; class InspectionManagePage extends StatefulWidget { @@ -19,17 +21,41 @@ class InspectionManagePage extends StatefulWidget { } class _InspectionManagePageState extends State { + EasyRefreshController _easyRefreshController; + @override + void initState() { + _easyRefreshController = EasyRefreshController(); + super.initState(); + } + + @override + void dispose() { + _easyRefreshController?.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { - final _inspectionManageModel = - Provider.of(context); return AkuScaffold( title: '巡检管理', - body: ListView( - padding: EdgeInsets.only(left: 32.w, right: 32.w, bottom: 40.w), - children: _inspectionManageModel.inspectionManageModels - .map((e) => InspectionManageCard(e).inspectionManageCard()) - .toList(), + body: BeeListView( + path: API.manage.inspectionList, + controller: _easyRefreshController, + convert: (models) { + return models.tableList + .map((e) => InspectionListModel.fromJson(e)) + .toList(); + }, + builder: (items) { + return ListView.separated( + itemBuilder: (context, index) { + return InspectionManageCard(cardModel: items[index]); + }, + separatorBuilder: (_, __) { + return 8.w.heightBox; + }, + itemCount: items.length); + }, ), ); } diff --git a/lib/ui/splash/splash_page.dart b/lib/ui/splash/splash_page.dart index 9900ee8..03af16a 100644 --- a/lib/ui/splash/splash_page.dart +++ b/lib/ui/splash/splash_page.dart @@ -41,7 +41,7 @@ class _SplashPageState extends State { void initState() { super.initState(); Future.delayed(Duration(milliseconds: 300), () { - if (mounted) PowerLogger.init(context, debug: DevUtil.isDev); + if (mounted) PowerLogger.start(context, debug: DevUtil.isDev); }); Future.delayed(Duration(milliseconds: 2000), () async { await _originOp();