添加 包裹管理 页面/card

对接 管家app 包裹代收:查询所有的包裹代收信息
hmxc
张萌 4 years ago
parent 58afa4328d
commit 4f419b1258

@ -185,6 +185,10 @@ class _Manage {
///n
String get uploadLocation => '/user/inspection/uploadLocation';
///app
String get packageManageList => '/user/packageCollection/list';
}
class _Upload {

@ -0,0 +1,44 @@
class PackageManageListModel {
int id;
String code;
String addresseeName;
String addresseeTel;
String address;
int status;
Null receiveDate;
String createDate;
PackageManageListModel(
{this.id,
this.code,
this.addresseeName,
this.addresseeTel,
this.address,
this.status,
this.receiveDate,
this.createDate});
PackageManageListModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
code = json['code'];
addresseeName = json['addresseeName'];
addresseeTel = json['addresseeTel'];
address = json['address'];
status = json['status'];
receiveDate = json['receiveDate'];
createDate = json['createDate'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['code'] = this.code;
data['addresseeName'] = this.addresseeName;
data['addresseeTel'] = this.addresseeTel;
data['address'] = this.address;
data['status'] = this.status;
data['receiveDate'] = this.receiveDate;
data['createDate'] = this.createDate;
return data;
}
}

@ -1,5 +1,6 @@
// Flutter imports:
import 'package:aku_community_manager/models/manager/facilities/facilities_page.dart';
import 'package:aku_community_manager/ui/manage_pages/packages_manage/packages_manage_page.dart';
import 'package:flutter/material.dart';
// Package imports:
@ -68,7 +69,8 @@ class _ApplicationPageState extends State<ApplicationPage>
AppApplication('借还管理', R.ASSETS_HOME_IC_BORROW_PNG, BorrowManagerPage()),
AppApplication('巡检管理', R.ASSETS_HOME_IC_PATROL_PNG, InspectionManagePage()),
AppApplication('绿化管理', R.ASSETS_HOME_IC_GREENING_PNG, GreenManagePage()),
AppApplication('设施检查', R.ASSETS_HOME_IC_FACILITIES_PNG,FacilitiesPage() )
AppApplication('设施检查', R.ASSETS_HOME_IC_FACILITIES_PNG,FacilitiesPage() ),
AppApplication('包裹管理', R.ASSETS_PLACEHOLDER_WEBP, PackagesManagePage())
];
@override

@ -0,0 +1,121 @@
import 'dart:math';
import 'package:aku_community_manager/models/manager/package_manage/package_manage_list_model.dart';
import 'package:aku_community_manager/style/app_style.dart';
import 'package:aku_community_manager/tools/aku_divider.dart';
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:aku_community_manager/const/resource.dart';
import 'package:aku_community_manager/tools/extensions/list_extension_tool.dart';
class PackageManageCard extends StatefulWidget {
final int index;
final PackageManageListModel model;
PackageManageCard({Key key, this.index, this.model}) : super(key: key);
@override
_PackageManageCardState createState() => _PackageManageCardState();
}
class _PackageManageCardState extends State<PackageManageCard> {
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8.w),
),
padding: EdgeInsets.symmetric(vertical: 24.w, horizontal: 24.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
'3号柜${Random().nextInt(10)}号箱'
.text
.size(32.sp)
.color(kTextPrimaryColor)
.bold
.make(),
Spacer(),
(widget.index == 0 ? '未领取' : '已领取')
.text
.size(28.sp)
.color(widget.index == 1 ? kTextSubColor : kTextPrimaryColor)
.make()
],
),
16.w.heightBox,
AkuDivider.horizontal(),
24.w.heightBox,
...<Widget>[
_rowTile(
R.ASSETS_MANAGE_IC_RENWU_PNG,
'包裹代收',
widget.model.code.text.size(24.sp).color(kTextSubColor).make(),
),
_rowTile(
R.ASSETS_MANAGE_IC_RENWU_PNG,
'收件人',
widget.model.addresseeName.text.size(24.sp).color(kTextSubColor).make(),
),
_rowTile(
R.ASSETS_MESSAGE_IC_PHONE_PNG,
'联系方式',
widget.model.addresseeTel.text.size(24.sp).color(kTextSubColor).make(),
),
_rowTile(
R.ASSETS_MANAGE_IC_TIME_PNG,
'送达时间',
DateUtil.formatDate(widget.model.receiveDate,format: 'yyyy-MM-dd HH:mm').text.size(24.sp).color(kTextSubColor).make(),
),
].sepWidget(separate: 12.w.heightBox),
widget.index == 1 ? SizedBox() : _bottomButtons()
],
),
);
}
Widget _bottomButtons() {
return Padding(
padding: EdgeInsets.only(top: 40.w),
child: Row(
children: [
Spacer(),
MaterialButton(
height: 52.w,
padding: EdgeInsets.symmetric(vertical: 8.w, horizontal: 24.w),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(74.w)),
color: Colors.black,
onPressed: () {},
elevation: 0,
focusElevation: 0,
hoverElevation: 0,
highlightElevation: 0,
child: '提醒领取'.text.size(26.sp).color(Colors.white).make(),
)
],
),
);
}
Widget _rowTile(String iconPath, String title, Widget content) {
return Row(
children: [
SizedBox(
width: 40.w,
height: 40.w,
child: Image.asset(iconPath),
),
12.w.widthBox,
title.text.size(24.sp).color(kTextSubColor).make(),
Spacer(),
content,
],
);
}
}

@ -0,0 +1,40 @@
import 'package:aku_community_manager/ui/manage_pages/packages_manage/packages_manage_view.dart';
import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart';
import 'package:aku_community_manager/ui/widgets/inner/aku_tab_bar.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:velocity_x/velocity_x.dart';
class PackagesManagePage extends StatefulWidget {
PackagesManagePage({Key key}) : super(key: key);
@override
_PackagesManagePageState createState() => _PackagesManagePageState();
}
class _PackagesManagePageState extends State<PackagesManagePage>
with TickerProviderStateMixin {
List<String> _tabs = ['未领取', '已领取'];
TabController _tabController;
@override
void initState() {
super.initState();
_tabController = TabController(length: _tabs.length, vsync: this);
}
@override
Widget build(BuildContext context) {
return AkuScaffold(
title: '包裹管理',
appBarBottom: PreferredSize(
child: AkuTabBar(controller: _tabController, tabs: _tabs),
preferredSize: Size.fromHeight(88.w),
),
body: TabBarView(
controller: _tabController,
children: List.generate(_tabs.length, (index) => PackagesManageView(index: index,)),
),
);
}
}

@ -0,0 +1,59 @@
import 'package:aku_community_manager/const/api.dart';
import 'package:aku_community_manager/models/manager/package_manage/package_manage_list_model.dart';
import 'package:aku_community_manager/ui/manage_pages/packages_manage/packages_manage_card.dart';
import 'package:aku_community_manager/ui/widgets/common/bee_list_view.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:velocity_x/velocity_x.dart';
class PackagesManageView extends StatefulWidget {
final int index;
PackagesManageView({Key key, this.index}) : super(key: key);
@override
_PackagesManageViewState createState() => _PackagesManageViewState();
}
class _PackagesManageViewState extends State<PackagesManageView> {
EasyRefreshController _refreshController;
List<PackageManageListModel> _models;
@override
void initState() {
super.initState();
_refreshController = EasyRefreshController();
}
@override
void dispose() {
_refreshController?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return BeeListView(
path: API.manage.packageManageList,
controller: _refreshController,
extraParams: {"collectionStatus": widget.index + 1},
convert: (models) {
return models.tableList
.map((e) => PackageManageListModel.fromJson(e))
.toList();
},
builder: (items) {
return ListView.separated(
itemBuilder: (context, index) {
return PackageManageCard(
index: widget.index,
model: items[index],
);
},
separatorBuilder: (_, __) {
return 24.w.heightBox;
},
itemCount: items.length);
},
);
}
}

@ -262,6 +262,13 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.0"
equatable:
dependency: "direct main"
description:
name: equatable
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.0"
expandable:
dependency: "direct main"
description:

@ -72,6 +72,7 @@ dependencies:
shimmer: ^2.0.0-nullsafety.0
badges: ^2.0.0-nullsafety.1
equatable: ^2.0.0
dev_dependencies:
flutter_test:

Loading…
Cancel
Save