Commit 1ee103c3e5edb42a0b864f2c603e7eb8c11446b0

Authored by wdn127929
1 parent 23ffcc2c

会员充值优惠活动ok

... ... @@ -14,16 +14,16 @@ if (flutterRoot == null) {
def flutterVersionCode = "471"
def flutterVersionCode = "472"
if (flutterVersionCode == null) {
flutterVersionCode = '471'
flutterVersionCode = '472'
}
def flutterVersionName = "4.7.1"
def flutterVersionName = "4.7.2"
if (flutterVersionName == null) {
flutterVersionName = '4.7.1'
flutterVersionName = '4.7.2'
}
... ...
... ... @@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_picker/flutter_picker.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/models/coupon_model.dart';
import 'package:one_key/provider/coupon_provider.dart';
import 'package:one_key/provider/user_model.dart';
... ... @@ -17,13 +18,17 @@ import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
import '../../widgets/page_exception.dart';
/**
* 新建券
*/
class CouponDetailPage extends StatefulWidget {
final CouponSunModel couponSunModel;
CouponDetailPage({Key key, this.couponSunModel}) : super(key: key);
final String idstr;
CouponDetailPage({Key key, this.couponSunModel, this.idstr})
: super(key: key);
@override
_CouponDetailPageState createState() => _CouponDetailPageState();
... ... @@ -33,14 +38,33 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
ScrollController controller = ScrollController();
final heightCell = ScreenUtil().setWidth(80);
CouponProvider couponProvider;
PageState pageState = PageState.Loading;
@override
void initState() {
super.initState();
if(widget.couponSunModel == null){
WidgetsBinding.instance.addPostFrameCallback((_) {
if (widget.idstr != null && widget.idstr != 'null') {
_getActivityById();
} else {
couponProvider.couponSunModel = widget.couponSunModel;
pageState = PageState.Success;
setState(() {});
}
});
}
_getActivityById() async {
pageState = PageState.Loading;
bool success =
await couponProvider.getActivityById(context, {'id': widget.idstr});
if (success) {
pageState = PageState.Success;
} else {
pageState = PageState.ConnectivityError;
}
setState(() {});
}
///时间选择
... ... @@ -123,121 +147,145 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
Widget build(BuildContext context) {
couponProvider = Provider.of<CouponProvider>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar(
'优惠券详情',
onTap: () {
Navigator.pop(context);
},
),
body: Column(children: [
Expanded(
child: SingleChildScrollView(
controller: controller,
physics: BouncingScrollPhysics(),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(32)),
child: Column(
children: [
VEmptyView(56),
_item(
'券类型',
widget.couponSunModel.isType == '1'
? widget.couponSunModel.isExamine == '1'
? '店铺优惠券(核销券)'
: '店铺优惠券'
: '我的优惠券'),
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_item('券名称', widget.couponSunModel.aname),
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_item('券要求', widget.couponSunModel.desc),
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_item(
'有效期从',
Utils.getDateStrFromJiekou(
widget.couponSunModel.stime)),
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_item(
'有效期至',
Utils.getDateStrFromJiekou(
widget.couponSunModel.etime)),
widget.couponSunModel.isType == '1'
? Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_item('创建人', widget.couponSunModel.uid),
],
)
: SizedBox(),
widget.couponSunModel.isType == '1'
? Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_select(
'谁可以发放',
'查看',
() async {
await NavigatorUtil.goCouponToPersonnalPage(
context, widget.couponSunModel.uidList,
onlyShow: true);
},
)
],
)
: SizedBox(),
widget.couponSunModel.explain != null &&
widget.couponSunModel.explain != ''
? Container(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar(
'优惠券详情',
onTap: () {
Navigator.pop(context);
},
),
body: Consumer<CouponProvider>(builder: (context, model, _) {
if (pageState != PageState.Success) {
return ExceptionPage(
pageState: pageState,
callback: () {
_getActivityById();
},
emptyMsg: "暂时没有数据哦,",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
);
} else {
return Column(children: [
Expanded(
child: SingleChildScrollView(
controller: controller,
physics: BouncingScrollPhysics(),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(32)),
child: Column(
children: [
VEmptyView(56),
_item(
'券类型',
couponProvider.couponSunModel.isType == '1'
? couponProvider.couponSunModel.isExamine ==
'1'
? '店铺优惠券(核销券)'
: '店铺优惠券'
: '我的优惠券'),
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
)
: SizedBox(),
widget.couponSunModel.explain != null &&
widget.couponSunModel.explain != ''
? VEmptyView(24)
: SizedBox(),
widget.couponSunModel.explain != null &&
widget.couponSunModel.explain != ''
? _item('券说明', widget.couponSunModel.explain)
: SizedBox(),
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_item('券状态',
widget.couponSunModel.status == '1' ? '发放中' : '停用')
],
))),
)
]),
);
),
VEmptyView(24),
_item('券名称', couponProvider.couponSunModel.aname),
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_item('券要求', couponProvider.couponSunModel.desc),
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_item(
'有效期从',
Utils.getDateStrFromJiekou(
couponProvider.couponSunModel.stime)),
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_item(
'有效期至',
Utils.getDateStrFromJiekou(
couponProvider.couponSunModel.etime)),
couponProvider.couponSunModel.isType == '1'
? Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_item('创建人',
couponProvider.couponSunModel.uid),
],
)
: SizedBox(),
couponProvider.couponSunModel.isType == '1'
? Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_select(
'谁可以发放',
'查看',
() async {
await NavigatorUtil
.goCouponToPersonnalPage(
context,
couponProvider
.couponSunModel.uidList,
onlyShow: true);
},
)
],
)
: SizedBox(),
couponProvider.couponSunModel.explain != null &&
couponProvider.couponSunModel.explain != ''
? Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
)
: SizedBox(),
couponProvider.couponSunModel.explain != null &&
couponProvider.couponSunModel.explain != ''
? VEmptyView(24)
: SizedBox(),
couponProvider.couponSunModel.explain != null &&
couponProvider.couponSunModel.explain != ''
? _item('券说明',
couponProvider.couponSunModel.explain)
: SizedBox(),
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
_item(
'券状态',
couponProvider.couponSunModel.status == '1'
? '发放中'
: '停用')
],
))),
)
]);
}
}));
}
}
... ...
... ... @@ -315,8 +315,9 @@ class _RechargeDetailPageState extends State<RechargeDetailPage> {
.map((e) {
return InkWell(
onTap: () {
// NavigatorUtil.goCouponDetailPage(
// conetxt);
NavigatorUtil.goCouponDetailPage(
context, null,
idStr: e.id);
},
child: Text(
e.aname,
... ... @@ -371,13 +372,16 @@ class _RechargeDetailPageState extends State<RechargeDetailPage> {
'1')
Align(
alignment: Alignment.centerRight,
child: Text(
marketingCenterProvider
.rechargeDetail.expDate.weekDateShow,
style: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(32)),
)),
child: Padding(
padding: EdgeInsets.only(right: w(16)),
child: Text(
marketingCenterProvider
.rechargeDetail.expDate.weekDateShow,
maxLines: 10,
style: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(32)),
))),
VEmptyView(24),
MyDivider(
double.infinity,
... ...
... ... @@ -2,6 +2,7 @@ import 'dart:convert';
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
import 'package:flutter_picker/Picker.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/coupon_model.dart';
... ... @@ -59,7 +60,7 @@ class _RechargeEditPageState extends State<RechargeEditPage> {
List<FilterBtnModel> weekData = [];
String weekShow = '点击设置可用日期';
bool canUse = false;
bool canUse = true;
List<dynamic> coupons = [];
List<dynamic> selectIDs = [];
... ... @@ -463,7 +464,8 @@ class _RechargeEditPageState extends State<RechargeEditPage> {
Widget build(BuildContext context) {
marketingCenterProvider =
Provider.of<MarketingCenterProvider>(context, listen: true);
return Scaffold(
return KeyboardDismissOnTap(
child: Scaffold(
key: scaffoldKey,
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar('充值优惠详情'),
... ... @@ -710,6 +712,8 @@ class _RechargeEditPageState extends State<RechargeEditPage> {
if (giveCouponsSwich)
InkWell(
onTap: () async {
FocusScope.of(context)
.requestFocus(FocusNode());
Map object = await NavigatorUtil
.goRechargeSelectStoreCouponPage(
context, selectIDs.join(','));
... ... @@ -1094,6 +1098,6 @@ class _RechargeEditPageState extends State<RechargeEditPage> {
)
],
),
);
));
}
}
... ...
... ... @@ -144,6 +144,12 @@ class _RechargeHomePageState extends State<RechargeHomePage> {
setState(() {
marketingCenterProvider.rechargeList
.removeAt(index);
if (marketingCenterProvider
.rechargeList.length ==
0) {
model.pageStateRechargeHome =
PageState.Empty;
}
});
}
});
... ...
... ... @@ -31,6 +31,7 @@ class CouponProvider with ChangeNotifier {
List<CouponSunModel> couponList = []; //优惠券列表
List<CouponSunModel> couponListSelect = []; //优惠券选择列表
int index = 0; //选中的优惠券index
CouponSunModel couponSunModel; //优惠券详情
CouponProvider() {
// for (int i = 0; i < 20; i++) {
... ... @@ -621,6 +622,40 @@ class CouponProvider with ChangeNotifier {
}
}
///客户经理优惠券信息
Future<bool> getActivityById(BuildContext context, Map<String, String> params,
{isShowLoading = true}) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.get_activity_by_id,
data: params, showLoading: isShowLoading)
.catchError((error) {
print(error.toString());
if (error is MyError) {}
return false;
});
if (baseResp.code == Constant.status_success) {
if (baseResp.data == null) {
return false;
} else {
List<CouponSunModel> coupon =
CouponModel.fromJson(baseResp.responseData).data;
if (coupon.length > 0) {
couponSunModel = coupon[0];
return true;
}
return false;
}
} else {
if (baseResp != null) {
Utils.showToast(baseResp.msg ?? "");
}
return false;
}
}
///预定安排微信发短信
Future<bool> sendSMSWxSendSms(
BuildContext context, Map<String, String> params,
... ...
... ... @@ -215,4 +215,7 @@ class MarketingCenterProvider extends ChangeNotifier {
notifyListeners();
return false;
}
}
... ...
... ... @@ -277,9 +277,9 @@ class NavigatorUtil {
/// 优惠券详情页
static Future<dynamic> goCouponDetailPage(
BuildContext context, CouponSunModel couponSunModel,
{replace = false}) {
{replace = false,String idStr}) {
return _navigateTo(context,
"${Routes.coupon_detail}?couponSunModel=${FluroConvertUtils.object2string(couponSunModel)}",
"${Routes.coupon_detail}?couponSunModel=${FluroConvertUtils.object2string(couponSunModel)}&idStr=$idStr",
replace: replace);
}
... ...
import 'dart:convert';
import 'package:fluro/fluro.dart';
... ... @@ -574,10 +575,14 @@ var handleCouponSelectPageHandler = new Handler(
///优惠券详情页
var handleCouponDetailPageHandler = new Handler(
handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
CouponSunModel couponSunModel = CouponSunModel.fromJson(json.decode(
FluroConvertUtils.fluroCnParamsDecode(params["couponSunModel"].first)));
String idStr = params["idStr"].first;
CouponSunModel couponSunModel;
if (idStr == null || idStr == 'null') {
couponSunModel = CouponSunModel.fromJson(json.decode(
FluroConvertUtils.fluroCnParamsDecode(params["couponSunModel"].first)));
}
return CouponDetailPage(couponSunModel: couponSunModel);
return CouponDetailPage(couponSunModel: couponSunModel, idstr: idStr);
});
///个人资料页面
... ... @@ -2398,7 +2403,7 @@ var markingCouponSelectPageHandle = new Handler(
// .decode(FluroConvertUtils.fluroCnParamsDecode(params["detail"].first)));
return ChangeNotifierProvider<MarketingCenterProvider>(
create: (_) => MarketingCenterProvider(),
child: MarkingCouponSelectPage(selectid:idstr));
child: MarkingCouponSelectPage(selectid: idstr));
});
//我的----营销中心-预订安排预览页
... ...