Commit 646dbe443922cbc67143f0d35b3f431517eaae27

Authored by wdn127929
1 parent 94cef44b

付费券可复用&&不可用日期灵活使用

///title 和select
class FilterBtnModel {
String? id;
... ... @@ -10,6 +9,8 @@ class FilterBtnModel {
bool? selectMor = false;
bool? selectNoon = false;
bool? selectNig = false;
bool? selectMeal1 = false;
bool? selectMeal2 = false;
FilterBtnModel();
... ... @@ -22,7 +23,9 @@ class FilterBtnModel {
..account = json["account"]
..selectMor = json["selectMor"]
..selectNoon = json["selectNoon"]
..selectNig = json["selectNig"];
..selectNig = json["selectNig"]
..selectMeal1 = json["selectMeal1"]
..selectMeal2 = json["selectMeal2"];
Map<String, dynamic> toJson() => <String, dynamic>{
"id": id,
... ... @@ -33,6 +36,8 @@ class FilterBtnModel {
'account': account,
'selectMor': selectMor,
'selectNoon': selectNoon,
'selectNig': selectNig
'selectNig': selectNig,
'selectMeal1': selectMeal1,
'selectMeal2': selectMeal2,
};
}
... ...
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
... ... @@ -301,7 +300,7 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
// imgs[0] = 'http://nosqn.colorcun.com/app/seller-hj-empty.png';
// }
Utils.setBarStatus(false, color: Colors.black);
await showGeneralDialog(
await showGeneralDialog(
context: context,
barrierDismissible: false,
// barrierColor: Colors.red,
... ... @@ -403,7 +402,7 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
color: MyColours.color_E7E7E7,
),
VEmptyView(24),
if (couponProvider.couponSunModel!.isType == '1' ||
couponProvider.couponSunModel!.isType == '3' ||
couponProvider.couponSunModel!.isType == '4')
... ... @@ -411,7 +410,8 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
children: [
_canUse(
'是否核销',
couponProvider.couponSunModel!.isExamine ==
couponProvider
.couponSunModel!.isExamine ==
'1'
? true
: false),
... ... @@ -451,11 +451,11 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
'券用途',
couponProvider.couponSunModel!.use!.isCash
? '代金券'
: couponProvider
.couponSunModel!.use!.isDiscount
: couponProvider.couponSunModel!.use!
.isDiscount
? '折扣券'
: couponProvider
.couponSunModel!.use!.isDish
: couponProvider.couponSunModel!
.use!.isDish
? '菜品券'
: ''),
Container(
... ... @@ -466,22 +466,24 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
_item(
couponProvider.couponSunModel!.use!.isCash
? '金额'
: couponProvider
.couponSunModel!.use!.isDiscount
: couponProvider.couponSunModel!.use!
.isDiscount
? '折扣率'
: couponProvider
.couponSunModel!.use!.isDish
: couponProvider.couponSunModel!
.use!.isDish
? '菜品'
: '',
couponProvider.couponSunModel!.use!.isCash
? '${couponProvider.couponSunModel!.use!.cash}元'
: couponProvider
.couponSunModel!.use!.isDiscount
: couponProvider.couponSunModel!.use!
.isDiscount
? '${couponProvider.couponSunModel!.use!.discount}折'
: couponProvider
.couponSunModel!.use!.isDish
: couponProvider.couponSunModel!
.use!.isDish
? couponProvider
.couponSunModel!.use!.dish!
.couponSunModel!
.use!
.dish!
: ''),
if (couponProvider
.couponSunModel!.use!.isDish &&
... ... @@ -505,7 +507,7 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
couponProvider.couponSunModel!.isType == '1' ||
couponProvider.couponSunModel!.isType ==
'2'
? couponProvider.couponSunModel!.desc??''
? couponProvider.couponSunModel!.desc ?? ''
: '消费满${couponProvider.couponSunModel!.desc}元可用'),
Container(
height: ScreenUtil().setWidth(2),
... ... @@ -533,8 +535,10 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
VEmptyView(24),
if (couponProvider.couponSunModel!.isType == '3' ||
couponProvider.couponSunModel!.isType == '4')
_item('领取后有效天数',
couponProvider.couponSunModel!.aexpiration??''),
_item(
'领取后有效天数',
couponProvider.couponSunModel!.aexpiration ??
''),
if ((couponProvider.couponSunModel!.isType == '3' ||
couponProvider.couponSunModel!.isType ==
... ... @@ -548,8 +552,9 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
VEmptyView(24),
_item(
'不可用日期',
couponProvider
.couponSunModel!.expDate!.weekShow??''),
couponProvider.couponSunModel!.expDate!
.weekShow ??
''),
Container(
height: ScreenUtil().setWidth(2),
color: MyColours.color_E7E7E7,
... ... @@ -566,10 +571,11 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
VEmptyView(24),
_item(
'使用限制',
couponProvider.couponSunModel!.expDate!.isNone
couponProvider
.couponSunModel!.expDate!.isNone
? '无'
: couponProvider.couponSunModel!.expDate!
.isBirthday
: couponProvider.couponSunModel!
.expDate!.isBirthday
? '会员生日当天'
: couponProvider.couponSunModel!
.expDate!.isWeek
... ... @@ -582,8 +588,8 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
child: Padding(
padding: EdgeInsets.only(left: w(16)),
child: Text(
couponProvider
.couponSunModel!.expDate!.weekShow!,
couponProvider.couponSunModel!
.expDate!.weekShow!,
textAlign: TextAlign.left,
style: TextStyle(
height: 1.5,
... ... @@ -635,8 +641,8 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
children: [
_canUse(
'领取当日可用',
couponProvider.couponSunModel!.arule!
.isSameDay),
couponProvider.couponSunModel!
.arule!.isSameDay),
_canUse(
'可以叠加使用其他优惠券',
couponProvider.couponSunModel!.arule!
... ... @@ -644,8 +650,8 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
),
_canUse(
'可使用包间',
couponProvider.couponSunModel!.arule!
.isCompartment),
couponProvider.couponSunModel!
.arule!.isCompartment),
_canUse(
'堂食可用',
couponProvider
... ... @@ -653,12 +659,12 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
),
_canUse(
'外带可用',
couponProvider.couponSunModel!.arule!
.isTakeout),
couponProvider.couponSunModel!
.arule!.isTakeout),
_canUse(
'是否需要提前预约',
couponProvider.couponSunModel!.arule!
.isAppointment),
couponProvider.couponSunModel!
.arule!.isAppointment),
],
),
),
... ... @@ -682,12 +688,12 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
children: [
_canUse(
'用户可以分享给好友',
couponProvider.couponSunModel!.arule!
.isShareLose),
couponProvider.couponSunModel!
.arule!.isShareLose),
_canUse(
'用户分享给好友后继续拥有此券',
couponProvider
.couponSunModel!.arule!.isShareHave,
couponProvider.couponSunModel!.arule!
.isShareHave,
),
// _canUse(
// '分享核销后,分享用户获得佣金',
... ... @@ -756,8 +762,10 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
: SizedBox(),
couponProvider.couponSunModel!.explain != null &&
couponProvider.couponSunModel!.explain != ''
? _item('券说明',
couponProvider.couponSunModel!.explain??'')
? _item(
'券说明',
couponProvider.couponSunModel!.explain ??
'')
: SizedBox(),
Container(
height: ScreenUtil().setWidth(2),
... ... @@ -864,7 +872,7 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
if (couponProvider.couponSunModel!.liteQrcode != null)
HEmptyView(30),
if (couponProvider.couponSunModel!.isType == '3' ||
couponProvider.couponSunModel!.isType == '4')
couponProvider.couponSunModel!.isType == '1')
RoundButton(
text: '复用',
width: w(100),
... ... @@ -877,19 +885,38 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
isBold: true,
fontSize: 28,
onPressed: () async {
//复用,跳转至编辑页面
dynamic needRefresh =
await NavigatorUtil.goCouponEditPage(context,
isMine:
couponProvider.couponSunModel!.isType ==
'4'
? false
: true,
couponSunModel:
couponProvider.couponSunModel);
if (needRefresh != null && needRefresh) {
if (Navigator.canPop(context)) {
Navigator.pop(context);
if (couponProvider.couponSunModel!.isType == '3') {
//复用,跳转至编辑页面
dynamic needRefresh =
await NavigatorUtil.goCouponEditPage(context,
isMine: couponProvider
.couponSunModel!.isType ==
'1'
? false
: true,
couponSunModel:
couponProvider.couponSunModel);
if (needRefresh != null && needRefresh) {
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
}
} else {
//复用,跳转至编辑页面
dynamic needRefresh =
await NavigatorUtil.goCouponEditPayPage(
context,
isMine: couponProvider
.couponSunModel!.isType ==
'1'
? false
: true,
couponSunModel:
couponProvider.couponSunModel);
if (needRefresh != null && needRefresh) {
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
}
}
},
... ... @@ -908,7 +935,8 @@ class _CouponDetailPageState extends State<CouponDetailPage> {
return;
}
if (couponProvider.couponSunModel!.status == '1') {
if (couponProvider.couponSunModel!.isType == '3') {
if (couponProvider.couponSunModel!.isType ==
'3') {
Utils.goShareBuyCouponToWeChat(
context,
widget.idstr,
... ...
... ... @@ -6,6 +6,7 @@ import 'package:flutter/services.dart';
// import 'package:flutter_picker_plus/flutter_picker_plus.dart';
import 'package:flutter_picker_plus/flutter_picker_plus.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/meal_day_date_model.dart';
import 'package:one_key/provider/coupon_provider.dart';
import 'package:one_key/provider/user_model.dart';
... ... @@ -24,6 +25,7 @@ import 'package:provider/provider.dart';
import '../../models/coupon_model.dart';
import '../../models/filter_btn_model.dart';
import '../../models/upload_img_model.dart';
import '../../provider/store_base_info_provider.dart';
import '../../provider/upload_img_provider.dart';
import '../../utils/screen_util.dart';
import '../../utils/upload_image_util.dart';
... ... @@ -94,10 +96,11 @@ class _CouponEidtPageState extends State<CouponEidtPage> {
List<FilterBtnModel> weekData = [];
// morning == "00:00-00:00"
String? morning;
String? noon;
String? night;
// String morning = "00:00-00:00";
// String noon = "00:00-00:00";
// String night = "00:00-00:00";
// String meal1 = "00:00-00:00";
// String meal2 = "00:00-00:00";
UploadImageProvider? _uploadImageProvider;
List<UploadImgModel> img = [];
... ... @@ -117,6 +120,8 @@ class _CouponEidtPageState extends State<CouponEidtPage> {
bool isShareHave = true; //分享好友后继续拥有此券
// bool isCommission = true; //返佣金
late StoreBaseIndoProvider storeBaseIndoProvider;
@override
void initState() {
super.initState();
... ... @@ -220,6 +225,7 @@ class _CouponEidtPageState extends State<CouponEidtPage> {
swichState = widget.couponSunModel!.status == '1' ? true : false;
_priceControl.text = widget.couponSunModel!.price;
_limitDay.text = widget.couponSunModel!.aexpiration ?? '';
isSameDay = widget.couponSunModel!.arule!.isSameDay;
isAccumulation = widget.couponSunModel!.arule!.isAccumulation;
... ... @@ -266,6 +272,7 @@ class _CouponEidtPageState extends State<CouponEidtPage> {
WidgetsBinding.instance.addPostFrameCallback((_) {
// _couponNetworkData(0);
getMealSectionByDay();
if (weekData.length == 0) {
_initWeekData();
}
... ... @@ -281,6 +288,16 @@ class _CouponEidtPageState extends State<CouponEidtPage> {
_uploadImageProvider!.qiniuInfoSunModel!.token = null;
}
getMealSectionByDay({bool showLoading = false}) async {
Map<String, String?> pramas = {
'sellerid': Provider.of<UserModel>(context, listen: false).user!.sellerid,
'day':
'${DateTime.now().year}-${Utils.addZeroNumber(DateTime.now().month)}-${Utils.addZeroNumber(DateTime.now().day)}'
};
await storeBaseIndoProvider.getMealSectionByDay(context, pramas,
showLoading: showLoading);
}
///获取七牛云token
///
_getQiniuInfo() async {
... ... @@ -861,6 +878,9 @@ class _CouponEidtPageState extends State<CouponEidtPage> {
couponProvider = Provider.of<CouponProvider>(context, listen: true);
_uploadImageProvider =
Provider.of<UploadImageProvider>(context, listen: true);
storeBaseIndoProvider =
Provider.of<StoreBaseIndoProvider>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
key: scaffoldKey,
... ... @@ -1242,51 +1262,185 @@ class _CouponEidtPageState extends State<CouponEidtPage> {
VEmptyView(24),
_select('不可用日期', weekShow, () async {
if (storeBaseIndoProvider.dayDateData == null ||
storeBaseIndoProvider.dayDateData?.length ==
0) {
await getMealSectionByDay(showLoading: true);
}
FocusScope.of(context)
.requestFocus(FocusNode()); //点击空白处隐藏键盘
//弹出时间选择器
// showPickerDateTime(context);
showDateSelWidget = false;
List<FilterBtnModel> data = await DialogUtil
List<FilterBtnModel>? data = await DialogUtil
.openCoponsWeekSelectModalBottomSheet(
context, weekData);
context,
weekData,
storeBaseIndoProvider.dayDateData ??
[]);
if (data != null) {
//改变了
weekData = [];
weekData.addAll(data);
weekShow = '';
String noonStr = '午餐:';
String nightStr = '晚餐:';
if (weekData.every((e) =>
e.selectMor == false &&
e.selectNoon == false &&
e.selectNig == false &&
e.selectMeal1 == false &&
e.selectMeal2 == false)) {
weekShow = '无';
} else {
String? morStr;
if (weekData
.any((e) => e.selectMor == true)) {
//有选中的早餐
List<MealDayDateSunModel>? mortemp =
storeBaseIndoProvider.dayDateData
?.where((e) => e.ddateSolt == '1')
.toList();
morStr = (mortemp != null &&
mortemp.length > 0)
? '${mortemp[0].mname}:'
: '早餐:';
}
weekData.forEach((element) {
if (element.selectNoon!) {
noonStr += '${element.title} ';
String? noonStr;
if (weekData
.any((e) => e.selectNoon == true)) {
//有选中的午餐
List<MealDayDateSunModel>? mortemp =
storeBaseIndoProvider.dayDateData
?.where((e) => e.ddateSolt == '2')
.toList();
noonStr = (mortemp != null &&
mortemp.length > 0)
? '${mortemp[0].mname}:'
: '午餐:';
}
if (element.selectNig!) {
nightStr += '${element.title} ';
String? nigStr;
if (weekData
.any((e) => e.selectNig == true)) {
//有选中的晚餐
List<MealDayDateSunModel>? mortemp =
storeBaseIndoProvider.dayDateData
?.where((e) => e.ddateSolt == '3')
.toList();
nigStr = (mortemp != null &&
mortemp.length > 0)
? '${mortemp[0].mname}:'
: '晚餐:';
}
String? meal1Str;
if (weekData
.any((e) => e.selectMeal1 == true)) {
//有选中的晚餐1
List<MealDayDateSunModel>? mortemp =
storeBaseIndoProvider.dayDateData
?.where((e) => e.ddateSolt == '4')
.toList();
meal1Str = (mortemp != null &&
mortemp.length > 0)
? '${mortemp[0].mname}:'
: '晚餐1:';
}
String? meal2Str;
if (weekData
.any((e) => e.selectMeal2 == true)) {
//有选中的晚餐2
List<MealDayDateSunModel>? mortemp =
storeBaseIndoProvider.dayDateData
?.where((e) => e.ddateSolt == '5')
.toList();
meal2Str = (mortemp != null &&
mortemp.length > 0)
? '${mortemp[0].mname}:'
: '晚餐2:';
}
});
if (noonStr.endsWith(' ')) {
noonStr = noonStr.substring(
0, noonStr.length - 1);
}
if (nightStr.endsWith(' ')) {
nightStr = nightStr.substring(
0, nightStr.length - 1);
}
if (noonStr == '午餐:' && nightStr == '晚餐:') {
weekShow = '无';
} else {
if (noonStr != '午餐:' && nightStr != '晚餐:') {
weekShow = noonStr + '\n' + nightStr;
} else if (noonStr != '午餐:') {
weekShow = noonStr;
} else {
weekShow = nightStr;
weekData.forEach((element) {
if (morStr != null &&
element.selectMor!) {
morStr = morStr! + '${element.title} ';
}
if (noonStr != null &&
element.selectNoon!) {
noonStr =
noonStr! + '${element.title} ';
}
if (nigStr != null &&
element.selectNig!) {
nigStr = nigStr! + '${element.title} ';
}
if (meal1Str != null &&
element.selectMeal1!) {
meal1Str =
meal1Str! + '${element.title} ';
}
if (meal2Str != null &&
element.selectMeal2!) {
meal2Str =
meal2Str! + '${element.title} ';
}
});
if (morStr != null) {
if (morStr!.endsWith(' ')) {
morStr = morStr!
.substring(0, morStr!.length - 1);
}
}
if (noonStr != null) {
if (noonStr!.endsWith(' ')) {
noonStr = noonStr!
.substring(0, noonStr!.length - 1);
}
}
if (nigStr != null) {
if (nigStr!.endsWith(' ')) {
nigStr = nigStr!
.substring(0, nigStr!.length - 1);
}
}
if (meal1Str != null) {
if (meal1Str!.endsWith(' ')) {
meal1Str = meal1Str!
.substring(0, meal1Str!.length - 1);
}
}
if (meal2Str != null) {
if (meal2Str!.endsWith(' ')) {
meal2Str = meal2Str!
.substring(0, meal2Str!.length - 1);
}
}
String show = '';
if (morStr != null) {
show += morStr!;
}
if (noonStr != null) {
show += ('\n' + noonStr!);
}
if (nigStr != null) {
show += ('\n' + nigStr!);
}
if (meal1Str != null) {
show += ('\n' + meal1Str!);
}
if (meal2Str != null) {
show += ('\n' + meal2Str!);
}
weekShow = show;
}
setState(() {});
... ... @@ -1608,7 +1762,7 @@ class _CouponEidtPageState extends State<CouponEidtPage> {
return;
}
// 券开始早于活动开始 && 券结束大于活动结束
if (widget.from != null&& widget.from != 'null') {
if (widget.from != null && widget.from != 'null') {
if (DateUtil.getDateTime(fromDate)
.compareTo(DateUtil.getDateTime(widget.from!)) >
0) {
... ...
... ... @@ -24,7 +24,9 @@ import 'package:provider/provider.dart';
import '../../models/coupon_model.dart';
import '../../models/filter_btn_model.dart';
import '../../models/meal_day_date_model.dart';
import '../../models/upload_img_model.dart';
import '../../provider/store_base_info_provider.dart';
import '../../provider/upload_img_provider.dart';
import '../../utils/screen_util.dart';
import '../../utils/upload_image_util.dart';
... ... @@ -84,15 +86,19 @@ class _CouponEidtPayPageState extends State<CouponEidtPayPage> {
List<FilterBtnModel> weekData = [];
// morning == "00:00-00:00"
String? morning;
String? noon;
String? night;
// String morning = "00:00-00:00";
// String noon = "00:00-00:00";
// String night = "00:00-00:00";
// String meal1 = "00:00-00:00";
// String meal2 = "00:00-00:00";
UploadImageProvider? _uploadImageProvider;
List<UploadImgModel> img = [];
List<String> imgAll = [];
late StoreBaseIndoProvider storeBaseIndoProvider;
@override
void initState() {
super.initState();
... ... @@ -233,6 +239,7 @@ class _CouponEidtPayPageState extends State<CouponEidtPayPage> {
WidgetsBinding.instance.addPostFrameCallback((_) {
// _couponNetworkData(0);
getMealSectionByDay();
if (weekData.length == 0) {
_initWeekData();
}
... ... @@ -248,6 +255,18 @@ class _CouponEidtPayPageState extends State<CouponEidtPayPage> {
_uploadImageProvider!.qiniuInfoSunModel!.token = null;
}
getMealSectionByDay({bool needInit = true, bool showLoading = false}) async {
Map<String, String?> pramas = {
'sellerid': Provider.of<UserModel>(context, listen: false).user!.sellerid,
'day':
'${DateTime.now().year}-${Utils.addZeroNumber(DateTime.now().month)}-${Utils.addZeroNumber(DateTime.now().day)}'
};
await storeBaseIndoProvider.getMealSectionByDay(context, pramas,
showLoading: showLoading);
}
///获取七牛云token
///
_getQiniuInfo() async {
... ... @@ -407,10 +426,11 @@ class _CouponEidtPayPageState extends State<CouponEidtPayPage> {
//输入文本的样式
inputFormatters: title == '券名称'
? [LengthLimitingTextInputFormatter(15)]
:title == '销售价'? [
FilteringTextInputFormatter.allow(
RegExp("[0-9.]")),
]: [],
: title == '销售价'
? [
FilteringTextInputFormatter.allow(RegExp("[0-9.]")),
]
: [],
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setSp(32),
... ... @@ -773,6 +793,8 @@ class _CouponEidtPayPageState extends State<CouponEidtPayPage> {
couponProvider = Provider.of<CouponProvider>(context, listen: true);
_uploadImageProvider =
Provider.of<UploadImageProvider>(context, listen: true);
storeBaseIndoProvider =
Provider.of<StoreBaseIndoProvider>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
key: scaffoldKey,
... ... @@ -1200,54 +1222,207 @@ class _CouponEidtPayPageState extends State<CouponEidtPayPage> {
if (limitWeek)
_select1(weekShow, '', () async {
if (storeBaseIndoProvider.dayDateData ==
null ||
storeBaseIndoProvider
.dayDateData?.length ==
0) {
await getMealSectionByDay(
showLoading: true);
}
FocusScope.of(context).requestFocus(
FocusNode()); //点击空白处隐藏键盘
//弹出时间选择器
// showPickerDateTime(context);
showDateSelWidget = false;
List<FilterBtnModel> data = await DialogUtil
.openCoponsWeekSelectModalBottomSheet(
context, weekData);
List<FilterBtnModel>? data =
await DialogUtil
.openCoponsWeekSelectModalBottomSheet(
context,
weekData,
storeBaseIndoProvider
.dayDateData ??
[]);
if (data != null) {
//改变了
weekData = [];
weekData.addAll(data);
weekShow = '';
String noonStr = '午餐:';
String nightStr = '晚餐:';
if (weekData.every((e) =>
e.selectMor == false &&
e.selectNoon == false &&
e.selectNig == false &&
e.selectMeal1 == false &&
e.selectMeal2 == false)) {
weekShow = '无';
} else {
String? morStr;
if (weekData.any(
(e) => e.selectMor == true)) {
//有选中的早餐
List<MealDayDateSunModel>?
mortemp =
storeBaseIndoProvider
.dayDateData
?.where((e) =>
e.ddateSolt == '1')
.toList();
morStr = (mortemp != null &&
mortemp.length > 0)
? '${mortemp[0].mname}:'
: '早餐:';
}
weekData.forEach((element) {
if (element.selectNoon!) {
noonStr += '${element.title} ';
String? noonStr;
if (weekData.any(
(e) => e.selectNoon == true)) {
//有选中的午餐
List<MealDayDateSunModel>?
mortemp =
storeBaseIndoProvider
.dayDateData
?.where((e) =>
e.ddateSolt == '2')
.toList();
noonStr = (mortemp != null &&
mortemp.length > 0)
? '${mortemp[0].mname}:'
: '午餐:';
}
if (element.selectNig!) {
nightStr += '${element.title} ';
String? nigStr;
if (weekData.any(
(e) => e.selectNig == true)) {
//有选中的晚餐
List<MealDayDateSunModel>?
mortemp =
storeBaseIndoProvider
.dayDateData
?.where((e) =>
e.ddateSolt == '3')
.toList();
nigStr = (mortemp != null &&
mortemp.length > 0)
? '${mortemp[0].mname}:'
: '晚餐:';
}
String? meal1Str;
if (weekData.any(
(e) => e.selectMeal1 == true)) {
//有选中的晚餐1
List<MealDayDateSunModel>?
mortemp =
storeBaseIndoProvider
.dayDateData
?.where((e) =>
e.ddateSolt == '4')
.toList();
meal1Str = (mortemp != null &&
mortemp.length > 0)
? '${mortemp[0].mname}:'
: '晚餐1:';
}
String? meal2Str;
if (weekData.any(
(e) => e.selectMeal2 == true)) {
//有选中的晚餐2
List<MealDayDateSunModel>?
mortemp =
storeBaseIndoProvider
.dayDateData
?.where((e) =>
e.ddateSolt == '5')
.toList();
meal2Str = (mortemp != null &&
mortemp.length > 0)
? '${mortemp[0].mname}:'
: '晚餐2:';
}
});
if (noonStr.endsWith(' ')) {
noonStr = noonStr.substring(
0, noonStr.length - 1);
}
if (nightStr.endsWith(' ')) {
nightStr = nightStr.substring(
0, nightStr.length - 1);
}
if (noonStr == '午餐:' &&
nightStr == '晚餐:') {
weekShow = '点击设置可用日期';
} else {
if (noonStr != '午餐:' &&
nightStr != '晚餐:') {
weekShow =
noonStr + '\n' + nightStr;
} else if (noonStr != '午餐:') {
weekShow = noonStr;
} else {
weekShow = nightStr;
weekData.forEach((element) {
if (morStr != null &&
element.selectMor!) {
morStr = morStr! +
'${element.title} ';
}
if (noonStr != null &&
element.selectNoon!) {
noonStr = noonStr! +
'${element.title} ';
}
if (nigStr != null &&
element.selectNig!) {
nigStr = nigStr! +
'${element.title} ';
}
if (meal1Str != null &&
element.selectMeal1!) {
meal1Str = meal1Str! +
'${element.title} ';
}
if (meal2Str != null &&
element.selectMeal2!) {
meal2Str = meal2Str! +
'${element.title} ';
}
});
if (morStr != null) {
if (morStr!.endsWith(' ')) {
morStr = morStr!.substring(
0, morStr!.length - 1);
}
}
if (noonStr != null) {
if (noonStr!.endsWith(' ')) {
noonStr = noonStr!.substring(
0, noonStr!.length - 1);
}
}
if (nigStr != null) {
if (nigStr!.endsWith(' ')) {
nigStr = nigStr!.substring(
0, nigStr!.length - 1);
}
}
if (meal1Str != null) {
if (meal1Str!.endsWith(' ')) {
meal1Str = meal1Str!.substring(
0, meal1Str!.length - 1);
}
}
if (meal2Str != null) {
if (meal2Str!.endsWith(' ')) {
meal2Str = meal2Str!.substring(
0, meal2Str!.length - 1);
}
}
String show = '';
if (morStr != null) {
show += morStr!;
}
if (noonStr != null) {
show += ('\n' + noonStr!);
}
if (nigStr != null) {
show += ('\n' + nigStr!);
}
if (meal1Str != null) {
show += ('\n' + meal1Str!);
}
if (meal2Str != null) {
show += ('\n' + meal2Str!);
}
weekShow = show;
}
setState(() {});
... ...
... ... @@ -902,11 +902,13 @@ var handleCouponEditPageHandler = new Handler(
return ChangeNotifierProvider<UploadImageProvider>(
create: (_) => UploadImageProvider(),
child: CouponEidtPage(
isMine: isMine,
from: from,
end: end,
couponSunModel: couponSunModel));
child: ChangeNotifierProvider<StoreBaseIndoProvider>(
create: (_) => StoreBaseIndoProvider(),
child: CouponEidtPage(
isMine: isMine,
from: from,
end: end,
couponSunModel: couponSunModel)));
});
///选择优惠券
... ... @@ -4115,7 +4117,10 @@ var couponEidtPayPageHandle = new Handler(
return ChangeNotifierProvider<UploadImageProvider>(
create: (_) => UploadImageProvider(),
child: CouponEidtPayPage(isMine: false, couponSunModel: couponSunModel));
child: ChangeNotifierProvider<StoreBaseIndoProvider>(
create: (_) => StoreBaseIndoProvider(),
child: CouponEidtPayPage(
isMine: false, couponSunModel: couponSunModel)));
});
///收银管理首页
... ... @@ -4254,8 +4259,8 @@ var paymentGiftSelectPageHandle = new Handler(
FluroConvertUtils.string2bool(params["mulSelect"]!.first as String);
// NotebookDetail detailEntity = NotebookDetail.fromJson(json
// .decode(FluroConvertUtils.fluroCnParamsDecode(params["detail"].first)));
return ChangeNotifierProvider< FinanceProvider>(
create: (_) => FinanceProvider(),
return ChangeNotifierProvider<FinanceProvider>(
create: (_) => FinanceProvider(),
child: PaymentGiftSelectPage(
type: type,
couponList: res,
... ... @@ -4267,8 +4272,8 @@ var paymentGiftSelectPageHandle = new Handler(
///企业资料上传
var enterpriseInformationUploadPageHandle = new Handler(
handlerFunc: (BuildContext? context, Map<dynamic, List<Object>> params) {
return ChangeNotifierProvider< FinanceProvider>(
create: (_) => FinanceProvider(),
return ChangeNotifierProvider<FinanceProvider>(
create: (_) => FinanceProvider(),
child: ChangeNotifierProvider<UploadImageProvider>(
create: (_) => UploadImageProvider(),
child: EnterpriseInformationUploadPage()));
... ...
... ... @@ -44,6 +44,7 @@ import '../models/all_cuisine.dart';
import '../models/cookbook_model.dart';
import '../models/customer_label_model.dart';
import '../models/get_reserve_type_field_model.dart';
import '../models/meal_day_date_model.dart';
import '../models/radio_model.dart';
import '../models/seller_template_color_list_model.dart';
import '../models/seller_user_account_type.dart';
... ... @@ -2655,13 +2656,44 @@ class DialogUtil {
}
///优惠券每周早餐午餐晚餐选择
static openCoponsWeekSelectModalBottomSheet(
context, List<FilterBtnModel> weekData,
static openCoponsWeekSelectModalBottomSheet(context,
List<FilterBtnModel> weekData, List<MealDayDateSunModel> dayDateData,
{VoidCallback? lCallback, VoidCallback? rCallback}) async {
List<FilterBtnModel> data = weekData.map((e) {
return FilterBtnModel.fromJson(e.toJson());
}).toList();
if (!(dayDateData.any((e) => e.ddateSolt == '1'))) {
//不存在早餐,data的selectMor = false
data.forEach((v) {
v.selectMor = false;
});
}
if (!(dayDateData.any((e) => e.ddateSolt == '2'))) {
//不存在早餐,data的selectMor = false
data.forEach((v) {
v.selectNoon = false;
});
}
if (!(dayDateData.any((e) => e.ddateSolt == '3'))) {
//不存在早餐,data的selectMor = false
data.forEach((v) {
v.selectNig = false;
});
}
if (!(dayDateData.any((e) => e.ddateSolt == '4'))) {
//不存在早餐,data的selectMor = false
data.forEach((v) {
v.selectMeal1 = false;
});
}
if (!(dayDateData.any((e) => e.ddateSolt == '5'))) {
//不存在早餐,data的selectMor = false
data.forEach((v) {
v.selectMeal2 = false;
});
}
final option = await showModalBottomSheet(
context: context,
backgroundColor: Colors.transparent,
... ... @@ -2744,27 +2776,17 @@ class DialogUtil {
width: w(1),
color: MyColours.color_DBDBDB))),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Spacer(),
Container(
width: w(34),
alignment: Alignment.center,
child: Text('午餐',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(16)))),
HEmptyView(90),
Container(
width: w(34),
alignment: Alignment.center,
child: Text('晚餐',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(16)))),
],
));
mainAxisAlignment: MainAxisAlignment.end,
children: dayDateData.map((e) {
return Container(
width: w(34),
alignment: Alignment.center,
margin: EdgeInsets.only(left: w(20)),
child: Text(e.mname ?? '',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(16))));
}).toList()));
}
return Container(
margin: EdgeInsets.only(bottom: w(7)),
... ... @@ -2781,46 +2803,101 @@ class DialogUtil {
width: w(1),
color: MyColours.color_DBDBDB))),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(data[index - 1].title!,
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(16))),
Spacer(),
InkWell(
onTap: () {
state(() {
data[index - 1].selectNoon =
!data[index - 1].selectNoon!;
});
},
child: Container(
width: w(34),
alignment: Alignment.center,
child: Image.asset(
Utils.getImgPath(
data[index - 1].selectNoon!
? 'c_mul_select'
: 'c_mul_select_un'),
width: w(20)))),
HEmptyView(90),
InkWell(
onTap: () {
state(() {
data[index - 1].selectNig =
!data[index - 1].selectNig!;
});
},
child: Container(
width: w(34),
alignment: Alignment.center,
child: Image.asset(
Utils.getImgPath(
data[index - 1].selectNig!
? 'c_mul_select'
: 'c_mul_select_un'),
width: w(20)))),
Row(
children: dayDateData.map((e) {
bool select = e.ddateSolt == '1'
? data[index - 1].selectMor!
: e.ddateSolt == '2'
? data[index - 1].selectNoon!
: e.ddateSolt == '3'
? data[index - 1].selectNig!
: e.ddateSolt == '4'
? data[index - 1].selectMeal1!
: e.ddateSolt == '5'
? data[index - 1]
.selectMeal2!
: data[index - 1]
.selectMor!;
return InkWell(
onTap: () {
if (e.ddateSolt == '1') {
state(() {
data[index - 1].selectMor =
!data[index - 1].selectMor!;
});
} else if (e.ddateSolt == '2') {
state(() {
data[index - 1].selectNoon =
!data[index - 1].selectNoon!;
});
} else if (e.ddateSolt == '3') {
state(() {
data[index - 1].selectNig =
!data[index - 1].selectNig!;
});
} else if (e.ddateSolt == '4') {
state(() {
data[index - 1].selectMeal1 =
!data[index - 1].selectMeal1!;
});
} else if (e.ddateSolt == '5') {
state(() {
data[index - 1].selectMeal2 =
!data[index - 1].selectMeal2!;
});
}
},
child: Container(
width: w(34),
alignment: Alignment.center,
margin: EdgeInsets.only(left: w(20)),
child: Image.asset(
Utils.getImgPath(select
? 'c_mul_select'
: 'c_mul_select_un'),
width: w(20))));
}).toList())
// InkWell(
// onTap: () {
// state(() {
// data[index - 1].selectNoon =
// !data[index - 1].selectNoon!;
// });
// },
// child: Container(
// width: w(34),
// alignment: Alignment.center,
// child: Image.asset(
// Utils.getImgPath(
// data[index - 1].selectNoon!
// ? 'c_mul_select'
// : 'c_mul_select_un'),
// width: w(20)))),
// HEmptyView(90),
// InkWell(
// onTap: () {
// state(() {
// data[index - 1].selectNig =
// !data[index - 1].selectNig!;
// });
// },
// child: Container(
// width: w(34),
// alignment: Alignment.center,
// child: Image.asset(
// Utils.getImgPath(
// data[index - 1].selectNig!
// ? 'c_mul_select'
// : 'c_mul_select_un'),
// width: w(20)))),
],
));
}),
... ...