Merge branch 'master' of http://test.akuhotel.com:8099/zhangmeng/aku_community_manager
commit
d53ddbad62
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 9.6 KiB |
@ -0,0 +1,16 @@
|
|||||||
|
enum FIXER_TYPE {
|
||||||
|
///空调组
|
||||||
|
AIR_CONDITION,
|
||||||
|
|
||||||
|
///电力组
|
||||||
|
ELECTRIC,
|
||||||
|
|
||||||
|
///水泥组
|
||||||
|
CEMENT,
|
||||||
|
}
|
||||||
|
|
||||||
|
class FixerModel {
|
||||||
|
FIXER_TYPE type;
|
||||||
|
String name;
|
||||||
|
String phone;
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
import 'package:aku_community_manager/mock_models/fix/fix_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:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class FixProvider extends ChangeNotifier {
|
||||||
|
List<FixModel> _fixModels = FixModel.initList();
|
||||||
|
List<FixModel> get fixModels => _fixModels;
|
||||||
|
addFixModel(FixModel model) {
|
||||||
|
_fixModels.insert(0, model);
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<FixModel> getFixModel(int index, BuildContext context) {
|
||||||
|
final userProvider = Provider.of<UserProvider>(context, listen: false);
|
||||||
|
USER_ROLE role = userProvider.userInfoModel.role;
|
||||||
|
List<FixModel> _doneModels =
|
||||||
|
_fixModels.where((element) => element.type == FIX_ENUM.DONE).toList();
|
||||||
|
|
||||||
|
List<FixModel> _processingModels = _fixModels
|
||||||
|
.where((element) => element.type == FIX_ENUM.PROCESSING)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
List<FixModel> _handOutModels = _fixModels
|
||||||
|
.where((element) => element.type == FIX_ENUM.HAND_OUT)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
List<FixModel> _waitPickUpModels = _fixModels
|
||||||
|
.where((element) => element.type == FIX_ENUM.WAIT_PICKUP)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
switch (role) {
|
||||||
|
case USER_ROLE.MANAGER:
|
||||||
|
return [
|
||||||
|
_handOutModels,
|
||||||
|
_waitPickUpModels,
|
||||||
|
_processingModels,
|
||||||
|
_doneModels,
|
||||||
|
_fixModels,
|
||||||
|
][index];
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return [
|
||||||
|
_waitPickUpModels,
|
||||||
|
_processingModels,
|
||||||
|
_doneModels,
|
||||||
|
_fixModels,
|
||||||
|
][index];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,366 @@
|
|||||||
|
import 'package:aku_community_manager/const/resource.dart';
|
||||||
|
import 'package:aku_community_manager/mock_models/fix/fix_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/widgets/common/aku_scaffold.dart';
|
||||||
|
import 'package:common_utils/common_utils.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:aku_community_manager/tools/screen_tool.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class BusinessAndFixDetailPage extends StatefulWidget {
|
||||||
|
final FixModel model;
|
||||||
|
BusinessAndFixDetailPage({Key key, this.model}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_BusinessAndFixDetailPageState createState() =>
|
||||||
|
_BusinessAndFixDetailPageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _BusinessAndFixDetailPageState extends State<BusinessAndFixDetailPage> {
|
||||||
|
USER_ROLE get userRole {
|
||||||
|
final userProvider = Provider.of<UserProvider>(context, listen: false);
|
||||||
|
return userProvider.userInfoModel.role;
|
||||||
|
}
|
||||||
|
|
||||||
|
FixDetailModel get detailModel => widget.model.detail;
|
||||||
|
|
||||||
|
String get fixType {
|
||||||
|
switch (detailModel.type) {
|
||||||
|
case FIX_PAYMENT_TYPE.FREE:
|
||||||
|
return '无偿服务';
|
||||||
|
break;
|
||||||
|
case FIX_PAYMENT_TYPE.PAY:
|
||||||
|
return '有偿服务';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return '';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String get dateLimit {
|
||||||
|
switch (detailModel.limit) {
|
||||||
|
case FIX_DATE_LIMIT.HOUR_24:
|
||||||
|
return '24小时内处理';
|
||||||
|
break;
|
||||||
|
case FIX_DATE_LIMIT.HOUR_12:
|
||||||
|
return '12小时内处理';
|
||||||
|
break;
|
||||||
|
case FIX_DATE_LIMIT.HOUR_8:
|
||||||
|
return '8小时内处理';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return '';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String get subType {
|
||||||
|
switch (detailModel.subType) {
|
||||||
|
case FIX_SUB_TYPE.NORMAL:
|
||||||
|
return '一般单';
|
||||||
|
break;
|
||||||
|
case FIX_SUB_TYPE.HURRY:
|
||||||
|
return '加急单';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return '';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget get fixTypeWidget {
|
||||||
|
if (userRole == USER_ROLE.MANAGER) {
|
||||||
|
return Text(
|
||||||
|
FixModel.managerRoleMap[widget.model.type],
|
||||||
|
style: TextStyle(
|
||||||
|
color: widget.model.type != FIX_ENUM.DONE
|
||||||
|
? Color(0XFFFF4501)
|
||||||
|
: AppStyle.minorTextColor,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return Text(
|
||||||
|
FixModel.otherRoleMap[widget.model.type],
|
||||||
|
style: TextStyle(
|
||||||
|
color: widget.model.type != FIX_ENUM.DONE
|
||||||
|
? Color(0XFFFF4501)
|
||||||
|
: AppStyle.minorTextColor,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AkuScaffold(
|
||||||
|
title: '报修详情',
|
||||||
|
body: ListView(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 16.w),
|
||||||
|
children: [
|
||||||
|
_buildInfo(),
|
||||||
|
_buildType(),
|
||||||
|
_buildProcess(),
|
||||||
|
_buildResult(),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_buildInfo() {
|
||||||
|
return _buildRawBox(
|
||||||
|
title: '报修信息',
|
||||||
|
suffix: fixTypeWidget,
|
||||||
|
children: [
|
||||||
|
AkuBox.h(16),
|
||||||
|
_buildTile(
|
||||||
|
R.ASSETS_MESSAGE_IC_PEOPLE_PNG,
|
||||||
|
'报修人',
|
||||||
|
widget.model.detail.userName,
|
||||||
|
),
|
||||||
|
_buildTile(
|
||||||
|
R.ASSETS_MESSAGE_IC_PHONE_PNG,
|
||||||
|
'联系电话',
|
||||||
|
widget.model.detail.userPhoneNumber,
|
||||||
|
),
|
||||||
|
_buildTile(
|
||||||
|
R.ASSETS_MESSAGE_IC_AREA_PNG,
|
||||||
|
'报修区域',
|
||||||
|
widget.model.detail.fixArea,
|
||||||
|
),
|
||||||
|
AkuBox.h(8),
|
||||||
|
Text(
|
||||||
|
widget.model.title,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 28.w,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
GridView(
|
||||||
|
padding: EdgeInsets.only(top: 16.w),
|
||||||
|
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
||||||
|
crossAxisCount: 3,
|
||||||
|
crossAxisSpacing: 16.w,
|
||||||
|
mainAxisSpacing: 16.w,
|
||||||
|
),
|
||||||
|
children: widget.model.imgs.map((e) {
|
||||||
|
return ClipRRect(
|
||||||
|
borderRadius: BorderRadius.circular(4.w),
|
||||||
|
child: (e is String) ? Image.asset(e) : Image.file(e),
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
shrinkWrap: true,
|
||||||
|
physics: NeverScrollableScrollPhysics(),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_buildType() {
|
||||||
|
return _buildRawBox(
|
||||||
|
title: '工单类型',
|
||||||
|
children: [
|
||||||
|
_buildTypeTile('派单类型', fixType, false),
|
||||||
|
_buildTypeTile('工单时限', dateLimit, false),
|
||||||
|
_buildTypeTile('工单子类', subType, false),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_buildProcess() {
|
||||||
|
return _buildRawBox(
|
||||||
|
title: '报修进程',
|
||||||
|
children: detailModel.fixStatuses.map((e) {
|
||||||
|
return _buildProcessTile(
|
||||||
|
e.title,
|
||||||
|
DateUtil.formatDate(e.date, format: 'yyyy-MM-dd HH:mm:ss'),
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_buildResult() {
|
||||||
|
return _buildRawBox(
|
||||||
|
title: '处理情况',
|
||||||
|
spacing: 24,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
'处理描述',
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.minorTextColor,
|
||||||
|
fontSize: 28.w,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
AkuBox.h(8),
|
||||||
|
Text(
|
||||||
|
detailModel.result.detail,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
fontSize: 28.w,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
AkuBox.h(24),
|
||||||
|
Text(
|
||||||
|
'更换材料',
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.minorTextColor,
|
||||||
|
fontSize: 28.w,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
AkuBox.h(8),
|
||||||
|
Text(
|
||||||
|
detailModel.result.material,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
fontSize: 28.w,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
AkuBox.h(24),
|
||||||
|
Text(
|
||||||
|
'上传照片',
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.minorTextColor,
|
||||||
|
fontSize: 28.w,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
AkuBox.h(8),
|
||||||
|
GridView(
|
||||||
|
shrinkWrap: true,
|
||||||
|
physics: NeverScrollableScrollPhysics(),
|
||||||
|
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
||||||
|
crossAxisCount: 4,
|
||||||
|
),
|
||||||
|
children: detailModel.result.imgs.map((e) {
|
||||||
|
return ClipRRect(
|
||||||
|
borderRadius: BorderRadius.circular(4.w),
|
||||||
|
child: (e is String) ? Image.asset(e) : Image.file(e),
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildTile(String asset, String title, String subTitle) {
|
||||||
|
return Row(
|
||||||
|
children: [
|
||||||
|
AkuBox.h(56),
|
||||||
|
Image.asset(
|
||||||
|
asset,
|
||||||
|
height: 40.w,
|
||||||
|
width: 40.w,
|
||||||
|
),
|
||||||
|
AkuBox.w(4),
|
||||||
|
Text(
|
||||||
|
title,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 28.sp,
|
||||||
|
color: AppStyle.minorTextColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Spacer(),
|
||||||
|
Text(
|
||||||
|
subTitle,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 28.sp,
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildTypeTile(String title, String content, bool canTap) {
|
||||||
|
return Material(
|
||||||
|
color: Colors.transparent,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: canTap ? () {} : null,
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
AkuBox.h(96),
|
||||||
|
Text(
|
||||||
|
title,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 28.sp,
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Spacer(),
|
||||||
|
Text(
|
||||||
|
content,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 28.sp,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildProcessTile(String title, String date) {
|
||||||
|
return Row(
|
||||||
|
children: [
|
||||||
|
AkuBox.h(56),
|
||||||
|
Text(
|
||||||
|
title,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.minorTextColor,
|
||||||
|
fontSize: 28.w,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Spacer(),
|
||||||
|
Text(
|
||||||
|
date,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
fontSize: 28.w,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_buildRawBox({
|
||||||
|
String title,
|
||||||
|
List<Widget> children,
|
||||||
|
Widget suffix,
|
||||||
|
double spacing = 0,
|
||||||
|
}) {
|
||||||
|
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: AppStyle.primaryTextColor,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 36.sp,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Spacer(),
|
||||||
|
suffix ?? SizedBox(),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
AkuBox.h(spacing),
|
||||||
|
...children,
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,248 @@
|
|||||||
|
import 'package:aku_community_manager/mock_models/fix/fix_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/business_and_fix/business_and_fix_detail_page.dart';
|
||||||
|
import 'package:aku_ui/common_widgets/aku_material_button.dart';
|
||||||
|
import 'package:common_utils/common_utils.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:aku_community_manager/tools/screen_tool.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class BusinessFixCard extends StatefulWidget {
|
||||||
|
final FixModel model;
|
||||||
|
BusinessFixCard({Key key, @required this.model}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_BusinessFixCardState createState() => _BusinessFixCardState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _BusinessFixCardState extends State<BusinessFixCard> {
|
||||||
|
USER_ROLE get userRole {
|
||||||
|
final userProvider = Provider.of<UserProvider>(context, listen: false);
|
||||||
|
return userProvider.userInfoModel.role;
|
||||||
|
}
|
||||||
|
|
||||||
|
String get dateStart => DateUtil.formatDate(widget.model.dateStart,
|
||||||
|
format: 'yyyy-MM-dd HH:mm:ss');
|
||||||
|
|
||||||
|
Widget get fixTypeWidget {
|
||||||
|
if (userRole == USER_ROLE.MANAGER) {
|
||||||
|
return Text(
|
||||||
|
FixModel.managerRoleMap[widget.model.type],
|
||||||
|
style: TextStyle(
|
||||||
|
color: widget.model.type != FIX_ENUM.DONE
|
||||||
|
? Color(0XFFFF4501)
|
||||||
|
: AppStyle.minorTextColor,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return Text(
|
||||||
|
FixModel.otherRoleMap[widget.model.type],
|
||||||
|
style: TextStyle(
|
||||||
|
color: widget.model.type != FIX_ENUM.DONE
|
||||||
|
? Color(0XFFFF4501)
|
||||||
|
: AppStyle.minorTextColor,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Container(
|
||||||
|
padding: EdgeInsets.all(24),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
child: Text(
|
||||||
|
'报事报修',
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.secondaryColor,
|
||||||
|
fontSize: 20.sp,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 6.w, horizontal: 16.w),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(2.w),
|
||||||
|
border:
|
||||||
|
Border.all(width: 2.w, color: AppStyle.secondaryColor),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
AkuBox.w(16),
|
||||||
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
dateStart,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.minorTextColor,
|
||||||
|
fontSize: 22.sp,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
fixTypeWidget,
|
||||||
|
],
|
||||||
|
),
|
||||||
|
AkuBox.h(24),
|
||||||
|
Text(
|
||||||
|
widget.model.title,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
fontSize: 28.sp,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
AkuBox.h(16),
|
||||||
|
_buildImgs(),
|
||||||
|
_buildBottomCard(),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
margin: EdgeInsets.symmetric(
|
||||||
|
horizontal: 32.w,
|
||||||
|
vertical: 8.w,
|
||||||
|
),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.white,
|
||||||
|
borderRadius: BorderRadius.circular(8.w),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_buildImgs() {
|
||||||
|
return Container(
|
||||||
|
height: 168.w,
|
||||||
|
child: ListView.builder(
|
||||||
|
scrollDirection: Axis.horizontal,
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
var imgObj = widget.model.imgs[index];
|
||||||
|
return Container(
|
||||||
|
margin: EdgeInsets.symmetric(horizontal: 8.w),
|
||||||
|
height: 168.w,
|
||||||
|
width: 168.w,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(4.w),
|
||||||
|
image: DecorationImage(
|
||||||
|
image: (imgObj is String)
|
||||||
|
? AssetImage(imgObj)
|
||||||
|
: FileImage(imgObj)),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
itemCount: widget.model.imgs.length,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_buildBottomCard() {
|
||||||
|
switch (userRole) {
|
||||||
|
case USER_ROLE.FIXER:
|
||||||
|
if (widget.model.type == FIX_ENUM.DONE) return SizedBox();
|
||||||
|
return Column(
|
||||||
|
children: [
|
||||||
|
Divider(
|
||||||
|
height: 48.w,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Spacer(),
|
||||||
|
widget.model.type == FIX_ENUM.PROCESSING
|
||||||
|
? MaterialButton(
|
||||||
|
padding: EdgeInsets.zero,
|
||||||
|
height: 64.w,
|
||||||
|
minWidth: 160.w,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(4.w),
|
||||||
|
side: BorderSide(
|
||||||
|
width: 2.w,
|
||||||
|
color: AppStyle.primaryColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Text(
|
||||||
|
'申请延时',
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 28.sp,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onPressed: () {},
|
||||||
|
)
|
||||||
|
: SizedBox(),
|
||||||
|
widget.model.type == FIX_ENUM.PROCESSING
|
||||||
|
? AkuBox.w(24)
|
||||||
|
: SizedBox(),
|
||||||
|
widget.model.type == FIX_ENUM.PROCESSING
|
||||||
|
? AkuMaterialButton(
|
||||||
|
onPressed: () {},
|
||||||
|
radius: 4.w,
|
||||||
|
color: AppStyle.primaryColor,
|
||||||
|
minWidth: 160.w,
|
||||||
|
height: 64.w,
|
||||||
|
child: Text(
|
||||||
|
'处理完成',
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 28.sp,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: SizedBox(),
|
||||||
|
widget.model.type == FIX_ENUM.WAIT_PICKUP
|
||||||
|
? AkuMaterialButton(
|
||||||
|
onPressed: () {},
|
||||||
|
radius: 4.w,
|
||||||
|
color: AppStyle.primaryColor,
|
||||||
|
minWidth: 160.w,
|
||||||
|
height: 64.w,
|
||||||
|
child: Text(
|
||||||
|
'立即接单',
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 28.sp,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: SizedBox(),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return Column(
|
||||||
|
children: [
|
||||||
|
Divider(
|
||||||
|
height: 48.w,
|
||||||
|
),
|
||||||
|
Align(
|
||||||
|
alignment: Alignment.centerRight,
|
||||||
|
child: AkuMaterialButton(
|
||||||
|
height: 64.w,
|
||||||
|
onPressed: () {
|
||||||
|
Get.to(BusinessAndFixDetailPage(model: widget.model));
|
||||||
|
},
|
||||||
|
radius: 4,
|
||||||
|
color: AppStyle.primaryColor,
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 24.w),
|
||||||
|
child: Text(
|
||||||
|
'查看详情',
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppStyle.primaryTextColor,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 28.sp,
|
||||||
|
height: 40 / 28,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue