|
|
|
@ -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(),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|