Showing
11 changed files
with
1571 additions
and
131 deletions
| @@ -131,6 +131,27 @@ class NotebookDetail { | @@ -131,6 +131,27 @@ class NotebookDetail { | ||
| 131 | return demand.substring(0, demand.length - 1); | 131 | return demand.substring(0, demand.length - 1); |
| 132 | } | 132 | } |
| 133 | 133 | ||
| 134 | + String get ddateymd { | ||
| 135 | + DateTime dateTime = | ||
| 136 | + DateTime.fromMillisecondsSinceEpoch(int.parse(ddate) * 1000); | ||
| 137 | + String md = "${dateTime.year}-" + | ||
| 138 | + Utils.addZeroNumber(dateTime.month) + | ||
| 139 | + "-" + | ||
| 140 | + Utils.addZeroNumber(dateTime.day); | ||
| 141 | + switch (ddate_solt) { | ||
| 142 | + case "1": | ||
| 143 | + md += " 早餐"; | ||
| 144 | + break; | ||
| 145 | + case "2": | ||
| 146 | + md += " 午餐"; | ||
| 147 | + break; | ||
| 148 | + case "3": | ||
| 149 | + md += " 晚餐"; | ||
| 150 | + break; | ||
| 151 | + } | ||
| 152 | + return md; | ||
| 153 | + } | ||
| 154 | + | ||
| 134 | String get ddateMd { | 155 | String get ddateMd { |
| 135 | DateTime dateTime = | 156 | DateTime dateTime = |
| 136 | DateTime.fromMillisecondsSinceEpoch(int.parse(ddate) * 1000); | 157 | DateTime.fromMillisecondsSinceEpoch(int.parse(ddate) * 1000); |
| @@ -213,10 +234,10 @@ class NotebookDetail { | @@ -213,10 +234,10 @@ class NotebookDetail { | ||
| 213 | if (type == "0" || (type == "1" && is_set_ddate == "1")) { | 234 | if (type == "0" || (type == "1" && is_set_ddate == "1")) { |
| 214 | DateTime dateTime = | 235 | DateTime dateTime = |
| 215 | DateTime.fromMillisecondsSinceEpoch(int.parse(ddate) * 1000); | 236 | DateTime.fromMillisecondsSinceEpoch(int.parse(ddate) * 1000); |
| 216 | - String Hm = Utils.addZeroNumber(dateTime.hour) + | 237 | + String hm = Utils.addZeroNumber(dateTime.hour) + |
| 217 | ":" + | 238 | ":" + |
| 218 | Utils.addZeroNumber(dateTime.minute); | 239 | Utils.addZeroNumber(dateTime.minute); |
| 219 | - return Hm; | 240 | + return hm; |
| 220 | } else { | 241 | } else { |
| 221 | return ""; | 242 | return ""; |
| 222 | } | 243 | } |
lib/models/plan_cook_by_rid_model.dart
0 → 100644
| 1 | +import 'dart:convert'; | ||
| 2 | + | ||
| 3 | +import 'package:one_key/models/cookbook_model.dart'; | ||
| 4 | + | ||
| 5 | +class PlanCookByRidModel { | ||
| 6 | + int ret; | ||
| 7 | + PlanCookByRidSunModel data; | ||
| 8 | + String msg; | ||
| 9 | + | ||
| 10 | + PlanCookByRidModel({this.ret, this.data, this.msg}); | ||
| 11 | + | ||
| 12 | + PlanCookByRidModel.fromJson(Map<String, dynamic> json) { | ||
| 13 | + ret = json['ret']; | ||
| 14 | + data = json['data'] != null | ||
| 15 | + ? new PlanCookByRidSunModel.fromJson(json['data']) | ||
| 16 | + : null; | ||
| 17 | + msg = json['msg']; | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + Map<String, dynamic> toJson() { | ||
| 21 | + final Map<String, dynamic> data = new Map<String, dynamic>(); | ||
| 22 | + data['ret'] = this.ret; | ||
| 23 | + if (this.data != null) { | ||
| 24 | + data['data'] = this.data.toJson(); | ||
| 25 | + } | ||
| 26 | + data['msg'] = this.msg; | ||
| 27 | + return data; | ||
| 28 | + } | ||
| 29 | +} | ||
| 30 | + | ||
| 31 | +class PlanCookByRidSunModel { | ||
| 32 | + String id; | ||
| 33 | + String sellerid; | ||
| 34 | + String rid; | ||
| 35 | + String uid; | ||
| 36 | + String pnum; | ||
| 37 | + String perPrice; | ||
| 38 | + String totalPrice; | ||
| 39 | + String taboos; | ||
| 40 | + String like; | ||
| 41 | + String serve; | ||
| 42 | + List<MenuModel> cooklist; | ||
| 43 | + List<MenuSunModel> packageList; | ||
| 44 | + // Null? oftenList; | ||
| 45 | + // Null? temporaryList; | ||
| 46 | + List<MenuSunModel> planList; | ||
| 47 | + String menuPrice; | ||
| 48 | + String memberPrice; | ||
| 49 | + String planPrice; | ||
| 50 | + String remark; | ||
| 51 | + String cdate; | ||
| 52 | + | ||
| 53 | + String planName; | ||
| 54 | + String status; | ||
| 55 | + | ||
| 56 | + PlanCookByRidSunModel( | ||
| 57 | + {this.id, | ||
| 58 | + this.sellerid, | ||
| 59 | + this.rid, | ||
| 60 | + this.uid, | ||
| 61 | + this.pnum, | ||
| 62 | + this.perPrice, | ||
| 63 | + this.totalPrice, | ||
| 64 | + this.taboos, | ||
| 65 | + this.like, | ||
| 66 | + this.serve, | ||
| 67 | + this.cooklist, | ||
| 68 | + this.packageList, | ||
| 69 | + // this.oftenList, | ||
| 70 | + // this.temporaryList, | ||
| 71 | + this.planList, | ||
| 72 | + this.menuPrice, | ||
| 73 | + this.memberPrice, | ||
| 74 | + this.planPrice, | ||
| 75 | + this.remark, | ||
| 76 | + this.cdate, | ||
| 77 | + this.planName, | ||
| 78 | + this.status}); | ||
| 79 | + | ||
| 80 | + PlanCookByRidSunModel.fromJson(Map<String, dynamic> json1) { | ||
| 81 | + id = json1['id']; | ||
| 82 | + sellerid = json1['sellerid']; | ||
| 83 | + rid = json1['rid']; | ||
| 84 | + uid = json1['uid']; | ||
| 85 | + pnum = json1['pnum']; | ||
| 86 | + perPrice = json1['per_price']; | ||
| 87 | + totalPrice = json1['total_price']; | ||
| 88 | + taboos = json1['taboos']; | ||
| 89 | + like = json1['like']; | ||
| 90 | + serve = json1['serve']; | ||
| 91 | + if (json1['cooklist'] != null && json1['cooklist'] != '') { | ||
| 92 | + cooklist = <MenuModel>[]; | ||
| 93 | + if (json1['cooklist'] is List) { | ||
| 94 | + json1['cooklist'].forEach((v) { | ||
| 95 | + cooklist.add(new MenuModel.fromJson2(v)); | ||
| 96 | + }); | ||
| 97 | + } else { | ||
| 98 | + json.decode(json1['cooklist']).forEach((v) { | ||
| 99 | + cooklist.add(new MenuModel.fromJson2(v)); | ||
| 100 | + }); | ||
| 101 | + } | ||
| 102 | + } | ||
| 103 | + if (json1['package_list'] != null && json1['package_list'] != '') { | ||
| 104 | + packageList = <MenuSunModel>[]; | ||
| 105 | + if (json1['package_list'] is List) { | ||
| 106 | + json1['package_list'].forEach((v) { | ||
| 107 | + packageList.add(new MenuSunModel.fromJson2(v)); | ||
| 108 | + }); | ||
| 109 | + } else { | ||
| 110 | + json.decode(json1['package_list']).forEach((v) { | ||
| 111 | + packageList.add(new MenuSunModel.fromJson2(v)); | ||
| 112 | + }); | ||
| 113 | + } | ||
| 114 | + } | ||
| 115 | + // oftenList = json['often_list']; | ||
| 116 | + // temporaryList = json['temporary_list']; | ||
| 117 | + | ||
| 118 | + if (json1['plan_list'] != null && json1['plan_list'] != '') { | ||
| 119 | + planList = <MenuSunModel>[]; | ||
| 120 | + if (json1['plan_list'] is List) { | ||
| 121 | + json1['plan_list'].forEach((v) { | ||
| 122 | + planList.add(new MenuSunModel.fromJson2(v)); | ||
| 123 | + }); | ||
| 124 | + } else { | ||
| 125 | + json.decode(json1['plan_list']).forEach((v) { | ||
| 126 | + planList.add(new MenuSunModel.fromJson2(v)); | ||
| 127 | + }); | ||
| 128 | + } | ||
| 129 | + } | ||
| 130 | + menuPrice = json1['menu_price']; | ||
| 131 | + memberPrice = json1['member_price']; | ||
| 132 | + planPrice = json1['plan_price']; | ||
| 133 | + remark = json1['remark']; | ||
| 134 | + cdate = json1['cdate']; | ||
| 135 | + planName = json1['plan_name']; | ||
| 136 | + status = json1['status']; | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + Map<String, dynamic> toJson() { | ||
| 140 | + final Map<String, dynamic> data = new Map<String, dynamic>(); | ||
| 141 | + data['id'] = this.id; | ||
| 142 | + data['sellerid'] = this.sellerid; | ||
| 143 | + data['rid'] = this.rid; | ||
| 144 | + data['uid'] = this.uid; | ||
| 145 | + data['pnum'] = this.pnum; | ||
| 146 | + data['per_price'] = this.perPrice; | ||
| 147 | + data['total_price'] = this.totalPrice; | ||
| 148 | + data['taboos'] = this.taboos; | ||
| 149 | + data['like'] = this.like; | ||
| 150 | + data['serve'] = this.serve; | ||
| 151 | + data['cooklist'] = this.cooklist; | ||
| 152 | + data['package_list'] = this.packageList; | ||
| 153 | + // data['often_list'] = this.oftenList; | ||
| 154 | + // data['temporary_list'] = this.temporaryList; | ||
| 155 | + data['plan_list'] = this.planList; | ||
| 156 | + data['menu_price'] = this.menuPrice; | ||
| 157 | + data['member_price'] = this.memberPrice; | ||
| 158 | + data['plan_price'] = this.planPrice; | ||
| 159 | + data['remark'] = this.remark; | ||
| 160 | + data['cdate'] = this.cdate; | ||
| 161 | + data['plan_name'] = this.planName; | ||
| 162 | + data['status'] = this.status; | ||
| 163 | + | ||
| 164 | + return data; | ||
| 165 | + } | ||
| 166 | +} |
| @@ -343,9 +343,13 @@ class HttpUrl { | @@ -343,9 +343,13 @@ class HttpUrl { | ||
| 343 | 343 | ||
| 344 | static const String get_plan_cook_list = | 344 | static const String get_plan_cook_list = |
| 345 | "?service=App.PlanCook.GetPlanCookList"; // 排菜/套餐列表 | 345 | "?service=App.PlanCook.GetPlanCookList"; // 排菜/套餐列表 |
| 346 | - static const String del_plan_cook = | 346 | + static const String del_plan_cook = |
| 347 | "?service=App.PlanCook.DelPlanCook"; // 删除排菜/套餐列表 | 347 | "?service=App.PlanCook.DelPlanCook"; // 删除排菜/套餐列表 |
| 348 | 348 | ||
| 349 | - | 349 | + static const String set_plan_cook_by_reserve = |
| 350 | + "?service=App.PlanCook.SetPlanCookByReserve"; // 经理预订订单排菜 | ||
| 351 | + | ||
| 352 | + static const String get_plan_cook_by_rid = | ||
| 353 | + "?service=App.PlanCook.GetPlanCookByRid"; // 根据预定ID获取排菜 | ||
| 350 | 354 | ||
| 351 | } | 355 | } |
| @@ -2618,8 +2618,9 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { | @@ -2618,8 +2618,9 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { | ||
| 2618 | onTap: () { | 2618 | onTap: () { |
| 2619 | NavigatorUtil | 2619 | NavigatorUtil |
| 2620 | .goOrderAdvanceHomePage( | 2620 | .goOrderAdvanceHomePage( |
| 2621 | - context, | ||
| 2622 | - ); | 2621 | + context, |
| 2622 | + detailEntity, | ||
| 2623 | + widget.rid); | ||
| 2623 | }, | 2624 | }, |
| 2624 | child: Container( | 2625 | child: Container( |
| 2625 | margin: EdgeInsets.only( | 2626 | margin: EdgeInsets.only( |
| @@ -2,6 +2,7 @@ import 'dart:convert'; | @@ -2,6 +2,7 @@ import 'dart:convert'; | ||
| 2 | 2 | ||
| 3 | import 'package:flutter/material.dart'; | 3 | import 'package:flutter/material.dart'; |
| 4 | import 'package:one_key/models/cookbook_model.dart'; | 4 | import 'package:one_key/models/cookbook_model.dart'; |
| 5 | +import 'package:one_key/models/plan_cook_by_rid_model.dart'; | ||
| 5 | import 'package:one_key/models/plan_cook_list_model.dart'; | 6 | import 'package:one_key/models/plan_cook_list_model.dart'; |
| 6 | import 'package:one_key/provider/plan_dish_provider.dart'; | 7 | import 'package:one_key/provider/plan_dish_provider.dart'; |
| 7 | import 'package:one_key/utils/screen_util.dart'; | 8 | import 'package:one_key/utils/screen_util.dart'; |
| @@ -20,13 +21,22 @@ import '../../../widgets/MyDivider.dart'; | @@ -20,13 +21,22 @@ import '../../../widgets/MyDivider.dart'; | ||
| 20 | import '../../../widgets/page_exception.dart'; | 21 | import '../../../widgets/page_exception.dart'; |
| 21 | import '../../../widgets/round_button.dart'; | 22 | import '../../../widgets/round_button.dart'; |
| 22 | import '../../models/cookbook_model.dart'; | 23 | import '../../models/cookbook_model.dart'; |
| 24 | +import '../../models/notebook_detail.dart'; | ||
| 23 | import '../../provider/user_model.dart'; | 25 | import '../../provider/user_model.dart'; |
| 24 | 26 | ||
| 25 | const scrollDuration = Duration(microseconds: 500); | 27 | const scrollDuration = Duration(microseconds: 500); |
| 26 | 28 | ||
| 27 | class OrderAdvanceEidtPage extends StatefulWidget { | 29 | class OrderAdvanceEidtPage extends StatefulWidget { |
| 30 | + final String planId; | ||
| 31 | + final String rid; | ||
| 32 | + final PlanCookByRidSunModel planCookByRidSunModel; | ||
| 33 | + final NotebookDetail detailEntity; | ||
| 28 | OrderAdvanceEidtPage({ | 34 | OrderAdvanceEidtPage({ |
| 29 | Key key, | 35 | Key key, |
| 36 | + this.planId, | ||
| 37 | + this.rid, | ||
| 38 | + this.planCookByRidSunModel, | ||
| 39 | + this.detailEntity, | ||
| 30 | }) : super(key: key); | 40 | }) : super(key: key); |
| 31 | 41 | ||
| 32 | @override | 42 | @override |
| @@ -54,11 +64,17 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -54,11 +64,17 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 54 | 64 | ||
| 55 | String planDishName; | 65 | String planDishName; |
| 56 | String planDishRemark; | 66 | String planDishRemark; |
| 67 | + bool isCar = true; | ||
| 57 | 68 | ||
| 58 | @override | 69 | @override |
| 59 | void initState() { | 70 | void initState() { |
| 60 | super.initState(); | 71 | super.initState(); |
| 61 | 72 | ||
| 73 | + if (widget.planCookByRidSunModel != null) { | ||
| 74 | + planDishName = widget.planCookByRidSunModel.planName ?? ''; | ||
| 75 | + planDishRemark = widget.planCookByRidSunModel.remark ?? ''; | ||
| 76 | + } | ||
| 77 | + | ||
| 62 | WidgetsBinding.instance.addPostFrameCallback((_) async { | 78 | WidgetsBinding.instance.addPostFrameCallback((_) async { |
| 63 | _getPageMenuData(); | 79 | _getPageMenuData(); |
| 64 | }); | 80 | }); |
| @@ -72,6 +88,27 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -72,6 +88,27 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 72 | if (results[0] && results[1]) { | 88 | if (results[0] && results[1]) { |
| 73 | _planDishProvider.menuModelForManager = | 89 | _planDishProvider.menuModelForManager = |
| 74 | List.from(_planDishProvider.menuModel); | 90 | List.from(_planDishProvider.menuModel); |
| 91 | + //单个菜品 | ||
| 92 | + if (widget.planCookByRidSunModel != null && | ||
| 93 | + widget.planCookByRidSunModel.cooklist != null && | ||
| 94 | + widget.planCookByRidSunModel.cooklist.length > 0) { | ||
| 95 | + _planDishProvider.menuModelForManager.forEach((old) { | ||
| 96 | + widget.planCookByRidSunModel.cooklist.forEach((newvalue) { | ||
| 97 | + if (old.id == newvalue.id) { | ||
| 98 | + //同一分类 | ||
| 99 | + old.cookbooklist.forEach((oldcook) { | ||
| 100 | + newvalue.cookbooklist.forEach((newcook) { | ||
| 101 | + if (oldcook.id == newcook.id) { | ||
| 102 | + //同一个菜 | ||
| 103 | + oldcook.amount = newcook.amount; | ||
| 104 | + carSum += newcook.amount; | ||
| 105 | + } | ||
| 106 | + }); | ||
| 107 | + }); | ||
| 108 | + } | ||
| 109 | + }); | ||
| 110 | + }); | ||
| 111 | + } | ||
| 75 | 112 | ||
| 76 | //成功 | 113 | //成功 |
| 77 | MenuModel menuModelSetMeal = MenuModel(); | 114 | MenuModel menuModelSetMeal = MenuModel(); |
| @@ -92,6 +129,33 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -92,6 +129,33 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 92 | // menuSunModel.amount = element.amount; | 129 | // menuSunModel.amount = element.amount; |
| 93 | menuSunModel.cookList = element.cookList; | 130 | menuSunModel.cookList = element.cookList; |
| 94 | 131 | ||
| 132 | + if (widget.planCookByRidSunModel != null && | ||
| 133 | + widget.planCookByRidSunModel.packageList != null && | ||
| 134 | + widget.planCookByRidSunModel.packageList.length > 0) { | ||
| 135 | + //套餐数据对应 | ||
| 136 | + widget.planCookByRidSunModel.packageList.forEach((package) { | ||
| 137 | + if (package.id == menuSunModel.id) { | ||
| 138 | + //同一个套餐 | ||
| 139 | + menuSunModel.amount = package.amount; | ||
| 140 | + menuSunModel.cookList.forEach((oldcooklist) { | ||
| 141 | + package.cookList.forEach((newcooklist) { | ||
| 142 | + if (oldcooklist.id == newcooklist.id) { | ||
| 143 | + //同一菜品分类 | ||
| 144 | + oldcooklist.cookbooklist.forEach((oldcook) { | ||
| 145 | + newcooklist.cookbooklist.forEach((newcook) { | ||
| 146 | + if (oldcook.id == newcook.id) { | ||
| 147 | + oldcook.amount = newcook.amount; | ||
| 148 | + carSum += newcook.amount; | ||
| 149 | + } | ||
| 150 | + }); | ||
| 151 | + }); | ||
| 152 | + } | ||
| 153 | + }); | ||
| 154 | + }); | ||
| 155 | + } | ||
| 156 | + }); | ||
| 157 | + } | ||
| 158 | + | ||
| 95 | cookList.add(menuSunModel); | 159 | cookList.add(menuSunModel); |
| 96 | } | 160 | } |
| 97 | }); | 161 | }); |
| @@ -116,6 +180,33 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -116,6 +180,33 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 116 | // menuSunModel.amount = element.amount; | 180 | // menuSunModel.amount = element.amount; |
| 117 | menuSunModel.cookList = element.cookList; | 181 | menuSunModel.cookList = element.cookList; |
| 118 | 182 | ||
| 183 | + if (widget.planCookByRidSunModel != null && | ||
| 184 | + widget.planCookByRidSunModel.planList != null && | ||
| 185 | + widget.planCookByRidSunModel.planList.length > 0) { | ||
| 186 | + //排菜数据对应 | ||
| 187 | + widget.planCookByRidSunModel.planList.forEach((package) { | ||
| 188 | + if (package.id == menuSunModel.id) { | ||
| 189 | + //同一个排菜 | ||
| 190 | + menuSunModel.amount = package.amount; | ||
| 191 | + menuSunModel.cookList.forEach((oldcooklist) { | ||
| 192 | + package.cookList.forEach((newcooklist) { | ||
| 193 | + if (oldcooklist.id == newcooklist.id) { | ||
| 194 | + //同一菜品分类 | ||
| 195 | + oldcooklist.cookbooklist.forEach((oldcook) { | ||
| 196 | + newcooklist.cookbooklist.forEach((newcook) { | ||
| 197 | + if (oldcook.id == newcook.id) { | ||
| 198 | + oldcook.amount = newcook.amount; | ||
| 199 | + carSum += newcook.amount; | ||
| 200 | + } | ||
| 201 | + }); | ||
| 202 | + }); | ||
| 203 | + } | ||
| 204 | + }); | ||
| 205 | + }); | ||
| 206 | + } | ||
| 207 | + }); | ||
| 208 | + } | ||
| 209 | + | ||
| 119 | cookListPlanDish.add(menuSunModel); | 210 | cookListPlanDish.add(menuSunModel); |
| 120 | } | 211 | } |
| 121 | }); | 212 | }); |
| @@ -123,6 +214,12 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -123,6 +214,12 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 123 | 214 | ||
| 124 | _planDishProvider.menuModelForManager | 215 | _planDishProvider.menuModelForManager |
| 125 | .insert(1, menuModelPlanDish); //添加排菜 | 216 | .insert(1, menuModelPlanDish); //添加排菜 |
| 217 | + if (widget.planCookByRidSunModel != null && | ||
| 218 | + widget.planCookByRidSunModel.planPrice != null) { | ||
| 219 | + _calculatePrice(planPrice: widget.planCookByRidSunModel.planPrice); | ||
| 220 | + } else { | ||
| 221 | + _calculatePrice(); | ||
| 222 | + } | ||
| 126 | _planDishProvider.pageStateMenu = PageState.Success; | 223 | _planDishProvider.pageStateMenu = PageState.Success; |
| 127 | 224 | ||
| 128 | setState(() {}); | 225 | setState(() {}); |
| @@ -134,6 +231,12 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -134,6 +231,12 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 134 | } | 231 | } |
| 135 | _planDishProvider.pageStateMenu = PageState.ConnectivityError; | 232 | _planDishProvider.pageStateMenu = PageState.ConnectivityError; |
| 136 | } | 233 | } |
| 234 | + if (widget.planCookByRidSunModel.status == '1' || | ||
| 235 | + widget.planCookByRidSunModel.status == null) { | ||
| 236 | + isCar = true; | ||
| 237 | + } else { | ||
| 238 | + isCar = false; | ||
| 239 | + } | ||
| 137 | }).catchError((e) { | 240 | }).catchError((e) { |
| 138 | print(e); | 241 | print(e); |
| 139 | }); | 242 | }); |
| @@ -373,6 +476,86 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -373,6 +476,86 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 373 | }); | 476 | }); |
| 374 | } | 477 | } |
| 375 | 478 | ||
| 479 | + //提交接口 | ||
| 480 | + Future<bool> setPlanCookByReserve() async { | ||
| 481 | + Map<String, String> params = { | ||
| 482 | + 'sellerid': Provider.of<UserModel>(context, listen: false).user.sellerid, | ||
| 483 | + 'uid': Provider.of<UserModel>(context, listen: false).user.openid, | ||
| 484 | + 'rid': widget.rid, | ||
| 485 | + }; | ||
| 486 | + if (widget.planId != null && widget.planId != '') { | ||
| 487 | + //已经存在id,则修改 | ||
| 488 | + params['id'] = widget.planId; | ||
| 489 | + } | ||
| 490 | + //单品 | ||
| 491 | + List<MenuModel> cooklistdata = []; | ||
| 492 | + _planDishProvider.menuModelForManager.forEach((element) { | ||
| 493 | + if (element.className == '套餐') { | ||
| 494 | + List<MenuSunModel> packagelist = []; | ||
| 495 | + element.cookbooklist.forEach((cooklist) { | ||
| 496 | + if (cooklist.amount > 0) { | ||
| 497 | + packagelist.add(cooklist); | ||
| 498 | + } | ||
| 499 | + }); | ||
| 500 | + if (packagelist.length > 0) { | ||
| 501 | + params['package_list'] = json.encode(packagelist); | ||
| 502 | + } else { | ||
| 503 | + params['package_list'] = null; | ||
| 504 | + } | ||
| 505 | + } else if (element.className == '我的排菜') { | ||
| 506 | + List<MenuSunModel> planlist = []; | ||
| 507 | + element.cookbooklist.forEach((cooklist) { | ||
| 508 | + if (cooklist.amount > 0) { | ||
| 509 | + planlist.add(cooklist); | ||
| 510 | + } | ||
| 511 | + }); | ||
| 512 | + if (planlist.length > 0) { | ||
| 513 | + params['plan_list'] = json.encode(planlist); | ||
| 514 | + } else { | ||
| 515 | + params['plan_list'] = null; | ||
| 516 | + } | ||
| 517 | + } else { | ||
| 518 | + //单品 | ||
| 519 | + cooklistdata.add(element); | ||
| 520 | + } | ||
| 521 | + if (cooklistdata.length > 0) { | ||
| 522 | + cooklistdata.forEach((cooklist) { | ||
| 523 | + cooklist.cookbooklist.removeWhere((element) => element.amount == 0); | ||
| 524 | + }); | ||
| 525 | + if (cooklistdata.length > 0) { | ||
| 526 | + params['cooklist'] = json.encode(cooklistdata); | ||
| 527 | + } else { | ||
| 528 | + params['cooklist'] = null; | ||
| 529 | + } | ||
| 530 | + } | ||
| 531 | + }); | ||
| 532 | + | ||
| 533 | + params['menu_price'] = priceSum.toString(); | ||
| 534 | + params['member_price'] = memberPriceSum.toString(); | ||
| 535 | + params['plan_price'] = planDishC.text; | ||
| 536 | + params['remark'] = planDishRemark ?? ""; | ||
| 537 | + params['plan_name'] = planDishName ?? ""; | ||
| 538 | + if (isCar) { | ||
| 539 | + params['status'] = '1'; | ||
| 540 | + } else { | ||
| 541 | + params['status'] = '2'; | ||
| 542 | + } | ||
| 543 | + | ||
| 544 | +// cooklist 字符串 可选 单点菜品列表 | ||
| 545 | +// package_list 字符串 可选 选中套餐数据,[{"id":1,"num":2},{"id":2,"num":1}] | ||
| 546 | +// often_list 字符串 可选 选中店内常点数据,[{"id":1,"num":2},{"id":2,"num":1}] | ||
| 547 | +// temporary_list 字符串 可选 临时加菜,[{"cook_name":"炒土豆丝","price":20,"num",1,"unit":"份","practice":"香辣"},{"cook_name":"麻婆豆腐","price":18,"num",1,"unit":"份","practice":"香辣"}] | ||
| 548 | +// plan_list 字符串 可选 选中排菜数据,[{"id":1,"num":2},{"id":2,"num":1}] | ||
| 549 | +// menu_price 浮点型 可选 菜单总价 | ||
| 550 | +// member_price 浮点型 可选 会员总价 | ||
| 551 | +// plan_price 浮点型 可选 排菜总价 | ||
| 552 | +// | ||
| 553 | + | ||
| 554 | + bool success = | ||
| 555 | + await _planDishProvider.setPlanCookByReserve(context, params); | ||
| 556 | + return success; | ||
| 557 | + } | ||
| 558 | + | ||
| 376 | //计算价格 | 559 | //计算价格 |
| 377 | _calculatePrice({String planPrice}) { | 560 | _calculatePrice({String planPrice}) { |
| 378 | priceSum = 0; | 561 | priceSum = 0; |
| @@ -1061,7 +1244,10 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -1061,7 +1244,10 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 1061 | object2: { | 1244 | object2: { |
| 1062 | 'object2': _planDishProvider.mineList | 1245 | 'object2': _planDishProvider.mineList |
| 1063 | }, | 1246 | }, |
| 1064 | - planPrice: planDishC.text); | 1247 | + planPrice: planDishC.text, |
| 1248 | + planCookByRidSunModel: | ||
| 1249 | + widget.planCookByRidSunModel, | ||
| 1250 | + detailEntity: widget.detailEntity); | ||
| 1065 | // } else { | 1251 | // } else { |
| 1066 | // temp = | 1252 | // temp = |
| 1067 | // await NavigatorUtil.goPlanNewDishPage( | 1253 | // await NavigatorUtil.goPlanNewDishPage( |
| @@ -1168,9 +1354,22 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -1168,9 +1354,22 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 1168 | borderColor: MyColours.color_438E93, | 1354 | borderColor: MyColours.color_438E93, |
| 1169 | textColor: MyColours.color_438E93, | 1355 | textColor: MyColours.color_438E93, |
| 1170 | isBold: false, | 1356 | isBold: false, |
| 1171 | - onPressed: () { | ||
| 1172 | - FocusScope.of(context) | ||
| 1173 | - .requestFocus(FocusNode()); //点击空白处隐藏键盘 | 1357 | + onPressed: () async { |
| 1358 | + if (carSum == 0) { | ||
| 1359 | + Utils.showToast('请选择菜品'); | ||
| 1360 | + return; | ||
| 1361 | + } | ||
| 1362 | + if (isCar) { | ||
| 1363 | + bool success = await setPlanCookByReserve(); | ||
| 1364 | + if (!success) { | ||
| 1365 | + return; | ||
| 1366 | + } | ||
| 1367 | + } | ||
| 1368 | + //调用提交排菜接口 | ||
| 1369 | + //调用排菜信息提交接口 | ||
| 1370 | + | ||
| 1371 | + FocusScope.of(context).requestFocus( | ||
| 1372 | + FocusNode()); //点击空白处隐藏键盘‘i7 8uuUUUUUUum'x\c [] | ||
| 1174 | List<MenuModel> showList = []; | 1373 | List<MenuModel> showList = []; |
| 1175 | List<MenuSunModel> dataLocalShowMore = []; //二级菜单 | 1374 | List<MenuSunModel> dataLocalShowMore = []; //二级菜单 |
| 1176 | List<MenuModel> dataLocalShowOne = []; //一级菜单 | 1375 | List<MenuModel> dataLocalShowOne = []; //一级菜单 |
| @@ -1368,7 +1567,8 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -1368,7 +1567,8 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 1368 | remark: planDishRemark, | 1567 | remark: planDishRemark, |
| 1369 | priceSum: priceSum.toString(), | 1568 | priceSum: priceSum.toString(), |
| 1370 | memberPriceSum: memberPriceSum.toString(), | 1569 | memberPriceSum: memberPriceSum.toString(), |
| 1371 | - planDishText: planDishC.text); | 1570 | + planDishText: planDishC.text, |
| 1571 | + detailEntity: widget.detailEntity); | ||
| 1372 | }, | 1572 | }, |
| 1373 | ), | 1573 | ), |
| 1374 | RoundButton( | 1574 | RoundButton( |
| @@ -1380,8 +1580,19 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -1380,8 +1580,19 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 1380 | radius: r(5), | 1580 | radius: r(5), |
| 1381 | fontSize: 36, | 1581 | fontSize: 36, |
| 1382 | isBold: false, | 1582 | isBold: false, |
| 1383 | - onPressed: () { | ||
| 1384 | - Navigator.pop(context); | 1583 | + onPressed: () async { |
| 1584 | + if (carSum == 0) { | ||
| 1585 | + Utils.showToast('请选择菜品'); | ||
| 1586 | + return; | ||
| 1587 | + } | ||
| 1588 | + //调用提交排菜接口 | ||
| 1589 | + //调用排菜信息提交接口 | ||
| 1590 | + isCar = false; | ||
| 1591 | + bool success = await setPlanCookByReserve(); | ||
| 1592 | + if (success) { | ||
| 1593 | + Navigator.pop(context); | ||
| 1594 | + } | ||
| 1595 | + // Navigator.pop(context); | ||
| 1385 | // NavigatorUtil.goFinalPlanDishPage(context); | 1596 | // NavigatorUtil.goFinalPlanDishPage(context); |
| 1386 | }, | 1597 | }, |
| 1387 | ) | 1598 | ) |
| @@ -1391,7 +1602,7 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -1391,7 +1602,7 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 1391 | ); | 1602 | ); |
| 1392 | } else { | 1603 | } else { |
| 1393 | return ExceptionPage( | 1604 | return ExceptionPage( |
| 1394 | - pageState: model.pageState, | 1605 | + pageState: model.pageStateMenu, |
| 1395 | emptyMsg: '暂时没有菜单哦', | 1606 | emptyMsg: '暂时没有菜单哦', |
| 1396 | callback: () { | 1607 | callback: () { |
| 1397 | _getCookbookByClass(); | 1608 | _getCookbookByClass(); |
| 1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
| 2 | +import 'package:flutter/services.dart'; | ||
| 2 | import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart'; | 3 | import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart'; |
| 3 | import 'package:flutter_screenutil/flutter_screenutil.dart'; | 4 | import 'package:flutter_screenutil/flutter_screenutil.dart'; |
| 5 | +import 'package:one_key/provider/user_model.dart'; | ||
| 4 | import 'package:one_key/route/navigator_util.dart'; | 6 | import 'package:one_key/route/navigator_util.dart'; |
| 5 | import 'package:one_key/utils/utils.dart'; | 7 | import 'package:one_key/utils/utils.dart'; |
| 6 | import 'package:one_key/widgets/MyDivider.dart'; | 8 | import 'package:one_key/widgets/MyDivider.dart'; |
| 7 | import 'package:one_key/widgets/h_empty_view.dart'; | 9 | import 'package:one_key/widgets/h_empty_view.dart'; |
| 8 | import 'package:one_key/widgets/system_app_bar.dart'; | 10 | import 'package:one_key/widgets/system_app_bar.dart'; |
| 9 | import 'package:one_key/widgets/v_empty_view.dart'; | 11 | import 'package:one_key/widgets/v_empty_view.dart'; |
| 12 | +import 'package:provider/provider.dart'; | ||
| 10 | 13 | ||
| 11 | import '../../../res/colors.dart'; | 14 | import '../../../res/colors.dart'; |
| 12 | import '../../../utils/screen_util.dart'; | 15 | import '../../../utils/screen_util.dart'; |
| 13 | import '../../../widgets/round_button.dart'; | 16 | import '../../../widgets/round_button.dart'; |
| 17 | +import '../../constant/state.dart'; | ||
| 18 | +import '../../models/cookbook_model.dart'; | ||
| 19 | +import '../../models/notebook_detail.dart'; | ||
| 20 | +import '../../models/plan_cook_list_model.dart'; | ||
| 21 | +import '../../provider/plan_dish_provider.dart'; | ||
| 22 | +import '../../utils/event_bus.dart'; | ||
| 14 | 23 | ||
| 15 | /** | 24 | /** |
| 16 | * 订座详情---预点菜入口 | 25 | * 订座详情---预点菜入口 |
| 17 | */ | 26 | */ |
| 18 | 27 | ||
| 19 | class OrderAdvanceHomePage extends StatefulWidget { | 28 | class OrderAdvanceHomePage extends StatefulWidget { |
| 20 | - OrderAdvanceHomePage({Key key}) : super(key: key); | 29 | + final NotebookDetail detailEntity; |
| 30 | + final String rid; | ||
| 31 | + OrderAdvanceHomePage({Key key, this.detailEntity, this.rid}) | ||
| 32 | + : super(key: key); | ||
| 21 | 33 | ||
| 22 | @override | 34 | @override |
| 23 | _OrderAdvanceHomePageState createState() => _OrderAdvanceHomePageState(); | 35 | _OrderAdvanceHomePageState createState() => _OrderAdvanceHomePageState(); |
| @@ -28,27 +40,318 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -28,27 +40,318 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 28 | TextEditingController likeController = TextEditingController(); | 40 | TextEditingController likeController = TextEditingController(); |
| 29 | 41 | ||
| 30 | TextEditingController serviceController = TextEditingController(); | 42 | TextEditingController serviceController = TextEditingController(); |
| 43 | + TextEditingController pnumController = TextEditingController(); | ||
| 44 | + bool isTotal = false; //默认人均 | ||
| 45 | + TextEditingController totalController = TextEditingController(); //预计总计 | ||
| 46 | + TextEditingController perController = TextEditingController(); //人均消费 | ||
| 47 | + PlanDishProvider _planDishProvider; | ||
| 48 | + String name; | ||
| 31 | 49 | ||
| 32 | @override | 50 | @override |
| 33 | void initState() { | 51 | void initState() { |
| 34 | super.initState(); | 52 | super.initState(); |
| 53 | + pnumController.text = widget.detailEntity.actual_pum; | ||
| 54 | + WidgetsBinding.instance.addPostFrameCallback((_) async { | ||
| 55 | + _getPlanCookByRid(); | ||
| 56 | + _getPageMenuData(); | ||
| 57 | + bus.on("refresh_order_advance_home", (args) { | ||
| 58 | + _getPlanCookByRid(); | ||
| 59 | + _getPageMenuData(); | ||
| 60 | + }); | ||
| 61 | + }); | ||
| 35 | } | 62 | } |
| 36 | 63 | ||
| 37 | - Widget _selectItem(String title, bool select, String hintText, | ||
| 38 | - TextEditingController controller) { | 64 | + @override |
| 65 | + void dispose() { | ||
| 66 | + super.dispose(); | ||
| 67 | + bus.off("refresh_order_advance_home"); | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + _getPlanCookByRid() async { | ||
| 71 | + await _planDishProvider.getPlanCookByRid(context, {'rid': widget.rid}); | ||
| 72 | + if (_planDishProvider.planCookByRidSunModel != null) { | ||
| 73 | + pnumController.text = _planDishProvider.planCookByRidSunModel.pnum; | ||
| 74 | + if (_planDishProvider.planCookByRidSunModel.totalPrice != '0' && | ||
| 75 | + _planDishProvider.planCookByRidSunModel.totalPrice != null) { | ||
| 76 | + //选中总计 | ||
| 77 | + isTotal = true; | ||
| 78 | + totalController.text = | ||
| 79 | + _planDishProvider.planCookByRidSunModel.totalPrice; | ||
| 80 | + } else if (_planDishProvider.planCookByRidSunModel.perPrice != '0' && | ||
| 81 | + _planDishProvider.planCookByRidSunModel.perPrice != null) { | ||
| 82 | + //选中人均 | ||
| 83 | + isTotal = false; | ||
| 84 | + perController.text = _planDishProvider.planCookByRidSunModel.perPrice; | ||
| 85 | + } | ||
| 86 | + likeController.text = _planDishProvider.planCookByRidSunModel.like ?? ""; | ||
| 87 | + noFoodController.text = | ||
| 88 | + _planDishProvider.planCookByRidSunModel.taboos ?? ''; | ||
| 89 | + serviceController.text = | ||
| 90 | + _planDishProvider.planCookByRidSunModel.serve ?? ''; | ||
| 91 | + name = _planDishProvider.planCookByRidSunModel.planName ?? ""; | ||
| 92 | + } | ||
| 93 | + setState(() {}); | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + _getPageMenuData() async { | ||
| 97 | + Future.wait<bool>( | ||
| 98 | + [_getCookbookByClass(showLoading: true), _getPlanCookList()]) | ||
| 99 | + .then((results) { | ||
| 100 | + print(results[0]); | ||
| 101 | + if (results[0] && results[1]) { | ||
| 102 | + _planDishProvider.menuModelForManager = | ||
| 103 | + List.from(_planDishProvider.menuModel); | ||
| 104 | + //单个菜品 | ||
| 105 | + if (_planDishProvider.planCookByRidSunModel != null && | ||
| 106 | + _planDishProvider.planCookByRidSunModel.cooklist != null && | ||
| 107 | + _planDishProvider.planCookByRidSunModel.cooklist.length > 0) { | ||
| 108 | + _planDishProvider.menuModelForManager.forEach((old) { | ||
| 109 | + _planDishProvider.planCookByRidSunModel.cooklist | ||
| 110 | + .forEach((newvalue) { | ||
| 111 | + if (old.id == newvalue.id) { | ||
| 112 | + //同一分类 | ||
| 113 | + old.cookbooklist.forEach((oldcook) { | ||
| 114 | + newvalue.cookbooklist.forEach((newcook) { | ||
| 115 | + if (oldcook.id == newcook.id) { | ||
| 116 | + //同一个菜 | ||
| 117 | + oldcook.amount = newcook.amount; | ||
| 118 | + } | ||
| 119 | + }); | ||
| 120 | + }); | ||
| 121 | + } | ||
| 122 | + }); | ||
| 123 | + }); | ||
| 124 | + } | ||
| 125 | + | ||
| 126 | + //成功 | ||
| 127 | + MenuModel menuModelSetMeal = MenuModel(); | ||
| 128 | + menuModelSetMeal.className = '套餐'; | ||
| 129 | + menuModelSetMeal.isChange = false; | ||
| 130 | + List<MenuSunModel> cookList = []; | ||
| 131 | + List<SunListPlan> storeList = _planDishProvider.storeListTemp; | ||
| 132 | + | ||
| 133 | + storeList.forEach((element) { | ||
| 134 | + if (element.status == '1') { | ||
| 135 | + MenuSunModel menuSunModel = MenuSunModel(); | ||
| 136 | + menuSunModel.id = element.id; | ||
| 137 | + menuSunModel.name = element.pname; | ||
| 138 | + // menuSunModel.price = element.menuPrice; | ||
| 139 | + menuSunModel.price = element.planPrice; | ||
| 140 | + menuSunModel.member_price = element.memberPrice; | ||
| 141 | + menuSunModel.unit = '份'; | ||
| 142 | + // menuSunModel.amount = element.amount; | ||
| 143 | + menuSunModel.cookList = element.cookList; | ||
| 144 | + | ||
| 145 | + if (_planDishProvider.planCookByRidSunModel != null && | ||
| 146 | + _planDishProvider.planCookByRidSunModel.packageList != null && | ||
| 147 | + _planDishProvider.planCookByRidSunModel.packageList.length > | ||
| 148 | + 0) { | ||
| 149 | + //套餐数据对应 | ||
| 150 | + _planDishProvider.planCookByRidSunModel.packageList | ||
| 151 | + .forEach((package) { | ||
| 152 | + if (package.id == menuSunModel.id) { | ||
| 153 | + //同一个套餐 | ||
| 154 | + menuSunModel.amount = package.amount; | ||
| 155 | + menuSunModel.cookList.forEach((oldcooklist) { | ||
| 156 | + package.cookList.forEach((newcooklist) { | ||
| 157 | + if (oldcooklist.id == newcooklist.id) { | ||
| 158 | + //同一菜品分类 | ||
| 159 | + oldcooklist.cookbooklist.forEach((oldcook) { | ||
| 160 | + newcooklist.cookbooklist.forEach((newcook) { | ||
| 161 | + if (oldcook.id == newcook.id) { | ||
| 162 | + oldcook.amount = newcook.amount; | ||
| 163 | + } | ||
| 164 | + }); | ||
| 165 | + }); | ||
| 166 | + } | ||
| 167 | + }); | ||
| 168 | + }); | ||
| 169 | + } | ||
| 170 | + }); | ||
| 171 | + } | ||
| 172 | + | ||
| 173 | + cookList.add(menuSunModel); | ||
| 174 | + } | ||
| 175 | + }); | ||
| 176 | + menuModelSetMeal.cookbooklist = cookList; | ||
| 177 | + | ||
| 178 | + _planDishProvider.menuModelForManager | ||
| 179 | + .insert(0, menuModelSetMeal); //添加套餐 | ||
| 180 | + | ||
| 181 | + MenuModel menuModelPlanDish = MenuModel(); | ||
| 182 | + menuModelPlanDish.className = '我的排菜'; | ||
| 183 | + menuModelPlanDish.isChange = false; | ||
| 184 | + List<MenuSunModel> cookListPlanDish = []; | ||
| 185 | + List<SunListPlan> mineList = _planDishProvider.mineListTemp; | ||
| 186 | + mineList.forEach((element) { | ||
| 187 | + if (element.status == '1') { | ||
| 188 | + MenuSunModel menuSunModel = MenuSunModel(); | ||
| 189 | + menuSunModel.id = element.id; | ||
| 190 | + menuSunModel.name = element.pname; | ||
| 191 | + menuSunModel.price = element.menuPrice; | ||
| 192 | + menuSunModel.member_price = element.memberPrice; | ||
| 193 | + menuSunModel.unit = '份'; | ||
| 194 | + // menuSunModel.amount = element.amount; | ||
| 195 | + menuSunModel.cookList = element.cookList; | ||
| 196 | + | ||
| 197 | + if (_planDishProvider.planCookByRidSunModel != null && | ||
| 198 | + _planDishProvider.planCookByRidSunModel.planList != null && | ||
| 199 | + _planDishProvider.planCookByRidSunModel.planList.length > 0) { | ||
| 200 | + //排菜数据对应 | ||
| 201 | + _planDishProvider.planCookByRidSunModel.planList | ||
| 202 | + .forEach((package) { | ||
| 203 | + if (package.id == menuSunModel.id) { | ||
| 204 | + //同一个排菜 | ||
| 205 | + menuSunModel.amount = package.amount; | ||
| 206 | + menuSunModel.cookList.forEach((oldcooklist) { | ||
| 207 | + package.cookList.forEach((newcooklist) { | ||
| 208 | + if (oldcooklist.id == newcooklist.id) { | ||
| 209 | + //同一菜品分类 | ||
| 210 | + oldcooklist.cookbooklist.forEach((oldcook) { | ||
| 211 | + newcooklist.cookbooklist.forEach((newcook) { | ||
| 212 | + if (oldcook.id == newcook.id) { | ||
| 213 | + oldcook.amount = newcook.amount; | ||
| 214 | + } | ||
| 215 | + }); | ||
| 216 | + }); | ||
| 217 | + } | ||
| 218 | + }); | ||
| 219 | + }); | ||
| 220 | + } | ||
| 221 | + }); | ||
| 222 | + } | ||
| 223 | + | ||
| 224 | + cookListPlanDish.add(menuSunModel); | ||
| 225 | + } | ||
| 226 | + }); | ||
| 227 | + menuModelPlanDish.cookbooklist = cookListPlanDish; | ||
| 228 | + | ||
| 229 | + _planDishProvider.menuModelForManager | ||
| 230 | + .insert(1, menuModelPlanDish); //添加排菜 | ||
| 231 | + // if (_planDishProvider.planCookByRidSunModel != null && | ||
| 232 | + // _planDishProvider.planCookByRidSunModel.planPrice != null) { | ||
| 233 | + // _calculatePrice(planPrice: _planDishProvider.planCookByRidSunModel.planPrice); | ||
| 234 | + // } else { | ||
| 235 | + // _calculatePrice(); | ||
| 236 | + // } | ||
| 237 | + _planDishProvider.pageStateMenu = PageState.Success; | ||
| 238 | + | ||
| 239 | + setState(() {}); | ||
| 240 | + } else { | ||
| 241 | + if (!results[0]) { | ||
| 242 | + // Utils.showToast(''); | ||
| 243 | + } else { | ||
| 244 | + // Utils.showToast(''); | ||
| 245 | + } | ||
| 246 | + _planDishProvider.pageStateMenu = PageState.ConnectivityError; | ||
| 247 | + } | ||
| 248 | + }).catchError((e) { | ||
| 249 | + print(e); | ||
| 250 | + }); | ||
| 251 | + } | ||
| 252 | + | ||
| 253 | + ///菜品数据 | ||
| 254 | + | ||
| 255 | + Future<bool> _getCookbookByClass({bool showLoading = true}) async { | ||
| 256 | + Map<String, String> params = { | ||
| 257 | + "sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid, | ||
| 258 | + }; | ||
| 259 | + | ||
| 260 | + bool success = await _planDishProvider.getCookbookByClass(context, params, | ||
| 261 | + showLoading: showLoading); | ||
| 262 | + if (success) { | ||
| 263 | + return true; | ||
| 264 | + } else { | ||
| 265 | + return false; | ||
| 266 | + } | ||
| 267 | + // print(widget.data); | ||
| 268 | + | ||
| 269 | + // if (widget.data.length > 0) { | ||
| 270 | + // widget.data.forEach((old) { | ||
| 271 | + // _planDishProvider.menuModel.forEach((element) { | ||
| 272 | + // if (old.id == element.id) { | ||
| 273 | + // element.cookbooklist.forEach((value) { | ||
| 274 | + // old.cookbooklist.forEach((oldCook) { | ||
| 275 | + // if (oldCook.id == value.id) { | ||
| 276 | + // value.amount = oldCook.amount; | ||
| 277 | + // if (oldCook.amount > 0) { | ||
| 278 | + // carSum += oldCook.amount; | ||
| 279 | + // priceSum += double.parse(oldCook.price) * oldCook.amount; | ||
| 280 | + // memberPriceSum += | ||
| 281 | + // double.parse(oldCook.member_price) * oldCook.amount; | ||
| 282 | + // } | ||
| 283 | + // } | ||
| 284 | + // }); | ||
| 285 | + // }); | ||
| 286 | + // } | ||
| 287 | + // }); | ||
| 288 | + // }); | ||
| 289 | + // if (widget.planDishPrice != '' && widget.planDishPrice != null) { | ||
| 290 | + // planDishC.text = widget.planDishPrice; | ||
| 291 | + // } else { | ||
| 292 | + // planDishC.text = '${priceSum}'; | ||
| 293 | + // } | ||
| 294 | + | ||
| 295 | + // setState(() {}); | ||
| 296 | + // } | ||
| 297 | + } | ||
| 298 | + | ||
| 299 | + ///排菜/套餐列表 | ||
| 300 | + | ||
| 301 | + Future<bool> _getPlanCookList({bool isShowLoading = true}) async { | ||
| 302 | + Map<String, String> params = { | ||
| 303 | + "uid": Provider.of<UserModel>(context, listen: false).user.openid, | ||
| 304 | + // 'is_time': '0' | ||
| 305 | + "sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid, | ||
| 306 | + }; | ||
| 307 | + bool success = await _planDishProvider.getPlanCookList(context, params, | ||
| 308 | + showLoading: isShowLoading); | ||
| 309 | + if (success) { | ||
| 310 | + return true; | ||
| 311 | + } else { | ||
| 312 | + return false; | ||
| 313 | + } | ||
| 314 | + } | ||
| 315 | + | ||
| 316 | + Widget _selectItem( | ||
| 317 | + String title, | ||
| 318 | + bool select, | ||
| 319 | + String hintText, | ||
| 320 | + TextEditingController controller, | ||
| 321 | + ) { | ||
| 39 | return Row( | 322 | return Row( |
| 40 | children: [ | 323 | children: [ |
| 41 | - HEmptyView(86), | ||
| 42 | - Image.asset( | ||
| 43 | - Utils.getImgPath( | ||
| 44 | - select ? 'plan_dish_select' : 'plan_dish_unselect'), | ||
| 45 | - width: w(20)), | ||
| 46 | - HEmptyView(10), | ||
| 47 | - Text( | ||
| 48 | - title, | ||
| 49 | - style: TextStyle(fontSize: font(16), color: MyColours.color_515151), | 324 | + InkWell( |
| 325 | + onTap: () { | ||
| 326 | + if (title == '预计人均' && !isTotal) { | ||
| 327 | + return; | ||
| 328 | + } | ||
| 329 | + if (title == '预计总价' && isTotal) { | ||
| 330 | + return; | ||
| 331 | + } | ||
| 332 | + setState(() { | ||
| 333 | + isTotal = !isTotal; | ||
| 334 | + }); | ||
| 335 | + }, | ||
| 336 | + child: Container( | ||
| 337 | + padding: EdgeInsets.symmetric(vertical: w(8)), | ||
| 338 | + child: Row( | ||
| 339 | + children: [ | ||
| 340 | + HEmptyView(86), | ||
| 341 | + Image.asset( | ||
| 342 | + Utils.getImgPath( | ||
| 343 | + select ? 'plan_dish_select' : 'plan_dish_unselect'), | ||
| 344 | + width: w(20)), | ||
| 345 | + HEmptyView(10), | ||
| 346 | + Text( | ||
| 347 | + title, | ||
| 348 | + style: TextStyle( | ||
| 349 | + fontSize: font(16), color: MyColours.color_515151), | ||
| 350 | + ), | ||
| 351 | + HEmptyView(20), | ||
| 352 | + ], | ||
| 353 | + )), | ||
| 50 | ), | 354 | ), |
| 51 | - HEmptyView(20), | ||
| 52 | select | 355 | select |
| 53 | ? Expanded( | 356 | ? Expanded( |
| 54 | child: TextField( | 357 | child: TextField( |
| @@ -197,6 +500,7 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -197,6 +500,7 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 197 | 500 | ||
| 198 | @override | 501 | @override |
| 199 | Widget build(BuildContext context) { | 502 | Widget build(BuildContext context) { |
| 503 | + _planDishProvider = Provider.of<PlanDishProvider>(context, listen: true); | ||
| 200 | return KeyboardDismissOnTap( | 504 | return KeyboardDismissOnTap( |
| 201 | // dismissOnCapturedTaps: true, | 505 | // dismissOnCapturedTaps: true, |
| 202 | child: Scaffold( | 506 | child: Scaffold( |
| @@ -208,12 +512,13 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -208,12 +512,13 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 208 | child: SingleChildScrollView( | 512 | child: SingleChildScrollView( |
| 209 | // controller: controller, | 513 | // controller: controller, |
| 210 | child: Padding( | 514 | child: Padding( |
| 211 | - padding: EdgeInsets.symmetric(horizontal: w(20)), | 515 | + padding: EdgeInsets.only(left: w(20)), |
| 212 | child: Column( | 516 | child: Column( |
| 213 | crossAxisAlignment: CrossAxisAlignment.start, | 517 | crossAxisAlignment: CrossAxisAlignment.start, |
| 214 | children: [ | 518 | children: [ |
| 215 | Container( | 519 | Container( |
| 216 | height: w(48), | 520 | height: w(48), |
| 521 | + padding: EdgeInsets.only(right: w(20)), | ||
| 217 | child: Row( | 522 | child: Row( |
| 218 | children: [ | 523 | children: [ |
| 219 | Text( | 524 | Text( |
| @@ -224,7 +529,7 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -224,7 +529,7 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 224 | ), | 529 | ), |
| 225 | Spacer(), | 530 | Spacer(), |
| 226 | Text( | 531 | Text( |
| 227 | - '2022-11-08 午餐', | 532 | + widget.detailEntity.ddateymd, |
| 228 | style: TextStyle( | 533 | style: TextStyle( |
| 229 | fontSize: font(16), | 534 | fontSize: font(16), |
| 230 | color: MyColours.color_99515151), | 535 | color: MyColours.color_99515151), |
| @@ -232,11 +537,13 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -232,11 +537,13 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 232 | ], | 537 | ], |
| 233 | ), | 538 | ), |
| 234 | ), | 539 | ), |
| 235 | - MyDivider( | ||
| 236 | - double.infinity, | ||
| 237 | - w(1), | ||
| 238 | - color: MyColours.color_DBDBDB, | ||
| 239 | - ), | 540 | + Padding( |
| 541 | + padding: EdgeInsets.only(right: w(20)), | ||
| 542 | + child: MyDivider( | ||
| 543 | + double.infinity, | ||
| 544 | + w(1), | ||
| 545 | + color: MyColours.color_DBDBDB, | ||
| 546 | + )), | ||
| 240 | Container( | 547 | Container( |
| 241 | height: w(48), | 548 | height: w(48), |
| 242 | child: Row( | 549 | child: Row( |
| @@ -248,19 +555,36 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -248,19 +555,36 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 248 | color: MyColours.color_515151), | 555 | color: MyColours.color_515151), |
| 249 | ), | 556 | ), |
| 250 | Spacer(), | 557 | Spacer(), |
| 251 | - Image.asset( | ||
| 252 | - Utils.getImgPath('plan_dish_minus'), | ||
| 253 | - width: w(16), | ||
| 254 | - ), | 558 | + InkWell( |
| 559 | + onTap: () { | ||
| 560 | + int temp = int.parse(pnumController.text); | ||
| 561 | + if (temp == 0) { | ||
| 562 | + return; | ||
| 563 | + } | ||
| 564 | + temp--; | ||
| 565 | + pnumController.text = temp.toString(); | ||
| 566 | + }, | ||
| 567 | + child: Container( | ||
| 568 | + height: w(48), | ||
| 569 | + padding: EdgeInsets.only( | ||
| 570 | + left: w(40), | ||
| 571 | + ), | ||
| 572 | + child: Image.asset( | ||
| 573 | + Utils.getImgPath('plan_dish_minus'), | ||
| 574 | + width: w(16), | ||
| 575 | + ))), | ||
| 255 | Container( | 576 | Container( |
| 256 | width: w(50), | 577 | width: w(50), |
| 257 | // constraints: BoxConstraints(minWidth: w(20)), | 578 | // constraints: BoxConstraints(minWidth: w(20)), |
| 258 | child: TextField( | 579 | child: TextField( |
| 259 | maxLines: 1, | 580 | maxLines: 1, |
| 260 | - // controller: | 581 | + controller: pnumController, |
| 261 | // focusNode: _focusNode, | 582 | // focusNode: _focusNode, |
| 262 | // autofocus: true, | 583 | // autofocus: true, |
| 263 | - | 584 | + inputFormatters: [ |
| 585 | + FilteringTextInputFormatter.allow( | ||
| 586 | + RegExp(r'[0-9]')), | ||
| 587 | + ], | ||
| 264 | style: TextStyle( | 588 | style: TextStyle( |
| 265 | color: MyColours.color_438E93, | 589 | color: MyColours.color_438E93, |
| 266 | fontSize: font(16)), | 590 | fontSize: font(16)), |
| @@ -295,9 +619,24 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -295,9 +619,24 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 295 | // _focusNode.unfocus(); | 619 | // _focusNode.unfocus(); |
| 296 | }, | 620 | }, |
| 297 | )), | 621 | )), |
| 298 | - Image.asset( | ||
| 299 | - Utils.getImgPath('plan_dish_add'), | ||
| 300 | - width: w(16), | 622 | + InkWell( |
| 623 | + onTap: () { | ||
| 624 | + int temp = int.parse(pnumController.text == '' | ||
| 625 | + ? '0' | ||
| 626 | + : pnumController.text); | ||
| 627 | + temp++; | ||
| 628 | + pnumController.text = temp.toString(); | ||
| 629 | + }, | ||
| 630 | + child: Container( | ||
| 631 | + height: w(48), | ||
| 632 | + // color: Colors.red, | ||
| 633 | + padding: EdgeInsets.only( | ||
| 634 | + right: w(20), | ||
| 635 | + ), | ||
| 636 | + child: Image.asset( | ||
| 637 | + Utils.getImgPath('plan_dish_add'), | ||
| 638 | + width: w(16), | ||
| 639 | + )), | ||
| 301 | ), | 640 | ), |
| 302 | ], | 641 | ], |
| 303 | ), | 642 | ), |
| @@ -308,18 +647,26 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -308,18 +647,26 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 308 | style: TextStyle( | 647 | style: TextStyle( |
| 309 | fontSize: font(16), color: MyColours.color_515151), | 648 | fontSize: font(16), color: MyColours.color_515151), |
| 310 | ), | 649 | ), |
| 311 | - VEmptyView(48), | ||
| 312 | - _selectItem('预计人均', false, '点击这里输入预计人均金额', null), | ||
| 313 | - VEmptyView(30), | ||
| 314 | - _selectItem('预计总价', true, '点击这里输入预计总金额', null), | ||
| 315 | - VEmptyView(46), | ||
| 316 | - MyDivider( | ||
| 317 | - double.infinity, | ||
| 318 | - w(1), | ||
| 319 | - color: MyColours.color_DBDBDB, | ||
| 320 | - ), | 650 | + VEmptyView(33), |
| 651 | + Padding( | ||
| 652 | + padding: EdgeInsets.only(right: w(20)), | ||
| 653 | + child: _selectItem( | ||
| 654 | + '预计人均', !isTotal, '点击这里输入预计人均金额', perController)), | ||
| 655 | + Padding( | ||
| 656 | + padding: EdgeInsets.only(right: w(20)), | ||
| 657 | + child: _selectItem( | ||
| 658 | + '预计总价', isTotal, '点击这里输入预计总金额', totalController)), | ||
| 659 | + VEmptyView(31), | ||
| 660 | + Padding( | ||
| 661 | + padding: EdgeInsets.only(right: w(20)), | ||
| 662 | + child: MyDivider( | ||
| 663 | + double.infinity, | ||
| 664 | + w(1), | ||
| 665 | + color: MyColours.color_DBDBDB, | ||
| 666 | + )), | ||
| 321 | Container( | 667 | Container( |
| 322 | - padding: EdgeInsets.symmetric(vertical: w(10)), | 668 | + padding: EdgeInsets.only( |
| 669 | + top: w(10), bottom: w(10), right: w(20)), | ||
| 323 | child: Row( | 670 | child: Row( |
| 324 | mainAxisAlignment: MainAxisAlignment.spaceBetween, | 671 | mainAxisAlignment: MainAxisAlignment.spaceBetween, |
| 325 | children: [ | 672 | children: [ |
| @@ -337,13 +684,22 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -337,13 +684,22 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 337 | ), | 684 | ), |
| 338 | ), | 685 | ), |
| 339 | VEmptyView(32), | 686 | VEmptyView(32), |
| 340 | - _textMulLine('喜好', '点这里输入客户喜好的东西,请用逗号隔开。', likeController), | 687 | + Padding( |
| 688 | + padding: EdgeInsets.only(right: w(20)), | ||
| 689 | + child: _textMulLine( | ||
| 690 | + '喜好', '点这里输入客户喜好的东西,请用逗号隔开。', likeController)), | ||
| 341 | VEmptyView(20), | 691 | VEmptyView(20), |
| 342 | - _textMulLine( | ||
| 343 | - '忌口', '点这里输入客户忌口的东西,请用逗号隔开。', noFoodController), | 692 | + Padding( |
| 693 | + padding: EdgeInsets.only(right: w(20)), | ||
| 694 | + child: _textMulLine( | ||
| 695 | + '忌口', '点这里输入客户忌口的东西,请用逗号隔开。', noFoodController)), | ||
| 344 | VEmptyView(20), | 696 | VEmptyView(20), |
| 345 | - _textMulLine('服务', '点这里输入客户需要的服务,如安静的包间、远离厕所等,请用逗号隔开。', | ||
| 346 | - serviceController), | 697 | + Padding( |
| 698 | + padding: EdgeInsets.only(right: w(20)), | ||
| 699 | + child: _textMulLine( | ||
| 700 | + '服务', | ||
| 701 | + '点这里输入客户需要的服务,如安静的包间、远离厕所等,请用逗号隔开。', | ||
| 702 | + serviceController)), | ||
| 347 | ], | 703 | ], |
| 348 | ), | 704 | ), |
| 349 | ), | 705 | ), |
| @@ -393,10 +749,77 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -393,10 +749,77 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 393 | Expanded( | 749 | Expanded( |
| 394 | flex: 2, | 750 | flex: 2, |
| 395 | child: InkWell( | 751 | child: InkWell( |
| 396 | - onTap: () { | ||
| 397 | - NavigatorUtil.goOrderAdvanceEditPage( | ||
| 398 | - context, | ||
| 399 | - ); | 752 | + onTap: () async { |
| 753 | + //调用排菜信息提交接口 | ||
| 754 | + Map<String, String> params = { | ||
| 755 | + 'sellerid': | ||
| 756 | + Provider.of<UserModel>(context, listen: false) | ||
| 757 | + .user | ||
| 758 | + .sellerid, | ||
| 759 | + 'uid': | ||
| 760 | + Provider.of<UserModel>(context, listen: false) | ||
| 761 | + .user | ||
| 762 | + .openid, | ||
| 763 | + 'rid': widget.rid, | ||
| 764 | + }; | ||
| 765 | + if (_planDishProvider.planId != null && | ||
| 766 | + _planDishProvider.planId != '') { | ||
| 767 | + //已经存在id,则修改 | ||
| 768 | + params['id'] = _planDishProvider.planId; | ||
| 769 | + } | ||
| 770 | + | ||
| 771 | + if (isTotal && | ||
| 772 | + totalController.text.trim().length > 0) { | ||
| 773 | + //预计总价 | ||
| 774 | + params['total_price'] = totalController.text; | ||
| 775 | + params['per_price'] = '0'; | ||
| 776 | + } | ||
| 777 | + if (!isTotal && | ||
| 778 | + perController.text.trim().length > 0) { | ||
| 779 | + //预计人均 | ||
| 780 | + params['per_price'] = perController.text; | ||
| 781 | + params['total_price'] = '0'; | ||
| 782 | + } | ||
| 783 | + | ||
| 784 | + if (likeController.text.trim().length > 0) { | ||
| 785 | + //喜好 | ||
| 786 | + params['like'] = likeController.text; | ||
| 787 | + } | ||
| 788 | + if (noFoodController.text.trim().length > 0) { | ||
| 789 | + //忌口 | ||
| 790 | + params['taboos'] = noFoodController.text; | ||
| 791 | + } | ||
| 792 | + if (serviceController.text.trim().length > 0) { | ||
| 793 | + //服务 | ||
| 794 | + params['serve'] = serviceController.text; | ||
| 795 | + } | ||
| 796 | + if (pnumController.text.trim().length > 0) { | ||
| 797 | + params['pnum'] = pnumController.text; | ||
| 798 | + } | ||
| 799 | + params['plan_name'] = name ?? ''; | ||
| 800 | + | ||
| 801 | +// cooklist 字符串 可选 单点菜品列表 | ||
| 802 | +// package_list 字符串 可选 选中套餐数据,[{"id":1,"num":2},{"id":2,"num":1}] | ||
| 803 | +// often_list 字符串 可选 选中店内常点数据,[{"id":1,"num":2},{"id":2,"num":1}] | ||
| 804 | +// temporary_list 字符串 可选 临时加菜,[{"cook_name":"炒土豆丝","price":20,"num",1,"unit":"份","practice":"香辣"},{"cook_name":"麻婆豆腐","price":18,"num",1,"unit":"份","practice":"香辣"}] | ||
| 805 | +// plan_list 字符串 可选 选中排菜数据,[{"id":1,"num":2},{"id":2,"num":1}] | ||
| 806 | +// menu_price 浮点型 可选 菜单总价 | ||
| 807 | +// member_price 浮点型 可选 会员总价 | ||
| 808 | +// plan_price 浮点型 可选 排菜总价 | ||
| 809 | +// remark | ||
| 810 | + | ||
| 811 | + bool success = await _planDishProvider | ||
| 812 | + .setPlanCookByReserve(context, params); | ||
| 813 | + if (success) { | ||
| 814 | + NavigatorUtil.goOrderAdvanceEditPage(context, | ||
| 815 | + planId: _planDishProvider.planId, | ||
| 816 | + rid: widget.rid, | ||
| 817 | + planCookByRidSunModel: | ||
| 818 | + _planDishProvider.planCookByRidSunModel, | ||
| 819 | + detailEntity: widget.detailEntity); | ||
| 820 | + } else { | ||
| 821 | + Utils.showToast('信息提交失败,请重试'); | ||
| 822 | + } | ||
| 400 | }, | 823 | }, |
| 401 | child: Container( | 824 | child: Container( |
| 402 | decoration: BoxDecoration( | 825 | decoration: BoxDecoration( |
| @@ -423,8 +846,11 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -423,8 +846,11 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 423 | EdgeInsets.symmetric(horizontal: ScreenUtil().setHeight(40)), | 846 | EdgeInsets.symmetric(horizontal: ScreenUtil().setHeight(40)), |
| 424 | decoration: BoxDecoration( | 847 | decoration: BoxDecoration( |
| 425 | border: Border.all( | 848 | border: Border.all( |
| 426 | - color: | ||
| 427 | - true ? MyColours.color_999999 : MyColours.color_199095, | 849 | + color: _planDishProvider.planCookByRidSunModel != null && |
| 850 | + _planDishProvider.planCookByRidSunModel.status == | ||
| 851 | + '2' | ||
| 852 | + ? MyColours.color_199095 | ||
| 853 | + : MyColours.color_999999, | ||
| 428 | width: ScreenUtil().setWidth(2)), | 854 | width: ScreenUtil().setWidth(2)), |
| 429 | borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10)), | 855 | borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10)), |
| 430 | ), | 856 | ), |
| @@ -434,18 +860,55 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -434,18 +860,55 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 434 | child: Row( | 860 | child: Row( |
| 435 | children: [ | 861 | children: [ |
| 436 | Expanded( | 862 | Expanded( |
| 437 | - child: _cancelAndChangeBtn(() { | ||
| 438 | - NavigatorUtil.goOrderEditListShowPage(context); | 863 | + child: _cancelAndChangeBtn(() async { |
| 864 | + if (_planDishProvider.planCookByRidSunModel != null && | ||
| 865 | + _planDishProvider.planCookByRidSunModel.status == | ||
| 866 | + '2') { | ||
| 867 | + //已经提交过菜单,可查看 | ||
| 868 | + FocusScope.of(context) | ||
| 869 | + .requestFocus(FocusNode()); //点击空白处隐藏键盘 | ||
| 870 | + Map temp = | ||
| 871 | + await NavigatorUtil.goOrderEditListShowPage( | ||
| 872 | + context, | ||
| 873 | + object: { | ||
| 874 | + 'object': | ||
| 875 | + _planDishProvider.menuModelForManager, | ||
| 876 | + }, | ||
| 877 | + object1: { | ||
| 878 | + 'object1': _planDishProvider.storeList | ||
| 879 | + }, | ||
| 880 | + object2: { | ||
| 881 | + 'object2': _planDishProvider.mineList | ||
| 882 | + }, | ||
| 883 | + planPrice: _planDishProvider | ||
| 884 | + .planCookByRidSunModel.planPrice, | ||
| 885 | + planCookByRidSunModel: | ||
| 886 | + _planDishProvider.planCookByRidSunModel, | ||
| 887 | + detailEntity: widget.detailEntity, | ||
| 888 | + needSubmmit: true, | ||
| 889 | + rid: widget.rid, | ||
| 890 | + planId: _planDishProvider.planId); | ||
| 891 | + } | ||
| 439 | }, '查看排菜单', | 892 | }, '查看排菜单', |
| 440 | - fontColor: true | ||
| 441 | - ? MyColours.color_999999 | ||
| 442 | - : MyColours.color_199095)), | 893 | + fontColor: |
| 894 | + _planDishProvider.planCookByRidSunModel != | ||
| 895 | + null && | ||
| 896 | + _planDishProvider | ||
| 897 | + .planCookByRidSunModel | ||
| 898 | + .status == | ||
| 899 | + '2' | ||
| 900 | + ? MyColours.color_199095 | ||
| 901 | + : MyColours.color_999999)), | ||
| 443 | MyDivider( | 902 | MyDivider( |
| 444 | ScreenUtil().setWidth(2), | 903 | ScreenUtil().setWidth(2), |
| 445 | ScreenUtil().setWidth(50), | 904 | ScreenUtil().setWidth(50), |
| 446 | - color: true | ||
| 447 | - ? MyColours.color_999999 | ||
| 448 | - : MyColours.color_199095, | 905 | + color: |
| 906 | + _planDishProvider.planCookByRidSunModel != null && | ||
| 907 | + _planDishProvider | ||
| 908 | + .planCookByRidSunModel.status == | ||
| 909 | + '2' | ||
| 910 | + ? MyColours.color_199095 | ||
| 911 | + : MyColours.color_999999, | ||
| 449 | ), | 912 | ), |
| 450 | Expanded( | 913 | Expanded( |
| 451 | child: _cancelAndChangeBtn(() { | 914 | child: _cancelAndChangeBtn(() { |
| @@ -457,11 +920,222 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -457,11 +920,222 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 457 | // } else { | 920 | // } else { |
| 458 | // _showCancelWidget(context); | 921 | // _showCancelWidget(context); |
| 459 | // } | 922 | // } |
| 460 | - NavigatorUtil.goOrderPreviewPage(context); | 923 | + if (_planDishProvider.planCookByRidSunModel != null && |
| 924 | + _planDishProvider.planCookByRidSunModel.status == | ||
| 925 | + '2') { | ||
| 926 | + //提交过排菜单 | ||
| 927 | + | ||
| 928 | + FocusScope.of(context).requestFocus( | ||
| 929 | + FocusNode()); //点击空白处隐藏键盘‘i7 8uuUUUUUUum'x\c [] | ||
| 930 | + List<MenuModel> showList = []; | ||
| 931 | + List<MenuSunModel> dataLocalShowMore = []; //二级菜单 | ||
| 932 | + List<MenuModel> dataLocalShowOne = []; //一级菜单 | ||
| 933 | + | ||
| 934 | + if (_planDishProvider.menuModelForManager != null) { | ||
| 935 | + _planDishProvider.menuModelForManager | ||
| 936 | + .forEach((element) { | ||
| 937 | + if (element.className == '套餐' || | ||
| 938 | + element.className == '我的排菜') { | ||
| 939 | + // //如果是套餐,则看cooklist有没有选中的 | ||
| 940 | + // bool isChange = false; //套餐或者排菜数量是否选中 | ||
| 941 | + // if (element.className == '套餐') { | ||
| 942 | + // isChange = _isChange(widget.storeList); | ||
| 943 | + // } else { | ||
| 944 | + // // isChange = _isChange(widget.storeList); | ||
| 945 | + // } | ||
| 946 | + | ||
| 947 | + element.cookbooklist.forEach((value) { | ||
| 948 | + if (value.amount > 0) { | ||
| 949 | + // if (!isChange) { | ||
| 950 | + // priceSum += double.parse(value.price) * value.amount; | ||
| 951 | + // memberPriceSum += | ||
| 952 | + // double.parse(value.member_price) * value.amount; | ||
| 953 | + // } | ||
| 954 | + //选中了该套餐 | ||
| 955 | + //把套餐中没有选中的菜品踢出去 | ||
| 956 | + MenuSunModel menuSunModel = MenuSunModel(); | ||
| 957 | + List<MenuModel> moreMenu = []; | ||
| 958 | + int moreSum = 0; | ||
| 959 | + //遍历套餐中的菜分类 | ||
| 960 | + value.cookList.forEach((cook) { | ||
| 961 | + //遍历套餐中的具体菜品 | ||
| 962 | + List<MenuSunModel> cooklistSun = []; | ||
| 963 | + int cookSum = 0; | ||
| 964 | + cook.cookbooklist.forEach((cookSun) { | ||
| 965 | + // 具体菜品 | ||
| 966 | + | ||
| 967 | + if (cookSun.amount > 0) { | ||
| 968 | + //当前菜品已选择 | ||
| 969 | + // moreSum += cookSun.amount; | ||
| 970 | + cookSum += cookSun.amount; | ||
| 971 | + | ||
| 972 | + // if (isChange) { | ||
| 973 | + // priceSum += double.parse(cookSun.price) * cookSun.amount; | ||
| 974 | + // memberPriceSum += | ||
| 975 | + // double.parse(cookSun.member_price) * cookSun.amount; | ||
| 976 | + // } | ||
| 977 | + | ||
| 978 | + // carSum += cookSun.amount; | ||
| 979 | + cooklistSun.add(cookSun); | ||
| 980 | + } | ||
| 981 | + }); | ||
| 982 | + if (cooklistSun.length > 0) { | ||
| 983 | + cook.cookbooklist = cooklistSun; | ||
| 984 | + cook.allSum = cookSum; | ||
| 985 | + moreMenu.add(cook); | ||
| 986 | + value.cookList = moreMenu; | ||
| 987 | + } | ||
| 988 | + }); | ||
| 989 | + value.moreSum = value.amount; | ||
| 990 | + value.channel = element.className == '套餐' | ||
| 991 | + ? '1' | ||
| 992 | + : '2'; // 1套餐----2排菜 | ||
| 993 | + dataLocalShowMore.add(value); | ||
| 994 | + } | ||
| 995 | + }); | ||
| 996 | + } else if (element.className == '店内常点') { | ||
| 997 | + // //如果是我的排菜,则看cooklist有没有选中的 | ||
| 998 | + | ||
| 999 | + // bool hasmMine = | ||
| 1000 | + // element.cookbooklist.any(((value) => value.amount > 0)); | ||
| 1001 | + // if (hasmMine) { | ||
| 1002 | + // //套餐中有被选中 | ||
| 1003 | + // maxIndex++; | ||
| 1004 | + // } | ||
| 1005 | + } else if (element.className == '临时加菜') { | ||
| 1006 | + } else { | ||
| 1007 | + //单菜 | ||
| 1008 | + bool hasmMenu = element.cookbooklist | ||
| 1009 | + .any(((value) => value.amount > 0)); | ||
| 1010 | + if (hasmMenu) { | ||
| 1011 | + //单品此类有选中菜品 | ||
| 1012 | + MenuModel menuModel = MenuModel(); | ||
| 1013 | + menuModel.className = element.className; | ||
| 1014 | + menuModel.classLabel = element.classLabel; | ||
| 1015 | + menuModel.classType = element.classType; | ||
| 1016 | + menuModel.id = element.id; | ||
| 1017 | + menuModel.order = element.order; | ||
| 1018 | + menuModel.sellerid = element.sellerid; | ||
| 1019 | + menuModel.status = element.status; | ||
| 1020 | + menuModel.cookbooklist = []; | ||
| 1021 | + List<MenuSunModel> cookbooklist = []; | ||
| 1022 | + int allSum = 0; | ||
| 1023 | + element.cookbooklist.forEach((value) { | ||
| 1024 | + if (value.amount > 0) { | ||
| 1025 | + allSum += value.amount; | ||
| 1026 | + // priceSum += double.parse(value.price) * value.amount; | ||
| 1027 | + // memberPriceSum += | ||
| 1028 | + // double.parse(value.member_price) * value.amount; | ||
| 1029 | + // carSum += value.amount; | ||
| 1030 | + cookbooklist.add(value); | ||
| 1031 | + } | ||
| 1032 | + }); | ||
| 1033 | + menuModel.allSum = allSum; | ||
| 1034 | + menuModel.cookbooklist.addAll(cookbooklist); | ||
| 1035 | + dataLocalShowOne.add(menuModel); | ||
| 1036 | + } | ||
| 1037 | + } | ||
| 1038 | + // planDishC.text = priceSum.toString(); | ||
| 1039 | + }); | ||
| 1040 | + } | ||
| 1041 | + | ||
| 1042 | + dataLocalShowMore.forEach((value) { | ||
| 1043 | + value.cookList.forEach((newValue) { | ||
| 1044 | + if (showList.length == 0) { | ||
| 1045 | + showList.add( | ||
| 1046 | + MenuModel.fromJson2(newValue.toJson())); | ||
| 1047 | + } else { | ||
| 1048 | + bool hasC = false; | ||
| 1049 | + showList.forEach((show) { | ||
| 1050 | + if (show.id == newValue.id) { | ||
| 1051 | + hasC = true; | ||
| 1052 | + //数据存在相同菜类 | ||
| 1053 | + | ||
| 1054 | + newValue.cookbooklist.forEach((newcook) { | ||
| 1055 | + bool has = false; | ||
| 1056 | + show.cookbooklist.forEach((oldshow) { | ||
| 1057 | + if (oldshow.id == newcook.id) { | ||
| 1058 | + //同一个菜品 | ||
| 1059 | + has = true; | ||
| 1060 | + oldshow.amount += newcook.amount; | ||
| 1061 | + show.allSum += newcook.amount; | ||
| 1062 | + } | ||
| 1063 | + }); | ||
| 1064 | + if (!has) { | ||
| 1065 | + //旧的里面没有该菜品 | ||
| 1066 | + show.cookbooklist.add(newcook); | ||
| 1067 | + } | ||
| 1068 | + }); | ||
| 1069 | + } | ||
| 1070 | + }); | ||
| 1071 | + if (!hasC) { | ||
| 1072 | + showList.add( | ||
| 1073 | + MenuModel.fromJson2(newValue.toJson())); | ||
| 1074 | + } | ||
| 1075 | + } | ||
| 1076 | + }); | ||
| 1077 | + }); | ||
| 1078 | + | ||
| 1079 | + print(showList); | ||
| 1080 | + | ||
| 1081 | + dataLocalShowOne.forEach((element) { | ||
| 1082 | + if (showList.length == 0) { | ||
| 1083 | + showList | ||
| 1084 | + .add(MenuModel.fromJson2(element.toJson())); | ||
| 1085 | + } else { | ||
| 1086 | + bool hasC = false; | ||
| 1087 | + showList.forEach((show) { | ||
| 1088 | + if (show.id == element.id) { | ||
| 1089 | + hasC = true; | ||
| 1090 | + //数据存在相同菜类 | ||
| 1091 | + | ||
| 1092 | + element.cookbooklist.forEach((newcook) { | ||
| 1093 | + bool has = false; | ||
| 1094 | + show.cookbooklist.forEach((oldshow) { | ||
| 1095 | + if (oldshow.id == newcook.id) { | ||
| 1096 | + //同一个菜品 | ||
| 1097 | + has = true; | ||
| 1098 | + oldshow.amount += newcook.amount; | ||
| 1099 | + show.allSum += newcook.amount; | ||
| 1100 | + } | ||
| 1101 | + }); | ||
| 1102 | + if (!has) { | ||
| 1103 | + //旧的里面没有该菜品 | ||
| 1104 | + show.cookbooklist.add(newcook); | ||
| 1105 | + } | ||
| 1106 | + }); | ||
| 1107 | + } | ||
| 1108 | + }); | ||
| 1109 | + if (!hasC) { | ||
| 1110 | + showList | ||
| 1111 | + .add(MenuModel.fromJson2(element.toJson())); | ||
| 1112 | + } | ||
| 1113 | + } | ||
| 1114 | + }); | ||
| 1115 | + NavigatorUtil.goOrderPreviewPage(context, | ||
| 1116 | + object: {'object': showList}, | ||
| 1117 | + name: _planDishProvider | ||
| 1118 | + .planCookByRidSunModel.planName, | ||
| 1119 | + remark: _planDishProvider | ||
| 1120 | + .planCookByRidSunModel.remark, | ||
| 1121 | + priceSum: _planDishProvider | ||
| 1122 | + .planCookByRidSunModel.menuPrice, | ||
| 1123 | + memberPriceSum: _planDishProvider | ||
| 1124 | + .planCookByRidSunModel.memberPrice, | ||
| 1125 | + planDishText: _planDishProvider | ||
| 1126 | + .planCookByRidSunModel.planPrice, | ||
| 1127 | + detailEntity: widget.detailEntity); | ||
| 1128 | + } | ||
| 461 | }, '分享排菜单', | 1129 | }, '分享排菜单', |
| 462 | - fontColor: true | ||
| 463 | - ? MyColours.color_999999 | ||
| 464 | - : MyColours.color_199095)), | 1130 | + fontColor: |
| 1131 | + _planDishProvider.planCookByRidSunModel != | ||
| 1132 | + null && | ||
| 1133 | + _planDishProvider | ||
| 1134 | + .planCookByRidSunModel | ||
| 1135 | + .status == | ||
| 1136 | + '2' | ||
| 1137 | + ? MyColours.color_199095 | ||
| 1138 | + : MyColours.color_999999)), | ||
| 465 | ], | 1139 | ], |
| 466 | )), | 1140 | )), |
| 467 | ), | 1141 | ), |
| 1 | +import 'dart:convert'; | ||
| 2 | + | ||
| 1 | import 'package:flutter/material.dart'; | 3 | import 'package:flutter/material.dart'; |
| 2 | import 'package:flutter/services.dart'; | 4 | import 'package:flutter/services.dart'; |
| 3 | import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart'; | 5 | import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart'; |
| 4 | import 'package:one_key/widgets/system_app_bar.dart'; | 6 | import 'package:one_key/widgets/system_app_bar.dart'; |
| 7 | +import 'package:provider/provider.dart'; | ||
| 5 | 8 | ||
| 6 | import '../../../res/colors.dart'; | 9 | import '../../../res/colors.dart'; |
| 7 | import '../../../utils/screen_util.dart'; | 10 | import '../../../utils/screen_util.dart'; |
| @@ -11,18 +14,38 @@ import '../../../widgets/h_empty_view.dart'; | @@ -11,18 +14,38 @@ import '../../../widgets/h_empty_view.dart'; | ||
| 11 | import '../../../widgets/round_button.dart'; | 14 | import '../../../widgets/round_button.dart'; |
| 12 | import '../../../widgets/v_empty_view.dart'; | 15 | import '../../../widgets/v_empty_view.dart'; |
| 13 | import '../../models/cookbook_model.dart'; | 16 | import '../../models/cookbook_model.dart'; |
| 17 | +import '../../models/notebook_detail.dart'; | ||
| 18 | +import '../../models/plan_cook_by_rid_model.dart'; | ||
| 14 | import '../../models/plan_cook_list_model.dart'; | 19 | import '../../models/plan_cook_list_model.dart'; |
| 15 | import '../../provider/plan_dish_provider.dart'; | 20 | import '../../provider/plan_dish_provider.dart'; |
| 21 | +import '../../provider/user_model.dart'; | ||
| 16 | import '../../route/navigator_util.dart'; | 22 | import '../../route/navigator_util.dart'; |
| 17 | import '../../utils/dialog_util.dart'; | 23 | import '../../utils/dialog_util.dart'; |
| 24 | +import '../../utils/event_bus.dart'; | ||
| 18 | 25 | ||
| 19 | class OrderEditListShowPage extends StatefulWidget { | 26 | class OrderEditListShowPage extends StatefulWidget { |
| 20 | final List<SunListPlan> storeList; //套餐元数据 | 27 | final List<SunListPlan> storeList; //套餐元数据 |
| 21 | final List<SunListPlan> mineList; //我的排菜元数据 | 28 | final List<SunListPlan> mineList; //我的排菜元数据 |
| 22 | final List<MenuModel> data; | 29 | final List<MenuModel> data; |
| 23 | final String planPrice; | 30 | final String planPrice; |
| 31 | + final PlanCookByRidSunModel planCookByRidSunModel; | ||
| 32 | + final NotebookDetail detailEntity; | ||
| 33 | + final bool needSubmmit; | ||
| 34 | + final String planId; | ||
| 35 | + final String rid; | ||
| 36 | + final List<MenuModel> datatemp; | ||
| 24 | OrderEditListShowPage( | 37 | OrderEditListShowPage( |
| 25 | - {Key key, this.data, this.storeList, this.mineList, this.planPrice}) | 38 | + {Key key, |
| 39 | + this.data, | ||
| 40 | + this.storeList, | ||
| 41 | + this.mineList, | ||
| 42 | + this.planPrice, | ||
| 43 | + this.planCookByRidSunModel, | ||
| 44 | + this.detailEntity, | ||
| 45 | + this.needSubmmit = false, | ||
| 46 | + this.planId, | ||
| 47 | + this.rid, | ||
| 48 | + this.datatemp}) | ||
| 26 | : super(key: key); | 49 | : super(key: key); |
| 27 | 50 | ||
| 28 | @override | 51 | @override |
| @@ -71,6 +94,11 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | @@ -71,6 +94,11 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | ||
| 71 | void initState() { | 94 | void initState() { |
| 72 | super.initState(); | 95 | super.initState(); |
| 73 | 96 | ||
| 97 | + if (widget.planCookByRidSunModel != null) { | ||
| 98 | + planDishName.text = widget.planCookByRidSunModel.planName ?? ''; | ||
| 99 | + planDishRemark.text = widget.planCookByRidSunModel.remark ?? ''; | ||
| 100 | + } | ||
| 101 | + | ||
| 74 | if (widget.data != null) { | 102 | if (widget.data != null) { |
| 75 | widget.data.forEach((element) { | 103 | widget.data.forEach((element) { |
| 76 | if (element.className == '套餐' || element.className == '我的排菜') { | 104 | if (element.className == '套餐' || element.className == '我的排菜') { |
| @@ -128,6 +156,7 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | @@ -128,6 +156,7 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | ||
| 128 | value.channel = | 156 | value.channel = |
| 129 | element.className == '套餐' ? '1' : '2'; // 1套餐----2排菜 | 157 | element.className == '套餐' ? '1' : '2'; // 1套餐----2排菜 |
| 130 | dataLocalShowMore.add(value); | 158 | dataLocalShowMore.add(value); |
| 159 | + // dataLocalShowMore.add(MenuSunModel.fromJson3(value.toJson())); | ||
| 131 | } | 160 | } |
| 132 | }); | 161 | }); |
| 133 | } else if (element.className == '店内常点') { | 162 | } else if (element.className == '店内常点') { |
| @@ -367,6 +396,87 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | @@ -367,6 +396,87 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | ||
| 367 | return copyList; | 396 | return copyList; |
| 368 | } | 397 | } |
| 369 | 398 | ||
| 399 | + //提交接口 | ||
| 400 | + Future<bool> setPlanCookByReserve(List<MenuModel> temp) async { | ||
| 401 | + Map<String, String> params = { | ||
| 402 | + 'sellerid': Provider.of<UserModel>(context, listen: false).user.sellerid, | ||
| 403 | + 'uid': Provider.of<UserModel>(context, listen: false).user.openid, | ||
| 404 | + 'rid': widget.rid, | ||
| 405 | + }; | ||
| 406 | + if (widget.planId != null && widget.planId != '') { | ||
| 407 | + //已经存在id,则修改 | ||
| 408 | + params['id'] = widget.planId; | ||
| 409 | + } | ||
| 410 | + //单品 | ||
| 411 | + List<MenuModel> cooklistdata = []; | ||
| 412 | + temp.forEach((element) { | ||
| 413 | + if (element.className == '套餐') { | ||
| 414 | + List<MenuSunModel> packagelist = []; | ||
| 415 | + element.cookbooklist.forEach((cooklist) { | ||
| 416 | + if (cooklist.amount > 0) { | ||
| 417 | + packagelist.add(cooklist); | ||
| 418 | + } | ||
| 419 | + }); | ||
| 420 | + if (packagelist.length > 0) { | ||
| 421 | + params['package_list'] = json.encode(packagelist); | ||
| 422 | + } else { | ||
| 423 | + params['package_list'] = null; | ||
| 424 | + } | ||
| 425 | + } else if (element.className == '我的排菜') { | ||
| 426 | + List<MenuSunModel> planlist = []; | ||
| 427 | + element.cookbooklist.forEach((cooklist) { | ||
| 428 | + if (cooklist.amount > 0) { | ||
| 429 | + planlist.add(cooklist); | ||
| 430 | + } | ||
| 431 | + }); | ||
| 432 | + if (planlist.length > 0) { | ||
| 433 | + params['plan_list'] = json.encode(planlist); | ||
| 434 | + } else { | ||
| 435 | + params['plan_list'] = null; | ||
| 436 | + } | ||
| 437 | + } else { | ||
| 438 | + //单品 | ||
| 439 | + cooklistdata.add(element); | ||
| 440 | + } | ||
| 441 | + if (cooklistdata.length > 0) { | ||
| 442 | + cooklistdata.forEach((cooklist) { | ||
| 443 | + cooklist.cookbooklist.removeWhere((element) => element.amount == 0); | ||
| 444 | + }); | ||
| 445 | + if (cooklistdata.length > 0) { | ||
| 446 | + params['cooklist'] = json.encode(cooklistdata); | ||
| 447 | + } else { | ||
| 448 | + params['cooklist'] = null; | ||
| 449 | + } | ||
| 450 | + } | ||
| 451 | + }); | ||
| 452 | + | ||
| 453 | + params['menu_price'] = priceSum.toString(); | ||
| 454 | + params['member_price'] = memberPriceSum.toString(); | ||
| 455 | + params['plan_price'] = planDishC.text; | ||
| 456 | + params['remark'] = planDishRemark.text ?? ""; | ||
| 457 | + params['plan_name'] = planDishName.text ?? ""; | ||
| 458 | + // if (isCar) { | ||
| 459 | + // params['status'] = '1'; | ||
| 460 | + // } else { | ||
| 461 | + // params['status'] = '2'; | ||
| 462 | + // } | ||
| 463 | + | ||
| 464 | +// cooklist 字符串 可选 单点菜品列表 | ||
| 465 | +// package_list 字符串 可选 选中套餐数据,[{"id":1,"num":2},{"id":2,"num":1}] | ||
| 466 | +// often_list 字符串 可选 选中店内常点数据,[{"id":1,"num":2},{"id":2,"num":1}] | ||
| 467 | +// temporary_list 字符串 可选 临时加菜,[{"cook_name":"炒土豆丝","price":20,"num",1,"unit":"份","practice":"香辣"},{"cook_name":"麻婆豆腐","price":18,"num",1,"unit":"份","practice":"香辣"}] | ||
| 468 | +// plan_list 字符串 可选 选中排菜数据,[{"id":1,"num":2},{"id":2,"num":1}] | ||
| 469 | +// menu_price 浮点型 可选 菜单总价 | ||
| 470 | +// member_price 浮点型 可选 会员总价 | ||
| 471 | +// plan_price 浮点型 可选 排菜总价 | ||
| 472 | +// | ||
| 473 | + PlanDishProvider _planDishProvider = | ||
| 474 | + Provider.of<PlanDishProvider>(context, listen: false); | ||
| 475 | + bool success = | ||
| 476 | + await _planDishProvider.setPlanCookByReserve(context, params); | ||
| 477 | + return success; | ||
| 478 | + } | ||
| 479 | + | ||
| 370 | @override | 480 | @override |
| 371 | Widget build(BuildContext context) { | 481 | Widget build(BuildContext context) { |
| 372 | return KeyboardDismissOnTap( | 482 | return KeyboardDismissOnTap( |
| @@ -1795,18 +1905,105 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | @@ -1795,18 +1905,105 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | ||
| 1795 | radius: r(5), | 1905 | radius: r(5), |
| 1796 | fontSize: 36, | 1906 | fontSize: 36, |
| 1797 | isBold: false, | 1907 | isBold: false, |
| 1798 | - onPressed: () { | 1908 | + onPressed: () async { |
| 1799 | // List<MenuSunModel> dataLocalShowMore = []; //二级菜单 | 1909 | // List<MenuSunModel> dataLocalShowMore = []; //二级菜单 |
| 1800 | // List<MenuModel> dataLocalShowOne = []; //一级菜单 | 1910 | // List<MenuModel> dataLocalShowOne = []; //一级菜单 |
| 1801 | - Map data = { | ||
| 1802 | - 'more': dataLocalShowMore, | ||
| 1803 | - 'one': dataLocalShowOne, | ||
| 1804 | - 'planPrice': planDishC.text, | ||
| 1805 | - 'name': planDishName.text, | ||
| 1806 | - 'remark': planDishRemark.text | ||
| 1807 | - }; | ||
| 1808 | - | ||
| 1809 | - Navigator.of(context).pop(data); | 1911 | + if (widget.needSubmmit) { |
| 1912 | + //提交接口 | ||
| 1913 | +// Map temp = { | ||
| 1914 | +// 'more': dataLocalShowMore, | ||
| 1915 | +// 'one': dataLocalShowOne, | ||
| 1916 | +// 'planPrice': planDishC.text, | ||
| 1917 | +// 'name': planDishName.text, | ||
| 1918 | +// 'remark': planDishRemark.text | ||
| 1919 | +// }; | ||
| 1920 | + // List<MenuSunModel> dataLocalShowMore = | ||
| 1921 | + // temp['more']; //二级菜单 | ||
| 1922 | + // List<MenuModel> dataLocalShowOne = | ||
| 1923 | + // temp['one']; //一级菜单 | ||
| 1924 | + // planDishName = planDishName.text; | ||
| 1925 | + // planDishRemark = planDishRemark.text; | ||
| 1926 | + | ||
| 1927 | + // 刷新页面*************** | ||
| 1928 | + | ||
| 1929 | + print(dataLocalShowMore); | ||
| 1930 | + print(dataLocalShowOne); | ||
| 1931 | + | ||
| 1932 | + widget.datatemp.forEach((element) { | ||
| 1933 | + if (element.className == '套餐' || | ||
| 1934 | + element.className == '我的排菜') { | ||
| 1935 | + dataLocalShowMore.forEach((value) { | ||
| 1936 | + element.cookbooklist.forEach((elementCook) { | ||
| 1937 | + if (value.id == elementCook.id) { | ||
| 1938 | + //同一个套餐 | ||
| 1939 | + // elementCook.cookList = value.cookList; | ||
| 1940 | + elementCook.amount = value.moreSum; | ||
| 1941 | + elementCook.cookList.forEach((oldValue) { | ||
| 1942 | + print(dataLocalShowMore); | ||
| 1943 | + oldValue.cookbooklist.forEach((oldCook) { | ||
| 1944 | + oldCook.amount = 0; | ||
| 1945 | + }); | ||
| 1946 | + print(dataLocalShowMore); | ||
| 1947 | + value.cookList.forEach((newValue) { | ||
| 1948 | + if (newValue.id == oldValue.id) { | ||
| 1949 | + //同一个分类 | ||
| 1950 | + | ||
| 1951 | + oldValue.cookbooklist | ||
| 1952 | + .forEach((oldCook) { | ||
| 1953 | + // oldCook.amount = | ||
| 1954 | + // newValue.allSum; | ||
| 1955 | + | ||
| 1956 | + newValue.cookbooklist | ||
| 1957 | + .forEach((newCook) { | ||
| 1958 | + if (oldCook.id == newCook.id) { | ||
| 1959 | + //同一个菜品 | ||
| 1960 | + oldCook.amount = newCook.amount; | ||
| 1961 | + // carSumTemp += newCook.amount; | ||
| 1962 | + } | ||
| 1963 | + }); | ||
| 1964 | + }); | ||
| 1965 | + } | ||
| 1966 | + }); | ||
| 1967 | + }); | ||
| 1968 | + } | ||
| 1969 | + }); | ||
| 1970 | + }); | ||
| 1971 | + } else { | ||
| 1972 | + //单品 | ||
| 1973 | + print(dataLocalShowOne); | ||
| 1974 | + dataLocalShowOne.forEach((one) { | ||
| 1975 | + if (element.id == one.id) { | ||
| 1976 | + //同一分类 | ||
| 1977 | + element.cookbooklist.forEach((old) { | ||
| 1978 | + one.cookbooklist.forEach((newvalue) { | ||
| 1979 | + if (old.id == newvalue.id) { | ||
| 1980 | + old.amount = newvalue.amount; | ||
| 1981 | + } | ||
| 1982 | + }); | ||
| 1983 | + }); | ||
| 1984 | + } | ||
| 1985 | + }); | ||
| 1986 | + } | ||
| 1987 | + }); | ||
| 1988 | + bool success = | ||
| 1989 | + await setPlanCookByReserve(widget.datatemp); | ||
| 1990 | + if (success) { | ||
| 1991 | + //刷新首页 | ||
| 1992 | + bus.emit('refresh_order_advance_home'); | ||
| 1993 | + Navigator.pop(context); | ||
| 1994 | + } | ||
| 1995 | + } else { | ||
| 1996 | + Map data = { | ||
| 1997 | + 'more': dataLocalShowMore, | ||
| 1998 | + 'one': dataLocalShowOne, | ||
| 1999 | + 'planPrice': planDishC.text, | ||
| 2000 | + 'name': planDishName.text, | ||
| 2001 | + 'remark': planDishRemark.text | ||
| 2002 | + }; | ||
| 2003 | + | ||
| 2004 | + Navigator.of(context).pop(data); | ||
| 2005 | + } | ||
| 2006 | + | ||
| 1810 | // NavigatorUtil.goOrderEditListShowPage(context); | 2007 | // NavigatorUtil.goOrderEditListShowPage(context); |
| 1811 | }, | 2008 | }, |
| 1812 | ), | 2009 | ), |
| @@ -11,6 +11,7 @@ import '../../../widgets/h_empty_view.dart'; | @@ -11,6 +11,7 @@ import '../../../widgets/h_empty_view.dart'; | ||
| 11 | import '../../../widgets/round_button.dart'; | 11 | import '../../../widgets/round_button.dart'; |
| 12 | import '../../../widgets/v_empty_view.dart'; | 12 | import '../../../widgets/v_empty_view.dart'; |
| 13 | import '../../models/cookbook_model.dart'; | 13 | import '../../models/cookbook_model.dart'; |
| 14 | +import '../../models/notebook_detail.dart'; | ||
| 14 | import '../../provider/user_model.dart'; | 15 | import '../../provider/user_model.dart'; |
| 15 | import '../../utils/share_helper.dart'; | 16 | import '../../utils/share_helper.dart'; |
| 16 | 17 | ||
| @@ -24,6 +25,7 @@ class OrderPreviewPage extends StatefulWidget { | @@ -24,6 +25,7 @@ class OrderPreviewPage extends StatefulWidget { | ||
| 24 | final String planDishText; | 25 | final String planDishText; |
| 25 | final String name; | 26 | final String name; |
| 26 | final String remark; | 27 | final String remark; |
| 28 | + final NotebookDetail detailEntity; | ||
| 27 | OrderPreviewPage( | 29 | OrderPreviewPage( |
| 28 | {Key key, | 30 | {Key key, |
| 29 | this.showList, | 31 | this.showList, |
| @@ -31,7 +33,8 @@ class OrderPreviewPage extends StatefulWidget { | @@ -31,7 +33,8 @@ class OrderPreviewPage extends StatefulWidget { | ||
| 31 | this.memberPriceSum, | 33 | this.memberPriceSum, |
| 32 | this.planDishText, | 34 | this.planDishText, |
| 33 | this.name, | 35 | this.name, |
| 34 | - this.remark}) | 36 | + this.remark, |
| 37 | + this.detailEntity}) | ||
| 35 | : super(key: key); | 38 | : super(key: key); |
| 36 | 39 | ||
| 37 | @override | 40 | @override |
| @@ -77,6 +80,16 @@ class _OrderPreviewPageState extends State<OrderPreviewPage> { | @@ -77,6 +80,16 @@ class _OrderPreviewPageState extends State<OrderPreviewPage> { | ||
| 77 | Provider.of<UserModel>(context, listen: false).user.sellername; | 80 | Provider.of<UserModel>(context, listen: false).user.sellername; |
| 78 | String sellerAdr = | 81 | String sellerAdr = |
| 79 | Provider.of<UserModel>(context, listen: false).user.sellerAddr; | 82 | Provider.of<UserModel>(context, listen: false).user.sellerAddr; |
| 83 | + String tables = ''; | ||
| 84 | + widget.detailEntity.tables.forEach((element) { | ||
| 85 | + tables += '${element.name}、'; | ||
| 86 | + }); | ||
| 87 | + if (tables.endsWith('、')) { | ||
| 88 | + tables = tables.substring(0, tables.length - 1); | ||
| 89 | + } | ||
| 90 | + String servicePerson = '${widget.detailEntity.nick_name ?? ''}' + | ||
| 91 | + ' ' + | ||
| 92 | + '${widget.detailEntity.seller_user_phone ?? ''}'; | ||
| 80 | return Scaffold( | 93 | return Scaffold( |
| 81 | backgroundColor: MyColours.color_ffffff, | 94 | backgroundColor: MyColours.color_ffffff, |
| 82 | body: Column( | 95 | body: Column( |
| @@ -122,21 +135,21 @@ class _OrderPreviewPageState extends State<OrderPreviewPage> { | @@ -122,21 +135,21 @@ class _OrderPreviewPageState extends State<OrderPreviewPage> { | ||
| 122 | ), | 135 | ), |
| 123 | VEmptyView(26), | 136 | VEmptyView(26), |
| 124 | Text( | 137 | Text( |
| 125 | - '预定贵宾 | 刘生先生', | 138 | + '预定贵宾 | ${widget.detailEntity.rnameStr ?? ''}', |
| 126 | style: TextStyle( | 139 | style: TextStyle( |
| 127 | fontSize: font(14), | 140 | fontSize: font(14), |
| 128 | color: MyColours.color_303030), | 141 | color: MyColours.color_303030), |
| 129 | ), | 142 | ), |
| 130 | VEmptyView(10), | 143 | VEmptyView(10), |
| 131 | Text( | 144 | Text( |
| 132 | - '预定时间 | 2022年11月11日 晚餐', | 145 | + '预定时间 | ${widget.detailEntity.ddateymd}', |
| 133 | style: TextStyle( | 146 | style: TextStyle( |
| 134 | fontSize: font(14), | 147 | fontSize: font(14), |
| 135 | color: MyColours.color_303030), | 148 | color: MyColours.color_303030), |
| 136 | ), | 149 | ), |
| 137 | VEmptyView(10), | 150 | VEmptyView(10), |
| 138 | Text( | 151 | Text( |
| 139 | - '区域桌台 | 一楼包间 108、一楼包间 108、一楼包间 108、一楼包间 108、一楼包间 108', | 152 | + '区域桌台 | ${tables}', |
| 140 | style: TextStyle( | 153 | style: TextStyle( |
| 141 | fontSize: font(14), | 154 | fontSize: font(14), |
| 142 | color: MyColours.color_303030), | 155 | color: MyColours.color_303030), |
| @@ -150,7 +163,7 @@ class _OrderPreviewPageState extends State<OrderPreviewPage> { | @@ -150,7 +163,7 @@ class _OrderPreviewPageState extends State<OrderPreviewPage> { | ||
| 150 | ), | 163 | ), |
| 151 | VEmptyView(10), | 164 | VEmptyView(10), |
| 152 | Text( | 165 | Text( |
| 153 | - '专属服务 | 张山山 18866668888', | 166 | + '专属服务 | ${servicePerson}', |
| 154 | style: TextStyle( | 167 | style: TextStyle( |
| 155 | fontSize: font(14), | 168 | fontSize: font(14), |
| 156 | color: MyColours.color_303030), | 169 | color: MyColours.color_303030), |
| 1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
| 2 | import 'package:one_key/constant/state.dart'; | 2 | import 'package:one_key/constant/state.dart'; |
| 3 | +import 'package:one_key/models/plan_cook_by_rid_model.dart'; | ||
| 3 | import 'package:one_key/models/plan_cook_list_model.dart'; | 4 | import 'package:one_key/models/plan_cook_list_model.dart'; |
| 4 | import 'package:one_key/net/base_resp.dart'; | 5 | import 'package:one_key/net/base_resp.dart'; |
| 5 | import 'package:one_key/net/dio_util.dart'; | 6 | import 'package:one_key/net/dio_util.dart'; |
| @@ -20,7 +21,7 @@ class PlanDishProvider extends ChangeNotifier { | @@ -20,7 +21,7 @@ class PlanDishProvider extends ChangeNotifier { | ||
| 20 | PageState pageStateMine = PageState.Success; | 21 | PageState pageStateMine = PageState.Success; |
| 21 | PageState pageStateMy = PageState.Loading; | 22 | PageState pageStateMy = PageState.Loading; |
| 22 | 23 | ||
| 23 | - PageState pageStateMenu = PageState.Loading; | 24 | + PageState pageStateMenu = PageState.Loading; |
| 24 | 25 | ||
| 25 | List<MenuModel> menuModel; //菜品数据 | 26 | List<MenuModel> menuModel; //菜品数据 |
| 26 | List<MenuModel> menuModelForManager = []; //经理点菜菜品数据 | 27 | List<MenuModel> menuModelForManager = []; //经理点菜菜品数据 |
| @@ -31,6 +32,8 @@ class PlanDishProvider extends ChangeNotifier { | @@ -31,6 +32,8 @@ class PlanDishProvider extends ChangeNotifier { | ||
| 31 | 32 | ||
| 32 | List<SunListPlan> storeListTemp = []; //排菜套餐列表--店铺 | 33 | List<SunListPlan> storeListTemp = []; //排菜套餐列表--店铺 |
| 33 | List<SunListPlan> mineListTemp = []; //排菜套餐列表--我的 | 34 | List<SunListPlan> mineListTemp = []; //排菜套餐列表--我的 |
| 35 | + String planId; | ||
| 36 | + PlanCookByRidSunModel planCookByRidSunModel; //订单排菜的数据 | ||
| 34 | // List<CookbookCategorySunModel> categorySunModel; //菜品分类数据 | 37 | // List<CookbookCategorySunModel> categorySunModel; //菜品分类数据 |
| 35 | // List<CookbookSpecSunModel> specSunModel; //计价单位 | 38 | // List<CookbookSpecSunModel> specSunModel; //计价单位 |
| 36 | 39 | ||
| @@ -84,6 +87,63 @@ class PlanDishProvider extends ChangeNotifier { | @@ -84,6 +87,63 @@ class PlanDishProvider extends ChangeNotifier { | ||
| 84 | } | 87 | } |
| 85 | } | 88 | } |
| 86 | 89 | ||
| 90 | + /// 根据预定ID获取排菜 | ||
| 91 | + getPlanCookByRid(BuildContext context, Map<String, String> params, | ||
| 92 | + {showLoading = false}) async { | ||
| 93 | + BaseResp<dynamic> baseResp = await DioUtil() | ||
| 94 | + .request<dynamic>(context, Method.get, HttpUrl.get_plan_cook_by_rid, | ||
| 95 | + data: params, showLoading: showLoading) | ||
| 96 | + .catchError((error) { | ||
| 97 | + print(error.toString()); | ||
| 98 | + // if (error is MyError) { | ||
| 99 | + // switch (error.type) { | ||
| 100 | + // case 1: | ||
| 101 | + // pageState = PageState.ConnectivityError; | ||
| 102 | + // break; | ||
| 103 | + // case 2: | ||
| 104 | + // pageState = PageState.ConnectivityTimeOut; | ||
| 105 | + // break; | ||
| 106 | + // default: | ||
| 107 | + // pageState = PageState.ConnectivityError; | ||
| 108 | + // break; | ||
| 109 | + // } | ||
| 110 | + // } | ||
| 111 | + // notifyListeners(); | ||
| 112 | + return false; | ||
| 113 | + }); | ||
| 114 | + // menuModel = []; | ||
| 115 | + | ||
| 116 | + if (baseResp != null && baseResp.code == Constant.status_success) { | ||
| 117 | + if (baseResp.data == false) { | ||
| 118 | + // planCookByRidSunModel = PlanCookByRidSunModel(); | ||
| 119 | + | ||
| 120 | + } else { | ||
| 121 | + planCookByRidSunModel = | ||
| 122 | + PlanCookByRidModel.fromJson(baseResp.responseData).data; | ||
| 123 | + if (planCookByRidSunModel != null) { | ||
| 124 | + planId = baseResp.data['id']; | ||
| 125 | + } | ||
| 126 | + } | ||
| 127 | + | ||
| 128 | + // pageState = PageState.Empty; | ||
| 129 | + // } else { | ||
| 130 | + // List menu = baseResp.data[0]['list']; | ||
| 131 | + // for (int i = 0; i < menu.length; i++) { | ||
| 132 | + // menuModel.add(MenuModel.fromJson(menu[i])); | ||
| 133 | + // } | ||
| 134 | + // print(menuModel); | ||
| 135 | + // pageState = PageState.Success; | ||
| 136 | + // } | ||
| 137 | + // notifyListeners(); | ||
| 138 | + return true; | ||
| 139 | + } else { | ||
| 140 | + Utils.showToast(baseResp.msg ?? ""); | ||
| 141 | + // pageState = PageState.ConnectivityError; | ||
| 142 | + // notifyListeners(); | ||
| 143 | + return false; | ||
| 144 | + } | ||
| 145 | + } | ||
| 146 | + | ||
| 87 | ///添加排菜/套餐 | 147 | ///添加排菜/套餐 |
| 88 | 148 | ||
| 89 | Future<bool> setPlanCook(BuildContext context, Map<String, String> params, | 149 | Future<bool> setPlanCook(BuildContext context, Map<String, String> params, |
| @@ -105,6 +165,32 @@ class PlanDishProvider extends ChangeNotifier { | @@ -105,6 +165,32 @@ class PlanDishProvider extends ChangeNotifier { | ||
| 105 | } | 165 | } |
| 106 | } | 166 | } |
| 107 | 167 | ||
| 168 | + Future<bool> setPlanCookByReserve( | ||
| 169 | + BuildContext context, Map<String, String> params, | ||
| 170 | + {showLoading = false}) async { | ||
| 171 | + BaseResp<dynamic> baseResp = await DioUtil() | ||
| 172 | + .request<dynamic>(context, Method.get, HttpUrl.set_plan_cook_by_reserve, | ||
| 173 | + data: params, showLoading: showLoading) | ||
| 174 | + .catchError((error) { | ||
| 175 | + print(error.toString()); | ||
| 176 | + if (error is MyError) {} | ||
| 177 | + return false; | ||
| 178 | + }); | ||
| 179 | + | ||
| 180 | + if (baseResp != null && baseResp.code == Constant.status_success) { | ||
| 181 | + if (baseResp.data == 1) { | ||
| 182 | + return true; | ||
| 183 | + } | ||
| 184 | + if (baseResp.data['id'] != null && baseResp.data['id'] != '') { | ||
| 185 | + planId = baseResp.data['id']; | ||
| 186 | + return true; | ||
| 187 | + } | ||
| 188 | + } else { | ||
| 189 | + Utils.showToast(baseResp.msg ?? ""); | ||
| 190 | + return false; | ||
| 191 | + } | ||
| 192 | + } | ||
| 193 | + | ||
| 108 | ///删除排菜/套餐列表 | 194 | ///删除排菜/套餐列表 |
| 109 | 195 | ||
| 110 | Future<bool> delPlanCook(BuildContext context, Map<String, String> params, | 196 | Future<bool> delPlanCook(BuildContext context, Map<String, String> params, |
| @@ -29,6 +29,7 @@ import '../app.dart'; | @@ -29,6 +29,7 @@ import '../app.dart'; | ||
| 29 | import '../models/get_banquet_by_id_new_model.dart'; | 29 | import '../models/get_banquet_by_id_new_model.dart'; |
| 30 | import '../models/get_banquet_deposit_model.dart'; | 30 | import '../models/get_banquet_deposit_model.dart'; |
| 31 | import '../models/otherset_model.dart'; | 31 | import '../models/otherset_model.dart'; |
| 32 | +import '../models/plan_cook_by_rid_model.dart'; | ||
| 32 | import '../models/plan_cook_list_model.dart'; | 33 | import '../models/plan_cook_list_model.dart'; |
| 33 | import '../models/set_xuan_tai_model.dart'; | 34 | import '../models/set_xuan_tai_model.dart'; |
| 34 | import '../models/wine_model.dart'; | 35 | import '../models/wine_model.dart'; |
| @@ -1209,7 +1210,9 @@ class NavigatorUtil { | @@ -1209,7 +1210,9 @@ class NavigatorUtil { | ||
| 1209 | ///经理排菜-首页 | 1210 | ///经理排菜-首页 |
| 1210 | 1211 | ||
| 1211 | static Future<dynamic> goOrderAdvanceHomePage( | 1212 | static Future<dynamic> goOrderAdvanceHomePage( |
| 1212 | - BuildContext context, { | 1213 | + BuildContext context, |
| 1214 | + NotebookDetail detailEntity, | ||
| 1215 | + String rid, { | ||
| 1213 | replace = false, | 1216 | replace = false, |
| 1214 | }) { | 1217 | }) { |
| 1215 | // if (invoice != null) { | 1218 | // if (invoice != null) { |
| @@ -1221,41 +1224,45 @@ class NavigatorUtil { | @@ -1221,41 +1224,45 @@ class NavigatorUtil { | ||
| 1221 | // return _navigateTo(context, | 1224 | // return _navigateTo(context, |
| 1222 | // "${Routes.order_advance_home_page}?tids=$tids&tableidNow=$tableidNow&fromPage=$fromPage&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}"); | 1225 | // "${Routes.order_advance_home_page}?tids=$tids&tableidNow=$tableidNow&fromPage=$fromPage&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}"); |
| 1223 | // } | 1226 | // } |
| 1224 | - return _navigateTo(context, "${Routes.order_advance_home_page}", | 1227 | + return _navigateTo(context, |
| 1228 | + "${Routes.order_advance_home_page}?detail=${FluroConvertUtils.object2string(detailEntity)}&rid=$rid", | ||
| 1225 | replace: replace); | 1229 | replace: replace); |
| 1226 | } | 1230 | } |
| 1227 | 1231 | ||
| 1228 | ///经理排菜-编辑 | 1232 | ///经理排菜-编辑 |
| 1229 | 1233 | ||
| 1230 | - static Future<dynamic> goOrderAdvanceEditPage( | ||
| 1231 | - BuildContext context, { | ||
| 1232 | - replace = false, | ||
| 1233 | - }) { | 1234 | + static Future<dynamic> goOrderAdvanceEditPage(BuildContext context, |
| 1235 | + {replace = false, | ||
| 1236 | + String planId, | ||
| 1237 | + String rid, | ||
| 1238 | + PlanCookByRidSunModel planCookByRidSunModel, | ||
| 1239 | + NotebookDetail detailEntity}) { | ||
| 1234 | // if (invoice != null) { | 1240 | // if (invoice != null) { |
| 1235 | // return _navigateTo(context, | 1241 | // return _navigateTo(context, |
| 1236 | // "${Routes.order_advance_home_page}?invoice=${FluroConvertUtils.object2string(invoice)}", | 1242 | // "${Routes.order_advance_home_page}?invoice=${FluroConvertUtils.object2string(invoice)}", |
| 1237 | // replace: replace); | 1243 | // replace: replace); |
| 1238 | // } | 1244 | // } |
| 1239 | - // if (object != null) { | ||
| 1240 | - // return _navigateTo(context, | ||
| 1241 | - // "${Routes.order_advance_home_page}?tids=$tids&tableidNow=$tableidNow&fromPage=$fromPage&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}"); | ||
| 1242 | - // } | ||
| 1243 | - return _navigateTo(context, "${Routes.order_advance_edit_page}", | 1245 | + if (planCookByRidSunModel != null) { |
| 1246 | + return _navigateTo(context, | ||
| 1247 | + "${Routes.order_advance_edit_page}?planId=$planId&rid=$rid&planCookByRidSunModel=${FluroConvertUtils.object2string(planCookByRidSunModel)}&detail=${FluroConvertUtils.object2string(detailEntity)}", | ||
| 1248 | + replace: replace); | ||
| 1249 | + } | ||
| 1250 | + return _navigateTo(context, | ||
| 1251 | + "${Routes.order_advance_edit_page}?planId=$planId&rid=$rid&detail=${FluroConvertUtils.object2string(detailEntity)}", | ||
| 1244 | replace: replace); | 1252 | replace: replace); |
| 1245 | } | 1253 | } |
| 1246 | 1254 | ||
| 1247 | ///经理排菜-预览 | 1255 | ///经理排菜-预览 |
| 1248 | 1256 | ||
| 1249 | - static Future<dynamic> goOrderPreviewPage( | ||
| 1250 | - BuildContext context, { | ||
| 1251 | - replace = false, | ||
| 1252 | - Map object, | ||
| 1253 | - String priceSum, | ||
| 1254 | - String memberPriceSum, | ||
| 1255 | - String planDishText, | ||
| 1256 | - String name, | ||
| 1257 | - String remark, | ||
| 1258 | - }) { | 1257 | + static Future<dynamic> goOrderPreviewPage(BuildContext context, |
| 1258 | + {replace = false, | ||
| 1259 | + Map object, | ||
| 1260 | + String priceSum, | ||
| 1261 | + String memberPriceSum, | ||
| 1262 | + String planDishText, | ||
| 1263 | + String name, | ||
| 1264 | + String remark, | ||
| 1265 | + NotebookDetail detailEntity}) { | ||
| 1259 | // if (invoice != null) { | 1266 | // if (invoice != null) { |
| 1260 | // return _navigateTo(context, | 1267 | // return _navigateTo(context, |
| 1261 | // "${Routes.order_advance_home_page}?invoice=${FluroConvertUtils.object2string(invoice)}", | 1268 | // "${Routes.order_advance_home_page}?invoice=${FluroConvertUtils.object2string(invoice)}", |
| @@ -1266,7 +1273,7 @@ class NavigatorUtil { | @@ -1266,7 +1273,7 @@ class NavigatorUtil { | ||
| 1266 | // "${Routes.order_advance_home_page}?tids=$tids&tableidNow=$tableidNow&fromPage=$fromPage&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}"); | 1273 | // "${Routes.order_advance_home_page}?tids=$tids&tableidNow=$tableidNow&fromPage=$fromPage&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}"); |
| 1267 | // } | 1274 | // } |
| 1268 | return _navigateTo(context, | 1275 | return _navigateTo(context, |
| 1269 | - "${Routes.order_preview_page}?object=${FluroConvertUtils.object2string(object)}&priceSum=$priceSum&memberPriceSum=$memberPriceSum&planDishText=$planDishText&name=${Uri.encodeComponent(name)}&remark=${Uri.encodeComponent(remark)}", | 1276 | + "${Routes.order_preview_page}?object=${FluroConvertUtils.object2string(object)}&priceSum=$priceSum&memberPriceSum=$memberPriceSum&planDishText=$planDishText&name=${Uri.encodeComponent(name)}&remark=${Uri.encodeComponent(remark)}&detail=${FluroConvertUtils.object2string(detailEntity)}", |
| 1270 | replace: replace); | 1277 | replace: replace); |
| 1271 | } | 1278 | } |
| 1272 | 1279 | ||
| @@ -1277,17 +1284,27 @@ class NavigatorUtil { | @@ -1277,17 +1284,27 @@ class NavigatorUtil { | ||
| 1277 | Map object, | 1284 | Map object, |
| 1278 | Map object1, | 1285 | Map object1, |
| 1279 | Map object2, | 1286 | Map object2, |
| 1280 | - String planPrice}) { | 1287 | + String planPrice, |
| 1288 | + PlanCookByRidSunModel planCookByRidSunModel, | ||
| 1289 | + NotebookDetail detailEntity, | ||
| 1290 | + bool needSubmmit = false, | ||
| 1291 | + String planId, | ||
| 1292 | + String rid}) { | ||
| 1281 | // if (invoice != null) { | 1293 | // if (invoice != null) { |
| 1282 | // return _navigateTo(context, | 1294 | // return _navigateTo(context, |
| 1283 | // "${Routes.order_advance_home_page}?invoice=${FluroConvertUtils.object2string(invoice)}", | 1295 | // "${Routes.order_advance_home_page}?invoice=${FluroConvertUtils.object2string(invoice)}", |
| 1284 | // replace: replace); | 1296 | // replace: replace); |
| 1285 | // } | 1297 | // } |
| 1298 | + if (object != null && planCookByRidSunModel != null) { | ||
| 1299 | + return _navigateTo(context, | ||
| 1300 | + "${Routes.order_edit_list_show_page}?object=${FluroConvertUtils.object2string(object)}&object1=${FluroConvertUtils.object2string(object1)}&object2=${FluroConvertUtils.object2string(object2)}&planPrice=$planPrice&planCookByRidSunModel=${FluroConvertUtils.object2string(planCookByRidSunModel)}&detail=${FluroConvertUtils.object2string(detailEntity)}&needSubmmit=$needSubmmit&planId=$planId&rid=$rid"); | ||
| 1301 | + } | ||
| 1286 | if (object != null) { | 1302 | if (object != null) { |
| 1287 | return _navigateTo(context, | 1303 | return _navigateTo(context, |
| 1288 | - "${Routes.order_edit_list_show_page}?object=${FluroConvertUtils.object2string(object)}&object1=${FluroConvertUtils.object2string(object1)}&object2=${FluroConvertUtils.object2string(object2)}&planPrice=$planPrice"); | 1304 | + "${Routes.order_edit_list_show_page}?object=${FluroConvertUtils.object2string(object)}&object1=${FluroConvertUtils.object2string(object1)}&object2=${FluroConvertUtils.object2string(object2)}&planPrice=$planPrice&detail=${FluroConvertUtils.object2string(detailEntity)}&needSubmmit=$needSubmmit&planId=$planId&rid=$rid"); |
| 1289 | } | 1305 | } |
| 1290 | - return _navigateTo(context, "${Routes.order_edit_list_show_page}", | 1306 | + return _navigateTo(context, |
| 1307 | + "${Routes.order_edit_list_show_page}?needSubmmit=$needSubmmit&planId=$planId&rid=$rid", | ||
| 1291 | replace: replace); | 1308 | replace: replace); |
| 1292 | } | 1309 | } |
| 1293 | 1310 |
| @@ -150,6 +150,7 @@ import 'package:one_key/utils/utils.dart'; | @@ -150,6 +150,7 @@ import 'package:one_key/utils/utils.dart'; | ||
| 150 | import 'package:provider/provider.dart'; | 150 | import 'package:provider/provider.dart'; |
| 151 | 151 | ||
| 152 | import '../models/get_banquet_by_id_new_model.dart'; | 152 | import '../models/get_banquet_by_id_new_model.dart'; |
| 153 | +import '../models/plan_cook_by_rid_model.dart'; | ||
| 153 | import '../models/plan_cook_list_model.dart'; | 154 | import '../models/plan_cook_list_model.dart'; |
| 154 | import '../models/set_xuan_tai_model.dart'; | 155 | import '../models/set_xuan_tai_model.dart'; |
| 155 | import '../models/setmeal_by_id_model.dart'; | 156 | import '../models/setmeal_by_id_model.dart'; |
| @@ -1931,7 +1932,7 @@ var finalPlanDishPageHandle = new Handler( | @@ -1931,7 +1932,7 @@ var finalPlanDishPageHandle = new Handler( | ||
| 1931 | var orderAdvanceHomePageHandle = new Handler( | 1932 | var orderAdvanceHomePageHandle = new Handler( |
| 1932 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { | 1933 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { |
| 1933 | // String fromPage = params["fromPage"].first; | 1934 | // String fromPage = params["fromPage"].first; |
| 1934 | - // String tids = params["tids"].first; | 1935 | + String rid = params["rid"].first; |
| 1935 | 1936 | ||
| 1936 | // String tableidNow = params["tableidNow"].first; | 1937 | // String tableidNow = params["tableidNow"].first; |
| 1937 | // bool canChoose = params["canChoose"].first == "true" ? true : false; | 1938 | // bool canChoose = params["canChoose"].first == "true" ? true : false; |
| @@ -1944,15 +1945,34 @@ var orderAdvanceHomePageHandle = new Handler( | @@ -1944,15 +1945,34 @@ var orderAdvanceHomePageHandle = new Handler( | ||
| 1944 | // res.add(TableList.fromJson(item)); | 1945 | // res.add(TableList.fromJson(item)); |
| 1945 | // } | 1946 | // } |
| 1946 | // } | 1947 | // } |
| 1948 | + | ||
| 1949 | + NotebookDetail detailEntity = NotebookDetail.fromJson(json | ||
| 1950 | + .decode(FluroConvertUtils.fluroCnParamsDecode(params["detail"].first))); | ||
| 1947 | return ChangeNotifierProvider<PlanDishProvider>( | 1951 | return ChangeNotifierProvider<PlanDishProvider>( |
| 1948 | - create: (_) => PlanDishProvider(), child: OrderAdvanceHomePage()); | 1952 | + create: (_) => PlanDishProvider(), |
| 1953 | + child: OrderAdvanceHomePage(detailEntity: detailEntity, rid: rid)); | ||
| 1949 | }); | 1954 | }); |
| 1950 | 1955 | ||
| 1951 | ///经理排菜---编辑 | 1956 | ///经理排菜---编辑 |
| 1952 | var orderAdvanceEidtPageHandle = new Handler( | 1957 | var orderAdvanceEidtPageHandle = new Handler( |
| 1953 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { | 1958 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { |
| 1954 | - // String fromPage = params["fromPage"].first; | ||
| 1955 | - // String tids = params["tids"].first; | 1959 | + String planId = params["planId"].first; |
| 1960 | + String rid = params["rid"].first; | ||
| 1961 | + NotebookDetail detailEntity = NotebookDetail.fromJson(json | ||
| 1962 | + .decode(FluroConvertUtils.fluroCnParamsDecode(params["detail"].first))); | ||
| 1963 | + PlanCookByRidSunModel planCookByRidSunModel; | ||
| 1964 | + if (params.keys.contains('planCookByRidSunModel')) { | ||
| 1965 | + planCookByRidSunModel = PlanCookByRidSunModel.fromJson(json.decode( | ||
| 1966 | + FluroConvertUtils.fluroCnParamsDecode( | ||
| 1967 | + params["planCookByRidSunModel"].first))); | ||
| 1968 | + } | ||
| 1969 | + // Map object = FluroConvertUtils.string2map(params["object"].first); | ||
| 1970 | + // List temp = object['object']; | ||
| 1971 | + | ||
| 1972 | + // for (var item in temp) { | ||
| 1973 | + // res.add(TableList.fromJson(item)); | ||
| 1974 | + // } | ||
| 1975 | + // } | ||
| 1956 | 1976 | ||
| 1957 | // String tableidNow = params["tableidNow"].first; | 1977 | // String tableidNow = params["tableidNow"].first; |
| 1958 | // bool canChoose = params["canChoose"].first == "true" ? true : false; | 1978 | // bool canChoose = params["canChoose"].first == "true" ? true : false; |
| @@ -1966,7 +1986,12 @@ var orderAdvanceEidtPageHandle = new Handler( | @@ -1966,7 +1986,12 @@ var orderAdvanceEidtPageHandle = new Handler( | ||
| 1966 | // } | 1986 | // } |
| 1967 | // } | 1987 | // } |
| 1968 | return ChangeNotifierProvider<PlanDishProvider>( | 1988 | return ChangeNotifierProvider<PlanDishProvider>( |
| 1969 | - create: (_) => PlanDishProvider(), child: OrderAdvanceEidtPage()); | 1989 | + create: (_) => PlanDishProvider(), |
| 1990 | + child: OrderAdvanceEidtPage( | ||
| 1991 | + planId: planId, | ||
| 1992 | + rid: rid, | ||
| 1993 | + planCookByRidSunModel: planCookByRidSunModel, | ||
| 1994 | + detailEntity: detailEntity)); | ||
| 1970 | }); | 1995 | }); |
| 1971 | 1996 | ||
| 1972 | ///经理排菜---预览页 | 1997 | ///经理排菜---预览页 |
| @@ -1986,7 +2011,8 @@ var orderPreviewPageHandle = new Handler( | @@ -1986,7 +2011,8 @@ var orderPreviewPageHandle = new Handler( | ||
| 1986 | // res.add(TableList.fromJson(item)); | 2011 | // res.add(TableList.fromJson(item)); |
| 1987 | // } | 2012 | // } |
| 1988 | // } | 2013 | // } |
| 1989 | - | 2014 | + NotebookDetail detailEntity = NotebookDetail.fromJson(json |
| 2015 | + .decode(FluroConvertUtils.fluroCnParamsDecode(params["detail"].first))); | ||
| 1990 | List<MenuModel> res = []; | 2016 | List<MenuModel> res = []; |
| 1991 | // String planDishPrice = ''; | 2017 | // String planDishPrice = ''; |
| 1992 | if (params.keys.contains('object')) { | 2018 | if (params.keys.contains('object')) { |
| @@ -2016,7 +2042,8 @@ var orderPreviewPageHandle = new Handler( | @@ -2016,7 +2042,8 @@ var orderPreviewPageHandle = new Handler( | ||
| 2016 | memberPriceSum: memberPriceSum, | 2042 | memberPriceSum: memberPriceSum, |
| 2017 | planDishText: planDishText, | 2043 | planDishText: planDishText, |
| 2018 | name: name, | 2044 | name: name, |
| 2019 | - remark: remark)); | 2045 | + remark: remark, |
| 2046 | + detailEntity: detailEntity)); | ||
| 2020 | }); | 2047 | }); |
| 2021 | 2048 | ||
| 2022 | ///经理排菜---排菜编辑列表展示 | 2049 | ///经理排菜---排菜编辑列表展示 |
| @@ -2037,7 +2064,18 @@ var orderEditListShowPageHandle = new Handler( | @@ -2037,7 +2064,18 @@ var orderEditListShowPageHandle = new Handler( | ||
| 2037 | // } | 2064 | // } |
| 2038 | // } | 2065 | // } |
| 2039 | 2066 | ||
| 2067 | + bool needSubmmit = FluroConvertUtils.string2bool(params["needSubmmit"].first); | ||
| 2068 | + NotebookDetail detailEntity = NotebookDetail.fromJson(json | ||
| 2069 | + .decode(FluroConvertUtils.fluroCnParamsDecode(params["detail"].first))); | ||
| 2070 | + PlanCookByRidSunModel planCookByRidSunModel; | ||
| 2071 | + if (params.keys.contains('planCookByRidSunModel')) { | ||
| 2072 | + planCookByRidSunModel = PlanCookByRidSunModel.fromJson(json.decode( | ||
| 2073 | + FluroConvertUtils.fluroCnParamsDecode( | ||
| 2074 | + params["planCookByRidSunModel"].first))); | ||
| 2075 | + } | ||
| 2076 | + | ||
| 2040 | List<MenuModel> res = []; | 2077 | List<MenuModel> res = []; |
| 2078 | + List<MenuModel> res1 = []; | ||
| 2041 | // String planDishPrice = ''; | 2079 | // String planDishPrice = ''; |
| 2042 | if (params.keys.contains('object')) { | 2080 | if (params.keys.contains('object')) { |
| 2043 | Map object = FluroConvertUtils.string2map(params["object"].first); | 2081 | Map object = FluroConvertUtils.string2map(params["object"].first); |
| @@ -2050,6 +2088,7 @@ var orderEditListShowPageHandle = new Handler( | @@ -2050,6 +2088,7 @@ var orderEditListShowPageHandle = new Handler( | ||
| 2050 | // res.add(menuModel); | 2088 | // res.add(menuModel); |
| 2051 | // print(res); | 2089 | // print(res); |
| 2052 | res.add(MenuModel.fromJson2(item)); | 2090 | res.add(MenuModel.fromJson2(item)); |
| 2091 | + res1.add(MenuModel.fromJson2(item)); | ||
| 2053 | } | 2092 | } |
| 2054 | } | 2093 | } |
| 2055 | List<SunListPlan> storeList = []; | 2094 | List<SunListPlan> storeList = []; |
| @@ -2084,11 +2123,22 @@ var orderEditListShowPageHandle = new Handler( | @@ -2084,11 +2123,22 @@ var orderEditListShowPageHandle = new Handler( | ||
| 2084 | 2123 | ||
| 2085 | String planPrice = params["planPrice"].first; | 2124 | String planPrice = params["planPrice"].first; |
| 2086 | 2125 | ||
| 2087 | - return OrderEditListShowPage( | ||
| 2088 | - data: res, | ||
| 2089 | - storeList: storeList, | ||
| 2090 | - mineList: mineList, | ||
| 2091 | - planPrice: planPrice); | 2126 | + String rid = params["rid"].first; |
| 2127 | + String planId = params["planId"].first; | ||
| 2128 | + | ||
| 2129 | + return ChangeNotifierProvider<PlanDishProvider>( | ||
| 2130 | + create: (_) => PlanDishProvider(), | ||
| 2131 | + child: OrderEditListShowPage( | ||
| 2132 | + data: res, | ||
| 2133 | + storeList: storeList, | ||
| 2134 | + mineList: mineList, | ||
| 2135 | + planPrice: planPrice, | ||
| 2136 | + planCookByRidSunModel: planCookByRidSunModel, | ||
| 2137 | + detailEntity: detailEntity, | ||
| 2138 | + needSubmmit: needSubmmit, | ||
| 2139 | + rid: rid, | ||
| 2140 | + planId: planId, | ||
| 2141 | + datatemp: res1)); | ||
| 2092 | }); | 2142 | }); |
| 2093 | 2143 | ||
| 2094 | ///经理排菜--类型选择 | 2144 | ///经理排菜--类型选择 |
-
Please register or login to post a comment