Commit 24dbcdb7b557edd978b17b27a579e89f8cfc3267

Authored by wdn127929
1 parent 0e723987

交易记录

... ... @@ -71,15 +71,31 @@ class _CouponCreateSelectTypePageState
),
HEmptyView(56),
Expanded(
child: Text(
'免费代金券',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: ScreenUtil().setSp(36),
color: selectF
? MyColours.color_ffffff
: MyColours.color_999999),
)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'免费代金券',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: ScreenUtil().setSp(36),
color: selectF
? MyColours.color_ffffff
: MyColours.color_999999),
),
VEmptyView(16),
Text(
'客人无需购买就可以获得代金券;',
style: TextStyle(
fontSize: ScreenUtil().setSp(20),
color: selectF
? MyColours.color_ffffff
: MyColours.color_999999),
)
],
),
),
// Column(
// mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.start,
... ... @@ -143,16 +159,30 @@ class _CouponCreateSelectTypePageState
),
HEmptyView(56),
Expanded(
child: Text(
'付费优惠券',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: ScreenUtil().setSp(36),
color: !selectF
? MyColours.color_ffffff
: MyColours.color_999999),
),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'付费优惠券',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: ScreenUtil().setSp(36),
color: !selectF
? MyColours.color_ffffff
: MyColours.color_999999),
),
VEmptyView(16),
Text(
'客人需要提前购买才可以获得优惠券;\n支持代金券、菜品券和折扣券',
style: TextStyle(
fontSize: ScreenUtil().setSp(20),
color: !selectF
? MyColours.color_ffffff
: MyColours.color_999999),
)
],
)),
],
),
)),
... ...
... ... @@ -36,7 +36,10 @@ import '../online_check/img_picker_widget.dart';
class CouponEidtPage extends StatefulWidget {
final bool isMine;
final CouponSunModel? couponSunModel;
CouponEidtPage({Key? key, this.isMine = true, this.couponSunModel})
final String? from;
final String? end;
CouponEidtPage(
{Key? key, this.isMine = true, this.from, this.end, this.couponSunModel})
: super(key: key);
@override
... ... @@ -1604,6 +1607,21 @@ class _CouponEidtPageState extends State<CouponEidtPage> {
Utils.showToast('请选择活动结束时间');
return;
}
// 券开始早于活动开始 && 券结束大于活动结束
if (widget.from != null) {
if (DateUtil.getDateTime(fromDate)
.compareTo(DateUtil.getDateTime(widget.from!)) >
0) {
Utils.showToast('优惠券的开始日期需要选择${widget.from}或以前的时间!');
return;
}
if (DateUtil.getDateTime(widget.end!)
.compareTo(DateUtil.getDateTime(endDate)) >
0) {
Utils.showToast('优惠券的结束日期需要选择${widget.end}或以后的时间!');
return;
}
}
if (DateUtil.getDateTime(endDate)
.compareTo(DateUtil.getDateTime(fromDate)) <
... ...
... ... @@ -14,22 +14,26 @@ import 'package:one_key/widgets/v_empty_view.dart';
class CouponItemF extends StatefulWidget {
final String? from;
final VoidCallback? onPressed;
final VoidCallback? onPressedSelect;
final VoidCallback? onPressedSwich;
final CouponSunModel? couponSonModel;
final bool showBtn;
final bool showCheck;
final bool radio;
final bool needNum;
CouponItemF({
Key? key,
this.from,
this.onPressed,
this.onPressedSwich,
this.couponSonModel,
this.showBtn = false,
this.showCheck = false,
this.radio = false,
}) : super(key: key);
CouponItemF(
{Key? key,
this.from,
this.onPressed,
this.onPressedSelect,
this.onPressedSwich,
this.couponSonModel,
this.showBtn = false,
this.showCheck = false,
this.radio = false,
this.needNum = true})
: super(key: key);
@override
_CouponItemFState createState() => _CouponItemFState();
... ... @@ -71,16 +75,22 @@ class _CouponItemFState extends State<CouponItemF> {
children: [
HEmptyView(20),
widget.from == 'select'
? Image.asset(
Utils.getImgPath(sunModel.isCheck
? widget.radio
? 'c_mul_select'
: 'select_f'
: widget.radio
? 'c_not_edit'
: 'show_select_f'),
width: w(20),
)
? InkWell(
onTap: widget.onPressedSelect,
child: Container(
// color: Colors.red,
padding: EdgeInsets.symmetric(vertical: w(50),horizontal: w(5)),
child: Image.asset(
Utils.getImgPath(sunModel.isCheck
? widget.radio
? 'c_mul_select'
: 'select_f'
: widget.radio
? 'c_not_edit'
: 'show_select_f'),
width: w(20),
),
))
: Container(),
Expanded(
child: Container(
... ... @@ -246,7 +256,8 @@ class _CouponItemFState extends State<CouponItemF> {
)),
if (widget.from == 'select' &&
sunModel.isType == '3' &&
widget.radio)
widget.radio &&
widget.needNum)
Row(
children: [
InkWell(
... ...
// import 'package:flutter/material.dart';
// import 'package:one_key/widgets/system_app_bar.dart';
// /**
// * 企业资料上传
// */
// class EnterpriseInformationUploadPage extends StatefulWidget {
// const EnterpriseInformationUploadPage({super.key});
// @override
// State<EnterpriseInformationUploadPage> createState() => _EnterpriseInformationUploadPageState();
// }
// class _EnterpriseInformationUploadPageState extends State<EnterpriseInformationUploadPage> {
// @override
// Widget build(BuildContext context) {
// return Scaffold(
// appBar: SystemAppBar('资料上传'),
// body: ,
// );
// }
// }
\ No newline at end of file
... ...
... ... @@ -69,7 +69,9 @@ class _FinanceManageHomePageState extends State<FinanceManageHomePage> {
children: [
_item('收银资料上传', () {}),
_item('微信商户账户开通结果查询', () {}),
_item('支付返券', () {}),
_item('支付返券', () {
// NavigatorUtil.goPaymentGiftPage(context);
}),
_item('门店收款码', () {
NavigatorUtil.goPaymentCodePage(context);
}),
... ...
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_picker_plus/picker.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:provider/provider.dart';
import '../../../models/coupon_model.dart';
import '../../../provider/finance_provider.dart';
import '../../../route/navigator_util.dart';
import '../../../utils/dialog_util.dart';
import '../../../utils/screen_util.dart';
import '../../../utils/utils.dart';
import '../../../widgets/round_button.dart';
import '../../../widgets/v_empty_view.dart';
/**
* 支付返券
*/
class PaymentGiftPage extends StatefulWidget {
const PaymentGiftPage({super.key});
@override
State<PaymentGiftPage> createState() => _PaymentGiftPageState();
}
class _PaymentGiftPageState extends State<PaymentGiftPage> {
bool fullReduction = true;
bool ladderReduction = false;
String fromDateFull = '选择日期';
String endDateFull = '选择日期';
String fromDateLadder = '选择日期';
String endDateLadder = '选择日期';
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
FinanceProvider? financeProvider;
TextEditingController fullC = TextEditingController();
FocusNode fullNode = FocusNode();
List coupons = ['1', '2', '3'];
List ladders = ['1', '2', '3'];
List<CouponSunModel>? couponSelectFree = [];
///是否立即启用
Widget _canUse(
String title,
bool swich,
GestureTapCallback onTap,
) {
return InkWell(
onTap: onTap,
child: Container(
padding: EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(24)),
margin: EdgeInsets.only(left: ScreenUtil().setWidth(32)),
decoration: BoxDecoration(
border: Border(
bottom:
BorderSide(color: MyColours.color_E7E7E7, width: w(0.5)))),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
// height: ScreenUtil().setWidth(40),
// color: Colors.red,
child: Text(
title,
style: TextStyle(
color: MyColours.color_515151, fontSize: font(16)),
),
),
Spacer(),
Image.asset(
swich
? Utils.getImgPath('swich_on')
: Utils.getImgPath('swich_off'),
width: ScreenUtil().setWidth(44 * 2),
),
HEmptyView(32)
],
),
),
);
}
Widget _priceWidget(TextEditingController controller, FocusNode focusNode,
{num width = 40}) {
return Container(
margin: EdgeInsets.only(left: w(width)),
padding: EdgeInsets.only(top: w(8), bottom: w(8), right: w(16)),
// decoration: BoxDecoration(
// border: Border(
// bottom:
// BorderSide(color: MyColours.color_E7E7E7, width: w(0.5)))),
child: Row(
children: [
Text(
'用户消费满',
style: TextStyle(color: MyColours.color_515151, fontSize: font(14)),
),
HEmptyView(10),
Container(
width: w(70),
height: w(26),
alignment: Alignment.center,
decoration: BoxDecoration(
border: Border.all(color: MyColours.color_999999, width: w(1))),
child: TextField(
controller: controller,
textAlign: TextAlign.center,
textAlignVertical: TextAlignVertical.center,
maxLines: 1,
// //光标颜色
// cursorColor:
// widget.isSelect ? Colors.white : MyColours.color_199095,
//输入文本的样式
inputFormatters: [
FilteringTextInputFormatter.allow(RegExp("[0-9.]")),
], // 限制输入为数字,
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setSp(24),
),
focusNode: focusNode,
decoration: InputDecoration(
isCollapsed: true,
border: OutlineInputBorder(borderSide: BorderSide.none),
hintText: '输入门槛',
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(24),
),
enabledBorder: new UnderlineInputBorder(
borderSide: BorderSide.none,
),
focusedBorder: new UnderlineInputBorder(
borderSide: BorderSide.none,
),
),
onChanged: (value) {},
onEditingComplete: () {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
},
keyboardType: TextInputType.numberWithOptions()),
),
HEmptyView(10),
Text(
'元 发放优惠券',
style: TextStyle(color: MyColours.color_515151, fontSize: font(14)),
),
],
),
);
}
///时间选择
Widget _select(String title, String hintText, GestureTapCallback onTap) {
return InkWell(
onTap: onTap,
child: Container(
margin: EdgeInsets.only(left: w(40)),
padding: EdgeInsets.only(
top: w(8),
bottom: w(8),
),
decoration: BoxDecoration(
border: Border(
bottom:
BorderSide(color: MyColours.color_E7E7E7, width: w(0.5)))),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
// height: ScreenUtil().setWidth(40),
// color: Colors.red,
child: Text(
title,
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setSp(28)),
),
),
HEmptyView(20),
Spacer(),
Text(hintText,
style: TextStyle(
color: hintText == '选择日期'
? MyColours.color_999999
: MyColours.color_515151,
fontSize: ScreenUtil().setSp(24),
)),
HEmptyView(20),
Image.asset(
Utils.getImgPath('arrow_right_new'),
width: ScreenUtil().setWidth(16),
),
HEmptyView(32),
],
),
),
);
}
Widget _couponShow(String name, {GestureTapCallback? onTap}) {
return Row(
// mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
Container(
padding: EdgeInsets.symmetric(horizontal: w(10), vertical: w(4)),
decoration: BoxDecoration(
border: Border.all(color: MyColours.color_999999, width: w(1)),
borderRadius: BorderRadius.only(
topLeft: Radius.circular(r(5)),
bottomLeft: Radius.circular(r(5)),
)),
child: Text(
name,
style: TextStyle(color: MyColours.color_515151, fontSize: font(12)),
),
),
InkWell(
onTap: onTap,
child: Container(
padding: EdgeInsets.symmetric(horizontal: w(5), vertical: w(4)),
decoration: BoxDecoration(
color: MyColours.color_999999,
border:
Border.all(color: MyColours.color_999999, width: w(1)),
borderRadius: BorderRadius.only(
topRight: Radius.circular(r(5)),
bottomRight: Radius.circular(r(5)),
)),
child: Text(
'×',
style: TextStyle(
color: MyColours.color_515151, fontSize: font(12)),
),
))
],
);
}
Widget _selectCouponBtn(VoidCallback? onPressed) {
return RoundButton(
text: '+选择优惠券',
width: w(88),
height: w(26),
gradientStart: MyColours.color_ffffff,
gradientEnd: MyColours.color_ffffff,
textColor: MyColours.color_438E93,
borderColor: MyColours.color_438E93,
radius: r(5),
fontSize: 24,
onPressed: onPressed);
}
Widget _selectCouponWidget(List<CouponSunModel> coupons,
{bool needBottom = true, num width = 40, VoidCallback? onPressed}) {
List<Widget> data = coupons.map((e) {
return _couponShow(e.aname ?? '', onTap: () {
//删除选择的券
coupons.remove(e);
setState(() {});
});
}).toList();
data.add(_selectCouponBtn(onPressed));
return Container(
width: double.infinity,
padding: EdgeInsets.only(top: w(8), bottom: w(8), right: w(16)),
margin: EdgeInsets.only(left: w(width)),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: w(0.5),
color: needBottom
? MyColours.color_E7E7E7
: MyColours.color_ffffff))),
child: Wrap(runSpacing: w(8), spacing: w(6), children: data),
);
}
///发放阶梯
Widget _ladderWidget(int index, e, {GestureTapCallback? onTap}) {
return Container(
padding:
EdgeInsets.only(left: w(40), top: w(8), bottom: w(8), right: w(16)),
child: Column(
children: [
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'发放阶梯(${index})',
style: TextStyle(
color: MyColours.color_515151, fontSize: font(14)),
),
InkWell(
onTap: onTap,
child: Padding(
padding: EdgeInsets.only(top: w(8), bottom: w(8)),
child: Text(
'删除',
style: TextStyle(
color: MyColours.color_438E93, fontSize: font(12)),
),
))
],
),
),
_priceWidget(TextEditingController(), FocusNode(), width: 20),
_selectCouponWidget(couponSelectFree!, width: 20, needBottom: false,
onPressed: () async {
//跳转到优惠券选择页面,条件:券的有效期包含活动有效期
//阶梯发券
// dynamic temp = await NavigatorUtil.goPaymentGiftSelectPage(
// context, '3', {'object': couponSelectFree});
// if (temp != null && temp['coupon'] != null) {
// couponSelectFree = temp['coupon'];
// setState(() {});
// }
}),
// }),
],
),
);
}
@override
Widget build(BuildContext context) {
financeProvider = Provider.of<FinanceProvider>(context, listen: true);
int i = 0;
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar('支付返券'),
key: scaffoldKey,
body: Column(
children: [
Expanded(
child: SingleChildScrollView(
child: Column(
children: [
_canUse('开通实际支付满减返券【拉复购】', fullReduction, () {
setState(() {
fullReduction = !fullReduction;
});
}),
_select('活动开始于', fromDateFull, () {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
//弹出时间选择器
// showPickerDateTime(context);
// showDateSelWidget = true;
DialogUtil.showPickerDateTime24(
context,
scaffoldKey,
(value) {
// {'text': picker.adapter.text, 'select': selecteds}
if (value != null) {
setState(() {
print(value);
fromDateFull = DateUtil.formatDateStr(value,
format: DateFormats.y_mo_d);
});
}
// showDateSelWidget = false;
},
minValue: DateTime(1987, 1, 1),
dateTime: fromDateFull == '选择日期'
? null
: DateUtil.getDateTime(fromDateFull),
pickerDateTimeType: PickerDateTimeType.kYMD,
onCancel: () {
// showDateSelWidget = false;
});
}),
_select('活动结束于', endDateFull, () {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
//弹出时间选择器
// showPickerDateTime(context);
// showDateSelWidget = true;
DialogUtil.showPickerDateTime24(
context,
scaffoldKey,
(value) {
// {'text': picker.adapter.text, 'select': selecteds}
if (value != null) {
setState(() {
print(value);
endDateFull = DateUtil.formatDateStr(value,
format: DateFormats.y_mo_d);
});
}
// showDateSelWidget = false;
},
minValue: DateTime(1987, 1, 1),
dateTime: endDateFull == '选择日期'
? null
: DateUtil.getDateTime(endDateFull),
pickerDateTimeType: PickerDateTimeType.kYMD,
onCancel: () {
// showDateSelWidget = false;
});
}),
_priceWidget(fullC, fullNode),
_selectCouponWidget(couponSelectFree!, onPressed: () async {
if (fromDateFull == '选择日期') {
Utils.showToast('请选择满减返券的开始日期');
return;
}
if (endDateFull == '选择日期') {
Utils.showToast('请选择满减返券的结束日期');
return;
}
if (DateUtil.getDateTime(endDateFull)
.compareTo(DateUtil.getDateTime(fromDateFull)) <
0) {
Utils.showToast('满减返券的活动结束日期不能早于开始日期');
return;
}
//选择券,满减送的
dynamic temp = await NavigatorUtil.goPaymentGiftSelectPage(
context,
'3',
{'object': couponSelectFree},
fromDateFull,
endDateFull);
if (temp != null && temp['coupon'] != null) {
couponSelectFree = temp['coupon'];
setState(() {});
}
}),
Container(
padding:
EdgeInsets.only(top: w(8), bottom: w(8), right: w(16)),
margin: EdgeInsets.only(left: w(40)),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: w(0.5), color: MyColours.color_E7E7E7))),
child: Row(
children: [
Text(
'发放规则',
style: TextStyle(
color: MyColours.color_515151, fontSize: font(14)),
),
Spacer(),
Container(
// width: w(100),
// height: w(30),
padding: EdgeInsets.symmetric(
horizontal: w(10), vertical: w(5)),
decoration: BoxDecoration(
color: MyColours.color_438E93,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(r(5)),
bottomLeft: Radius.circular(r(5)))),
child: Text(
'每满门槛均发放',
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: font(14)),
),
),
Container(
padding: EdgeInsets.symmetric(
horizontal: w(10), vertical: w(5)),
decoration: BoxDecoration(
color: MyColours.color_DBDBDB,
borderRadius: BorderRadius.only(
topRight: Radius.circular(r(5)),
bottomRight: Radius.circular(r(5)))),
child: Text(
'仅发放一次',
style: TextStyle(
color: MyColours.color_438E93,
fontSize: font(14)),
),
)
],
),
),
VEmptyView(22),
_canUse('开通实际支付阶梯返券【提客单】', ladderReduction, () {
//
setState(() {
ladderReduction = !ladderReduction;
});
}),
_select('活动开始于', fromDateLadder, () {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
//弹出时间选择器
// showPickerDateTime(context);
// showDateSelWidget = true;
DialogUtil.showPickerDateTime24(
context,
scaffoldKey,
(value) {
// {'text': picker.adapter.text, 'select': selecteds}
if (value != null) {
setState(() {
print(value);
fromDateLadder = DateUtil.formatDateStr(value,
format: DateFormats.y_mo_d);
});
}
// showDateSelWidget = false;
},
minValue: DateTime(1987, 1, 1),
dateTime: fromDateLadder == '选择日期'
? null
: DateUtil.getDateTime(fromDateLadder),
pickerDateTimeType: PickerDateTimeType.kYMD,
onCancel: () {
// showDateSelWidget = false;
});
}),
_select('活动结束于', endDateLadder, () {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
//弹出时间选择器
// showPickerDateTime(context);
// showDateSelWidget = true;
DialogUtil.showPickerDateTime24(
context,
scaffoldKey,
(value) {
// {'text': picker.adapter.text, 'select': selecteds}
if (value != null) {
setState(() {
print(value);
endDateLadder = DateUtil.formatDateStr(value,
format: DateFormats.y_mo_d);
});
}
// showDateSelWidget = false;
},
minValue: DateTime(1987, 1, 1),
dateTime: endDateLadder == '选择日期'
? null
: DateUtil.getDateTime(endDateLadder),
pickerDateTimeType: PickerDateTimeType.kYMD,
onCancel: () {
// showDateSelWidget = false;
});
}),
Column(
children: ladders.map((e) {
i++;
return _ladderWidget(i, e, onTap: () {
ladders.remove(e);
setState(() {});
});
}).toList(),
),
InkWell(
onTap: () {
ladders.add('${ladders.length + 1}');
setState(() {});
},
child: Container(
// height: w(30),
margin: EdgeInsets.only(left: w(60), top: w(8)),
padding: EdgeInsets.symmetric(vertical: w(8)),
alignment: Alignment.center,
decoration: BoxDecoration(
// color: Colors.red,
border: Border(
bottom: BorderSide(
width: w(0.5),
color: MyColours.color_E7E7E7))),
child: Text(
'增加阶梯',
style: TextStyle(
color: MyColours.color_438E93, fontSize: font(12)),
),
))
],
),
)),
Container(
padding: EdgeInsets.only(
top: w(13), left: w(45), right: w(45), bottom: w(26)),
child: RoundButton(
text: '立即提交',
height: w(43),
radius: r(5),
gradientStart: MyColours.color_438E93,
gradientEnd: MyColours.color_438E93,
borderColor: MyColours.color_438E93,
textColor: MyColours.color_ffffff,
isBold: true,
fontSize: 32,
onPressed: () {},
),
)
],
),
);
}
}
... ...
import 'dart:io';
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/pages/coupon/coupon_item.dart';
import 'package:one_key/pages/coupon/coupon_item_f.dart';
import 'package:one_key/provider/SmsModel.dart';
import 'package:one_key/provider/coupon_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/page_exception.dart';
import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
import 'package:sendsms/sendsms.dart';
// import 'package:sendsms/sendsms.dart';
import 'package:flutter_sms/flutter_sms.dart';
import '../../../../models/coupon_model.dart';
import '../../../../utils/screen_util.dart';
/**
* 支付返券选择页面
*/
class PaymentGiftSelectPage extends StatefulWidget {
final String? type;
final List<CouponSunModel>?couponList;
final String? from;
final String? end;
final bool mulSelect;
PaymentGiftSelectPage(
{Key? key,
this.type,
this.couponList,
this.from,
this.end,
this.mulSelect = true})
: super(key: key);
@override
_PaymentGiftSelectPageState createState() => _PaymentGiftSelectPageState();
}
class _PaymentGiftSelectPageState extends State<PaymentGiftSelectPage> {
EasyRefreshController _controller = EasyRefreshController();
late CouponProvider couponProvider;
List<CouponSunModel> selectDataList = [];
bool all = false;
@override
void initState() {
// TODO: implement initState
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
// if (!couponProvider.hasModify) {
_couponNetworkData();
// } else {
// couponProvider.pageStateSelect = PageState.Success;
// // couponProvider.notifyListeners();
// }
});
}
@override
void dispose() {
super.dispose();
}
///获取优惠券列表数据(status == 1)
_couponNetworkData({bool isShowLoading = true}) async {
Map<String, String> params = {
"uid": Provider.of<UserModel>(context, listen: false).user!.openid!,
"is_type": widget.type!
};
params['status'] = '1';
await couponProvider.getCustomerSelectActivityMarking(context, params,
isShowLoading: isShowLoading);
// if (DateUtil.getDateTime(endDate)
// List<String> start = fromDate.split('-');
// String from = '${start[0]}' +
// '-' +
// Utils.addZeroNumber(int.parse(start[1])) +
// '-' +
// Utils.addZeroNumber(int.parse(start[2])) +
// ' 00:00:00';
// List<String> endList = endDate.split('-');
// String end = '${endList[0]}' +
// '-' +
// Utils.addZeroNumber(int.parse(endList[1])) +
// '-' +
// Utils.addZeroNumber(int.parse(endList[2])) +
// ' 23:59:59';
// Map<String, String?> params = {
// 'sellerid': Provider.of<UserModel>(context, listen: false).user!.sellerid,
// 'stime': '${(DateUtil.getDateMsByTimeStr(from)! / 1000).floor()}',
// 'etime': '${(DateUtil.getDateMsByTimeStr(end)! / 1000).floor()}',
// };
// .compareTo(DateUtil.getDateTime(fromDate)) <
// 0) {
// Utils.showToast('结束日期不能早于开始日期');
// return;
// }
// outerloop:
List<CouponSunModel> temp = [];
for (int i = 0; i < couponProvider.couponListSelect!.length; i++) {
CouponSunModel data = couponProvider.couponListSelect![i];
// data.stime
// data.etime
//重组数据
// 券开始早于活动开始 && 券结束大于活动结束
DateTime dateTimes = DateTime.fromMillisecondsSinceEpoch(
int.parse(data.stime.toString()) * 1000);
String fromC = DateUtil.formatDate(dateTimes, format: DateFormats.y_mo_d);
DateTime dateTimeseEnd = DateTime.fromMillisecondsSinceEpoch(
int.parse(data.etime.toString()) * 1000);
String endC =
DateUtil.formatDate(dateTimeseEnd, format: DateFormats.y_mo_d);
if (DateUtil.getDateTime(fromC)
.compareTo(DateUtil.getDateTime(widget.from!)) <=
0 &&
DateUtil.getDateTime(widget.end!)
.compareTo(DateUtil.getDateTime(endC)) <=
0) {
temp.add(couponProvider.couponListSelect![i]);
}
}
couponProvider.couponListSelect = temp;
if (couponProvider.couponListSelect!.length == 0) {
couponProvider.pageStateSelect = PageState.Empty;
setState(() {});
} else {
for (var item in couponProvider.couponListSelect!) {
for (var itemselect in widget.couponList!) {
if (itemselect.id == item.id) {
item.isCheck = true;
// item.number = itemselect.number;
// item.numberC.text = item.number.toString();
selectDataList.add(item);
// break outerloop;
}
}
}
if (selectDataList.length == couponProvider.couponListSelect!.length) {
all = true;
}
setState(() {});
}
}
@override
Widget build(BuildContext context) {
couponProvider = Provider.of<CouponProvider>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar(
'选择优惠券',
onTap: () {
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
},
),
body: Column(
children: [
Expanded(child: Consumer<CouponProvider>(
builder: (context, model, _) {
if (model.pageStateSelect != PageState.Success) {
return ExceptionPage(
pageState: model.pageStateSelect,
callback: () async {
if (model.pageStateSelect == PageState.Empty) {
//去创建免费优惠券
bool? needRefresh;
needRefresh = await NavigatorUtil.goCouponEditPage(
context,
from: widget.from,
end: widget.end,
isMine: true);
print(needRefresh);
if (needRefresh != null && needRefresh) {
//刷新页面数据
// _controller.callRefresh();
_couponNetworkData();
}
} else {
_couponNetworkData();
}
// offset = 0;
// getMessage(showLoading: true);
},
emptyMsg: "暂时没有可用的优惠券哦,",
emptyImg: "empty_search",
showMsg: "加载中,请稍候...",
showText: '去创建',
);
} else {
return EasyRefresh.custom(
controller: _controller,
shrinkWrap: true,
slivers: [
SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return VEmptyView(40);
}, childCount: 1),
),
SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
CouponSunModel sunModel =
couponProvider.couponListSelect![index];
return InkWell(
onTap: () {
if (sunModel.isType != '3') {
//改这里 ******8
if (widget.mulSelect) {
sunModel.isCheck = !sunModel.isCheck;
if (sunModel.isCheck) {
selectDataList.add(sunModel);
} else {
selectDataList.remove(sunModel);
}
if (couponProvider.couponListSelect!
.every((element) => element.isCheck)) {
all = true;
} else {
all = false;
}
} else {
couponProvider.couponListSelect!
.forEach((element) {
element.isCheck = false;
});
selectDataList = [];
selectDataList.add(sunModel);
sunModel.isCheck = true;
}
setState(() {});
}
},
// child: Row(
// children: [
// HEmptyView(30),
// !widget.hasModify
// ? Checkbox(
// value: couponProvider
// .couponListSelect[index].isCheck,
// checkColor: MyColours.color_ffffff,
// activeColor: MyColours.app_main,
// onChanged: (bool value) {},
// )
// : Container(),
// Image.asset(
// couponProvider.listData[index]['checked']
// ? 'assets/select.png'
// : 'assets/unselect.png',
// width: ScreenUtil().setWidth(44)),
child: CouponItemF(
from: 'select',
showCheck: true,
radio: widget.mulSelect,
needNum: false,
couponSonModel:
couponProvider.couponListSelect![index],
onPressed: () {
NavigatorUtil.goCouponDetailPage(context, couponProvider.couponListSelect![index],
idStr: couponProvider.couponListSelect![index].id);
},
onPressedSelect: () {
// bool old = couponProvider
// .couponListSelect[index].isCheck;
//改这里 ******8
if (widget.mulSelect) {
couponProvider.couponListSelect![index]
.isCheck =
!couponProvider
.couponListSelect![index].isCheck;
if (couponProvider
.couponListSelect![index].isCheck) {
selectDataList.add(couponProvider
.couponListSelect![index]);
} else {
selectDataList.remove(couponProvider
.couponListSelect![index]);
}
if (couponProvider.couponListSelect!
.every(
(element) => element.isCheck)) {
all = true;
} else {
all = false;
}
} else {
couponProvider.couponListSelect!
.forEach((element) {
element.isCheck = false;
});
selectDataList = [];
selectDataList.add(couponProvider
.couponListSelect![index]);
couponProvider.couponListSelect![index]
.isCheck = true;
}
setState(() {});
}));
}, childCount: couponProvider.couponListSelect!.length),
)
],
// onRefresh: () async {
// // offset = 0;
// // getMessage(showLoading: false);
// },
// onLoad: () async {
// // offset++;
// // getMessage(showLoading: false);
// },
);
}
},
)),
VEmptyView(20),
if (couponProvider.pageStateSelect == PageState.Success)
widget.mulSelect
? Container(
padding: EdgeInsets.only(
left: w(20), top: w(12), right: w(20), bottom: w(25)),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
InkWell(
onTap: () {
all = !all;
if (all) {
selectDataList = [];
for (var item
in couponProvider.couponListSelect!) {
item.isCheck = true;
selectDataList.add(item);
}
} else {
selectDataList = [];
for (var item
in couponProvider.couponListSelect!) {
item.isCheck = false;
}
}
setState(() {});
},
child: Row(
children: [
Image.asset(
Utils.getImgPath(
all ? 'c_mul_select' : 'c_not_edit'),
width: ScreenUtil().setWidth(40),
),
HEmptyView(10),
Text(
'全选',
style: TextStyle(
fontSize: ScreenUtil().setWidth(32),
fontWeight: FontWeight.bold,
color: MyColours.color_000000),
),
HEmptyView(20),
],
)),
Expanded(
child: RoundButton(
onPressed: () async {
//如果是免费的优惠券,有个数的,数量为0的时候提示
bool can = true;
for (int i = 0; i < selectDataList.length; i++) {
CouponSunModel element = selectDataList[i];
if (element.isType == '3' &&
element.isCheck &&
element.number == 0) {
Utils.showToast('请输入【${element.aname}】的数量');
can = false;
break;
}
}
if (can) {
Map temp = {
'coupon': selectDataList,
};
if (Navigator.canPop(context)) {
Navigator.pop(context, temp);
}
}
},
text: '确定选择${selectDataList.length}个优惠券',
fontSize: 34,
isBold: false,
height: ScreenUtil().setWidth(80),
// width: double.infinity,
radius: ScreenUtil().setWidth(10),
)),
],
))
: Container(
padding: EdgeInsets.only(
left: w(20), top: w(12), right: w(20), bottom: w(25)),
child: RoundButton(
onPressed: () async {
Map temp = {
'coupon': selectDataList,
};
if (Navigator.canPop(context)) {
Navigator.pop(context, temp);
}
},
text: '确定',
fontSize: 34,
isBold: false,
height: ScreenUtil().setWidth(80),
width: double.infinity,
radius: ScreenUtil().setWidth(10),
))
],
));
}
}
... ...
... ... @@ -93,7 +93,7 @@ class _TransactionRecordHomePageState extends State<TransactionRecordHomePage> {
return Container(
width: double.infinity,
height: w(40),
color: MyColours.color_4DDBDBDB,
// color: MyColours.color_4DDBDBDB,
alignment: Alignment.center,
child: Text(
'仅展示近5天的交易信息,如果需要展示更多信息,请使用右上角日期筛选',
... ... @@ -107,30 +107,18 @@ class _TransactionRecordHomePageState extends State<TransactionRecordHomePage> {
financeProvider = Provider.of<FinanceProvider>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar('交易记录'),
appBar: SystemAppBar(
'交易记录',
rightImgName: 'calender.png',
onTapRight: () {
//跳转筛选页面
NavigatorUtil.goTransactionRecordSearchPage(context);
},
),
body: Consumer<FinanceProvider>(builder: (context, model, _) {
if (model.pageStateRecordHome != PageState.Success) {
return Column(
children: [
Align(
alignment: Alignment.centerRight,
child: InkWell(
onTap: () {
//跳转筛选页面
NavigatorUtil.goTransactionRecordSearchPage(context);
},
child: Container(
padding: EdgeInsets.only(
right: w(20),
left: w(20),
top: w(10),
bottom: w(10)),
child: Image.asset(
Utils.getImgPath('calender'),
width: w(20),
),
)),
),
Expanded(
child: ExceptionPage(
pageState: model.pageStateRecordHome,
... ... @@ -159,65 +147,36 @@ class _TransactionRecordHomePageState extends State<TransactionRecordHomePage> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Stack(children: [
Container(
width: double.infinity,
alignment: Alignment.center,
Container(
width: double.infinity,
alignment: Alignment.center,
// height: w(40),
color: MyColours.color_4DDBDBDB,
padding: EdgeInsets.only(
top: index == 0 ? w(10) : w(22),
bottom: w(10)),
child: Wrap(
runSpacing: w(5),
crossAxisAlignment:
WrapCrossAlignment.center,
children: [
Text(
listData!.date ?? '',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)),
),
HEmptyView(16),
Padding(
padding: EdgeInsets.only(
right: index == 0 ? w(33) : 0),
child: Text(
'收入${listData.total},支出${listData.refundTotal}',
maxLines: 3,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_999999,
fontSize: font(12)),
),
),
],
)),
if (index == 0)
Positioned(
top: 0,
right: 0,
child: InkWell(
onTap: () {
//跳转筛选页面
NavigatorUtil
.goTransactionRecordSearchPage(
context);
},
child: Container(
padding: EdgeInsets.only(
right: w(20),
left: w(20),
top: w(10),
bottom: w(10)),
child: Image.asset(
Utils.getImgPath('calender'),
width: w(20),
),
)))
]),
// height: w(40),
color: MyColours.color_4DDBDBDB,
padding: EdgeInsets.only(
top: w(10), bottom: w(10)),
child: Wrap(
runSpacing: w(5),
crossAxisAlignment:
WrapCrossAlignment.center,
children: [
Text(
listData!.date ?? '',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)),
),
HEmptyView(16),
Text(
'收入${listData.total},支出${listData.refundTotal}',
maxLines: 3,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: MyColours.color_999999,
fontSize: font(12)),
),
],
)),
ListView.builder(
itemCount: listData.list?.length,
shrinkWrap: true,
... ...
... ... @@ -121,6 +121,7 @@ class _TransactionRecordSearchPageState
Widget build(BuildContext context) {
financeProvider = Provider.of<FinanceProvider>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar('自定义查询'),
key: scaffoldKey,
body: Column(
... ... @@ -165,6 +166,7 @@ class _TransactionRecordSearchPageState
});
}),
Container(
margin: EdgeInsets.only(left: w(16)),
height: ScreenUtil().setWidth(1),
color: MyColours.color_E7E7E7,
),
... ... @@ -197,6 +199,7 @@ class _TransactionRecordSearchPageState
});
}),
Container(
margin: EdgeInsets.only(left: w(16)),
height: ScreenUtil().setWidth(1),
color: MyColours.color_E7E7E7,
),
... ...
... ... @@ -207,7 +207,11 @@ class _MarkingCouponSelectPageState extends State<MarkingCouponSelectPage> {
radio: widget.mulSelect,
couponSonModel:
couponProvider.couponListSelect![index],
onPressed: () {
onPressed: () {
NavigatorUtil.goCouponDetailPage(context, couponProvider.couponListSelect![index],
idStr: couponProvider.couponListSelect![index].id);
},
onPressedSelect: () {
// bool old = couponProvider
// .couponListSelect[index].isCheck;
//改这里 ******8
... ...
... ... @@ -178,7 +178,12 @@ class _MarkingRechargeSelectPageState extends State<MarkingRechargeSelectPage> {
showCheck: true,
rechargeListSunModel:
rechargeListCanUse[index],
onPressed: () {
onPressed: (){
//查看页
NavigatorUtil.goRechargeDetailPage(
context, rechargeListCanUse[index].id);
},
onPressedSelect: () {
// bool old = couponProvider
// .couponListSelect[index].isCheck;
//改这里 ******8
... ...
import 'package:cached_network_image/cached_network_image.dart';
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
... ... @@ -19,6 +18,7 @@ import '../../../../utils/screen_util.dart';
class RechargeItem extends StatefulWidget {
final String? from;
final VoidCallback? onPressed;
final VoidCallback? onPressedSelect;
final VoidCallback? onPressedDel;
final VoidCallback? onPressedUse;
final RechargeListSunModel? rechargeListSunModel;
... ... @@ -28,6 +28,7 @@ class RechargeItem extends StatefulWidget {
Key? key,
this.from,
this.onPressed,
this.onPressedSelect,
this.onPressedDel,
this.onPressedUse,
this.rechargeListSunModel,
... ... @@ -50,7 +51,6 @@ class _RechargeItemState extends State<RechargeItem> {
notSelect = false;
} else {
// notSelect = sunModel.isOpenBool;
}
if (widget.from == 'menu' || widget.from == 'menu-show') {
decoration = BoxDecoration(
... ... @@ -138,7 +138,8 @@ class _RechargeItemState extends State<RechargeItem> {
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Expanded(child: Text(
Expanded(
child: Text(
widget.rechargeListSunModel!.rname!,
maxLines: 1,
overflow: TextOverflow.ellipsis,
... ... @@ -386,13 +387,17 @@ class _RechargeItemState extends State<RechargeItem> {
? Positioned(
left: w(10),
// top: ScreenUtil().setWidth(115),
child: Image.asset(
Utils.getImgPath(widget.rechargeListSunModel!.isCheck
? 'select_f'
: 'show_select_f'),
width: ScreenUtil().setWidth(50),
height: ScreenUtil().setWidth(50),
))
child: InkWell(
onTap: widget.onPressedSelect,
child: Container(
child: Image.asset(
Utils.getImgPath(
widget.rechargeListSunModel!.isCheck
? 'select_f'
: 'show_select_f'),
width: ScreenUtil().setWidth(50),
height: ScreenUtil().setWidth(50),
))))
: SizedBox(),
if (widget.from == 'history')
Positioned(
... ...
import 'dart:io';
import 'package:flutter/material.dart';
... ... @@ -212,6 +211,12 @@ class _RechargeSelectStoreCouponPageState
couponSonModel:
couponProvider.couponListSelect![index],
onPressed: () {
NavigatorUtil.goCouponDetailPage(context,
couponProvider.couponListSelect![index],
idStr: couponProvider
.couponListSelect![index].id);
},
onPressedSelect: () {
//改这里 ******8
if (true) {
couponProvider
... ...
... ... @@ -359,13 +359,13 @@ class NavigatorUtil {
/// 创建优惠券
static Future<dynamic> goCouponEditPage(BuildContext context,
{replace = false, bool isMine = true, CouponSunModel? couponSunModel}) {
{replace = false, String? from,String? end,bool isMine = true, CouponSunModel? couponSunModel}) {
if (couponSunModel != null) {
return _navigateTo(context,
"${Routes.coupon_edit}?isMine=${isMine}&couponSunModel=${FluroConvertUtils.object2string(couponSunModel)}",
"${Routes.coupon_edit}?isMine=${isMine}&from=${from}&end=$end&couponSunModel=${FluroConvertUtils.object2string(couponSunModel)}",
replace: replace);
}
return _navigateTo(context, "${Routes.coupon_edit}?isMine=${isMine}",
return _navigateTo(context, "${Routes.coupon_edit}?isMine=${isMine}&from=${from}&end=$end",
replace: replace);
}
... ... @@ -2374,8 +2374,7 @@ class NavigatorUtil {
replace: replace);
}
///交易记录自定义查询
///交易记录自定义查询
static Future<dynamic> goTransactionRecordSearchPage(
BuildContext context, {
replace = false,
... ... @@ -2384,14 +2383,33 @@ class NavigatorUtil {
replace: replace);
}
///交易详情
///交易详情
static Future<dynamic> goTransactionRecordDetailPage(
BuildContext context,String? status,String? id, {
BuildContext context,
String? status,
String? id, {
replace = false,
}) {
return _navigateTo(context,
"${Routes.transaction_record_detail_page}?status=$status&id=$id",
replace: replace);
}
///支付返券
static Future<dynamic> goPaymentGiftPage(
BuildContext context, {
replace = false,
}) {
return _navigateTo(context, "${Routes.transaction_record_detail_page}?status=$status&id=$id",
return _navigateTo(context, "${Routes.payment_gift_page}",
replace: replace);
}
///支付返券------优惠券选择
static Future<dynamic> goPaymentGiftSelectPage(
BuildContext context, String type, Map object, String from, String end,
{replace = false, bool mulSelect = true}) {
return _navigateTo(context,
"${Routes.payment_gift_select_page}?object=${FluroConvertUtils.object2string(object)}&from=$from&end=$end&type=$type&mulSelect=${mulSelect}",
replace: replace);
}
}
... ...
... ... @@ -223,6 +223,8 @@ import '../pages/my/feast_manage/feast_wine_manage_edit_page.dart';
import '../pages/my/feast_manage/feast_wine_manage_page.dart';
import '../pages/my/finance_manage/finance_manage_home_page.dart';
import '../pages/my/finance_manage/payment_code_page.dart';
import '../pages/my/finance_manage/payment_gift_page.dart';
import '../pages/my/finance_manage/payment_gift_select_page.dart';
import '../pages/my/finance_manage/transaction_record_detail_page.dart';
import '../pages/my/finance_manage/transaction_record_home_page.dart';
import '../pages/my/finance_manage/transaction_record_search_page.dart';
... ... @@ -887,6 +889,9 @@ var handleCouponEditPageHandler = new Handler(
// String rid = params["rid"].first;
bool isMine =
FluroConvertUtils.string2bool(params["isMine"]!.first as String);
String from= params["from"]?.first as String;
String end = params["end"]?.first as String;
CouponSunModel? couponSunModel;
if (params.keys.contains("couponSunModel")) {
couponSunModel = CouponSunModel.fromJson(json.decode(
... ... @@ -896,7 +901,7 @@ var handleCouponEditPageHandler = new Handler(
return ChangeNotifierProvider<UploadImageProvider>(
create: (_) => UploadImageProvider(),
child: CouponEidtPage(isMine: isMine, couponSunModel: couponSunModel));
child: CouponEidtPage(isMine: isMine,from:from,end:end, couponSunModel: couponSunModel));
});
///选择优惠券
... ... @@ -4180,7 +4185,7 @@ var transactionRecordSearchPageHandle = new Handler(
var transactionRecordDetailPageHandle = new Handler(
handlerFunc: (BuildContext? context, Map<String, List<Object>> params) {
String id = params["id"]!.first as String;
String status= params["status"]!.first as String;
String status = params["status"]!.first as String;
// bool isMine =
// FluroConvertUtils.string2bool(params["isMine"]!.first as String);
// CouponSunModel? couponSunModel;
... ... @@ -4191,5 +4196,61 @@ var transactionRecordDetailPageHandle = new Handler(
// }
return ChangeNotifierProvider<FinanceProvider>(
create: (_) => FinanceProvider(), child: TransactionRecordDetailPage(status:status,id:id));
create: (_) => FinanceProvider(),
child: TransactionRecordDetailPage(status: status, id: id));
});
///支付返券
var paymentGiftPageHandle = new Handler(
handlerFunc: (BuildContext? context, Map<String, List<Object>> params) {
// String id = params["id"]!.first as String;
// String status = params["status"]!.first as String;
// bool isMine =
// FluroConvertUtils.string2bool(params["isMine"]!.first as String);
// CouponSunModel? couponSunModel;
// if (params.keys.contains("couponSunModel")) {
// couponSunModel = CouponSunModel.fromJson(json.decode(
// FluroConvertUtils.fluroCnParamsDecode(
// params["couponSunModel"]!.first as String)));
// }
return ChangeNotifierProvider<FinanceProvider>(
create: (_) => FinanceProvider(), child: PaymentGiftPage());
});
// /选择优惠券
// var paymentGiftSelectPageHandle = new Handler(
// handlerFunc: (BuildContext? context, Map<String, List<Object>> params) {
// String from = params["from"]!.first as String;
// bool hasModify =
// FluroConvertUtils.string2bool(params["hasModify"]!.first as String);
// return PaymentGiftSelectPage(from: from, hasModify: hasModify);
// });
///收银管理---支付返券选择优惠券
var paymentGiftSelectPageHandle = new Handler(
handlerFunc: (BuildContext? context, Map<dynamic, List<Object>> params) {
// String idstr = params["idstr"].first;dfdf
String type = params["type"]!.first as String;
String from= params["from"]!.first as String;
String end = params["end"]!.first as String;
List<CouponSunModel> res = [];
if (params.keys.contains('object')) {
Map object =
FluroConvertUtils.string2map(params["object"]!.first as String)!;
List temp = object['object'];
for (var item in temp) {
res.add(CouponSunModel.fromJson(item));
}
}
bool mulSelect =
FluroConvertUtils.string2bool(params["mulSelect"]!.first as String);
// NotebookDetail detailEntity = NotebookDetail.fromJson(json
// .decode(FluroConvertUtils.fluroCnParamsDecode(params["detail"].first)));
return ChangeNotifierProvider<MarketingCenterProvider>(
create: (_) => MarketingCenterProvider(),
child: PaymentGiftSelectPage(
type: type, couponList: res, mulSelect: mulSelect,from :from,end:end));
});
... ...
... ... @@ -414,7 +414,14 @@ class Routes {
"/transaction_record_search_page"; //自定义查询
static String transaction_record_detail_page =
"/transaction_record_detail_page"; //订单消费详情
static String payment_gift_page =
"/payment_gift_page"; //支付返券
static String payment_gift_select_page =
"/payment_gift_select_page"; //支付返券选择券页面(免费代金券)
static void configureRoutes(FluroRouter router) {
router.notFoundHandler = new Handler(
... ... @@ -785,6 +792,13 @@ class Routes {
handler: transactionRecordSearchPageHandle);
router.define(transaction_record_detail_page,
handler: transactionRecordDetailPageHandle);
router.define(payment_gift_page,
handler: paymentGiftPageHandle);
router.define(payment_gift_select_page,
handler:paymentGiftSelectPageHandle);
}
... ...