From 96a5588bc0ee66a0f0b2914f265c0cd21e98d0b5 Mon Sep 17 00:00:00 2001 From: laiiihz Date: Thu, 5 Nov 2020 17:25:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=85=E4=BF=AE=E6=B7=BB=E5=8A=A0=E5=BA=95?= =?UTF-8?q?=E9=83=A8=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../decoration/decoration_model.dart | 8 +++- .../decoration_manager_detail_page.dart | 37 ++++++++++++++++++- lib/ui/widgets/inner/aku_bottom_button.dart | 34 +++++++++++++++++ 3 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 lib/ui/widgets/inner/aku_bottom_button.dart diff --git a/lib/mock_models/decoration/decoration_model.dart b/lib/mock_models/decoration/decoration_model.dart index 5ebf0eb..1dbd68e 100644 --- a/lib/mock_models/decoration/decoration_model.dart +++ b/lib/mock_models/decoration/decoration_model.dart @@ -112,7 +112,13 @@ class CycleCheck { ///check cycle in days int checkCycle; - List checkDetails; + List checkDetails = [ + CHECK_TYPE.ELECTRIC, + CHECK_TYPE.WATER, + CHECK_TYPE.WALL, + CHECK_TYPE.DOOR_AND_WINDOWS, + CHECK_TYPE.SECURITY, + ]; CycleCheck({ this.authPerson, this.startDate, diff --git a/lib/ui/sub_pages/decoration_manager/decoration_manager_detail_page.dart b/lib/ui/sub_pages/decoration_manager/decoration_manager_detail_page.dart index e44f94b..1525299 100644 --- a/lib/ui/sub_pages/decoration_manager/decoration_manager_detail_page.dart +++ b/lib/ui/sub_pages/decoration_manager/decoration_manager_detail_page.dart @@ -1,4 +1,6 @@ import 'package:aku_community_manager/mock_models/decoration/decoration_model.dart'; +import 'package:aku_community_manager/mock_models/users/user_info_model.dart'; +import 'package:aku_community_manager/provider/user_provider.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/decoration_manager/decoration_check_row.dart'; @@ -7,6 +9,7 @@ import 'package:aku_community_manager/ui/sub_pages/decoration_manager/decoration import 'package:aku_community_manager/ui/sub_pages/decoration_manager/decoration_util.dart'; import 'package:aku_community_manager/ui/widgets/common/aku_back_button.dart'; import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart'; +import 'package:aku_community_manager/ui/widgets/inner/aku_bottom_button.dart'; import 'package:aku_community_manager/ui/widgets/inner/aku_title_box.dart'; import 'package:aku_community_manager/tools/screen_tool.dart'; import 'package:aku_community_manager/const/resource.dart'; @@ -17,6 +20,7 @@ import 'package:expandable/expandable.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:provider/provider.dart'; class DecorationManagerDetailPage extends StatefulWidget { final DecorationModel model; @@ -31,6 +35,8 @@ class DecorationManagerDetailPage extends StatefulWidget { class _DecorationManagerDetailStatePage extends State { bool get isWaitHandOut => widget.model.type == DecorationType.WAIT_HAND_OUT; + USER_ROLE get role => + Provider.of(context, listen: false).userInfoModel.role; @override Widget build(BuildContext context) { return AkuScaffold( @@ -43,11 +49,40 @@ class _DecorationManagerDetailStatePage ? SizedBox() : _buildFinishWorkCheck(), _buildCycleCheck(), - widget.model.type == DecorationType.WAIT_HAND_OUT + widget.model.type == DecorationType.WAIT_HAND_OUT || + widget.model.type == DecorationType.HAND_OUT ? SizedBox() : _buildCheckDetail(), ], ), + bottom: Builder(builder: (context) { + final CycleCheck cycleCheck = widget.model.cycleCheck; + if (role == USER_ROLE.MANAGER) { + switch (widget.model.type) { + case DecorationType.WAIT_HAND_OUT: + return AkuBottomButton( + title: '立即安排', + onTap: cycleCheck.authPerson != null && + cycleCheck.checkCycle != null && + cycleCheck.startDate != null + ? () { + widget.model.type = DecorationType.HAND_OUT; + setState(() {}); + } + : null, + ); + break; + default: + return SizedBox(); + break; + } + + // else if(widget.model.type) + } else if (role == USER_ROLE.PROPERTY) { + // return + } + // return + }), ); } diff --git a/lib/ui/widgets/inner/aku_bottom_button.dart b/lib/ui/widgets/inner/aku_bottom_button.dart new file mode 100644 index 0000000..482e01b --- /dev/null +++ b/lib/ui/widgets/inner/aku_bottom_button.dart @@ -0,0 +1,34 @@ +import 'package:aku_community_manager/style/app_style.dart'; +import 'package:aku_ui/common_widgets/aku_material_button.dart'; +import 'package:flutter/material.dart'; + +class AkuBottomButton extends StatefulWidget { + final VoidCallback onTap; + final String title; + AkuBottomButton({Key key, this.onTap, @required this.title}) + : super(key: key); + + @override + _AkuBottomButtonState createState() => _AkuBottomButtonState(); +} + +class _AkuBottomButtonState extends State { + @override + Widget build(BuildContext context) { + return AkuMaterialButton( + height: 98.w, + color: AppStyle.primaryColor, + nullColor: AppStyle.minorColor, + onPressed: widget.onTap, + child: Text( + widget.title, + style: TextStyle( + fontWeight: FontWeight.bold, + color: widget.onTap == null + ? AppStyle.minorTextColor + : AppStyle.primaryTextColor, + ), + ), + ); + } +}