From 459ce0f13b454c5e905f0389823502da8a502ae1 Mon Sep 17 00:00:00 2001 From: laiiihz Date: Mon, 22 Feb 2021 18:37:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E5=80=9F=E8=BF=98=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E7=9A=84=E5=85=A8=E9=83=A8=E7=89=A9=E5=93=81=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/const/api.dart | 6 +- lib/mock_models/borrow/borrow_data.dart | 2 + lib/mock_models/borrow/borrow_model.dart | 2 + .../manager/borrow/borrow_item_model.dart | 48 ++++++++++++++++ .../borrow_manager/all_borrow_goods.dart | 56 ++++++++++--------- 5 files changed, 86 insertions(+), 28 deletions(-) create mode 100644 lib/models/manager/borrow/borrow_item_model.dart diff --git a/lib/const/api.dart b/lib/const/api.dart index 8138a75..e88201a 100644 --- a/lib/const/api.dart +++ b/lib/const/api.dart @@ -41,8 +41,7 @@ class _User { String get sendTelUpdateCode => '/user/personalData/sendTelUpdateCode'; ///个人资料:根据新手机号发送修改验证码 - String get updateTel =>'/user/personalData/updateTel'; - + String get updateTel => '/user/personalData/updateTel'; } class _Manage { @@ -60,4 +59,7 @@ class _Manage { ///报事报修:查询所有的报事报修信息(包含条件搜索) String get repairList => '/user/repair/list'; + + ///借还管理:查询全部物品 + String get borrowList => '/user/borrow/articleList'; } diff --git a/lib/mock_models/borrow/borrow_data.dart b/lib/mock_models/borrow/borrow_data.dart index 6e00d8e..9b9e45f 100644 --- a/lib/mock_models/borrow/borrow_data.dart +++ b/lib/mock_models/borrow/borrow_data.dart @@ -2,6 +2,8 @@ import 'package:aku_community_manager/const/resource.dart'; import 'package:aku_community_manager/mock_models/borrow/borrow_model.dart'; +//TODO CLEAN BOTTOM CODES. +@Deprecated("borrow_data need to be cleaned.") class BorrowData { static List get checkModels => models.where((e) { return e.borrowGoods.status == BORROW_STATUS.WAIT_CHECK; diff --git a/lib/mock_models/borrow/borrow_model.dart b/lib/mock_models/borrow/borrow_model.dart index 105bd66..909286c 100644 --- a/lib/mock_models/borrow/borrow_model.dart +++ b/lib/mock_models/borrow/borrow_model.dart @@ -24,6 +24,8 @@ enum GOODS_STATUS { LOST, } +//TODO CLEAN BOTTOM CODES. +@Deprecated(" borrow_model need to be cleaned.") class BorrowModel { String borrowPerson; String phone; diff --git a/lib/models/manager/borrow/borrow_item_model.dart b/lib/models/manager/borrow/borrow_item_model.dart new file mode 100644 index 0000000..6bbff25 --- /dev/null +++ b/lib/models/manager/borrow/borrow_item_model.dart @@ -0,0 +1,48 @@ +import 'package:aku_community_manager/models/common/img_model.dart'; + +class BorrowItemModel { + int id; + String name; + int borrowNum; + int remainingNum; + int quantity; + List imgUrls; + + ImgModel get firstImg => imgUrls.isEmpty ? null : imgUrls.first; + + BorrowItemModel( + {this.id, + this.name, + this.borrowNum, + this.remainingNum, + this.quantity, + this.imgUrls}); + + BorrowItemModel.fromJson(Map json) { + id = json['id']; + name = json['name']; + borrowNum = json['borrowNum']; + remainingNum = json['remainingNum']; + quantity = json['quantity']; + if (json['imgUrls'] != null) { + imgUrls = new List(); + json['imgUrls'].forEach((v) { + imgUrls.add(new ImgModel.fromJson(v)); + }); + } else + imgUrls = []; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['name'] = this.name; + data['borrowNum'] = this.borrowNum; + data['remainingNum'] = this.remainingNum; + data['quantity'] = this.quantity; + if (this.imgUrls != null) { + data['imgUrls'] = this.imgUrls.map((v) => v.toJson()).toList(); + } + return data; + } +} diff --git a/lib/ui/sub_pages/borrow_manager/all_borrow_goods.dart b/lib/ui/sub_pages/borrow_manager/all_borrow_goods.dart index d188d91..f5f135d 100644 --- a/lib/ui/sub_pages/borrow_manager/all_borrow_goods.dart +++ b/lib/ui/sub_pages/borrow_manager/all_borrow_goods.dart @@ -1,15 +1,17 @@ // Flutter imports: +import 'package:aku_community_manager/const/api.dart'; +import 'package:aku_community_manager/models/manager/borrow/borrow_item_model.dart'; +import 'package:aku_community_manager/ui/widgets/common/bee_list_view.dart'; import 'package:flutter/material.dart'; // Package imports: import 'package:aku_ui/common_widgets/aku_material_button.dart'; +import 'package:flutter_easyrefresh/easy_refresh.dart'; import 'package:get/get.dart'; import 'package:provider/provider.dart'; // Project imports: import 'package:aku_community_manager/const/resource.dart'; -import 'package:aku_community_manager/mock_models/borrow/borrow_data.dart'; -import 'package:aku_community_manager/mock_models/borrow/borrow_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'; @@ -26,6 +28,7 @@ class AllBorrowGoods extends StatefulWidget { } class _AllBorrowGoodsState extends State { + EasyRefreshController _refreshController = EasyRefreshController(); @override Widget build(BuildContext context) { final userProvider = Provider.of(context); @@ -48,21 +51,29 @@ class _AllBorrowGoodsState extends State { ) : SizedBox(), ], - body: ListView.builder( - padding: EdgeInsets.symmetric( - horizontal: 32.w, - ), - itemBuilder: (context, index) { - return _buildCard(BorrowData.borrowObjects[index]); + body: BeeListView( + path: API.manage.borrowList, + controller: _refreshController, + convert: (model) => + model.tableList.map((e) => BorrowItemModel.fromJson(e)).toList(), + builder: (items) { + return ListView.builder( + padding: EdgeInsets.symmetric( + horizontal: 32.w, + ), + itemBuilder: (context, index) { + return _buildCard(items[index]); + }, + itemCount: items.length, + ); }, - itemCount: BorrowData.borrowObjects.length, ), ); } - _buildCard(BorrowObject object) { + _buildCard(BorrowItemModel object) { return GestureDetector( - onTap: () => Get.to(BorrowItemPage(object: object)), + // onTap: () => Get.to(BorrowItemPage(object: object)), child: Container( padding: EdgeInsets.all(24.w), margin: EdgeInsets.only(top: 16.w), @@ -70,19 +81,12 @@ class _AllBorrowGoodsState extends State { children: [ ClipRRect( borderRadius: BorderRadius.circular(4.w), - child: (object.assetPath is String) - ? Image.asset( - object.assetPath, - width: 184.w, - height: 184.w, - fit: BoxFit.cover, - ) - : Image.file( - object.assetPath, - width: 184.w, - height: 184.w, - fit: BoxFit.cover, - ), + child: FadeInImage.assetNetwork( + placeholder: R.ASSETS_PLACEHOLDER_WEBP, + image: API.image(object.firstImg?.url ?? ''), + height: 184.w, + width: 184.w, + ), ), AkuBox.w(24), Expanded( @@ -91,10 +95,10 @@ class _AllBorrowGoodsState extends State { _buildRow(R.ASSETS_MANAGE_ARTICLE_PNG, '物品名称', object.name), AkuBox.h(12), _buildRow(R.ASSETS_MANAGE_BORROW_PNG, '借出数量', - object.borrowNumber.toString()), + object.borrowNum.toString()), AkuBox.h(12), _buildRow(R.ASSETS_MANAGE_REMAINING_PNG, '剩余数量', - object.items.length.toString()), + object.remainingNum.toString()), ], )), ],