diff --git a/lib/pages/upgradeCard/model/user_card_ model.dart b/lib/pages/upgradeCard/model/user_card_ model.dart index e69de29..263b9c6 100644 --- a/lib/pages/upgradeCard/model/user_card_ model.dart +++ b/lib/pages/upgradeCard/model/user_card_ model.dart @@ -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 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 toJson() { + final Map data = new Map(); + 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; + } +} diff --git a/lib/pages/upgradeCard/upgrade_card_used_view.dart b/lib/pages/upgradeCard/upgrade_card_used_view.dart index c47d765..8c46c1a 100644 --- a/lib/pages/upgradeCard/upgrade_card_used_view.dart +++ b/lib/pages/upgradeCard/upgrade_card_used_view.dart @@ -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 { GSRefreshController _refreshController = GSRefreshController(initialRefresh: true); + List _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 { ); } - _renderGoldCard({ - String code, - DateTime useDate, - DateTime sendDate, - }) { - return Material( - color: Colors.white, - borderRadius: BorderRadius.circular(5.w), - clipBehavior: Clip.antiAlias, - child: Column( - children: [ - _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: [ - _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 { ).p(10.w), ); } - - ///// 0=未使用 1=已使用 - Future _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(), - ), - ], - ), - ); - } } diff --git a/pubspec.lock b/pubspec.lock index 40d4206..a2ff279 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -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: diff --git a/pubspec.yaml b/pubspec.yaml index 58e7077..c594591 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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