diff --git a/README.md b/README.md index 3048626..5011d8d 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,5 @@ A new Flutter application. ### password password `1Xpn6hhbxztA6PC0oFiZ` + +### 需要重构应用页面 diff --git a/lib/ui/home/search_workorder_page.dart b/lib/ui/home/search_workorder_page.dart index f44fcd2..f092141 100644 --- a/lib/ui/home/search_workorder_page.dart +++ b/lib/ui/home/search_workorder_page.dart @@ -1,5 +1,19 @@ // Flutter imports: +import 'package:aku_community_manager/provider/app_provider.dart'; +import 'package:aku_community_manager/ui/home/application/applications_page.dart'; +import 'package:aku_community_manager/ui/manage_pages/green_manage/green_manage_page.dart'; +import 'package:aku_community_manager/ui/manage_pages/inspection_manage/inspection_manage_page.dart'; +import 'package:aku_community_manager/ui/sub_pages/activity_manager/activity_manager_page.dart'; +import 'package:aku_community_manager/ui/sub_pages/borrow_manager/borrow_manager_page.dart'; +import 'package:aku_community_manager/ui/sub_pages/business_and_fix/business_and_fix_page.dart'; +import 'package:aku_community_manager/ui/sub_pages/decoration_manager/decoration_manager_page.dart'; +import 'package:aku_community_manager/ui/sub_pages/items_outdoor/items_outdoor_page.dart'; +import 'package:aku_community_manager/ui/sub_pages/visitor_manager/visitor_manager_page.dart'; +import 'package:aku_community_manager/ui/tool_pages/warning/warning_page.dart'; +import 'package:aku_ui/common_widgets/aku_material_button.dart'; import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:provider/provider.dart'; // Package imports: import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -20,9 +34,25 @@ class SearchWorkOrderPage extends StatefulWidget { class _SearchWorkOrderpageState extends State { TextEditingController _textController; + List _wisdomApplications = [ + AppApplication('一键报警', R.ASSETS_HOME_IC_POLICE_PNG, WarningPage()), + AppApplication('访客管理', R.ASSETS_HOME_IC_VISITORS_PNG, VisitorManagerPage()), + AppApplication('报事报修', R.ASSETS_HOME_IC_SERVICE_PNG, BusinessAndFixPage()), + AppApplication('物品出户', R.ASSETS_HOME_IC_ARTICLE_PNG, ItemsOutdoorPage()), + AppApplication( + '装修管理', R.ASSETS_HOME_IC_DECORATION_PNG, DecorationManagerPage()), + AppApplication( + '活动管理', R.ASSETS_HOME_IC_ACTIVITY_PNG, ActivityManagerPage()), + AppApplication('借还管理', R.ASSETS_HOME_IC_BORROW_PNG, BorrowManagerPage()), + AppApplication('巡检管理', R.ASSETS_HOME_IC_PATROL_PNG, InspectionManagePage()), + AppApplication('绿化管理', R.ASSETS_HOME_IC_GREENING_PNG, GreenManagePage()), + ]; + + List _displayApps = []; @override void initState() { super.initState(); + _displayApps = _wisdomApplications; _textController = TextEditingController(); } @@ -34,6 +64,7 @@ class _SearchWorkOrderpageState extends State { @override Widget build(BuildContext context) { + final appProvider = Provider.of(context); return AkuScaffold( appBar: AppBar( brightness: Brightness.light, @@ -57,7 +88,7 @@ class _SearchWorkOrderpageState extends State { ), AkuBox.w(16), Expanded( - child: TextFormField( + child: TextField( controller: _textController, decoration: InputDecoration( hintText: '搜索工单、手机号', @@ -72,6 +103,12 @@ class _SearchWorkOrderpageState extends State { fontSize: 28.sp, ), onChanged: (text) { + if (text.isEmpty) + _displayApps = _wisdomApplications; + else + _displayApps = _wisdomApplications + .where((element) => element.name.contains(text)) + .toList(); setState(() {}); }, ), @@ -84,14 +121,37 @@ class _SearchWorkOrderpageState extends State { ), ), ), - body: Center( - child: _textController.text.isEmpty - ? SizedBox() - : Text( - '无结果', - style: TextStyle( - color: AppStyle.primaryTextColor, fontSize: 36.sp), - ), + body: GridView.builder( + gridDelegate: + SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 4), + itemBuilder: (context, index) { + final item = _displayApps[index]; + return AkuMaterialButton( + onPressed: () { + appProvider.addRecentApp(item); + Get.to(item.page); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + item.assetPath, + height: 60.w, + width: 60.w, + ), + AkuBox.h(8), + Text( + item.name, + style: TextStyle( + color: AppStyle.primaryTextColor, + fontSize: 24.sp, + fontWeight: FontWeight.bold), + ), + ], + ), + ); + }, + itemCount: _displayApps.length, ), ); }