Commit f764b6ce8cbe80582164ee7f11c6936d50f4589f

Authored by wdn127929
1 parent 0ea1d788

分享排菜单是否显示价格

... ... @@ -45,6 +45,8 @@ class GetDzSellerConfSunModel {
String isStoreSms;
String storeDate;
String isShowPrice;
GetDzSellerConfSunModel(
{this.id,
this.sid,
... ... @@ -62,7 +64,8 @@ class GetDzSellerConfSunModel {
this.cookStyle,
this.cdate,
this.isStoreSms,
this.storeDate});
this.storeDate,
this.isShowPrice});
GetDzSellerConfSunModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
... ... @@ -84,6 +87,7 @@ class GetDzSellerConfSunModel {
cdate = json['cdate'];
isStoreSms = json['is_store_sms'];
storeDate = json['store_date'];
isShowPrice = json['is_show_price'];
}
Map<String, dynamic> toJson() {
... ... @@ -105,6 +109,7 @@ class GetDzSellerConfSunModel {
data['cdate'] = this.cdate;
data['is_store_sms'] = this.isStoreSms;
data['store_date'] = this.storeDate;
data['is_show_price'] = this.isShowPrice;
return data;
}
}
... ...
... ... @@ -608,7 +608,7 @@ class MenuSunModel {
amounttemp += v.amount;
amountHasOrderList.add(v);
}
amount = amounttemp * json['out_all_num'];
amount = amounttemp * (json['out_all_num']??1);
});
// }
... ...
... ... @@ -390,6 +390,7 @@ class HttpUrl {
static const String set_confing =
"?service=App.Reserve.SetConfing"; // 设置订座商家配置信息
// static const String send_vc_code =
// "?service=App.SendSMS.SendVcCode"; // 向指定手机号码发送验证码
... ...
... ... @@ -29,23 +29,28 @@ class MarketingCenterHomePage extends StatefulWidget {
class _MarketingCenterHomePageState extends State<MarketingCenterHomePage> {
MarketingCenterProvider marketingCenterProvider;
bool select = false;
bool select = false; //启用预订安排通知图文模式
bool selectShowPrice = false; //分享排菜单给客户时展示菜品价格
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
getSellerTemplateConf();
getDzSellerConf();
});
}
getSellerTemplateConf() async {
bool success = await marketingCenterProvider.getSellerTemplateConf(context);
if (success && marketingCenterProvider.markDataModel != null) {
select = marketingCenterProvider.markDataModel.isNewTemplate == '1'
getDzSellerConf() async {
bool success = await marketingCenterProvider.getDzSellerConf(context);
if (success && marketingCenterProvider.dzSellerConfModel != null) {
select = marketingCenterProvider.dzSellerConfModel.isNewTemplate == '1'
? true
: false;
selectShowPrice =
marketingCenterProvider.dzSellerConfModel.isShowPrice == '1'
? true
: false;
setState(() {});
}
}
... ... @@ -83,6 +88,59 @@ class _MarketingCenterHomePageState extends State<MarketingCenterHomePage> {
)));
}
///分享排菜单给客户时展示菜品价格
Future<bool> _setPriceShow({bool isShowLoading = true}) async {
Map<String, String> params = {
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
'key': 'is_show_price',
'value': selectShowPrice ? '1' : '0'
};
bool success = await marketingCenterProvider.setConfing(context, params,
needToast: false);
if (success) {
return true;
} else {
return false;
}
}
///启用预订安排通知图文模式
Future<bool> _setNewType({bool isShowLoading = true}) async {
Map<String, String> params = {
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
'key': 'is_new_template',
'value': select ? '1' : '0'
};
bool success = await marketingCenterProvider.setConfing(context, params,
needToast: false);
if (success) {
return true;
} else {
return false;
}
}
///保存接口
_setData() async {
Future.wait<bool>([
_setPriceShow(),
_setNewType(),
]).then((results) {
print(results[0]);
if (results[0] && results[1]) {
Utils.showToast('设置成功');
}
}).catchError((e) {
Utils.showToast('设置失败,请重试');
print(e);
});
}
@override
Widget build(BuildContext context) {
marketingCenterProvider =
... ... @@ -145,6 +203,60 @@ class _MarketingCenterHomePageState extends State<MarketingCenterHomePage> {
InkWell(
onTap: () {
setState(() {
selectShowPrice = !selectShowPrice;
});
},
child: Padding(
padding: EdgeInsets.only(
left: w(16),
top: w(12),
bottom: w(12),
right: w(12)),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
'分享排菜单给客户时展示菜品价格',
style: TextStyle(
color: MyColours.color_515151,
fontSize: ScreenUtil().setWidth(32)),
),
Spacer(),
Container(
padding: EdgeInsets.symmetric(
horizontal: w(7), vertical: w(4)),
child: Image.asset(
Utils.getImgPath(selectShowPrice
? 'swich_on'
: 'swich_off'),
width: w(44),
),
)
// RoundButton(
// text: '预览',
// gradientStart: MyColours.color_ffffff,
// gradientEnd: MyColours.color_ffffff,
// borderColor: MyColours.color_438E93,
// textColor: MyColours.color_438E93,
// radius: ScreenUtil().setWidth(22),
// fontSize: 24,
// width: w(72),
// height: ScreenUtil().setWidth(44),
// isBold: true,
// onPressed: () {
// NavigatorUtil.goMarkingPreviewPage(context);
// },
// ),
]))),
Padding(
padding: EdgeInsets.only(left: w(16)),
child: MyDivider(double.infinity, w(0.5),
color: MyColours.color_E7E7E7)),
VEmptyView(20),
InkWell(
onTap: () {
setState(() {
select = !select;
});
},
... ... @@ -190,6 +302,10 @@ class _MarketingCenterHomePageState extends State<MarketingCenterHomePage> {
// },
// ),
]))),
Padding(
padding: EdgeInsets.only(left: w(16)),
child: MyDivider(double.infinity, w(0.5),
color: MyColours.color_E7E7E7)),
_item('首图形象展示', onTap: () {
NavigatorUtil.goFirstImagePage(context);
}),
... ... @@ -244,18 +360,7 @@ class _MarketingCenterHomePageState extends State<MarketingCenterHomePage> {
isBold: true,
onPressed: () async {
//调用接口
Map<String, String> params = {
'sid': Provider.of<UserModel>(context,
listen: false)
.user
.sellerid,
'key': 'is_new_template',
'value': select ? '1' : '0'
};
bool success = await marketingCenterProvider
.setConfing(context, params);
if (success) {}
_setData();
}))
],
))
... ...
... ... @@ -3236,7 +3236,9 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> {
});
if (!has) {
//旧的里面没有该菜品
show.cookbooklist.add(newcook);
show.cookbooklist.add(
MenuSunModel.fromJson4(
newcook.toJson()));
}
});
}
... ... @@ -3260,7 +3262,8 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> {
priceSum: priceSum.toString(),
memberPriceSum: memberPriceSum.toString(),
planDishText: planDishC.text,
detailEntity: widget.detailEntity);
detailEntity: widget.detailEntity,
rid: widget.rid);
},
),
RoundButton(
... ...
... ... @@ -1502,7 +1502,9 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> {
});
if (!has) {
//旧的里面没有该菜品
show.cookbooklist.add(newcook);
show.cookbooklist.add(
MenuSunModel.fromJson4(
newcook.toJson()));
}
});
}
... ... @@ -1525,7 +1527,8 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> {
.planCookByRidSunModel.memberPrice,
planDishText: _planDishProvider
.planCookByRidSunModel.planPrice,
detailEntity: widget.detailEntity);
detailEntity: widget.detailEntity,
rid: widget.rid);
}
}, '分享排菜单',
fontColor:
... ...
... ... @@ -2545,9 +2545,7 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> {
show.allSum += newcook
.amountHasOrderList[0].amount;
// }
}else{
}
} else {}
}
}
});
... ... @@ -2649,7 +2647,7 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> {
});
if (!has) {
//旧的里面没有该菜品
show.cookbooklist.add(newcook);
show.cookbooklist.add(MenuSunModel.fromJson4(newcook.toJson()));
}
});
}
... ... @@ -2671,7 +2669,8 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> {
priceSum: priceSum.toString(),
memberPriceSum: memberPriceSum.toString(),
planDishText: planDishC.text,
detailEntity: widget.detailEntity);
detailEntity: widget.detailEntity,
rid:widget.rid);
},
),
HEmptyView(30),
... ...
... ... @@ -31,6 +31,7 @@ class OrderPreviewPage extends StatefulWidget {
final String name;
final String remark;
final NotebookDetail detailEntity;
final String rid;
OrderPreviewPage(
{Key key,
this.showList,
... ... @@ -39,7 +40,8 @@ class OrderPreviewPage extends StatefulWidget {
this.planDishText,
this.name,
this.remark,
this.detailEntity})
this.detailEntity,
this.rid})
: super(key: key);
@override
... ... @@ -662,6 +664,7 @@ class _OrderPreviewPageState extends State<OrderPreviewPage> {
VEmptyView(10),
]))),
VEmptyView(10),
/***
if (index != null)
InkWell(
onTap: () {
... ... @@ -785,6 +788,7 @@ class _OrderPreviewPageState extends State<OrderPreviewPage> {
},
keyboardType: TextInputType.text)),
VEmptyView(20),
*/
],
))),
Container(
... ... @@ -813,7 +817,8 @@ class _OrderPreviewPageState extends State<OrderPreviewPage> {
HEmptyView(30),
Expanded(
child: RoundButton(
text: '下一步',
// text: '下一步',
text: '分享排菜单',
gradientStart: MyColours.color_438E93,
gradientEnd: MyColours.color_438E93,
height: w(43),
... ... @@ -821,32 +826,42 @@ class _OrderPreviewPageState extends State<OrderPreviewPage> {
fontSize: 36,
isBold: false,
onPressed: () {
if (index != null) {
NavigatorUtil.goOrderSharePage(context,
object: {'object': widget.showList},
name: widget.name,
remark: widget.remark,
priceSum: widget.priceSum,
memberPriceSum: widget.memberPriceSum,
planDishText: widget.planDishText,
detailEntity: widget.detailEntity,
rechargeListSunModel:
marketingCenterProvider.rechargeList[index],
recommend: recommendC.text,
isRecharge: isRecharge,
isRecommend: isRecommend);
} else {
NavigatorUtil.goOrderSharePage(
context,
object: {'object': widget.showList},
name: widget.name,
remark: widget.remark,
priceSum: widget.priceSum,
memberPriceSum: widget.memberPriceSum,
planDishText: widget.planDishText,
detailEntity: widget.detailEntity,
);
}
Utils.goShareOrderFoodToWeChatPaicai(
context,
data: widget.showList,
title: '菜品已点好,快来看看都点了什么~',
img:
'http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148571.jpg',
rid: widget.rid,
// oid: oid,
);
// if (index != null) {
// NavigatorUtil.goOrderSharePage(context,
// object: {'object': widget.showList},
// name: widget.name,
// remark: widget.remark,
// priceSum: widget.priceSum,
// memberPriceSum: widget.memberPriceSum,
// planDishText: widget.planDishText,
// detailEntity: widget.detailEntity,
// rechargeListSunModel:
// marketingCenterProvider.rechargeList[index],
// recommend: recommendC.text,
// isRecharge: isRecharge,
// isRecommend: isRecommend);
// } else {
// NavigatorUtil.goOrderSharePage(
// context,
// object: {'object': widget.showList},
// name: widget.name,
// remark: widget.remark,
// priceSum: widget.priceSum,
// memberPriceSum: widget.memberPriceSum,
// planDishText: widget.planDishText,
// detailEntity: widget.detailEntity,
// );
// }
},
),
)
... ...
... ... @@ -6,6 +6,7 @@ import 'package:provider/provider.dart';
import '../constant/constant.dart';
import '../constant/error.dart';
import '../models/GetDzSellerConfModel.dart';
import '../models/mark_data_model.dart';
import '../models/recharge_notice_model.dart';
import '../models/tableOuter.dart';
... ... @@ -34,7 +35,7 @@ class MarketingCenterProvider extends ChangeNotifier {
PageState pageStateMessageDetail = PageState.Loading;
RechargeNoticeSunModel rechargeNoticeSunModel;
GetDzSellerConfSunModel dzSellerConfModel;
//获取桌位列表
getTableList(context, {needLoading = true}) async {
... ... @@ -46,6 +47,30 @@ class MarketingCenterProvider extends ChangeNotifier {
notifyListeners();
}
// 获取商家订座配置
Future<bool> getDzSellerConf(BuildContext context,
{bool showLoading = true}) async {
Map<String, String> params = {
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid
};
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.get_dz_seller_conf,
data: params, showLoading: showLoading)
.catchError((error) {
print(error.toString());
Utils.showToast('请求失败,请重试');
return false;
});
if (baseResp.code == Constant.status_success) {
dzSellerConfModel =
GetDzSellerConfModel.fromJson(baseResp.responseData).data;
return true;
} else {
Utils.showToast(baseResp.msg ?? '请求失败,请重试');
}
return false;
}
// 商家设置预订安排模板页面
Future<bool> setSellerTemplateConf(
BuildContext context, Map<String, String> params,
... ... @@ -72,24 +97,33 @@ class MarketingCenterProvider extends ChangeNotifier {
// 设置订座商家配置信息
Future<bool> setConfing(BuildContext context, Map<String, String> params,
{bool showLoading = true}) async {
{bool showLoading = true, bool needToast = true}) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.set_confing,
data: params, showLoading: showLoading)
.catchError((error) {
print(error.toString());
Utils.showToast('设置失败,请重试');
if (needToast) {
Utils.showToast('设置失败,请重试');
}
return false;
});
if (baseResp.code == Constant.status_success) {
if (baseResp.data == 0 || baseResp.data == 1) {
Utils.showToast('设置成功');
if (needToast) {
Utils.showToast('设置成功');
}
return true;
} else {
Utils.showToast('设置失败,请重试');
if (needToast) {
Utils.showToast('设置失败,请重试');
}
}
} else {
Utils.showToast(baseResp.msg ?? '设置失败,请重试');
if (needToast) {
Utils.showToast(baseResp.msg ?? '设置失败,请重试');
}
}
return false;
}
... ... @@ -298,8 +332,7 @@ class MarketingCenterProvider extends ChangeNotifier {
return false;
});
if (baseResp.code == Constant.status_success) {
rechargeNoticeSunModel =
RechargeNoticeModel.fromJson(baseResp.data).data;
rechargeNoticeSunModel = RechargeNoticeModel.fromJson(baseResp.data).data;
pageStateMessageDetail = PageState.Success;
notifyListeners();
return true;
... ...
... ... @@ -222,7 +222,7 @@ class MenuManageProvider extends ChangeNotifier {
GetDzSellerConfModel.fromJson(baseResp.responseData).data;
return true;
} else {
Utils.showToast(baseResp.msg ?? '设置失败,请重试');
Utils.showToast(baseResp.msg ?? '请求失败,请重试');
}
return false;
}
... ...
... ... @@ -1270,7 +1270,8 @@ class NavigatorUtil {
String planDishText,
String name,
String remark,
NotebookDetail detailEntity}) {
NotebookDetail detailEntity,
String rid}) {
// if (invoice != null) {
// return _navigateTo(context,
// "${Routes.order_advance_home_page}?invoice=${FluroConvertUtils.object2string(invoice)}",
... ... @@ -1281,7 +1282,7 @@ class NavigatorUtil {
// "${Routes.order_advance_home_page}?tids=$tids&tableidNow=$tableidNow&fromPage=$fromPage&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}");
// }
return _navigateTo(context,
"${Routes.order_preview_page}?object=${FluroConvertUtils.object2string(object)}&priceSum=$priceSum&memberPriceSum=$memberPriceSum&planDishText=${Uri.encodeComponent(planDishText)}&name=${Uri.encodeComponent(name)}&remark=${Uri.encodeComponent(remark)}&detail=${FluroConvertUtils.object2string(detailEntity)}",
"${Routes.order_preview_page}?object=${FluroConvertUtils.object2string(object)}&priceSum=$priceSum&memberPriceSum=$memberPriceSum&planDishText=${Uri.encodeComponent(planDishText)}&name=${Uri.encodeComponent(name)}&remark=${Uri.encodeComponent(remark)}&detail=${FluroConvertUtils.object2string(detailEntity)}&rid=$rid",
replace: replace);
}
... ...
... ... @@ -2100,6 +2100,7 @@ var orderPreviewPageHandle = new Handler(
String planDishText = params["planDishText"].first;
String name = params["name"].first;
String remark = params["remark"].first;
String rid = params["rid"].first;
return ChangeNotifierProvider<PlanDishProvider>(
create: (_) => PlanDishProvider(),
... ... @@ -2112,7 +2113,8 @@ var orderPreviewPageHandle = new Handler(
planDishText: planDishText,
name: name,
remark: remark,
detailEntity: detailEntity)));
detailEntity: detailEntity,
rid: rid)));
});
///经理排菜---排菜编辑列表展示
... ...
... ... @@ -36,6 +36,7 @@ import 'package:path_provider/path_provider.dart';
import 'package:image_cropper/image_cropper.dart';
import 'dart:math';
import '../models/cookbook_model.dart';
import '../models/coupon_model.dart';
import '../models/recharge_list_model.dart';
// import 'dart:typed_data';
... ... @@ -1213,6 +1214,48 @@ class Utils {
miniProgramType: WXMiniProgramType.RELEASE);
}
//分享排菜单
static goShareOrderFoodToWeChatPaicai(BuildContext context,
{List<MenuModel> data,
String title,
String rid,
String oid,
String img}) async {
Loading.showLoading(context);
String _webPageUrl = "http://colorcun.com/";
// String _thumbnail = img;
String sellerImage =
Provider.of<UserModel>(context, listen: false).user.sellerimage;
// String _thumbnail = sellerImage == null || sellerImage == ''
// ? 'http://nosqn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png'
// : sellerImage;
String _thumbnail =
'https://nosqn.colorcun.com/share_advanced_order_new.png';
String _title = title;
String _userName = "gh_487873d353b3";
// String _path =
// "pack-cookbook/pages/success?rid=$rid&identity=2&hasOnlyShow=1";
String _path =
"pack-cookbook/pages/success_new?cookbooklist=${json.encode(data)}&hasSuccess=1&oid=$oid&rid=$rid&identity=2&hasOnlyShow=1&sellerName=${Provider.of<UserModel>(context, listen: false).user.sellername}&sid=${Provider.of<UserModel>(context, listen: false).user.sellerid}&type=2";
String _description = "OneKey";
// Uint8List source = await testComporessList(context, _thumbnail);
print(_path);
var model = new WeChatShareMiniProgramModel(
miniProgramType: WXMiniProgramType.RELEASE,
webPageUrl: _webPageUrl,
userName: _userName,
title: _title,
path: _path,
description: _description,
thumbnail: WeChatImage.network(_thumbnail)
// thumbnail: WeChatImage.binary(source)
);
bool isShare = await shareToWeChat(model);
print(isShare);
Loading.hideLoading(context);
}
//分享已点菜品----跳转小程序提前点餐
static goShareOrderPageToWeChat(BuildContext context,
{String title, String rid, String img, String oid, String sid}) async {
... ... @@ -1272,7 +1315,7 @@ class Utils {
// String _path =
// "pack-cookbook/pages/success?rid=$rid&identity=2&hasOnlyShow=1";
String _path =
"pack-cookbook/pages/success_new?hasSuccess=1&oid=$oid&rid=$rid&identity=2&hasOnlyShow=1&sellerName=${Provider.of<UserModel>(context, listen: false).user.sellername}&sid=${Provider.of<UserModel>(context, listen: false).user.sellerid}";
"pack-cookbook/pages/success_new?hasSuccess=1&oid=$oid&rid=$rid&identity=2&hasOnlyShow=1&sellerName=${Provider.of<UserModel>(context, listen: false).user.sellername}&sid=${Provider.of<UserModel>(context, listen: false).user.sellerid}&type=1";
String _description = "OneKey";
// Uint8List source = await testComporessList(context, _thumbnail);
var model = new WeChatShareMiniProgramModel(
... ... @@ -1690,7 +1733,7 @@ class Utils {
path: _path,
description: 'hhh',
// miniProgramType: WXMiniProgramType.PREVIEW, //体验版
miniProgramType: WXMiniProgramType.RELEASE, //正式版
miniProgramType: WXMiniProgramType.RELEASE, //正式版
// miniProgramType: WXMiniProgramType.TEST //开发版
// thumbnail: WeChatImage.binary(source)
thumbnail: WeChatImage.network(_thumbnail),
... ... @@ -1745,7 +1788,7 @@ class Utils {
path: _path,
description: _description,
// miniProgramType: WXMiniProgramType.PREVIEW, //体验版
miniProgramType: WXMiniProgramType.RELEASE, //正式版
miniProgramType: WXMiniProgramType.RELEASE, //正式版
// miniProgramType: WXMiniProgramType.TEST //开发版
// thumbnail: WeChatImage.binary(source)
thumbnail: WeChatImage.network(_thumbnail)
... ... @@ -1799,7 +1842,7 @@ class Utils {
path: _path,
description: _description,
// miniProgramType: WXMiniProgramType.PREVIEW, //体验版
miniProgramType: WXMiniProgramType.RELEASE, //正式版
miniProgramType: WXMiniProgramType.RELEASE, //正式版
// miniProgramType: WXMiniProgramType.TEST //开发版
// thumbnail: WeChatImage.binary(source)
thumbnail: WeChatImage.network(_thumbnail)
... ...