对接已使用卡片

master
laiiihz 4 years ago
parent b9ffcf1668
commit 6ec7835981

@ -73,6 +73,12 @@ class UserAPI {
///
String get userCard => '/v2/app/user/welfare/lists';
///使
String get useCard => '/v2/app/user/welfare/use';
///
String get giveCard => '/v2/app/user/welfare/give';
}
class BenefitAPI {

@ -0,0 +1,21 @@
import 'package:recook/constants/api_v2.dart';
import 'package:recook/manager/http_manager.dart';
import 'package:recook/pages/upgradeCard/model/user_card_%20model.dart';
class UserCardFunction {
static Future<List<UserCardModel>> fetchList(int index, int type) async {
ResultData resultData = await HttpManager.post(APIV2.userAPI.userCard, {
'page': index,
'type': type,
'limit': 10,
});
if (resultData == null ||
resultData.data == null ||
resultData.data['data'] == null ||
resultData.data['data']['list'] == null) return [];
return (resultData.data['data']['list'] as List)
.map((e) => UserCardModel.fromJson(e))
.toList();
}
}

@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:recook/pages/upgradeCard/upgrade_card_use_result_page.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/alert.dart';
import 'package:recook/widgets/progress/re_toast.dart';
import 'package:recook/widgets/refresh_widget.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:recook/constants/header.dart';
@ -17,6 +17,65 @@ class UpgradeUnusedView extends StatefulWidget {
class _UpgradeUnusedViewState extends State<UpgradeUnusedView> {
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, 0);
_refreshController.refreshCompleted();
},
onLoadMore: () async {
_page++;
_cards.addAll(await UserCardFunction.fetchList(_page, 0));
_refreshController.refreshCompleted();
setState(() {});
},
body: ListView.separated(
separatorBuilder: (_, __) => 10.hb,
itemBuilder: (context, index) {
final item = _cards[index];
return _UserCard(model: item);
},
itemCount: _cards.length,
padding: EdgeInsets.symmetric(
horizontal: 16.w,
vertical: 10.w,
),
),
);
}
}
class _UserCard extends StatelessWidget {
final UserCardModel model;
const _UserCard({Key key, this.model}) : super(key: key);
Future<bool> _openUseCardDialog({String confirmTitle, Widget child}) async {
return (await Get.dialog(NormalContentDialog(
title: '提示',
content: child,
type: NormalTextDialogType.delete,
items: ['取消'],
deleteItem: confirmTitle,
listener: (_) => Get.back(),
deleteListener: () => Get.back(result: true),
))) ==
true;
}
_renderButton({
String title,
VoidCallback onTap,
@ -36,91 +95,32 @@ class _UpgradeUnusedViewState extends State<UpgradeUnusedView> {
);
}
_renderGoldCard() {
return Container(
height: 193.w,
padding: EdgeInsets.only(
left: 16.w,
top: 16.w,
bottom: 6.w,
right: 10.w,
),
child: Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
'黄金卡'.text.color(Color(0xFFDD2C4E)).size(18.sp).bold.make(),
'Gold Card'.text.color(Color(0xFFDD2C4E)).size(10.sp).make(),
Spacer(),
'编号IDJW23423'
.text
.color(Color(0xFFDD2C4E))
.size(16.sp)
.bold
.make(),
'2020年4余额团队销售额达标赠送'
.text
.color(Color(0xFFDD2C4E))
.size(12.sp)
.make(),
],
).expand(),
Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
_renderButton(
title: '使用',
onTap: () async {
DateTime now = DateTime.now();
DateTime nextMonth = DateTime(now.year, now.month + 1);
String get type {
if (model.type == 1) return '黄金卡';
if (model.type == 2)
return '白银卡';
else
return '';
}
bool result = await _openUseCardDialog(
confirmTitle: '使用黄金卡',
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
'黄金卡使用后将于${nextMonth.month}月1日考核时生效'
.text
.black
.size(15.sp)
.make(),
'您使用了黄金卡将于下月1日生效若店铺考核未达到黄金店铺考核标准则消耗一张黄金卡成为黄金店铺享受黄金店铺权益若店铺考核达到黄金店铺标准则黄金卡将返还至您的卡包。'
.text
.color(Color(0xFFDE180C))
.size(15.sp)
.make(),
],
),
);
if (result) {
final cancel = ReToast.loading(text: '使用中');
//TODO 使
await Future.delayed(Duration(seconds: 2));
cancel();
await Get.to(() => UpgradeUseResultPage(
result: true,
content: '恭喜',
));
_refreshController.requestRefresh();
}
}),
16.hb,
_renderButton(title: '赠送', onTap: () async {}),
],
),
],
),
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(R.ASSETS_USER_UPGRADE_GOLD_CARD_WEBP),
),
),
);
String get typeValue {
if (model.type == 1) return '黄金';
if (model.type == 2)
return '白银';
else
return '';
}
_renderSilverCard() {
String get typeEng {
if (model.type == 1) return 'Gold Card';
if (model.type == 2)
return 'Silver Card';
else
return '';
}
@override
Widget build(BuildContext context) {
return Container(
height: 193.w,
padding: EdgeInsets.only(
@ -134,10 +134,10 @@ class _UpgradeUnusedViewState extends State<UpgradeUnusedView> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
'白银卡'.text.color(Color(0xFFDD2C4E)).size(18.sp).bold.make(),
'Silver Card'.text.color(Color(0xFFDD2C4E)).size(10.sp).make(),
type.text.color(Color(0xFFDD2C4E)).size(18.sp).bold.make(),
typeEng.text.color(Color(0xFFDD2C4E)).size(10.sp).make(),
Spacer(),
'编号:IDJW23423'
'编号:${model.code}'
.text
.color(Color(0xFFDD2C4E))
.size(16.sp)
@ -157,16 +157,16 @@ class _UpgradeUnusedViewState extends State<UpgradeUnusedView> {
DateTime nextMonth = DateTime(now.year, now.month + 1);
bool result = await _openUseCardDialog(
confirmTitle: '使用白银卡',
confirmTitle: '使用$type',
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
'白银卡使用后将于${nextMonth.month}月1日考核时生效'
'$type使用后将于${nextMonth.month}月1日考核时生效'
.text
.black
.size(15.sp)
.make(),
'您使用了白银卡将于下月1日生效若店铺考核未达到白银店铺考核标准则消耗一张白银卡成为白银店铺享受白银店铺权益若店铺考核达到白银店铺标准则白银卡将返还至您的卡包。'
'您使用了$type将于下月1日生效若店铺考核未达到$typeValue店铺考核标准,则消耗一张$type成为$typeValue店铺,享受$typeValue店铺权益;若店铺考核达到$typeValue店铺标准,则$type将返还至您的卡包。'
.text
.color(Color(0xFFDE180C))
.size(15.sp)
@ -174,6 +174,9 @@ class _UpgradeUnusedViewState extends State<UpgradeUnusedView> {
],
),
);
if (result) {
}
}),
16.hb,
_renderButton(title: '赠送', onTap: () {}),
@ -188,44 +191,4 @@ class _UpgradeUnusedViewState extends State<UpgradeUnusedView> {
),
);
}
Future<bool> _openUseCardDialog({String confirmTitle, Widget child}) async {
return (await Get.dialog(NormalContentDialog(
title: '提示',
content: child,
type: NormalTextDialogType.delete,
items: ['取消'],
deleteItem: confirmTitle,
listener: (_) => Get.back(),
deleteListener: () => Get.back(result: true),
))) ==
true;
}
@override
void dispose() {
_refreshController?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return RefreshWidget(
controller: _refreshController,
onRefresh: () async {
_refreshController.refreshCompleted();
},
body: ListView(
padding: EdgeInsets.symmetric(
horizontal: 16.w,
vertical: 10.w,
),
children: [
_renderGoldCard(),
10.hb,
_renderSilverCard(),
],
),
);
}
}

Loading…
Cancel
Save