From 945523d43d2db84cfba72b0b6c912f9a8947ab70 Mon Sep 17 00:00:00 2001 From: zhang <494089941@qq.com> Date: Tue, 3 Nov 2020 09:47:00 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=AE=BF=E5=AE=A2=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ui/home/home_page.dart | 3 +- .../visitor_manager/visitor_manager_page.dart | 40 ++++++++++++++++--- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/lib/ui/home/home_page.dart b/lib/ui/home/home_page.dart index 4aa55a9..73029ed 100644 --- a/lib/ui/home/home_page.dart +++ b/lib/ui/home/home_page.dart @@ -8,6 +8,7 @@ import 'package:aku_community_manager/ui/home/business/business_page.dart'; import 'package:aku_community_manager/ui/home/messages/message.dart'; import 'package:aku_community_manager/ui/home/application/applications_page.dart'; import 'package:aku_community_manager/ui/home/personal_draw.dart'; +import 'package:aku_community_manager/ui/sub_pages/visitor_manager/visitor_manager_page.dart'; import 'package:aku_community_manager/ui/tool_pages/scan_page.dart'; import 'package:aku_ui/aku_ui.dart'; import 'package:aku_ui/common_widgets/aku_material_button.dart'; @@ -291,7 +292,7 @@ class _HomePageState extends State { _menuButton( R.ASSETS_HOME_IC_POLICE_PNG, '一键报警', HomePage()), _menuButton( - R.ASSETS_HOME_IC_VISITORS_PNG, '访客管理', HomePage()), + R.ASSETS_HOME_IC_VISITORS_PNG, '访客管理', VisitorManagerPage()), _menuButton( R.ASSETS_HOME_IC_SERVICE_PNG, '报事报修', HomePage()), _menuButton( diff --git a/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart b/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart index 8ff00a5..1522194 100644 --- a/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart +++ b/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart @@ -1,20 +1,48 @@ +import 'package:aku_community_manager/style/app_style.dart'; import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; class VisitorManagerPage extends StatefulWidget { - VisitorManagerPage({Key key}) : super(key: key); + final initIndex; + VisitorManagerPage({Key key, this.initIndex = 0}) : super(key: key); @override _VisitorManagerPageState createState() => _VisitorManagerPageState(); } -class _VisitorManagerPageState extends State { +class _VisitorManagerPageState extends State + with TickerProviderStateMixin { + List tabs = ['全部', '未到访', '已到访', '已过期']; + + TabController _tabController; + + @override + void initState() { + super.initState(); + _tabController = + TabController(length: 4, vsync: this, initialIndex: widget.initIndex); + } + @override Widget build(BuildContext context) { return AkuScaffold( - // title: '', - // appBarBottom: , - // body: , - ); + title: '访客管理', + appBarBottom: PreferredSize( + child: TabBar( + tabs: tabs.map((e) => Tab(text: e)).toList(), + labelStyle: AppStyle().primaryStyle, + labelColor: AppStyle.primaryTextColor, + unselectedLabelColor: AppStyle.minorTextColor, + unselectedLabelStyle: TextStyle(fontSize:28.sp), + controller: _tabController, + indicatorColor: Color(0xFFFFC40C), + indicatorSize: TabBarIndicatorSize.label, + ), + preferredSize: Size.fromHeight(88.w)), + body: ListView( + children: [], + ), + ); } } From f84b02f0b18b1d39dc62f34589ded5958d8cd02c Mon Sep 17 00:00:00 2001 From: zhang <494089941@qq.com> Date: Tue, 3 Nov 2020 11:42:05 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=AE=BF=E5=AE=A2=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ui/home/home_page.dart | 4 +- .../visitor_manager/visitor_manager_card.dart | 68 +++++++++++++++++-- .../visitor_manager/visitor_manager_page.dart | 39 ++++++++--- 3 files changed, 95 insertions(+), 16 deletions(-) diff --git a/lib/ui/home/home_page.dart b/lib/ui/home/home_page.dart index c0a29f8..c6a1536 100644 --- a/lib/ui/home/home_page.dart +++ b/lib/ui/home/home_page.dart @@ -27,7 +27,7 @@ class HomePage extends StatefulWidget { } class _HomePageState extends State { - //自定义bar的菜单按钮 + ///自定义bar的菜单按钮 Widget _menuButton(String assetPath, String text, Widget page) { return Expanded( child: AkuButton( @@ -59,7 +59,7 @@ class _HomePageState extends State { ); } -//底部信息栏卡片 +///底部信息栏卡片 Widget _card( String number, String text, diff --git a/lib/ui/sub_pages/visitor_manager/visitor_manager_card.dart b/lib/ui/sub_pages/visitor_manager/visitor_manager_card.dart index c9eecf5..d67f00e 100644 --- a/lib/ui/sub_pages/visitor_manager/visitor_manager_card.dart +++ b/lib/ui/sub_pages/visitor_manager/visitor_manager_card.dart @@ -1,17 +1,77 @@ +import 'package:aku_community_manager/const/resource.dart'; +import 'package:aku_community_manager/style/app_style.dart'; +import 'package:aku_community_manager/tools/widget_tool.dart'; import 'package:flutter/material.dart'; - +import 'package:flutter_screenutil/flutter_screenutil.dart'; class VisitorManagerCard extends StatefulWidget { - VisitorManagerCard({Key key}) : super(key: key); + final String adress; + final String name; + final String plate; + final String time; + VisitorManagerCard({Key key, @required this.adress,@required this.name, this.plate, this.time}) : super(key: key); @override _VisitorManagerCardState createState() => _VisitorManagerCardState(); } class _VisitorManagerCardState extends State { + +TextStyle _textStyle=TextStyle(color:AppStyle.primaryTextColor,fontSize:28.sp,); +String _adress; +String _name; +String _plate; +String _time; + @override + void initState() { + super.initState(); + _adress=widget.adress; + _name=widget.name; + _plate=widget.plate??'无信息'; + _time=widget.time??'无信息'; + } @override Widget build(BuildContext context) { - return Container( - // child: child, + return Column( + children: [ + AkuBox.h(16), + Container( + color: Color(0xFFFFFFFF), + width: double.infinity, + height: 201.w, + padding: EdgeInsets.only(top:24.w,left:24.w,bottom: 28.w), + child: Stack(children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children:[ + Text(_adress,style: TextStyle(color:AppStyle.primaryTextColor,fontSize:32.sp,fontWeight: FontWeight.bold),), + AkuBox.h(16), + Row(children: [ + Image.asset(R.ASSETS_USER_IC_PERSON_PNG,width:40.w ,height: 40.w,), + AkuBox.w(8), + Text('$_name先生',style:_textStyle,), + AkuBox.w(137), + Image.asset(R.ASSETS_IC_BORROW_PNG,width: 40.w,height: 40.w,), + AkuBox.w(8), + Text(_plate,style: _textStyle,), + Spacer(), + ],), + Spacer(), + Row(children: [ + Image.asset(R.ASSETS_HOME_IC_ARTICLE_PNG,width: 40.w,height: 40.w,), + AkuBox.w(8), + Text(_time,style:_textStyle), + Spacer(), + ],), + ], + ), + Positioned( + left: 582.w, + bottom: 104.w, + + child: Placeholder(),), + ],), + ), + ], ); } } \ No newline at end of file diff --git a/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart b/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart index 1522194..1dc0cef 100644 --- a/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart +++ b/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart @@ -1,8 +1,25 @@ import 'package:aku_community_manager/style/app_style.dart'; +import 'package:aku_community_manager/ui/sub_pages/visitor_manager/visitor_manager_card.dart'; import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart'; +import 'package:aku_community_manager/ui/widgets/inner/aku_tab_bar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +enum VisitorStatus{ + NOT_VISIT, + VISIT_DONE, + OUTDATE, +} + +class VisitorCardsModel { + String adress; + String name; + String plate; + String time; + VisitorStatus status; + VisitorCardsModel(this.adress,this.name, this.status,{this.plate,this.time}); +} + class VisitorManagerPage extends StatefulWidget { final initIndex; VisitorManagerPage({Key key, this.initIndex = 0}) : super(key: key); @@ -13,8 +30,13 @@ class VisitorManagerPage extends StatefulWidget { class _VisitorManagerPageState extends State with TickerProviderStateMixin { - List tabs = ['全部', '未到访', '已到访', '已过期']; + List tabs = ['全部', '未到访', '已到访', '已过期']; + List cards=[ + VisitorCardsModel('深圳华悦茂峰1幢1单元702', '马泽城',VisitorStatus.VISIT_DONE, plate:'浙BA9899',time:'2020-10-24 12:00',), + VisitorCardsModel('深圳华悦茂峰2幢2单元702', '刘揪心',VisitorStatus.NOT_VISIT), + VisitorCardsModel('深圳华悦茂峰3幢3单元602', '刘揪心',VisitorStatus.OUTDATE), + ]; TabController _tabController; @override @@ -29,19 +51,16 @@ class _VisitorManagerPageState extends State return AkuScaffold( title: '访客管理', appBarBottom: PreferredSize( - child: TabBar( - tabs: tabs.map((e) => Tab(text: e)).toList(), - labelStyle: AppStyle().primaryStyle, - labelColor: AppStyle.primaryTextColor, - unselectedLabelColor: AppStyle.minorTextColor, - unselectedLabelStyle: TextStyle(fontSize:28.sp), + child: AkuTabBar( + tabs: tabs, controller: _tabController, - indicatorColor: Color(0xFFFFC40C), - indicatorSize: TabBarIndicatorSize.label, ), preferredSize: Size.fromHeight(88.w)), body: ListView( - children: [], + padding: EdgeInsets.only(left:32.w,right:32.w), + children: [ + ...cards.map((e) => VisitorManagerCard(adress: e.adress,name: e.name,plate: e.plate,time: e.time,)).toList(), + ], ), ); } From ad735baccebf25b2db999ddcddc8d2200b29ea74 Mon Sep 17 00:00:00 2001 From: zhang <494089941@qq.com> Date: Tue, 3 Nov 2020 14:51:56 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=AE=BF=E5=AE=A2=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visitor_manager/visitor_manager_page.dart | 110 ++++++++++++++---- 1 file changed, 90 insertions(+), 20 deletions(-) diff --git a/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart b/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart index 1dc0cef..d4d90fa 100644 --- a/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart +++ b/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart @@ -5,7 +5,7 @@ import 'package:aku_community_manager/ui/widgets/inner/aku_tab_bar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -enum VisitorStatus{ +enum VisitorStatus { NOT_VISIT, VISIT_DONE, OUTDATE, @@ -17,7 +17,8 @@ class VisitorCardsModel { String plate; String time; VisitorStatus status; - VisitorCardsModel(this.adress,this.name, this.status,{this.plate,this.time}); + VisitorCardsModel(this.adress, this.name, this.status, + {this.plate, this.time}); } class VisitorManagerPage extends StatefulWidget { @@ -30,12 +31,18 @@ class VisitorManagerPage extends StatefulWidget { class _VisitorManagerPageState extends State with TickerProviderStateMixin { - List tabs = ['全部', '未到访', '已到访', '已过期']; + List _tabs = ['全部', '未到访', '已到访', '已过期']; - List cards=[ - VisitorCardsModel('深圳华悦茂峰1幢1单元702', '马泽城',VisitorStatus.VISIT_DONE, plate:'浙BA9899',time:'2020-10-24 12:00',), - VisitorCardsModel('深圳华悦茂峰2幢2单元702', '刘揪心',VisitorStatus.NOT_VISIT), - VisitorCardsModel('深圳华悦茂峰3幢3单元602', '刘揪心',VisitorStatus.OUTDATE), + List _cards = [ + VisitorCardsModel( + '深圳华悦茂峰1幢1单元702', + '马泽城', + VisitorStatus.VISIT_DONE, + plate: '浙BA9899', + time: '2020-10-24 12:00', + ), + VisitorCardsModel('深圳华悦茂峰2幢2单元702', '刘揪心', VisitorStatus.NOT_VISIT), + VisitorCardsModel('深圳华悦茂峰3幢3单元602', '刘揪心', VisitorStatus.OUTDATE), ]; TabController _tabController; @@ -46,22 +53,85 @@ class _VisitorManagerPageState extends State TabController(length: 4, vsync: this, initialIndex: widget.initIndex); } + @override + void dispose() { + _tabController?.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { return AkuScaffold( - title: '访客管理', - appBarBottom: PreferredSize( - child: AkuTabBar( - tabs: tabs, - controller: _tabController, - ), - preferredSize: Size.fromHeight(88.w)), - body: ListView( - padding: EdgeInsets.only(left:32.w,right:32.w), - children: [ - ...cards.map((e) => VisitorManagerCard(adress: e.adress,name: e.name,plate: e.plate,time: e.time,)).toList(), - ], - ), + title: '访客管理', + appBarBottom: PreferredSize( + child: AkuTabBar( + tabs: _tabs, + controller: _tabController, + ), + preferredSize: Size.fromHeight(88.w)), + body: TabBarView( + controller: _tabController, + // children: _tabs.map((e) => _buildTabView(_tabs.indexOf(e))).toList(),) + // children: [ + // ListView( + // padding: EdgeInsets.only(left: 32.w, right: 32.w), + // children: _cards + // .map((e) => VisitorManagerCard( + // adress: e.adress, + // name: e.name, + // plate: e.plate, + // time: e.time, + // )) + // .toList(), + // ), + // ListView( + // padding: EdgeInsets.only(left: 32.w, right: 32.w), + // children: _cards + // .where((element) => element.status == VisitorStatus.NOT_VISIT) + // .map((e) => VisitorManagerCard( + // adress: e.adress, + // name: e.name, + // plate: e.plate, + // time: e.time, + // )) + // .toList(), + // ), + // ListView(), + // ListView(), + // ], + children: _tabs.map((e) => _buildListView(_tabs.indexOf(e))).toList(), + )); + } + + Widget _buildListView(int index) { + List _selectCards; + switch (index) { + case 0: + _selectCards = _cards; + break; + case 1: + _selectCards = _cards + .where((element) => element.status == VisitorStatus.NOT_VISIT).toList(); + break; + case 2: + _selectCards = _cards + .where((element) => element.status == VisitorStatus.VISIT_DONE).toList(); + break; + case 3: + _selectCards = + _cards.where((element) => element.status == VisitorStatus.OUTDATE).toList(); + break; + } + return ListView( + padding: EdgeInsets.only(left: 32.w, right: 32.w), + children: _selectCards + .map((e) => VisitorManagerCard( + adress: e.adress, + name: e.name, + plate: e.plate, + time: e.time, + )) + .toList(), ); } } From 58457f7637e3391c79fded39f85a7ffdcb3e7bc1 Mon Sep 17 00:00:00 2001 From: zhang <494089941@qq.com> Date: Tue, 3 Nov 2020 15:14:29 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E8=AE=BF=E5=AE=A2=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visitor_manager/visitor_manager_card.dart | 19 +++++- .../visitor_manager/visitor_manager_page.dart | 58 ++++++------------- 2 files changed, 33 insertions(+), 44 deletions(-) diff --git a/lib/ui/sub_pages/visitor_manager/visitor_manager_card.dart b/lib/ui/sub_pages/visitor_manager/visitor_manager_card.dart index d67f00e..9e9137a 100644 --- a/lib/ui/sub_pages/visitor_manager/visitor_manager_card.dart +++ b/lib/ui/sub_pages/visitor_manager/visitor_manager_card.dart @@ -1,6 +1,7 @@ import 'package:aku_community_manager/const/resource.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/sub_pages/visitor_manager/visitor_manager_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; class VisitorManagerCard extends StatefulWidget { @@ -8,7 +9,8 @@ class VisitorManagerCard extends StatefulWidget { final String name; final String plate; final String time; - VisitorManagerCard({Key key, @required this.adress,@required this.name, this.plate, this.time}) : super(key: key); + final VisitorStatus status; + VisitorManagerCard({Key key, @required this.adress,@required this.name, this.plate, this.time,@required this.status}) : super(key: key); @override _VisitorManagerCardState createState() => _VisitorManagerCardState(); @@ -21,6 +23,7 @@ String _adress; String _name; String _plate; String _time; +VisitorStatus _status; @override void initState() { super.initState(); @@ -28,6 +31,7 @@ String _time; _name=widget.name; _plate=widget.plate??'无信息'; _time=widget.time??'无信息'; + _status=widget.status; } @override Widget build(BuildContext context) { @@ -67,11 +71,20 @@ String _time; Positioned( left: 582.w, bottom: 104.w, - - child: Placeholder(),), + child:_statusImage(_status) ), ],), ), ], ); } + Widget _statusImage(VisitorStatus status){ + switch (status) { + case VisitorStatus.NOT_VISIT: + return Placeholder(); + case VisitorStatus.VISIT_DONE: + return Placeholder(); + case VisitorStatus.OUTDATE: + return Placeholder(); + } + } } \ No newline at end of file diff --git a/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart b/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart index d4d90fa..8804df9 100644 --- a/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart +++ b/lib/ui/sub_pages/visitor_manager/visitor_manager_page.dart @@ -17,8 +17,8 @@ class VisitorCardsModel { String plate; String time; VisitorStatus status; - VisitorCardsModel(this.adress, this.name, this.status, - {this.plate, this.time}); + VisitorCardsModel({this.adress, this.name, this.status, + this.plate, this.time}); } class VisitorManagerPage extends StatefulWidget { @@ -35,14 +35,14 @@ class _VisitorManagerPageState extends State List _cards = [ VisitorCardsModel( - '深圳华悦茂峰1幢1单元702', - '马泽城', - VisitorStatus.VISIT_DONE, + adress:'深圳华悦茂峰1幢1单元702', + name:'马泽城', + status:VisitorStatus.VISIT_DONE, plate: '浙BA9899', time: '2020-10-24 12:00', ), - VisitorCardsModel('深圳华悦茂峰2幢2单元702', '刘揪心', VisitorStatus.NOT_VISIT), - VisitorCardsModel('深圳华悦茂峰3幢3单元602', '刘揪心', VisitorStatus.OUTDATE), + VisitorCardsModel(adress:'深圳华悦茂峰2幢2单元702',name:'刘揪心',status: VisitorStatus.NOT_VISIT), + VisitorCardsModel(adress:'深圳华悦茂峰3幢3单元602', name:'张空间', status:VisitorStatus.OUTDATE), ]; TabController _tabController; @@ -71,34 +71,6 @@ class _VisitorManagerPageState extends State preferredSize: Size.fromHeight(88.w)), body: TabBarView( controller: _tabController, - // children: _tabs.map((e) => _buildTabView(_tabs.indexOf(e))).toList(),) - // children: [ - // ListView( - // padding: EdgeInsets.only(left: 32.w, right: 32.w), - // children: _cards - // .map((e) => VisitorManagerCard( - // adress: e.adress, - // name: e.name, - // plate: e.plate, - // time: e.time, - // )) - // .toList(), - // ), - // ListView( - // padding: EdgeInsets.only(left: 32.w, right: 32.w), - // children: _cards - // .where((element) => element.status == VisitorStatus.NOT_VISIT) - // .map((e) => VisitorManagerCard( - // adress: e.adress, - // name: e.name, - // plate: e.plate, - // time: e.time, - // )) - // .toList(), - // ), - // ListView(), - // ListView(), - // ], children: _tabs.map((e) => _buildListView(_tabs.indexOf(e))).toList(), )); } @@ -107,19 +79,22 @@ class _VisitorManagerPageState extends State List _selectCards; switch (index) { case 0: - _selectCards = _cards; - break; + _selectCards = _cards; + break; case 1: _selectCards = _cards - .where((element) => element.status == VisitorStatus.NOT_VISIT).toList(); + .where((element) => element.status == VisitorStatus.NOT_VISIT) + .toList(); break; case 2: _selectCards = _cards - .where((element) => element.status == VisitorStatus.VISIT_DONE).toList(); + .where((element) => element.status == VisitorStatus.VISIT_DONE) + .toList(); break; case 3: - _selectCards = - _cards.where((element) => element.status == VisitorStatus.OUTDATE).toList(); + _selectCards = _cards + .where((element) => element.status == VisitorStatus.OUTDATE) + .toList(); break; } return ListView( @@ -130,6 +105,7 @@ class _VisitorManagerPageState extends State name: e.name, plate: e.plate, time: e.time, + status: e.status, )) .toList(), ); From 775d77fb9a16dc7bd6ae30bf4d38eed7dc4c63cc Mon Sep 17 00:00:00 2001 From: zhang <494089941@qq.com> Date: Tue, 3 Nov 2020 15:23:52 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ui/home/home_page.dart | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/ui/home/home_page.dart b/lib/ui/home/home_page.dart index c6a1536..cc6e44b 100644 --- a/lib/ui/home/home_page.dart +++ b/lib/ui/home/home_page.dart @@ -184,14 +184,12 @@ class _HomePageState extends State { onPressed: () {}, radius: 8.w, child: Row(children: [ + AkuBox.w(21.w), Container( child: Column( children: [ SizedBox(height: 18.w), - Icon( - Icons.zoom_in_sharp, - size: 38.w, - ), + Image.asset(R.ASSETS_HOME_IC_SEARCH_PNG,width:37.w,height:37.w), ], ), ),