diff --git a/lib/model/manager/fixed_detail_model.dart b/lib/model/manager/fixed_detail_model.dart index 3f2a14f7..c3975c6e 100644 --- a/lib/model/manager/fixed_detail_model.dart +++ b/lib/model/manager/fixed_detail_model.dart @@ -1,8 +1,8 @@ class FixedDetailModel { AppReportRepairVo appReportRepairVo; List appProcessRecordVo; - List appMaintenanceResultVo; //暂无用 待修改 - List appDispatchListVo; //暂无用 待修改 + Null appMaintenanceResultVo; + List appDispatchListVo; FixedDetailModel( {this.appReportRepairVo, @@ -20,8 +20,13 @@ class FixedDetailModel { appProcessRecordVo.add(new AppProcessRecordVo.fromJson(v)); }); } - appMaintenanceResultVo = json['appMaintenanceResultVo'].cast(); - appDispatchListVo = json['appDispatchListVo'].cast(); + appMaintenanceResultVo = json['appMaintenanceResultVo']; + if (json['appDispatchListVo'] != null) { + appDispatchListVo = new List(); + json['appDispatchListVo'].forEach((v) { + appDispatchListVo.add(new AppDispatchListVo.fromJson(v)); + }); + } } Map toJson() { @@ -34,7 +39,10 @@ class FixedDetailModel { this.appProcessRecordVo.map((v) => v.toJson()).toList(); } data['appMaintenanceResultVo'] = this.appMaintenanceResultVo; - data['appDispatchListVo'] = this.appDispatchListVo; + if (this.appDispatchListVo != null) { + data['appDispatchListVo'] = + this.appDispatchListVo.map((v) => v.toJson()).toList(); + } return data; } } @@ -44,7 +52,7 @@ class AppReportRepairVo { int type; int status; String reportDetail; - List imgUrls; + List imgUrls; AppReportRepairVo( {this.id, this.type, this.status, this.reportDetail, this.imgUrls}); @@ -54,7 +62,12 @@ class AppReportRepairVo { type = json['type']; status = json['status']; reportDetail = json['reportDetail']; - imgUrls = json['imgUrls'].cast(); + if (json['imgUrls'] != null) { + imgUrls = new List(); + json['imgUrls'].forEach((v) { + imgUrls.add(new ImgUrls.fromJson(v)); + }); + } } Map toJson() { @@ -63,7 +76,37 @@ class AppReportRepairVo { data['type'] = this.type; data['status'] = this.status; data['reportDetail'] = this.reportDetail; - data['imgUrls'] = this.imgUrls; + if (this.imgUrls != null) { + data['imgUrls'] = this.imgUrls.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class ImgUrls { + String url; + String size; + int longs; + int paragraph; + int sort; + + ImgUrls({this.url, this.size, this.longs, this.paragraph, this.sort}); + + ImgUrls.fromJson(Map json) { + url = json['url']; + size = json['size']; + longs = json['longs']; + paragraph = json['paragraph']; + sort = json['sort']; + } + + Map toJson() { + final Map data = new Map(); + data['url'] = this.url; + data['size'] = this.size; + data['longs'] = this.longs; + data['paragraph'] = this.paragraph; + data['sort'] = this.sort; return data; } } @@ -86,3 +129,36 @@ class AppProcessRecordVo { return data; } } + +class AppDispatchListVo { + int code; + String orderDate; + int type; + String operatorName; + String distributorName; + + AppDispatchListVo( + {this.code, + this.orderDate, + this.type, + this.operatorName, + this.distributorName}); + + AppDispatchListVo.fromJson(Map json) { + code = json['code']; + orderDate = json['orderDate']; + type = json['type']; + operatorName = json['operatorName']; + distributorName = json['distributorName']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['orderDate'] = this.orderDate; + data['type'] = this.type; + data['operatorName'] = this.operatorName; + data['distributorName'] = this.distributorName; + return data; + } +} diff --git a/lib/pages/manager_func.dart b/lib/pages/manager_func.dart index 9a7754b6..7ffd970c 100644 --- a/lib/pages/manager_func.dart +++ b/lib/pages/manager_func.dart @@ -1,8 +1,8 @@ - import 'package:akuCommunity/constants/api.dart'; import 'package:akuCommunity/model/manager/fixed_detail_model.dart'; import 'package:akuCommunity/utils/network/base_model.dart'; import 'package:akuCommunity/utils/network/net_util.dart'; +import 'package:dio/dio.dart'; import 'package:flustars/flustars.dart'; class ManagerFunc { @@ -46,14 +46,13 @@ class ManagerFunc { return baseModel; } - static Future reportRepairFindBYLD(int id) async{ - BaseModel baseModel = await NetUtil().post( + static Future reportRepairFindBYLD(int id) async { + Response response = await NetUtil().dio.get( API.manager.reportRepairFindBYLD, - params: { - 'repairId':id, + queryParameters: { + 'repairId': id, }, - showMessage: false, ); - return FixedDetailModel.fromJson(baseModel.data); + return FixedDetailModel.fromJson(response.data); } } diff --git a/lib/pages/things_page/widget/fixed_detail_page.dart b/lib/pages/things_page/widget/fixed_detail_page.dart index d77f1d34..5c78a107 100644 --- a/lib/pages/things_page/widget/fixed_detail_page.dart +++ b/lib/pages/things_page/widget/fixed_detail_page.dart @@ -4,12 +4,13 @@ import 'package:akuCommunity/pages/manager_func.dart'; import 'package:akuCommunity/utils/bee_map.dart'; import 'package:akuCommunity/widget/bee_divider.dart'; import 'package:akuCommunity/widget/bee_scaffold.dart'; -import 'package:akuCommunity/widget/horizontal_image_view.dart'; +import 'package:akuCommunity/widget/views/horizontal_image_view.dart'; import 'package:flutter/material.dart'; import 'package:flutter_easyrefresh/easy_refresh.dart'; import 'package:velocity_x/velocity_x.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:akuCommunity/utils/headers.dart'; +import 'package:akuCommunity/const/resource.dart'; class FixedDetailPage extends StatefulWidget { final int id; @@ -23,6 +24,7 @@ class FixedDetailPage extends StatefulWidget { } class _FixedDetailPageState extends State { + bool _onLoading = true; EasyRefreshController _easyRefreshController; FixedDetailModel _model; Color _getColor(int state) { @@ -43,14 +45,17 @@ class _FixedDetailPageState extends State { Widget _buildHead(FixedDetailModel model) { return Container( + decoration: BoxDecoration( + color: kForeGroundColor, borderRadius: BorderRadius.circular(8.w)), child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: EdgeInsets.fromLTRB(28.w, 20.w, 20.w, 24.w), child: Row( children: [ '报修信息'.text.black.size(32.sp).bold.make(), - 8.widthBox, + 8.w.widthBox, Container( padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 4.w), @@ -84,7 +89,7 @@ class _FixedDetailPageState extends State { indent: 24.w, endIndent: 20.w, ), - 24.heightBox, + 24.w.heightBox, Padding( padding: EdgeInsets.symmetric(horizontal: 28.w), child: model.appReportRepairVo.reportDetail.text.black @@ -95,47 +100,72 @@ class _FixedDetailPageState extends State { ), Padding( padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 8.w), - child: HorizontalImageView(model.appReportRepairVo.imgUrls), + child: HorizontalImageView( + model.appReportRepairVo.imgUrls.map((e) => e.url).toList()), ) ], ), ); } + Widget _buildEmpty() { + return Container(); + } + +Widget _reparCard(){ + return Container( + padding: EdgeInsets.symmetric( + horizontal: 28.w, + vertical: 24.w + ), + decoration: BoxDecoration( + color: kForeGroundColor, + borderRadius: BorderRadius.circular(8.w) + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + '维修信息'.text.black.size(32.sp).bold.make(), + 24.w.heightBox, + BeeDivider.horizontal() + ], + ), + ); +} @override Widget build(BuildContext context) { return BeeScaffold( title: '报事报修', - body: Column( - children: [ - EasyRefresh( - firstRefresh: true, - controller: _easyRefreshController, - onRefresh: () async { - _model = await ManagerFunc.reportRepairFindBYLD(widget.id); - }, - child: ListView( - padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 36.w), - children: [ - _buildHead(_model), - ].sepWidget(separate: 16.heightBox), - ), - ).expand(), - Padding( - padding: EdgeInsets.only( - bottom: MediaQuery.of(context).padding.bottom + 39.w), - child: MaterialButton( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(48.w)), - color: kPrimaryColor, - padding: EdgeInsets.symmetric(horizontal: 278.w, vertical: 26.w), - elevation: 0, - materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, - onPressed: () {}, - child: '确认完成'.text.black.size(32.sp).bold.make(), - ), - ) - ], + body: EasyRefresh( + firstRefresh: true, + controller: _easyRefreshController, + onRefresh: () async { + _model = await ManagerFunc.reportRepairFindBYLD(widget.id); + _onLoading = false; + }, + header: MaterialHeader(), + child: _onLoading + ? _buildEmpty() + : ListView( + padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 36.w), + children: [ + _buildHead(_model), + ].sepWidget(separate: 16.w.heightBox), + ), + ), + bottomNavi: Padding( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).padding.bottom + 39.w), + child: MaterialButton( + shape: + RoundedRectangleBorder(borderRadius: BorderRadius.circular(48.w)), + color: kPrimaryColor, + padding: EdgeInsets.symmetric(horizontal: 278.w, vertical: 26.w), + elevation: 0, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + onPressed: () {}, + child: '确认完成'.text.black.size(32.sp).bold.make(), + ), ), ); }