upgrade power_logger,已使用卡片页面

master
laiiihz 4 years ago
parent 73b595dd7b
commit b9ffcf1668

@ -0,0 +1,48 @@
class UserCardModel {
int id;
String code;
int type;
int source;
int status;
int giveUserId;
String giveUserNickname;
int useAt;
int createdAt;
UserCardModel(
{this.id,
this.code,
this.type,
this.source,
this.status,
this.giveUserId,
this.giveUserNickname,
this.useAt,
this.createdAt});
UserCardModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
code = json['code'];
type = json['type'];
source = json['source'];
status = json['status'];
giveUserId = json['giveUserId'];
giveUserNickname = json['giveUserNickname'];
useAt = json['useAt'];
createdAt = json['createdAt'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['code'] = this.code;
data['type'] = this.type;
data['source'] = this.source;
data['status'] = this.status;
data['giveUserId'] = this.giveUserId;
data['giveUserNickname'] = this.giveUserNickname;
data['useAt'] = this.useAt;
data['createdAt'] = this.createdAt;
return data;
}
}

@ -1,7 +1,7 @@
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:recook/constants/api_v2.dart';
import 'package:recook/manager/http_manager.dart';
import 'package:recook/pages/upgradeCard/function/user_card_function.dart';
import 'package:recook/pages/upgradeCard/model/user_card_%20model.dart';
import 'package:recook/widgets/refresh_widget.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:recook/constants/header.dart';
@ -17,6 +17,74 @@ class _UpgradeUsedViewState extends State<UpgradeUsedView> {
GSRefreshController _refreshController =
GSRefreshController(initialRefresh: true);
List<UserCardModel> _cards = [];
int _page = 1;
@override
void dispose() {
_refreshController?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return RefreshWidget(
controller: _refreshController,
onRefresh: () async {
_cards = [];
_page = 1;
_cards = await UserCardFunction.fetchList(_page, 1);
_refreshController.refreshCompleted();
setState(() {});
},
onLoadMore: () async {
_page++;
_cards.addAll(await UserCardFunction.fetchList(_page, 1));
_refreshController.refreshCompleted();
setState(() {});
},
body: ListView.separated(
itemCount: _cards.length,
itemBuilder: (context, index) {
final item = _cards[index];
return _userCard(
type: item.type,
status: item.status,
code: item.code,
giveDate: DateTime.fromMillisecondsSinceEpoch(item.useAt * 1000),
givePerson: item.giveUserNickname,
sendDate:
DateTime.fromMillisecondsSinceEpoch(item.createdAt * 1000),
giveTel: '',
);
},
separatorBuilder: (_, __) => 10.hb,
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 10.w),
),
);
}
}
class _userCard extends StatelessWidget {
final int type;
final int status;
final String code;
final DateTime giveDate;
final String givePerson;
final String giveTel;
final DateTime sendDate;
const _userCard({
Key key,
@required this.type,
@required this.status,
@required this.code,
@required this.giveDate,
@required this.givePerson,
@required this.giveTel,
@required this.sendDate,
}) : super(key: key);
_renderItem(String title, String subTitle) {
return Row(
children: [
@ -26,52 +94,25 @@ class _UpgradeUsedViewState extends State<UpgradeUsedView> {
);
}
_renderGoldCard({
String code,
DateTime useDate,
DateTime sendDate,
}) {
return Material(
color: Colors.white,
borderRadius: BorderRadius.circular(5.w),
clipBehavior: Clip.antiAlias,
child: Column(
children: <Widget>[
_renderItem('卡类型:', '黄金卡'),
_renderItem('编号:', code ?? ''),
_renderItem(
'使用时间:',
DateUtil.formatDate(useDate, format: 'yyyy-MM-dd HH:mm'),
),
_renderItem(
'发放时间:',
DateUtil.formatDate(sendDate, format: 'yyyy-MM-dd HH:mm'),
),
].sepWidget(separate: 4.hb),
).p(10.w),
);
}
_renderSilverCard({
String code,
DateTime giveDate,
String givePerson,
String giveTel,
DateTime sendDate,
}) {
@override
Widget build(BuildContext context) {
String typeValue = '';
if (type == 1) typeValue = '黄金卡';
if (type == 2) typeValue = '白银卡';
bool used = status == 1;
return Material(
color: Colors.white,
borderRadius: BorderRadius.circular(5.w),
clipBehavior: Clip.antiAlias,
child: Column(
children: <Widget>[
_renderItem('卡类型:', '白银卡'),
_renderItem('卡类型:', typeValue),
_renderItem('编号:', code ?? ''),
_renderItem(
'赠送时间:',
used ? '使用时间' : '赠送时间:',
DateUtil.formatDate(giveDate, format: 'yyyy-MM-dd HH:mm'),
),
_renderItem('赠送对象:', '$givePerson $giveTel'),
if (used) _renderItem('赠送对象:', '$givePerson $giveTel'),
_renderItem(
'发放时间:',
DateUtil.formatDate(sendDate, format: 'yyyy-MM-dd HH:mm'),
@ -80,53 +121,4 @@ class _UpgradeUsedViewState extends State<UpgradeUsedView> {
).p(10.w),
);
}
///// 0=使 1=使
Future<List> _fetchList(int index, int type) async {
ResultData resultData = await HttpManager.post(APIV2.userAPI.userCard, {
'page': index,
'type': type,
});
if (resultData == null ||
resultData.data == null ||
resultData.data['data'] == null ||
resultData.data['data']['list'] == null) return [];
//TODO
return [];
}
@override
void dispose() {
_refreshController?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return RefreshWidget(
controller: _refreshController,
onRefresh: () async {
print((await _fetchList(1, 0)));
_refreshController.refreshCompleted();
},
body: ListView(
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 10.w),
children: [
_renderGoldCard(
code: 'ADWADW',
useDate: DateTime.now(),
sendDate: DateTime.now(),
),
10.hb,
_renderSilverCard(
code: 'ADWADW',
giveDate: DateTime.now(),
givePerson: 'TESTMAN',
giveTel: '11889123',
sendDate: DateTime.now(),
),
],
),
);
}
}

@ -979,12 +979,10 @@ packages:
power_logger:
dependency: "direct main"
description:
path: "."
ref: HEAD
resolved-ref: "0436e0b02d1673ee828a757413a86999cd25603c"
url: "http://159.75.73.143:8080/laiiihz/power_logger.git"
source: git
version: "0.1.1"
name: power_logger
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.2"
pretty_json:
dependency: transitive
description:

@ -222,9 +222,7 @@ dependencies:
animations:
power_logger:
git:
url: http://159.75.73.143:8080/laiiihz/power_logger.git
power_logger: ^0.1.2
pin_input_text_field: ^3.3.0
device_info: ^1.0.0

Loading…
Cancel
Save