添加:装修管理详情

hmxc
张萌 4 years ago
parent 5049c99c50
commit 10702f3405

@ -1,8 +1,10 @@
import 'package:aku_community/base/base_style.dart';
import 'package:aku_community/pages/renovation_manage/renovation_manage_detail_page.dart';
import 'package:aku_community/pages/renovation_manage/renovation_map.dart';
import 'package:flustars/flustars.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:aku_community/const/resource.dart';
@ -18,7 +20,9 @@ class _RenovationManageCardState extends State<RenovationManageCard> {
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {},
onTap: () {
Get.to(()=>RenovationManageDetailPage());
},
child: Container(
margin: EdgeInsets.only(top: 16.w),
padding: EdgeInsets.all(24.w),

@ -1,5 +1,13 @@
import 'dart:math';
import 'package:aku_community/base/base_style.dart';
import 'package:aku_community/pages/renovation_manage/renovation_map.dart';
import 'package:aku_community/widget/bee_scaffold.dart';
import 'package:flustars/flustars.dart';
import 'package:flutter/material.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:aku_community/const/resource.dart';
class RenovationManageDetailPage extends StatefulWidget {
RenovationManageDetailPage({Key? key}) : super(key: key);
@ -13,6 +21,487 @@ class _RenovationManageDetailPageState
extends State<RenovationManageDetailPage> {
@override
Widget build(BuildContext context) {
return BeeScaffold(title: '装修详情', body: Container());
return BeeScaffold(
title: '装修详情',
body: ListView(
padding: EdgeInsets.symmetric(vertical: 24.w),
children: [_buildInfo(), _buildFinishWorkCheck(),_buildCycleCheck(),],
),
);
}
Widget _akuTitleBox(
String title, Widget suffix, double spacing, List<Widget> children) {
return Container(
padding: EdgeInsets.symmetric(vertical: 24.w, horizontal: 32.w),
color: Colors.white,
margin: EdgeInsets.only(bottom: 16.w),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Text(
title,
style: TextStyle(
color: ktextPrimary,
fontWeight: FontWeight.bold,
fontSize: 36.sp,
),
),
Spacer(),
suffix,
],
),
spacing.w.heightBox,
...children,
],
),
);
}
_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: [
32.w.widthBox,
Container(
height: 96.w,
width: 96.w,
alignment: Alignment.center,
child: Text(
tag!,
style: TextStyle(
color: kPrimaryColor,
fontWeight: FontWeight.bold,
fontSize: 32.sp,
),
),
decoration: BoxDecoration(
color: Color(0xFFE9F2FF),
borderRadius: BorderRadius.circular(48.w),
),
),
24.w.widthBox,
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text(
midTop!,
style: TextStyle(
color: ktextPrimary,
fontSize: 32.sp,
fontWeight: FontWeight.bold,
),
),
midBottom == null
? SizedBox()
: Text(
midBottom,
style: TextStyle(
color: ktextPrimary,
fontSize: 32.sp,
fontWeight: FontWeight.bold,
),
),
],
),
),
],
)),
Divider(
height: 1.w,
thickness: 1.w,
),
Row(
children: [
88.w.heightBox,
32.w.widthBox,
Image.asset(
R.ASSETS_ICONS_ARTICLE_COUNT_PNG,
height: 40.w,
width: 40.w,
),
Text(
name!,
style: TextStyle(
color: ktextSubColor,
fontSize: 24.sp,
),
),
Spacer(),
Image.asset(
R.ASSETS_ICONS_ARTICLE_COUNT_PNG,
height: 40.w,
width: 40.w,
),
Text(
'电话:$phone',
style: TextStyle(
color: ktextSubColor,
fontSize: 24.sp,
),
),
42.w.heightBox,
],
),
],
),
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,
),
],
);
}
_buildInfo() {
return _akuTitleBox(
'装修信息',
Text(
RenovationMap.getTagName(1, 2),
style: TextStyle(
color: RenovationMap.getTagColor(1),
fontSize: 24.w,
),
),
24,
[
_buildInfoCard(
tag: '',
midTop: '人才公寓',
midBottom: '1幢-1单元-302',
name: '业主:' + '马泽鹏',
phone: '13720183183',
rightTopWidget: Transform.rotate(
angle: pi / 4,
child: Image.asset(R.ASSETS_IMAGES_PLACEHOLDER_WEBP),
),
),
16.w.heightBox,
_buildInfoCard(
tag: '',
midTop: '莫川装修公司',
name: '负责人:刘一发',
phone: '1876276274',
),
],
);
}
_buildFinishWorkCheck() {
return _akuTitleBox(
'完工检查',
SizedBox(),
24,
[
_buildRow(
title: '开始装修时间',
subTitle: DateUtil.formatDateStr(
'2020-10-23 10:24:56',
format: 'yyyy-MM-dd',
),
),
_buildRow(
title: '接受人',
subTitle: '黄鑫',
),
_buildRow(title: '所属项目', subTitle: '装修管理'),
_buildRow(
title: '开始日期',
subTitle: DateUtil.formatDateStr(
'2020-10-23 10:24:56',
format: 'yyyy-MM-dd',
),
),
Padding(
padding: EdgeInsets.symmetric(
vertical: 28.w,
),
child: Text(
'检查内容',
style: TextStyle(
color:ktextPrimary,
fontSize: 28.w,
),
),
),
// DecorationCheckRow(
// details: widget.model.workFinishCheck?.checkDetails,
// onChange: (details) {},
// ),
],
);
}
_buildCycleCheck() {
return _akuTitleBox(
'周期检查',
SizedBox(),
24,
[
_buildRow(
title: '开始装修时间',
subTitle: DateUtil.formatDateStr(
'2020-10-23 10:24:56',
format: 'yyyy-MM-dd',
),
),
_buildRow(
title: '接受人',
subTitle: '黄鑫',
onTap: () {
}
),
_buildRow(title: '所属项目', subTitle: '装修管理'),
_buildRow(
title: '开始日期',
subTitle: DateUtil.formatDateStr(
'2020-10-23 10:24:56',
format: 'yyyy-MM-dd',
),
onTap:() {
// showBottomSheet(
// child: Column(
// mainAxisSize: MainAxisSize.min,
// children: [
// Row(
// children: [
// AkuBox.h(96),
// AkuBackButton.text(),
// Spacer(),
// Text(
// '开始日期',
// style: TextStyle(
// color: AppStyle.primaryTextColor,
// fontSize: 32.sp,
// fontWeight: FontWeight.bold,
// ),
// ),
// Spacer(),
// AkuMaterialButton(
// minWidth: (64 + 56).w,
// onPressed: () {
// Get.back();
// },
// child: Text(
// '确定',
// style: TextStyle(
// color: AppStyle.secondaryColor,
// fontSize: 28.sp,
// ),
// ),
// ),
// ],
// ),
// Container(
// height: 500.w,
// child: CupertinoDatePicker(
// onDateTimeChanged: (dateTime) {
// widget.model.cycleCheck.startDate = dateTime;
// },
// ),
// ),
// ],
// ),
// ).then((value) {
// setState(() {});
// });
},
),
_buildRow(
title: '检查周期',
subTitle:'2020-10-23 10:24:56',
onTap: () {
// showAkuSheet(
// child: Column(
// mainAxisSize: MainAxisSize.min,
// children: [
// Row(
// children: [
// AkuBox.h(96),
// AkuBackButton.text(),
// Spacer(),
// Text(
// '检查周期',
// style: TextStyle(
// color: AppStyle.primaryTextColor,
// fontSize: 32.sp,
// fontWeight: FontWeight.bold,
// ),
// ),
// Spacer(),
// AkuMaterialButton(
// minWidth: (64 + 56).w,
// onPressed: () {
// Get.back();
// },
// child: Text(
// '确定',
// style: TextStyle(
// color: AppStyle.secondaryColor,
// fontSize: 28.sp,
// ),
// ),
// ),
// ],
// ),
// Container(
// height: 500.w,
// child: CupertinoPicker(
// children: [
// Center(
// child: Text('1天'),
// ),
// Center(
// child: Text('3天'),
// ),
// Center(
// child: Text('7天'),
// ),
// Center(
// child: Text('14天'),
// ),
// Center(
// child: Text('30天'),
// ),
// ],
// itemExtent: 88.w,
// onSelectedItemChanged: (int value) {
// int realValue = 0;
// switch (value) {
// case 0:
// realValue = 1;
// break;
// case 1:
// realValue = 3;
// break;
// case 2:
// realValue = 7;
// break;
// case 3:
// realValue = 14;
// break;
// case 4:
// realValue = 30;
// break;
// }
// widget.model.cycleCheck.checkCycle = realValue;
// },
// ),
// ),
// ],
// ),
// ).then((value) {
// setState(() {});
// });
}
),
Padding(
padding: EdgeInsets.symmetric(
vertical: 28.w,
),
child: Text(
'检查内容',
style: TextStyle(
color: ktextPrimary,
fontSize: 28.w,
),
),
),
// DecorationCheckRow(
// details: [
// CHECK_TYPE.ELECTRIC,
// CHECK_TYPE.WATER,
// CHECK_TYPE.WALL,
// CHECK_TYPE.DOOR_AND_WINDOWS,
// CHECK_TYPE.SECURITY,
// ],
// onChange: (details) {
// widget.model.cycleCheck.checkDetails = details;
// },
// canTap: isWaitHandOut,
// )
],
);
}
_buildRow({
String? title,
String? subTitle,
VoidCallback? onTap,
}) {
return Material(
color: Colors.transparent,
child: InkWell(
onTap: onTap,
child: Container(
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(color: Color(0xFFE8E8E8), width: 1.w)),
),
child: InkWell(
child: Row(
children: [
96.w.heightBox,
Text(
title!,
style: TextStyle(
color: ktextPrimary,
fontSize: 28.w,
),
),
Spacer(),
Text(
(TextUtil.isEmpty(subTitle) ? '请选择' : subTitle)!,
style: TextStyle(
color: TextUtil.isEmpty(subTitle)
? ktextSubColor
: ktextPrimary,
fontSize: 28.w,
fontWeight: FontWeight.bold,
),
),
onTap == null ? SizedBox() : 24.w.widthBox,
onTap == null
? SizedBox()
: Icon(
Icons.arrow_forward_ios,
size: 32.w,
color: ktextPrimary,
),
],
),
),
),
),
);
}
}

Loading…
Cancel
Save