Commit 8d3867533074cd3b0878ee025c71dab866b869a2

Authored by wdn127929
1 parent 063ad94d

查看菜品价格+核销页面灰屏+宴会选择日期弹框提示已预订

@@ -285,7 +285,8 @@ class _VerificationCouponPageState extends State<VerificationCouponPage> { @@ -285,7 +285,8 @@ class _VerificationCouponPageState extends State<VerificationCouponPage> {
285 : model.orderRechargeByidSunModel 285 : model.orderRechargeByidSunModel
286 .activity.use.isDish 286 .activity.use.isDish
287 ? model 287 ? model
288 - .couponSunModel.use.dish 288 + .orderRechargeByidSunModel
  289 + .activity.use.dish
289 : '', 290 : '',
290 textColor: MyColours.color_438E93, 291 textColor: MyColours.color_438E93,
291 fontSize: 20), 292 fontSize: 20),
@@ -40,9 +40,17 @@ class SelectTableFPage extends StatefulWidget { @@ -40,9 +40,17 @@ class SelectTableFPage extends StatefulWidget {
40 final List<TableList> tableList; 40 final List<TableList> tableList;
41 final String fromPage; 41 final String fromPage;
42 final String tid; 42 final String tid;
43 - 43 + final String hmS;
  44 + final String hmE;
  45 + final String source;
44 SelectTableFPage(this.rid, this.dateTime, this.ddate_slot, 46 SelectTableFPage(this.rid, this.dateTime, this.ddate_slot,
45 - {this.canChoose = false, this.tableList, this.fromPage, this.tid}); 47 + {this.canChoose = false,
  48 + this.tableList,
  49 + this.fromPage,
  50 + this.tid,
  51 + this.hmS,
  52 + this.hmE,
  53 + this.source = '0'});
46 54
47 @override 55 @override
48 State<StatefulWidget> createState() { 56 State<StatefulWidget> createState() {
@@ -232,18 +240,41 @@ class SelectTableFPageState extends State<SelectTableFPage> { @@ -232,18 +240,41 @@ class SelectTableFPageState extends State<SelectTableFPage> {
232 //获取预订(原来普通预订和宴会预订) 240 //获取预订(原来普通预订和宴会预订)
233 _getReserveListAndFeastData(context, params, showloading) async { 241 _getReserveListAndFeastData(context, params, showloading) async {
234 UserModel userModel = Provider.of<UserModel>(context, listen: false); 242 UserModel userModel = Provider.of<UserModel>(context, listen: false);
  243 + String hmsS = " ${widget.hmS}:00"; //起始
  244 + String hmsE = " ${widget.hmE}:59"; //结束
  245 + // String keys = '';
  246 + // if (widget.ddate_slot == '1') {
  247 + // //早市
  248 + // keys = 'morning';
  249 + // } else if (widget.ddate_slot == '2') {
  250 + // //午市
  251 + // keys = 'noon';
  252 + // } else if (widget.ddate_slot == '3') {
  253 + // //晚市
  254 + // keys = 'night';
  255 + // }
  256 +
  257 + // if (keys != '') {
  258 + // List temp = dailyMap[keys];
  259 + // hmsS = " ${temp.first}:00";
  260 + // hmsE = " ${temp.last}:59";
  261 + // } else {
  262 + // hmsS = " 00:00:00";
  263 + // hmsE = " 23:59:59";
  264 + // }
  265 +
235 String timeStrStart = widget.dateTime.year.toString() + 266 String timeStrStart = widget.dateTime.year.toString() +
236 "-" + 267 "-" +
237 Utils.addZeroNumber(widget.dateTime.month) + 268 Utils.addZeroNumber(widget.dateTime.month) +
238 "-" + 269 "-" +
239 Utils.addZeroNumber(widget.dateTime.day) + 270 Utils.addZeroNumber(widget.dateTime.day) +
240 - " 00:00:00"; 271 + hmsS;
241 String timeStrEnd = widget.dateTime.year.toString() + 272 String timeStrEnd = widget.dateTime.year.toString() +
242 "-" + 273 "-" +
243 Utils.addZeroNumber(widget.dateTime.month) + 274 Utils.addZeroNumber(widget.dateTime.month) +
244 "-" + 275 "-" +
245 Utils.addZeroNumber(widget.dateTime.day) + 276 Utils.addZeroNumber(widget.dateTime.day) +
246 - " 23:59:59"; 277 + hmsE;
247 String start = 278 String start =
248 (DateUtil.getDateMsByTimeStr(timeStrStart) / 1000).floor().toString(); 279 (DateUtil.getDateMsByTimeStr(timeStrStart) / 1000).floor().toString();
249 String end = 280 String end =
@@ -253,7 +284,7 @@ class SelectTableFPageState extends State<SelectTableFPage> { @@ -253,7 +284,7 @@ class SelectTableFPageState extends State<SelectTableFPage> {
253 'sid': userModel.user.sellerid, 284 'sid': userModel.user.sellerid,
254 'rdate': '${start}', 285 'rdate': '${start}',
255 'edate': '${end}', 286 'edate': '${end}',
256 - 'ddate_interval': widget.ddate_slot 287 + // 'ddate_interval': widget.ddate_slot
257 }; 288 };
258 return await Future.wait<bool>([ 289 return await Future.wait<bool>([
259 _getOldReserve(context, params, showloading), 290 _getOldReserve(context, params, showloading),
@@ -290,12 +321,15 @@ class SelectTableFPageState extends State<SelectTableFPage> { @@ -290,12 +321,15 @@ class SelectTableFPageState extends State<SelectTableFPage> {
290 Map<String, String> params = { 321 Map<String, String> params = {
291 "sid": sid, 322 "sid": sid,
292 "rdate": _getRdate(), 323 "rdate": _getRdate(),
293 - "ddate_solt": widget.ddate_slot, 324 + // "ddate_solt": widget.ddate_slot,
294 "y": "200", 325 "y": "200",
295 "x": "1", 326 "x": "1",
296 "keywords": "", 327 "keywords": "",
297 "sort": "1" 328 "sort": "1"
298 }; 329 };
  330 + if (widget.source == '1') {
  331 + params['source'] = '1';
  332 + }
299 // List<Notebook> noteBooks = 333 // List<Notebook> noteBooks =
300 // await model.getReserveList(context, params, needLoading: needLoading); 334 // await model.getReserveList(context, params, needLoading: needLoading);
301 bool success = 335 bool success =
@@ -313,28 +347,87 @@ class SelectTableFPageState extends State<SelectTableFPage> { @@ -313,28 +347,87 @@ class SelectTableFPageState extends State<SelectTableFPage> {
313 }); 347 });
314 }); 348 });
315 // banquetByDateData.map((e) => null) 349 // banquetByDateData.map((e) => null)
316 - String banquetKey = '';  
317 - if (widget.ddate_slot == '1') {  
318 - banquetKey = '早餐';  
319 - } else if (widget.ddate_slot == '2') {  
320 - banquetKey = '午餐';  
321 - } else if (widget.ddate_slot == '3') {  
322 - banquetKey = '晚餐';  
323 - } 350 + // String banquetKey = '';
  351 + // if (widget.ddate_slot == '1') {
  352 + // banquetKey = '早餐';
  353 + // } else if (widget.ddate_slot == '2') {
  354 + // banquetKey = '午餐';
  355 + // } else if (widget.ddate_slot == '3') {
  356 + // banquetKey = '晚餐';
  357 + // }
  358 +
  359 + Map<String, List<FeastBoardSunModel>> banquetData = {};
324 banquetByDateDataTemp.forEach((element) { 360 banquetByDateDataTemp.forEach((element) {
325 - FeastBoardSunModel feastBoardSunModel = element.data[banquetKey][0];  
326 - if (feastBoardSunModel.lost == null || feastBoardSunModel.lost == '') {  
327 - //未丢单的宴会  
328 - Notebook notebook = Notebook();  
329 - notebook.tid = element.title;  
330 - notebook.status = '10'; //宴会类型  
331 - notebook.className = feastBoardSunModel.className;  
332 - notebook.id = feastBoardSunModel.rid;  
333 - notebook.rname = feastBoardSunModel.rname;  
334 - notebook.nick_name =  
335 - feastBoardSunModel.nickName ?? feastBoardSunModel.account;  
336 - noteBooks.add(notebook); 361 + List<FeastBoardSunModel> data = [];
  362 + if (element.data['其他'].length > 0) {
  363 + FeastBoardSunModel feastBoardSunModel = element.data['其他'][0];
  364 + if (feastBoardSunModel.lost == null ||
  365 + feastBoardSunModel.lost == '') {
  366 + data.add(feastBoardSunModel); //未丢单宴会合集
  367 + }
  368 + }
  369 + if (element.data['早餐'].length > 0) {
  370 + FeastBoardSunModel feastBoardSunModel = element.data['早餐'][0];
  371 + if (feastBoardSunModel.lost == null ||
  372 + feastBoardSunModel.lost == '') {
  373 + data.add(feastBoardSunModel); //未丢单宴会合集
  374 + }
  375 + }
  376 + if (element.data['午餐'].length > 0) {
  377 + FeastBoardSunModel feastBoardSunModel = element.data['午餐'][0];
  378 + if (feastBoardSunModel.lost == null ||
  379 + feastBoardSunModel.lost == '') {
  380 + data.add(feastBoardSunModel); //未丢单宴会合集
  381 + }
  382 + }
  383 + if (element.data['晚餐'].length > 0) {
  384 + FeastBoardSunModel feastBoardSunModel = element.data['晚餐'][0];
  385 + if (feastBoardSunModel.lost == null ||
  386 + feastBoardSunModel.lost == '') {
  387 + data.add(feastBoardSunModel); //未丢单宴会合集
  388 + }
337 } 389 }
  390 + if (!banquetData.containsKey(element.title)) {
  391 + banquetData[element.title] = data;
  392 + }
  393 + });
  394 +
  395 + List<String> tidsWidget =
  396 + widget.tableList.map((element) => element.id).toList();
  397 + print(tidsWidget);
  398 + banquetData.forEach((key, value) {
  399 + value.forEach((element) {
  400 + //未丢单的宴会
  401 +
  402 + if (!tidsWidget.contains(key)) {
  403 + //带过来的桌子,不能标记已预订,或者已经有宴会
  404 + Notebook notebook = Notebook();
  405 + notebook.tid = key;
  406 + notebook.status = '10'; //宴会类型
  407 + notebook.className = element.className;
  408 + notebook.id = element.rid;
  409 + notebook.rname = element.rname;
  410 + notebook.nick_name = element.nickName ?? element.account;
  411 + noteBooks.add(notebook);
  412 + }
  413 +
  414 + print(noteBooks);
  415 +
  416 + // banquetByDateDataTemp.forEach((element) {
  417 + // FeastBoardSunModel feastBoardSunModel = element.data[banquetKey][0];
  418 + // if (feastBoardSunModel.lost == null || feastBoardSunModel.lost == '') {
  419 + //未丢单的宴会
  420 + // Notebook notebook = Notebook();
  421 + // notebook.tid = element.title;
  422 + // notebook.status = '10'; //宴会类型
  423 + // notebook.className = feastBoardSunModel.className;
  424 + // notebook.id = feastBoardSunModel.rid;
  425 + // notebook.rname = feastBoardSunModel.rname;
  426 + // notebook.nick_name =
  427 + // feastBoardSunModel.nickName ?? feastBoardSunModel.account;
  428 + // noteBooks.add(notebook);
  429 + // }
  430 + });
338 }); 431 });
339 for (Notebook notebook in noteBooks) { 432 for (Notebook notebook in noteBooks) {
340 if (notebook.tid.isEmpty) continue; 433 if (notebook.tid.isEmpty) continue;
@@ -518,18 +611,20 @@ class SelectTableFPageState extends State<SelectTableFPage> { @@ -518,18 +611,20 @@ class SelectTableFPageState extends State<SelectTableFPage> {
518 // timeStrStart = ymd + ' ' + temp.first + ':00'; 611 // timeStrStart = ymd + ' ' + temp.first + ':00';
519 // timeStrEnd = ymd + ' ' + temp.last + ':00'; 612 // timeStrEnd = ymd + ' ' + temp.last + ':00';
520 // } else { 613 // } else {
  614 + String hmsS = " ${widget.hmS}:00"; //起始
  615 + String hmsE = " ${widget.hmE}:59"; //结束
521 timeStrStart = widget.dateTime.year.toString() + 616 timeStrStart = widget.dateTime.year.toString() +
522 "-" + 617 "-" +
523 Utils.addZeroNumber(widget.dateTime.month) + 618 Utils.addZeroNumber(widget.dateTime.month) +
524 "-" + 619 "-" +
525 Utils.addZeroNumber(widget.dateTime.day) + 620 Utils.addZeroNumber(widget.dateTime.day) +
526 - " 00:00:00"; 621 + hmsS;
527 timeStrEnd = widget.dateTime.year.toString() + 622 timeStrEnd = widget.dateTime.year.toString() +
528 "-" + 623 "-" +
529 Utils.addZeroNumber(widget.dateTime.month) + 624 Utils.addZeroNumber(widget.dateTime.month) +
530 "-" + 625 "-" +
531 Utils.addZeroNumber(widget.dateTime.day) + 626 Utils.addZeroNumber(widget.dateTime.day) +
532 - " 23:59:59"; 627 + hmsE;
533 // } 628 // }
534 startDay = (DateTime.parse(timeStrStart).millisecondsSinceEpoch) / 1000; 629 startDay = (DateTime.parse(timeStrStart).millisecondsSinceEpoch) / 1000;
535 endDay = (DateTime.parse(timeStrEnd).millisecondsSinceEpoch) / 1000; 630 endDay = (DateTime.parse(timeStrEnd).millisecondsSinceEpoch) / 1000;
@@ -20,10 +20,14 @@ import '../../constant/state.dart'; @@ -20,10 +20,14 @@ import '../../constant/state.dart';
20 import '../../models/dsolt_xt.dart'; 20 import '../../models/dsolt_xt.dart';
21 import '../../models/feast_menu_model.dart'; 21 import '../../models/feast_menu_model.dart';
22 import '../../models/get_banquet_by_id_new_model.dart'; 22 import '../../models/get_banquet_by_id_new_model.dart';
  23 +import '../../models/get_board_model.dart';
  24 +import '../../models/notebook.dart';
23 import '../../models/set_xuan_tai_model.dart'; 25 import '../../models/set_xuan_tai_model.dart';
24 import '../../models/setmeal_by_id_model.dart'; 26 import '../../models/setmeal_by_id_model.dart';
25 import '../../models/upload_img_model.dart'; 27 import '../../models/upload_img_model.dart';
  28 +import '../../provider/choose_table_model.dart';
26 import '../../provider/feast_model.dart'; 29 import '../../provider/feast_model.dart';
  30 +import '../../provider/notebook_model.dart';
27 import '../../provider/upload_img_provider.dart'; 31 import '../../provider/upload_img_provider.dart';
28 import '../../provider/user_model.dart'; 32 import '../../provider/user_model.dart';
29 import '../../res/colors.dart'; 33 import '../../res/colors.dart';
@@ -43,6 +47,8 @@ import 'package:one_key/models/table_list.dart' as t; @@ -43,6 +47,8 @@ import 'package:one_key/models/table_list.dart' as t;
43 import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart'; 47 import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
44 import '../../widgets/special_text/my_extended_text_selection_controls.dart'; 48 import '../../widgets/special_text/my_extended_text_selection_controls.dart';
45 49
  50 +import 'package:one_key/models/table.dart' as table;
  51 +
46 class FeastCreatePage extends StatefulWidget { 52 class FeastCreatePage extends StatefulWidget {
47 final GetBanquetByIdNewSunModel banquetDetail; 53 final GetBanquetByIdNewSunModel banquetDetail;
48 final bool isCreate; 54 final bool isCreate;
@@ -99,6 +105,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -99,6 +105,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
99 MyTextSelectionControls _myExtendedMaterialTextSelectionControls = 105 MyTextSelectionControls _myExtendedMaterialTextSelectionControls =
100 MyTextSelectionControls(); 106 MyTextSelectionControls();
101 107
  108 + ChooseTableModel _chooseTableModel;
  109 + List<Notebook> noteBooks;
  110 + Map<String, Notebook> tableMap = {}; //记录已预订桌位对应的订单
  111 +
102 @override 112 @override
103 void initState() { 113 void initState() {
104 // TODO: implement initState 114 // TODO: implement initState
@@ -1225,6 +1235,303 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1225,6 +1235,303 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1225 return startDay.floor().toString() + "-" + endDay.floor().toString(); 1235 return startDay.floor().toString() + "-" + endDay.floor().toString();
1226 } 1236 }
1227 1237
  1238 + //获取一天开始-结束时间字符串
  1239 + String _getRdateGetNotebook() {
  1240 + String timeStrStart = '';
  1241 + String timeStrEnd = '';
  1242 + //一天开始时间
  1243 + double startDay;
  1244 + //一天结束时间
  1245 + double endDay;
  1246 +
  1247 + SetXuanTaiModel setXuanTaiModel = xuantaiData[xuantaiSelIndex];
  1248 +
  1249 + String hmsS = " ${setXuanTaiModel.startDate}:00"; //起始
  1250 + String hmsE = " ${setXuanTaiModel.endDate}:59"; //结束
  1251 + timeStrStart = setXuanTaiModel.dateTimext.year.toString() +
  1252 + "-" +
  1253 + Utils.addZeroNumber(setXuanTaiModel.dateTimext.month) +
  1254 + "-" +
  1255 + Utils.addZeroNumber(setXuanTaiModel.dateTimext.day) +
  1256 + hmsS;
  1257 + timeStrEnd = setXuanTaiModel.dateTimext.year.toString() +
  1258 + "-" +
  1259 + Utils.addZeroNumber(setXuanTaiModel.dateTimext.month) +
  1260 + "-" +
  1261 + Utils.addZeroNumber(setXuanTaiModel.dateTimext.day) +
  1262 + hmsE;
  1263 + // }
  1264 + startDay = (DateTime.parse(timeStrStart).millisecondsSinceEpoch) / 1000;
  1265 + endDay = (DateTime.parse(timeStrEnd).millisecondsSinceEpoch) / 1000;
  1266 + return startDay.floor().toString() + "-" + endDay.floor().toString();
  1267 + }
  1268 +
  1269 + //获取预订(原来普通预订和宴会预订)
  1270 + _getReserveListAndFeastData(context, params, showloading) async {
  1271 + UserModel userModel = Provider.of<UserModel>(context, listen: false);
  1272 + SetXuanTaiModel setXuanTaiModel = xuantaiData[xuantaiSelIndex];
  1273 + String timeStrStart = '';
  1274 + String timeStrEnd = '';
  1275 + String hmsS = " ${setXuanTaiModel.startDate}:00"; //起始
  1276 + String hmsE = " ${setXuanTaiModel.endDate}:59"; //结束
  1277 + timeStrStart = setXuanTaiModel.dateTimext.year.toString() +
  1278 + "-" +
  1279 + Utils.addZeroNumber(setXuanTaiModel.dateTimext.month) +
  1280 + "-" +
  1281 + Utils.addZeroNumber(setXuanTaiModel.dateTimext.day) +
  1282 + hmsS;
  1283 + timeStrEnd = setXuanTaiModel.dateTimext.year.toString() +
  1284 + "-" +
  1285 + Utils.addZeroNumber(setXuanTaiModel.dateTimext.month) +
  1286 + "-" +
  1287 + Utils.addZeroNumber(setXuanTaiModel.dateTimext.day) +
  1288 + hmsE;
  1289 + String start =
  1290 + (DateUtil.getDateMsByTimeStr(timeStrStart) / 1000).floor().toString();
  1291 + String end =
  1292 + (DateUtil.getDateMsByTimeStr(timeStrEnd) / 1000).floor().toString();
  1293 +
  1294 + Map<String, String> banquetmap = {
  1295 + 'sid': userModel.user.sellerid,
  1296 + 'rdate': '${start}',
  1297 + 'edate': '${end}',
  1298 + // 'ddate_interval': widget.ddate_slot
  1299 + };
  1300 + return await Future.wait<bool>([
  1301 + _getOldReserve(context, params, showloading),
  1302 + _chooseTableModel.getBanquetByDate(context, banquetmap,
  1303 + showLoading: showloading)
  1304 + ]).then((results) {
  1305 + if (results[0] && results[1]) {
  1306 + //成功
  1307 + return true;
  1308 + } else {
  1309 + if (!results[0]) {
  1310 + // Utils.showToast('');
  1311 + } else {
  1312 + // Utils.showToast('');
  1313 + }
  1314 + return false;
  1315 + }
  1316 + }).catchError((e) {
  1317 + print(e);
  1318 + return false;
  1319 + });
  1320 + }
  1321 +
  1322 + Future<bool> _getOldReserve(context, params, showloading) async {
  1323 + NoteBookModel model = new NoteBookModel();
  1324 + noteBooks =
  1325 + await model.getReserveList(context, params, needLoading: showloading);
  1326 + return true;
  1327 + }
  1328 +
  1329 + //获取已预订列表
  1330 + _getReserveList({needLoading = true}) async {
  1331 + Map<String, String> params = {
  1332 + "sid": Provider.of<UserModel>(context, listen: false).user.sellerid,
  1333 + "rdate": _getRdateGetNotebook(),
  1334 + // "ddate_solt": widget.ddate_slot,
  1335 + "y": "200",
  1336 + "x": "1",
  1337 + "keywords": "",
  1338 + "sort": "1"
  1339 + };
  1340 +
  1341 + params['source'] = '1';
  1342 +
  1343 + bool success =
  1344 + await _getReserveListAndFeastData(context, params, needLoading);
  1345 + if (success) {
  1346 + List<FeastBoardModel> banquetByDateDataTemp = []; //转换为桌子id为key,data为value
  1347 + _chooseTableModel.banquetByDateData.forEach((element) {
  1348 + _chooseTableModel.tablesAll.forEach((table) {
  1349 + if (table.name == element.title) {
  1350 + FeastBoardModel feastBoardModel = FeastBoardModel();
  1351 + feastBoardModel.title = table.id;
  1352 + feastBoardModel.data = element.data;
  1353 + banquetByDateDataTemp.add(feastBoardModel);
  1354 + }
  1355 + });
  1356 + });
  1357 + // banquetByDateData.map((e) => null)
  1358 + // String banquetKey = '';
  1359 + // if (widget.ddate_slot == '1') {
  1360 + // banquetKey = '早餐';
  1361 + // } else if (widget.ddate_slot == '2') {
  1362 + // banquetKey = '午餐';
  1363 + // } else if (widget.ddate_slot == '3') {
  1364 + // banquetKey = '晚餐';
  1365 + // }
  1366 +
  1367 + Map<String, List<FeastBoardSunModel>> banquetData = {};
  1368 + banquetByDateDataTemp.forEach((element) {
  1369 + List<FeastBoardSunModel> data = [];
  1370 + if (element.data['其他'].length > 0) {
  1371 + FeastBoardSunModel feastBoardSunModel = element.data['其他'][0];
  1372 + if (feastBoardSunModel.lost == null ||
  1373 + feastBoardSunModel.lost == '') {
  1374 + data.add(feastBoardSunModel); //未丢单宴会合集
  1375 + }
  1376 + }
  1377 + if (element.data['早餐'].length > 0) {
  1378 + FeastBoardSunModel feastBoardSunModel = element.data['早餐'][0];
  1379 + if (feastBoardSunModel.lost == null ||
  1380 + feastBoardSunModel.lost == '') {
  1381 + data.add(feastBoardSunModel); //未丢单宴会合集
  1382 + }
  1383 + }
  1384 + if (element.data['午餐'].length > 0) {
  1385 + FeastBoardSunModel feastBoardSunModel = element.data['午餐'][0];
  1386 + if (feastBoardSunModel.lost == null ||
  1387 + feastBoardSunModel.lost == '') {
  1388 + data.add(feastBoardSunModel); //未丢单宴会合集
  1389 + }
  1390 + }
  1391 + if (element.data['晚餐'].length > 0) {
  1392 + FeastBoardSunModel feastBoardSunModel = element.data['晚餐'][0];
  1393 + if (feastBoardSunModel.lost == null ||
  1394 + feastBoardSunModel.lost == '') {
  1395 + data.add(feastBoardSunModel); //未丢单宴会合集
  1396 + }
  1397 + }
  1398 + if (!banquetData.containsKey(element.title)) {
  1399 + banquetData[element.title] = data;
  1400 + }
  1401 + });
  1402 +
  1403 + List<String> tidsWidget = xuantaiData[xuantaiSelIndex]
  1404 + .tableList
  1405 + .map((element) => element.id)
  1406 + .toList();
  1407 + print(tidsWidget);
  1408 + banquetData.forEach((key, value) {
  1409 + value.forEach((element) {
  1410 + //未丢单的宴会
  1411 +
  1412 + if (!tidsWidget.contains(key)) {
  1413 + //带过来的桌子,不能标记已预订,或者已经有宴会
  1414 + Notebook notebook = Notebook();
  1415 + notebook.tid = key;
  1416 + notebook.status = '10'; //宴会类型
  1417 + notebook.className = element.className;
  1418 + notebook.id = element.rid;
  1419 + notebook.rname = element.rname;
  1420 + notebook.nick_name = element.nickName ?? element.account;
  1421 + noteBooks.add(notebook);
  1422 + }
  1423 +
  1424 + print(noteBooks);
  1425 + });
  1426 + });
  1427 + for (Notebook notebook in noteBooks) {
  1428 + if (notebook.tid.isEmpty) continue;
  1429 + if (notebook.status == "1" ||
  1430 + notebook.status == "2" ||
  1431 + notebook.status == "5" ||
  1432 + notebook.status == "10") {
  1433 + //已预订,用餐中,已安排
  1434 + List<String> tids = notebook.tid.split(",");
  1435 + for (String tid in tids) {
  1436 + tableMap["$tid"] = notebook;
  1437 + }
  1438 + }
  1439 + }
  1440 +
  1441 + // List<Notebook> noteBooks =
  1442 + // await newGetReserveList(context, params, showLoading: showloading);
  1443 + List<t.TableList> tempSelectTables = [];
  1444 + tempSelectTables.addAll(xuantaiData[xuantaiSelIndex].tableList);
  1445 + String msg = '';
  1446 + for (Notebook notebook in noteBooks) {
  1447 + if (notebook.tid.isEmpty) continue;
  1448 +
  1449 + //已预订,用餐中,已安排
  1450 + List<String> tids = notebook.tid.split(",");
  1451 + for (String tid in tids) {
  1452 + if (notebook.status == "1" ||
  1453 + notebook.status == "2" ||
  1454 + notebook.status == "5" ||
  1455 + notebook.status == "10") {
  1456 + tableMap["$tid"] = notebook;
  1457 +
  1458 + ///预订按钮点击的时候提醒已经被预订的桌子
  1459 + ///
  1460 + if (xuantaiData[xuantaiSelIndex].tableList.length > 0) {
  1461 + for (t.TableList item in xuantaiData[xuantaiSelIndex].tableList) {
  1462 + // if (item.isMerge == '1') {
  1463 + // // (tids.contains(item.tids))
  1464 + // List<String> mergetids = item.tids.split(',');
  1465 + // outerloop:
  1466 + // for (int i = 0; i < mergetids.length; i++) {
  1467 + // String mergetid = mergetids[i];
  1468 + // if (tids.contains(mergetid)) {
  1469 + // msg += '${item.name},';
  1470 + // tempSelectTables.remove(item);
  1471 + // break outerloop;
  1472 + // }
  1473 + // }
  1474 + // }
  1475 + if (item.id == tid) {
  1476 + msg += '${item.name},';
  1477 + tempSelectTables.remove(item);
  1478 + xuantaiData[xuantaiSelIndex]
  1479 + .tids
  1480 + .removeWhere((element) => element.tid == tid);
  1481 + }
  1482 + }
  1483 + }
  1484 + }
  1485 + }
  1486 + // if (xuantaiData[xuantaiSelIndex].tableList.length > 0 &&
  1487 + // notebook.status == "1" ||
  1488 + // notebook.status == "2" ||
  1489 + // notebook.status == "5" ||
  1490 + // notebook.status == "10") {
  1491 + // outerloop:
  1492 + // for (t.TableList item in xuantaiData[xuantaiSelIndex].tableList) {
  1493 + // if (item.isMerge == '1') {
  1494 + // // (tids.contains(item.tids))
  1495 + // List<String> mergetids = item.tids.split(',');
  1496 +
  1497 + // for (int i = 0; i < mergetids.length; i++) {
  1498 + // String mergetid = mergetids[i];
  1499 + // if (tids.contains(mergetid)) {
  1500 + // msg += '${item.name},';
  1501 + // tempSelectTables.remove(item);
  1502 + // break outerloop;
  1503 + // }
  1504 + // }
  1505 + // }
  1506 + // }
  1507 + // }
  1508 + }
  1509 + if (msg != '' && xuantaiData[xuantaiSelIndex].tableList.length > 0) {
  1510 + if (msg.endsWith(',')) {
  1511 + msg = msg.substring(0, msg.length - 1);
  1512 + }
  1513 + xuantaiData[xuantaiSelIndex].tableList = tempSelectTables;
  1514 + Utils.showToast('${msg}已被预订,请选择其他桌位!');
  1515 + print(tableMap);
  1516 +
  1517 + xuantaiData[xuantaiSelIndex].tableSum = 0;
  1518 +
  1519 + xuantaiData[xuantaiSelIndex].tids.forEach((element) {
  1520 + xuantaiData[xuantaiSelIndex].tableSum += element.numStr;
  1521 + });
  1522 +
  1523 + setState(() {});
  1524 + // initData(needKeep: needKeep);
  1525 +
  1526 + // notifyListeners();
  1527 + return false;
  1528 + }
  1529 +
  1530 + // print(tableMap);
  1531 + }
  1532 + return true;
  1533 + }
  1534 +
1228 /// 选台保存接口 1535 /// 选台保存接口
1229 Future<bool> xtSave() async { 1536 Future<bool> xtSave() async {
1230 //判断非空选项,并弹窗提醒用户填写信息 1537 //判断非空选项,并弹窗提醒用户填写信息
@@ -1245,7 +1552,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1245,7 +1552,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1245 canRequest = false; 1552 canRequest = false;
1246 break outerloop; 1553 break outerloop;
1247 } 1554 }
1248 - if (element.cdShow == '不带餐' && element.qsDateShow == '暂未选择') { 1555 + // if (element.cdShow == '不带餐' && element.qsDateShow == '暂未选择') {
  1556 + if (element.qsDateShow == '暂未选择') {
1249 Utils.showToast('请选择${reserveOrder}起始时间'); 1557 Utils.showToast('请选择${reserveOrder}起始时间');
1250 canRequest = false; 1558 canRequest = false;
1251 break outerloop; 1559 break outerloop;
@@ -1658,13 +1966,14 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1658,13 +1966,14 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1658 .then((day) async { 1966 .then((day) async {
1659 if (day != null) { 1967 if (day != null) {
1660 setState(() { 1968 setState(() {
1661 - xuantaiData[xuantaiSelIndex].tids = [];  
1662 - xuantaiData[xuantaiSelIndex].tableList = [];  
1663 - xuantaiData[xuantaiSelIndex].tableSum = 0; 1969 + // xuantaiData[xuantaiSelIndex].tids = [];
  1970 + // xuantaiData[xuantaiSelIndex].tableList = [];
  1971 + // xuantaiData[xuantaiSelIndex].tableSum = 0;
1664 xuantaiData[xuantaiSelIndex].dateTimext = day; 1972 xuantaiData[xuantaiSelIndex].dateTimext = day;
1665 xuantaiData[xuantaiSelIndex].dateTimeShowxt = 1973 xuantaiData[xuantaiSelIndex].dateTimeShowxt =
1666 createDateText(context, day); 1974 createDateText(context, day);
1667 }); 1975 });
  1976 + _getReserveList();
1668 } 1977 }
1669 }); 1978 });
1670 }), 1979 }),
@@ -1703,16 +2012,22 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1703,16 +2012,22 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1703 }), 2012 }),
1704 _selectWidget( 2013 _selectWidget(
1705 '起始时间', xuantaiData[xuantaiSelIndex].qsDateShow, 2014 '起始时间', xuantaiData[xuantaiSelIndex].qsDateShow,
1706 - need: xuantaiData[xuantaiSelIndex].cdShow == '不带餐'  
1707 - ? true  
1708 - : false, onTap: () { 2015 + // need: xuantaiData[xuantaiSelIndex].cdShow == '不带餐'
  2016 + // ? true
  2017 + // : false,
  2018 + need: true, onTap: () {
1709 FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘 2019 FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
1710 2020
1711 SetTimeWidget.init.showFeastTimeSelector( 2021 SetTimeWidget.init.showFeastTimeSelector(
1712 context, 2022 context,
1713 SetTimeWidget.init.getFeastDateData('00:00-23:30'), 2023 SetTimeWidget.init.getFeastDateData('00:00-23:30'),
1714 - xuantaiData[xuantaiSelIndex].startDate,  
1715 - xuantaiData[xuantaiSelIndex].endDate, (value) { 2024 + xuantaiData[xuantaiSelIndex].startDate == ''
  2025 + ? '8:00'
  2026 + : xuantaiData[xuantaiSelIndex].startDate,
  2027 + xuantaiData[xuantaiSelIndex].endDate == ''
  2028 + ? '8:00'
  2029 + : xuantaiData[xuantaiSelIndex].endDate,
  2030 + (value) {
1716 if (value != null) { 2031 if (value != null) {
1717 xuantaiData[xuantaiSelIndex].startDate = 2032 xuantaiData[xuantaiSelIndex].startDate =
1718 SetTimeWidget.init.getSelectTitle(value[0]); 2033 SetTimeWidget.init.getSelectTitle(value[0]);
@@ -1950,121 +2265,139 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -1950,121 +2265,139 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
1950 onPressed: () async { 2265 onPressed: () async {
1951 FocusScope.of(context) 2266 FocusScope.of(context)
1952 .requestFocus(FocusNode()); //点击空白处隐藏键盘 2267 .requestFocus(FocusNode()); //点击空白处隐藏键盘
  2268 + if (xuantaiData[xuantaiSelIndex]
  2269 + .dateTimeShowxt ==
  2270 + '请选择') {
  2271 + Utils.showToast('请选择宴会日期');
  2272 + return;
  2273 + }
1953 if (xuantaiData[xuantaiSelIndex].cdShow == 2274 if (xuantaiData[xuantaiSelIndex].cdShow ==
1954 '请选择') { 2275 '请选择') {
1955 Utils.showToast('请选择餐段'); 2276 Utils.showToast('请选择餐段');
1956 return; 2277 return;
1957 } 2278 }
  2279 + if (xuantaiData[xuantaiSelIndex].qsDateShow ==
  2280 + '暂未选择') {
  2281 + Utils.showToast('请选择起始时间');
  2282 + return;
  2283 + }
1958 2284
1959 - if (xuantaiData[xuantaiSelIndex].cdShow ==  
1960 - '不带餐') {  
1961 - Map temp = {};  
1962 - if (xuantaiData[xuantaiSelIndex]  
1963 - .tableList !=  
1964 - null &&  
1965 - xuantaiData[xuantaiSelIndex]  
1966 - .tableList  
1967 - .length >  
1968 - 0) {  
1969 - temp = await NavigatorUtil  
1970 - .goFeastSelectTablePage(context,  
1971 - object: {  
1972 - 'object':  
1973 - xuantaiData[xuantaiSelIndex]  
1974 - .tableList  
1975 - });  
1976 - } else {  
1977 - temp = await NavigatorUtil  
1978 - .goFeastSelectTablePage(  
1979 - context,  
1980 - );  
1981 - } 2285 + // if (xuantaiData[xuantaiSelIndex].cdShow ==
  2286 + // '不带餐') {
  2287 + // Map temp = {};
  2288 + // if (xuantaiData[xuantaiSelIndex]
  2289 + // .tableList !=
  2290 + // null &&
  2291 + // xuantaiData[xuantaiSelIndex]
  2292 + // .tableList
  2293 + // .length >
  2294 + // 0) {
  2295 + // temp = await NavigatorUtil
  2296 + // .goFeastSelectTablePage(context,
  2297 + // object: {
  2298 + // 'object':
  2299 + // xuantaiData[xuantaiSelIndex]
  2300 + // .tableList
  2301 + // });
  2302 + // } else {
  2303 + // temp = await NavigatorUtil
  2304 + // .goFeastSelectTablePage(
  2305 + // context,
  2306 + // );
  2307 + // }
  2308 +
  2309 + // if (temp == null) {
  2310 + // } else if (temp['object'].length == 0) {
  2311 + // } else {
  2312 + // xuantaiData[xuantaiSelIndex].tids = [];
  2313 + // xuantaiData[xuantaiSelIndex].tableList =
  2314 + // temp['object'];
  2315 +
  2316 + // for (t.TableList item
  2317 + // in xuantaiData[xuantaiSelIndex]
  2318 + // .tableList) {
  2319 + // item.selected = true;
  2320 + // Tids tids = Tids();
  2321 + // tids.tid = item.id;
  2322 + // tids.name = item.name ?? "";
  2323 + // xuantaiData[xuantaiSelIndex]
  2324 + // .tids
  2325 + // .add(tids);
  2326 + // }
  2327 + // setState(() {});
  2328 + // }
  2329 + // } else {
  2330 + // if (xuantaiData[xuantaiSelIndex]
  2331 + // .dateTimeShowxt ==
  2332 + // '请选择') {
  2333 + // Utils.showToast('请选择宴会日期');
  2334 + // return;
  2335 + // }
  2336 + //带餐
  2337 + int ddate = xuantaiData[xuantaiSelIndex]
  2338 + .dateTimext
  2339 + .millisecondsSinceEpoch;
  2340 + String ddateSolt = dsoltList[
  2341 + xuantaiData[xuantaiSelIndex]
  2342 + .cdSelIndex]
  2343 + .id;
1982 2344
1983 - if (temp == null) {  
1984 - } else if (temp['object'].length == 0) {  
1985 - } else {  
1986 - xuantaiData[xuantaiSelIndex].tids = [];  
1987 - xuantaiData[xuantaiSelIndex].tableList =  
1988 - temp['object'];  
1989 -  
1990 - for (t.TableList item  
1991 - in xuantaiData[xuantaiSelIndex]  
1992 - .tableList) {  
1993 - item.selected = true;  
1994 - Tids tids = Tids();  
1995 - tids.tid = item.id;  
1996 - tids.name = item.name ?? "";  
1997 - xuantaiData[xuantaiSelIndex]  
1998 - .tids  
1999 - .add(tids);  
2000 - }  
2001 - setState(() {});  
2002 - } 2345 + Map temp = {};
  2346 + if (xuantaiData[xuantaiSelIndex].tableList !=
  2347 + null &&
  2348 + xuantaiData[xuantaiSelIndex]
  2349 + .tableList
  2350 + .length >
  2351 + 0) {
  2352 + temp =
  2353 + await NavigatorUtil.goSelectTableFPage(
  2354 + context, '', ddate, ddateSolt,
  2355 + canChoose: true,
  2356 + hmS: xuantaiData[xuantaiSelIndex]
  2357 + .startDate,
  2358 + hmE: xuantaiData[xuantaiSelIndex]
  2359 + .endDate,
  2360 + source: '1',
  2361 + object: {
  2362 + 'object': xuantaiData[xuantaiSelIndex]
  2363 + .tableList
  2364 + });
2003 } else { 2365 } else {
2004 - if (xuantaiData[xuantaiSelIndex]  
2005 - .dateTimeShowxt ==  
2006 - '请选择') {  
2007 - Utils.showToast('请选择宴会日期');  
2008 - return;  
2009 - }  
2010 - //带餐  
2011 - int ddate = xuantaiData[xuantaiSelIndex]  
2012 - .dateTimext  
2013 - .millisecondsSinceEpoch;  
2014 - String ddateSolt = dsoltList[  
2015 - xuantaiData[xuantaiSelIndex]  
2016 - .cdSelIndex]  
2017 - .id; 2366 + temp =
  2367 + await NavigatorUtil.goSelectTableFPage(
  2368 + context,
  2369 + '',
  2370 + ddate,
  2371 + ddateSolt,
  2372 + hmS: xuantaiData[xuantaiSelIndex]
  2373 + .startDate,
  2374 + hmE: xuantaiData[xuantaiSelIndex].endDate,
  2375 + source: '1',
  2376 + canChoose: true,
  2377 + );
  2378 + }
2018 2379
2019 - Map temp = {};  
2020 - if (xuantaiData[xuantaiSelIndex]  
2021 - .tableList !=  
2022 - null &&  
2023 - xuantaiData[xuantaiSelIndex]  
2024 - .tableList  
2025 - .length >  
2026 - 0) {  
2027 - temp = await NavigatorUtil  
2028 - .goSelectTableFPage(  
2029 - context, '', ddate, ddateSolt,  
2030 - canChoose: true,  
2031 - object: {  
2032 - 'object':  
2033 - xuantaiData[xuantaiSelIndex]  
2034 - .tableList  
2035 - });  
2036 - } else {  
2037 - temp = await NavigatorUtil  
2038 - .goSelectTableFPage(  
2039 - context,  
2040 - '',  
2041 - ddate,  
2042 - ddateSolt,  
2043 - canChoose: true,  
2044 - );  
2045 - } 2380 + if (temp == null) {
  2381 + } else if (temp['object'].length == 0) {
  2382 + } else {
  2383 + xuantaiData[xuantaiSelIndex].tids = [];
  2384 + xuantaiData[xuantaiSelIndex].tableList =
  2385 + temp['object'];
2046 2386
2047 - if (temp == null) {  
2048 - } else if (temp['object'].length == 0) {  
2049 - } else {  
2050 - xuantaiData[xuantaiSelIndex].tids = [];  
2051 - xuantaiData[xuantaiSelIndex].tableList =  
2052 - temp['object'];  
2053 -  
2054 - for (t.TableList item  
2055 - in xuantaiData[xuantaiSelIndex]  
2056 - .tableList) {  
2057 - item.selected = true;  
2058 - Tids tids = Tids();  
2059 - tids.tid = item.id;  
2060 - tids.name = item.name ?? "";  
2061 - xuantaiData[xuantaiSelIndex]  
2062 - .tids  
2063 - .add(tids);  
2064 - }  
2065 - setState(() {}); 2387 + for (t.TableList item
  2388 + in xuantaiData[xuantaiSelIndex]
  2389 + .tableList) {
  2390 + item.selected = true;
  2391 + Tids tids = Tids();
  2392 + tids.tid = item.id;
  2393 + tids.name = item.name ?? "";
  2394 + xuantaiData[xuantaiSelIndex]
  2395 + .tids
  2396 + .add(tids);
2066 } 2397 }
  2398 + setState(() {});
2067 } 2399 }
  2400 + // }
2068 }, 2401 },
2069 ), 2402 ),
2070 VEmptyView(52), 2403 VEmptyView(52),
@@ -4646,6 +4979,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> { @@ -4646,6 +4979,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
4646 userModel = Provider.of<UserModel>(context, listen: false); 4979 userModel = Provider.of<UserModel>(context, listen: false);
4647 _uploadImageProvider = 4980 _uploadImageProvider =
4648 Provider.of<UploadImageProvider>(context, listen: true); 4981 Provider.of<UploadImageProvider>(context, listen: true);
  4982 +
  4983 + _chooseTableModel = Provider.of<ChooseTableModel>(context, listen: false);
4649 return KeyboardDismissOnTap( 4984 return KeyboardDismissOnTap(
4650 child: Scaffold( 4985 child: Scaffold(
4651 backgroundColor: MyColours.color_ffffff, 4986 backgroundColor: MyColours.color_ffffff,
@@ -87,7 +87,7 @@ class _MessageHasOrderFoodPageState extends State<MessageHasOrderFoodPage> { @@ -87,7 +87,7 @@ class _MessageHasOrderFoodPageState extends State<MessageHasOrderFoodPage> {
87 sumMemberPrice += double.parse( 87 sumMemberPrice += double.parse(
88 element.specMemberPrice == '0' || element.specMemberPrice == null 88 element.specMemberPrice == '0' || element.specMemberPrice == null
89 ? element.specPrice == null 89 ? element.specPrice == null
90 - ? 0 90 + ? '0'
91 : element.specPrice 91 : element.specPrice
92 : element.specMemberPrice); 92 : element.specMemberPrice);
93 }); 93 });
@@ -499,8 +499,7 @@ class _MessageHasOrderFoodPageState extends State<MessageHasOrderFoodPage> { @@ -499,8 +499,7 @@ class _MessageHasOrderFoodPageState extends State<MessageHasOrderFoodPage> {
499 Utils.goShareOrderFoodToWeChat(context, 499 Utils.goShareOrderFoodToWeChat(context,
500 rid: widget.rid, 500 rid: widget.rid,
501 title: '菜品已点好,快来看看都点了什么~', 501 title: '菜品已点好,快来看看都点了什么~',
502 - oid: _orderFoodProvider  
503 - .createdOrderSunModel.id, 502 + oid: _orderFoodProvider.createdOrderSunModel.id,
504 img: 503 img:
505 'http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148571.jpg'); 504 'http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148571.jpg');
506 }, 505 },
@@ -671,27 +671,27 @@ class TableManagerModel with ChangeNotifier { @@ -671,27 +671,27 @@ class TableManagerModel with ChangeNotifier {
671 String hmsS = ''; //起始 671 String hmsS = ''; //起始
672 String hmsE = ''; //结束 672 String hmsE = ''; //结束
673 String keys = ''; 673 String keys = '';
674 - // if (currTimeIndex == 1) {  
675 - // //早市  
676 - // keys = 'morning';  
677 - // } else if (currTimeIndex == 2) {  
678 - // //午市  
679 - // keys = 'noon';  
680 - // } else if (currTimeIndex == 3) {  
681 - // //晚市  
682 - // keys = 'night';  
683 - // } 674 + if (currTimeIndex == 1) {
  675 + //早市
  676 + keys = 'morning';
  677 + } else if (currTimeIndex == 2) {
  678 + //午市
  679 + keys = 'noon';
  680 + } else if (currTimeIndex == 3) {
  681 + //晚市
  682 + keys = 'night';
  683 + }
684 684
685 - // if (keys != '') {  
686 - // List temp = dailyMap[keys];  
687 - // hmsS = " ${temp.first}:00";  
688 - // hmsE = " ${temp.last}:59";  
689 - // } else {  
690 - // hmsS = " 00:00:00";  
691 - // hmsE = " 23:59:59";  
692 - // }  
693 - hmsS = " 00:00:00";  
694 - hmsE = " 23:59:59"; 685 + if (keys != '') {
  686 + List temp = dailyMap[keys];
  687 + hmsS = " ${temp.first}:00";
  688 + hmsE = " ${temp.last}:59";
  689 + } else {
  690 + hmsS = " 00:00:00";
  691 + hmsE = " 23:59:59";
  692 + }
  693 + // hmsS = " 00:00:00";
  694 + // hmsE = " 23:59:59";
695 695
696 UserModel userModel = Provider.of<UserModel>(context, listen: false); 696 UserModel userModel = Provider.of<UserModel>(context, listen: false);
697 String timeStrStart = dateTime.year.toString() + 697 String timeStrStart = dateTime.year.toString() +
@@ -716,7 +716,7 @@ class TableManagerModel with ChangeNotifier { @@ -716,7 +716,7 @@ class TableManagerModel with ChangeNotifier {
716 'sid': userModel.user.sellerid, 716 'sid': userModel.user.sellerid,
717 'rdate': '${start}', 717 'rdate': '${start}',
718 'edate': '${end}', 718 'edate': '${end}',
719 - 'ddate_interval': currTimeIndex.toString() 719 + // 'ddate_interval': currTimeIndex.toString()
720 }; 720 };
721 return await Future.wait<bool>([ 721 return await Future.wait<bool>([
722 _getOldReserve(context, params, showloading, selfDismiss: selfDismiss), 722 _getOldReserve(context, params, showloading, selfDismiss: selfDismiss),
@@ -788,28 +788,61 @@ class TableManagerModel with ChangeNotifier { @@ -788,28 +788,61 @@ class TableManagerModel with ChangeNotifier {
788 }); 788 });
789 }); 789 });
790 // banquetByDateData.map((e) => null) 790 // banquetByDateData.map((e) => null)
791 - String banquetKey = '';  
792 - if (currTimeIndex == 1) {  
793 - banquetKey = '早餐';  
794 - } else if (currTimeIndex == 2) {  
795 - banquetKey = '午餐';  
796 - } else if (currTimeIndex == 3) {  
797 - banquetKey = '晚餐';  
798 - } 791 + // String banquetKey = '';
  792 + // if (currTimeIndex == 1) {
  793 + // banquetKey = '早餐';
  794 + // } else if (currTimeIndex == 2) {
  795 + // banquetKey = '午餐';
  796 + // } else if (currTimeIndex == 3) {
  797 + // banquetKey = '晚餐';
  798 + // }
  799 +
  800 + Map<String, List<FeastBoardSunModel>> banquetData = {};
799 banquetByDateDataTemp.forEach((element) { 801 banquetByDateDataTemp.forEach((element) {
800 - FeastBoardSunModel feastBoardSunModel = element.data[banquetKey][0];  
801 - if (feastBoardSunModel.lost == null || feastBoardSunModel.lost == '') { 802 + List<FeastBoardSunModel> data = [];
  803 + if (element.data['其他'].length > 0) {
  804 + FeastBoardSunModel feastBoardSunModel = element.data['其他'][0];
  805 + if (feastBoardSunModel.lost == null ||
  806 + feastBoardSunModel.lost == '') {
  807 + data.add(feastBoardSunModel); //未丢单宴会合集
  808 + }
  809 + }
  810 + if (element.data['早餐'].length > 0) {
  811 + FeastBoardSunModel feastBoardSunModel = element.data['早餐'][0];
  812 + if (feastBoardSunModel.lost == null ||
  813 + feastBoardSunModel.lost == '') {
  814 + data.add(feastBoardSunModel); //未丢单宴会合集
  815 + }
  816 + }
  817 + if (element.data['午餐'].length > 0) {
  818 + FeastBoardSunModel feastBoardSunModel = element.data['午餐'][0];
  819 + if (feastBoardSunModel.lost == null ||
  820 + feastBoardSunModel.lost == '') {
  821 + data.add(feastBoardSunModel); //未丢单宴会合集
  822 + }
  823 + }
  824 + if (element.data['晚餐'].length > 0) {
  825 + FeastBoardSunModel feastBoardSunModel = element.data['晚餐'][0];
  826 + if (feastBoardSunModel.lost == null ||
  827 + feastBoardSunModel.lost == '') {
  828 + data.add(feastBoardSunModel); //未丢单宴会合集
  829 + }
  830 + }
  831 +
  832 + banquetData[element.title] = data;
  833 + });
  834 + banquetData.forEach((key, value) {
  835 + value.forEach((element) {
802 //未丢单的宴会 836 //未丢单的宴会
803 Notebook notebook = Notebook(); 837 Notebook notebook = Notebook();
804 - notebook.tid = element.title; 838 + notebook.tid = key;
805 notebook.status = '10'; //宴会类型 839 notebook.status = '10'; //宴会类型
806 - notebook.className = feastBoardSunModel.className;  
807 - notebook.id = feastBoardSunModel.rid;  
808 - notebook.rname = feastBoardSunModel.rname;  
809 - notebook.nick_name =  
810 - feastBoardSunModel.nickName ?? feastBoardSunModel.account; 840 + notebook.className = element.className;
  841 + notebook.id = element.rid;
  842 + notebook.rname = element.rname;
  843 + notebook.nick_name = element.nickName ?? element.account;
811 noteBooks.add(notebook); 844 noteBooks.add(notebook);
812 - } 845 + });
813 }); 846 });
814 847
815 // List<Notebook> noteBooks = 848 // List<Notebook> noteBooks =
@@ -140,14 +140,17 @@ class NavigatorUtil { @@ -140,14 +140,17 @@ class NavigatorUtil {
140 {bool canChoose = false, 140 {bool canChoose = false,
141 Map object, 141 Map object,
142 String fromPage = 'change', 142 String fromPage = 'change',
  143 + String hmS,
  144 + String hmE,
  145 + String source,
143 String tid = ''}) { 146 String tid = ''}) {
144 if (object != null) { 147 if (object != null) {
145 return _navigateTo(context, 148 return _navigateTo(context,
146 - "${Routes.select_table_f}?rid=$rid&tid=$tid&dateTime=$dateTime&fromPage=$fromPage&ddate_slot=$ddate_slot&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}"); 149 + "${Routes.select_table_f}?rid=$rid&tid=$tid&dateTime=$dateTime&fromPage=$fromPage&ddate_slot=$ddate_slot&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}&hmS=$hmS&hmE=$hmE&source=$source");
147 } 150 }
148 // object = {'object': [], "tid": ''}; 151 // object = {'object': [], "tid": ''};
149 return _navigateTo(context, 152 return _navigateTo(context,
150 - "${Routes.select_table_f}?rid=$rid&tid=$tid&dateTime=$dateTime&fromPage=$fromPage&ddate_slot=$ddate_slot&canChoose=$canChoose"); 153 + "${Routes.select_table_f}?rid=$rid&tid=$tid&dateTime=$dateTime&fromPage=$fromPage&ddate_slot=$ddate_slot&canChoose=$canChoose&hmS=$hmS&hmE=$hmE&source=$source");
151 } 154 }
152 155
153 /// 邀请函 156 /// 邀请函
@@ -373,9 +373,13 @@ var handleSelectTableFHandler = new Handler( @@ -373,9 +373,13 @@ var handleSelectTableFHandler = new Handler(
373 String tid = params['tid'].first; 373 String tid = params['tid'].first;
374 DateTime dateTime = 374 DateTime dateTime =
375 DateTime.fromMillisecondsSinceEpoch(int.parse(params["dateTime"].first)); 375 DateTime.fromMillisecondsSinceEpoch(int.parse(params["dateTime"].first));
376 - String ddate_slot = params["ddate_slot"].first; 376 + String ddateSlot = params["ddate_slot"].first;
  377 + String source = params["source"].first;
  378 +
377 String fromPage = params["fromPage"].first; 379 String fromPage = params["fromPage"].first;
378 bool canChoose = params["canChoose"].first == "true" ? true : false; 380 bool canChoose = params["canChoose"].first == "true" ? true : false;
  381 + String hmS = params["hmS"].first;
  382 + String hmE = params["hmE"].first;
379 List<TableList> res = []; 383 List<TableList> res = [];
380 if (params.keys.contains('object')) { 384 if (params.keys.contains('object')) {
381 Map object = FluroConvertUtils.string2map(params["object"].first); 385 Map object = FluroConvertUtils.string2map(params["object"].first);
@@ -389,8 +393,14 @@ var handleSelectTableFHandler = new Handler( @@ -389,8 +393,14 @@ var handleSelectTableFHandler = new Handler(
389 // return SelectTablePage(rid, dateTime, ddate_slot,canChoose: canChoose); 393 // return SelectTablePage(rid, dateTime, ddate_slot,canChoose: canChoose);
390 return ChangeNotifierProvider<ChooseTableModel>( 394 return ChangeNotifierProvider<ChooseTableModel>(
391 create: (_) => ChooseTableModel(), 395 create: (_) => ChooseTableModel(),
392 - child: SelectTableFPage(rid, dateTime, ddate_slot,  
393 - canChoose: canChoose, tableList: res, fromPage: fromPage, tid: tid)); 396 + child: SelectTableFPage(rid, dateTime, ddateSlot,
  397 + canChoose: canChoose,
  398 + tableList: res,
  399 + fromPage: fromPage,
  400 + tid: tid,
  401 + hmS: hmS,
  402 + hmE: hmE,
  403 + source: source));
394 }); 404 });
395 405
396 // 跳转到照片管理的选择桌位_方硕新修改的页面 406 // 跳转到照片管理的选择桌位_方硕新修改的页面
@@ -1534,12 +1544,16 @@ var feastCreatePageHandle = new Handler( @@ -1534,12 +1544,16 @@ var feastCreatePageHandle = new Handler(
1534 String rid = params["rid"].first; 1544 String rid = params["rid"].first;
1535 return ChangeNotifierProvider<FeastModel>( 1545 return ChangeNotifierProvider<FeastModel>(
1536 create: (_) => FeastModel(), 1546 create: (_) => FeastModel(),
1537 - child: FeastCreatePage(  
1538 - banquetDetail: banquetDetail, isCreate: isCreate, rid: rid)); 1547 + child: ChangeNotifierProvider<ChooseTableModel>(
  1548 + create: (_) => ChooseTableModel(),
  1549 + child: FeastCreatePage(
  1550 + banquetDetail: banquetDetail, isCreate: isCreate, rid: rid)));
1539 } 1551 }
1540 return ChangeNotifierProvider<FeastModel>( 1552 return ChangeNotifierProvider<FeastModel>(
1541 create: (_) => FeastModel(), 1553 create: (_) => FeastModel(),
1542 - child: FeastCreatePage(banquetDetail: banquetDetail, isCreate: isCreate)); 1554 + child:ChangeNotifierProvider<ChooseTableModel>(
  1555 + create: (_) => ChooseTableModel(),
  1556 + child: FeastCreatePage(banquetDetail: banquetDetail, isCreate: isCreate)));
1543 }); 1557 });
1544 1558
1545 ///宴会----添加定金 1559 ///宴会----添加定金
@@ -55,7 +55,6 @@ typedef ClickCallback = void Function(String value); @@ -55,7 +55,6 @@ typedef ClickCallback = void Function(String value);
55 // }; 55 // };
56 56
57 class DialogUtil { 57 class DialogUtil {
58 -  
59 //回复评论弹框 58 //回复评论弹框
60 static openCommentsModalBottomSheet(context, 59 static openCommentsModalBottomSheet(context,
61 {VoidCallback lCallback, VoidCallback rCallback}) async { 60 {VoidCallback lCallback, VoidCallback rCallback}) async {
@@ -67,13 +66,12 @@ class DialogUtil { @@ -67,13 +66,12 @@ class DialogUtil {
67 return Container( 66 return Container(
68 // height: ScreenUtil().setWidth(180 * 2), 67 // height: ScreenUtil().setWidth(180 * 2),
69 decoration: BoxDecoration( 68 decoration: BoxDecoration(
70 - color: MyColours.color_DBDBDB,  
71 - // borderRadius: BorderRadius.only(  
72 - // topLeft: Radius.circular(ScreenUtil().setWidth(24)),  
73 - // topRight: Radius.circular(ScreenUtil().setWidth(24)))  
74 - ), 69 + color: MyColours.color_DBDBDB,
  70 + // borderRadius: BorderRadius.only(
  71 + // topLeft: Radius.circular(ScreenUtil().setWidth(24)),
  72 + // topRight: Radius.circular(ScreenUtil().setWidth(24)))
  73 + ),
75 child: Row( 74 child: Row(
76 -  
77 children: <Widget>[ 75 children: <Widget>[
78 InkWell( 76 InkWell(
79 onTap: lCallback, 77 onTap: lCallback,
@@ -136,6 +134,7 @@ class DialogUtil { @@ -136,6 +134,7 @@ class DialogUtil {
136 ); 134 );
137 }); 135 });
138 } 136 }
  137 +
139 static List<Widget> menuSelectBtn(MenuSunModel menuSunModel, state) { 138 static List<Widget> menuSelectBtn(MenuSunModel menuSunModel, state) {
140 List<Widget> temp = []; 139 List<Widget> temp = [];
141 for (int i = 0; i < menuSunModel.practice.length; i++) { 140 for (int i = 0; i < menuSunModel.practice.length; i++) {
@@ -5923,6 +5922,85 @@ class DialogUtil { @@ -5923,6 +5922,85 @@ class DialogUtil {
5923 }); 5922 });
5924 } 5923 }
5925 5924
  5925 + static showPickerDurationSelect(BuildContext context) async {
  5926 + final range = <DateTime>[
  5927 + DateTime(0, 1, 1, 8, 30),
  5928 + DateTime(0, 1, 1, 14, 30)
  5929 + ];
  5930 + final p1 = Picker(
  5931 + adapter: DateTimePickerAdapter(
  5932 + customColumnType: [6, 7, 4],
  5933 + value: range[0],
  5934 + ),
  5935 + delimiter: [
  5936 + PickerDelimiter(
  5937 + column: 0,
  5938 + child: Container(
  5939 + alignment: Alignment.center,
  5940 + width: 100,
  5941 + padding: EdgeInsets.fromLTRB(12, 0, 8, 0),
  5942 + child: Text('Start',
  5943 + style: TextStyle(
  5944 + fontWeight: FontWeight.bold,
  5945 + color: Colors.red,
  5946 + fontSize: 14)),
  5947 + color: Colors.white,
  5948 + )),
  5949 + ],
  5950 + onSelect: (Picker picker, int index, List<int> selected) {
  5951 + range[0] = (picker.adapter as DateTimePickerAdapter).value;
  5952 + },
  5953 + onConfirmBefore: (picker, selected) async {
  5954 + if (range[0] == null) {
  5955 + // showMsg("Please select the start time.");
  5956 + return false;
  5957 + }
  5958 + if (range[1] == null) {
  5959 + // showMsg("Please select the end time.");
  5960 + return false;
  5961 + }
  5962 + return true;
  5963 + },
  5964 + onConfirm: (picker, selected) {
  5965 + // showMsg(
  5966 + // "Start: ${range[0].toString()}, End: ${range[1].toString()}, ${picker.adapter}");
  5967 + });
  5968 + final p2 = Picker(
  5969 + adapter: DateTimePickerAdapter(
  5970 + customColumnType: [6, 7, 4],
  5971 + value: range[1],
  5972 + ),
  5973 + hideHeader: true,
  5974 + delimiter: [
  5975 + PickerDelimiter(
  5976 + column: 0,
  5977 + child: Container(
  5978 + alignment: Alignment.center,
  5979 + padding: EdgeInsets.fromLTRB(12, 0, 8, 0),
  5980 + width: 100,
  5981 + child: Text('End',
  5982 + style: TextStyle(
  5983 + fontWeight: FontWeight.bold,
  5984 + color: Colors.red,
  5985 + fontSize: 14)),
  5986 + color: Colors.white,
  5987 + )),
  5988 + ],
  5989 + onSelect: (Picker picker, int index, List<int> selected) {
  5990 + range[1] = (picker.adapter as DateTimePickerAdapter).value;
  5991 + });
  5992 + await showModalBottomSheet(
  5993 + context: context,
  5994 + backgroundColor: Colors.transparent,
  5995 + isDismissible: false,
  5996 + builder: (BuildContext context) {
  5997 + return Column(
  5998 + mainAxisSize: MainAxisSize.min,
  5999 + children: [p1.makePicker(), p2.makePicker()],
  6000 + );
  6001 + });
  6002 + }
  6003 +
5926 //显示选择客户经理弹框 6004 //显示选择客户经理弹框
5927 static Future<List<int>> showSelectCusmanDialogNeedCustomHeader( 6005 static Future<List<int>> showSelectCusmanDialogNeedCustomHeader(
5928 BuildContext context, List<dynamic> data, ValueChanged valueChanged, 6006 BuildContext context, List<dynamic> data, ValueChanged valueChanged,
@@ -5932,6 +6010,7 @@ class DialogUtil { @@ -5932,6 +6010,7 @@ class DialogUtil {
5932 VoidCallback onCancel, 6010 VoidCallback onCancel,
5933 String cancelText = '取消'}) { 6011 String cancelText = '取消'}) {
5934 return Picker( 6012 return Picker(
  6013 + // changeToFirst: true,
5935 selecteds: selecteds, 6014 selecteds: selecteds,
5936 adapter: PickerDataAdapter<String>(pickerdata: data), 6015 adapter: PickerDataAdapter<String>(pickerdata: data),
5937 height: ScreenUtil().setWidth(480), 6016 height: ScreenUtil().setWidth(480),
@@ -6008,6 +6087,15 @@ class DialogUtil { @@ -6008,6 +6087,15 @@ class DialogUtil {
6008 width: ScreenUtil().setWidth(2), 6087 width: ScreenUtil().setWidth(2),
6009 color: MyColours.color_E7E7E7))), 6088 color: MyColours.color_E7E7E7))),
6010 ), 6089 ),
  6090 + onSelect: (Picker picker, int index, List<int> selecteds) {
  6091 + print(selecteds);
  6092 + print(index);
  6093 + print(picker);
  6094 + // picker.selecteds = [selecteds[0],selecteds[0]];
  6095 + // this.setState(() {
  6096 + // // stateText = picker.adapter.toString();
  6097 + // });
  6098 + },
6011 onCancel: onCancel, 6099 onCancel: onCancel,
6012 onConfirm: (Picker picker, List value) { 6100 onConfirm: (Picker picker, List value) {
6013 print(value.toString()); 6101 print(value.toString());
@@ -165,6 +165,7 @@ class SetTimeWidget { @@ -165,6 +165,7 @@ class SetTimeWidget {
165 165
166 showFeastTimeSelector( 166 showFeastTimeSelector(
167 context, data, start, end, SetTimeCallback setTimeCallback) { 167 context, data, start, end, SetTimeCallback setTimeCallback) {
  168 + // DialogUtil.showPickerDurationSelect(context);
168 DialogUtil.showSelectCusmanDialogNeedCustomHeader(context, data, (value) { 169 DialogUtil.showSelectCusmanDialogNeedCustomHeader(context, data, (value) {
169 setTimeCallback(value); 170 setTimeCallback(value);
170 }, cancelText: '', title: '选择时间', selecteds: [ 171 }, cancelText: '', title: '选择时间', selecteds: [