update decoration detail page

hmxc
小赖 4 years ago
parent cc262b2d53
commit 1113679ad7

@ -3,12 +3,15 @@ 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/provider/user_provider.dart';
import 'package:aku_community_manager/style/app_style.dart'; import 'package:aku_community_manager/style/app_style.dart';
import 'package:aku_community_manager/tools/widget_tool.dart'; import 'package:aku_community_manager/tools/widget_tool.dart';
import 'package:aku_community_manager/ui/sub_pages/decoration_manager/decoration_manager_detail_page.dart';
import 'package:aku_community_manager/ui/sub_pages/decoration_manager/decoration_util.dart';
import 'package:aku_community_manager/ui/widgets/inner/aku_chip_box.dart'; import 'package:aku_community_manager/ui/widgets/inner/aku_chip_box.dart';
import 'package:aku_ui/common_widgets/aku_material_button.dart'; import 'package:aku_ui/common_widgets/aku_material_button.dart';
import 'package:common_utils/common_utils.dart'; import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:aku_community_manager/tools/screen_tool.dart'; import 'package:aku_community_manager/tools/screen_tool.dart';
import 'package:aku_community_manager/const/resource.dart'; import 'package:aku_community_manager/const/resource.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class DecorationManagerCard extends StatefulWidget { class DecorationManagerCard extends StatefulWidget {
@ -45,9 +48,15 @@ class _DecorationManagerCardState extends State<DecorationManagerCard> {
), ),
Spacer(), Spacer(),
Text( Text(
_getTagName(), DecorationUIUtil(context).getTagName(
widget.model.type,
widget.model.statusType,
),
style: TextStyle( style: TextStyle(
color: _getTagColor(), color: DecorationUIUtil(context).getTagColor(
widget.model.type,
widget.model.statusType,
),
fontSize: 24.w, fontSize: 24.w,
), ),
), ),
@ -83,7 +92,9 @@ class _DecorationManagerCardState extends State<DecorationManagerCard> {
Align( Align(
alignment: Alignment.centerRight, alignment: Alignment.centerRight,
child: AkuMaterialButton( child: AkuMaterialButton(
onPressed: () {}, onPressed: () {
Get.to(DecorationManagerDetailPage(model: widget.model));
},
height: 64.w, height: 64.w,
minWidth: 160.w, minWidth: 160.w,
color: AppStyle.primaryColor, color: AppStyle.primaryColor,
@ -134,49 +145,4 @@ class _DecorationManagerCardState extends State<DecorationManagerCard> {
], ],
); );
} }
_getTagName() {
Map<DecorationType, String> managerMap = {
DecorationType.WAIT_HAND_OUT: '待指派',
DecorationType.HAND_OUT: '已指派',
DecorationType.DONE: '已执行',
};
Map<DecorationType, String> fixerMap = {
DecorationType.HAND_OUT: '待执行',
DecorationType.DONE: '已执行',
};
Map<DecorationStatusType, String> defaultMap = {
DecorationStatusType.DONE: '装修完成',
DecorationStatusType.PROGRESS: '装修中',
};
switch (role) {
case USER_ROLE.MANAGER:
return managerMap[widget.model.type];
break;
case USER_ROLE.PROPERTY:
return fixerMap[widget.model.type];
break;
default:
return defaultMap[widget.model.statusType];
break;
}
}
Color _getTagColor() {
if (role == USER_ROLE.MANAGER || role == USER_ROLE.PROPERTY) {
if (widget.model.type == DecorationType.WAIT_HAND_OUT ||
widget.model.type == DecorationType.HAND_OUT) {
return Color(0xFFFF4501);
} else
return AppStyle.minorTextColor;
} else {
if (widget.model.statusType == DecorationStatusType.PROGRESS) {
return Color(0xFFFF4501);
} else
return Color(0xFF32B814);
}
}
} }

@ -0,0 +1,217 @@
import 'package:aku_community_manager/mock_models/decoration/decoration_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/sub_pages/decoration_manager/decoration_util.dart';
import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.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';
import 'package:flutter/material.dart';
class DecorationManagerDetailPage extends StatefulWidget {
final DecorationModel model;
DecorationManagerDetailPage({Key key, @required this.model})
: super(key: key);
@override
_DecorationManagerDetailStatePage createState() =>
_DecorationManagerDetailStatePage();
}
class _DecorationManagerDetailStatePage
extends State<DecorationManagerDetailPage> {
@override
Widget build(BuildContext context) {
return AkuScaffold(
title: '装修详情',
body: ListView(
padding: EdgeInsets.symmetric(vertical: 16.w),
children: [
_buildInfo(),
_buildFinishWorkCheck(),
_buildCycleCheck(),
_buildCheckDetail(),
],
),
);
}
_buildInfo() {
return AkuTitleBox(
title: '装修信息',
spacing: 24,
suffix: Text(
DecorationUIUtil(context).getTagName(
widget.model.type,
widget.model.statusType,
),
style: TextStyle(
color: DecorationUIUtil(context).getTagColor(
widget.model.type,
widget.model.statusType,
),
fontSize: 24.w,
),
),
children: [
_buildInfoCard(
tag: '',
midTop: widget.model.userHomeModel.plot,
midBottom: widget.model.userHomeModel.detailAddr,
name: '业主:' + widget.model.userHomeModel.userName,
phone: widget.model.userHomeModel.phone,
rightTopWidget: Placeholder(),
),
AkuBox.h(16),
_buildInfoCard(
tag: '',
midTop: widget.model.decorationTeamModel.name,
name: '负责人:' + widget.model.decorationTeamModel.userName,
phone: widget.model.decorationTeamModel.phone,
),
],
);
}
_buildInfoCard({
String tag,
String midTop,
String midBottom,
String name,
String phone,
Widget rightTopWidget = const SizedBox(),
}) {
return Stack(
children: [
Container(
child: Column(
children: [
Expanded(
child: Row(
children: [
AkuBox.w(32),
Container(
height: 96.w,
width: 96.w,
alignment: Alignment.center,
child: Text(
tag,
style: TextStyle(
color: AppStyle.secondaryColor,
fontWeight: FontWeight.bold,
fontSize: 32.sp,
),
),
decoration: BoxDecoration(
color: Color(0xFFE9F2FF),
borderRadius: BorderRadius.circular(48.w),
),
),
AkuBox.w(24),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text(
midTop,
style: TextStyle(
color: AppStyle.primaryTextColor,
fontSize: 32.sp,
fontWeight: FontWeight.bold,
),
),
midBottom == null
? SizedBox()
: Text(
midBottom,
style: TextStyle(
color: AppStyle.primaryTextColor,
fontSize: 32.sp,
fontWeight: FontWeight.bold,
),
),
],
),
),
],
)),
Divider(
height: 1.w,
thickness: 1.w,
),
Row(
children: [
AkuBox.h(88),
AkuBox.w(32),
Image.asset(
R.ASSETS_MESSAGE_IC_PEOPLE_PNG,
height: 40.w,
width: 40.w,
),
Text(
name,
style: TextStyle(
color: AppStyle.minorTextColor,
fontSize: 24.sp,
),
),
Spacer(),
Image.asset(
R.ASSETS_MESSAGE_IC_PHONE_PNG,
height: 40.w,
width: 40.w,
),
Text(
'电话:$phone',
style: TextStyle(
color: AppStyle.minorTextColor,
fontSize: 24.sp,
),
),
AkuBox.w(42),
],
),
],
),
height: 248.w,
decoration: BoxDecoration(
color: Color(0xFFF9F9F9),
borderRadius: BorderRadius.circular(8.w),
),
),
Positioned(
top: -30.w,
right: -30.w,
width: 140.w,
height: 140.w,
child: rightTopWidget,
),
],
);
}
_buildFinishWorkCheck() {
return AkuTitleBox(
title: '完工检查',
spacing: 24,
children: [],
);
}
_buildCycleCheck() {
return AkuTitleBox(
title: '周期检查',
spacing: 24,
children: [],
);
}
_buildCheckDetail() {
return AkuTitleBox(
title: '执行信息',
spacing: 24,
children: [],
);
}
}

@ -0,0 +1,58 @@
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:flutter/material.dart';
import 'package:provider/provider.dart';
class DecorationUIUtil {
BuildContext context;
USER_ROLE get role =>
Provider.of<UserProvider>(context, listen: false).userInfoModel.role;
DecorationUIUtil(this.context);
String getTagName(DecorationType type, DecorationStatusType statusType) {
Map<DecorationType, String> managerMap = {
DecorationType.WAIT_HAND_OUT: '待指派',
DecorationType.HAND_OUT: '已指派',
DecorationType.DONE: '已执行',
};
Map<DecorationType, String> fixerMap = {
DecorationType.HAND_OUT: '待执行',
DecorationType.DONE: '已执行',
};
Map<DecorationStatusType, String> defaultMap = {
DecorationStatusType.DONE: '装修完成',
DecorationStatusType.PROGRESS: '装修中',
};
switch (role) {
case USER_ROLE.MANAGER:
return managerMap[type];
break;
case USER_ROLE.PROPERTY:
return fixerMap[type];
break;
default:
return defaultMap[statusType];
break;
}
}
Color getTagColor(DecorationType type, DecorationStatusType statusType) {
if (role == USER_ROLE.MANAGER || role == USER_ROLE.PROPERTY) {
if (type == DecorationType.WAIT_HAND_OUT ||
type == DecorationType.HAND_OUT) {
return Color(0xFFFF4501);
} else
return AppStyle.minorTextColor;
} else {
if (statusType == DecorationStatusType.PROGRESS) {
return Color(0xFFFF4501);
} else
return Color(0xFF32B814);
}
}
}
Loading…
Cancel
Save