Showing
4 changed files
with
180 additions
and
49 deletions
| @@ -1061,9 +1061,7 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> { | @@ -1061,9 +1061,7 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> { | ||
| 1061 | ///早餐、午餐、晚餐点击方法 | 1061 | ///早餐、午餐、晚餐点击方法 |
| 1062 | _clickMorAndNoonAndNig() { | 1062 | _clickMorAndNoonAndNig() { |
| 1063 | FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘 | 1063 | FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘 |
| 1064 | - int ddate = | ||
| 1065 | - (_notebookDetailChangeModel.dateTime.millisecondsSinceEpoch / 1000) | ||
| 1066 | - .floor(); | 1064 | + int ddate = _notebookDetailChangeModel.dateTime.millisecondsSinceEpoch; |
| 1067 | String ddateSolt = _notebookDetailChangeModel.currTimeIndex.toString(); | 1065 | String ddateSolt = _notebookDetailChangeModel.currTimeIndex.toString(); |
| 1068 | _notebookDetailChangeModel.getNewTableList( | 1066 | _notebookDetailChangeModel.getNewTableList( |
| 1069 | context, | 1067 | context, |
| 1 | import 'dart:ffi'; | 1 | import 'dart:ffi'; |
| 2 | 2 | ||
| 3 | +import 'package:common_utils/common_utils.dart'; | ||
| 3 | import 'package:dotted_border/dotted_border.dart'; | 4 | import 'package:dotted_border/dotted_border.dart'; |
| 4 | import 'package:flutter/material.dart'; | 5 | import 'package:flutter/material.dart'; |
| 5 | import 'package:flutter_screenutil/flutter_screenutil.dart'; | 6 | import 'package:flutter_screenutil/flutter_screenutil.dart'; |
| @@ -66,6 +67,7 @@ class SelectTableFPageState extends State<SelectTableFPage> { | @@ -66,6 +67,7 @@ class SelectTableFPageState extends State<SelectTableFPage> { | ||
| 66 | int selectNum = 0; | 67 | int selectNum = 0; |
| 67 | bool isSelected = true; //全部按钮 | 68 | bool isSelected = true; //全部按钮 |
| 68 | int _selectNumber; | 69 | int _selectNumber; |
| 70 | + Map dailyMap = {}; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟 | ||
| 69 | 71 | ||
| 70 | @override | 72 | @override |
| 71 | void initState() { | 73 | void initState() { |
| @@ -74,11 +76,90 @@ class SelectTableFPageState extends State<SelectTableFPage> { | @@ -74,11 +76,90 @@ class SelectTableFPageState extends State<SelectTableFPage> { | ||
| 74 | for (int i = 1; i < 31; i++) { | 76 | for (int i = 1; i < 31; i++) { |
| 75 | personNumList.add(i.toString()); | 77 | personNumList.add(i.toString()); |
| 76 | } | 78 | } |
| 79 | + initDateHourMinuteList(context); | ||
| 80 | + | ||
| 77 | WidgetsBinding.instance.addPostFrameCallback((_) { | 81 | WidgetsBinding.instance.addPostFrameCallback((_) { |
| 78 | getTableList(); | 82 | getTableList(); |
| 79 | }); | 83 | }); |
| 80 | } | 84 | } |
| 81 | 85 | ||
| 86 | + /// 早市、午市、晚市对应的半个小时间隔时间段 | ||
| 87 | + initDateHourMinuteList(BuildContext context) async { | ||
| 88 | + UserModel userModel = Provider.of<UserModel>(context, listen: false); | ||
| 89 | + String morning = | ||
| 90 | + userModel.user.morning.isEmpty ? "00:00-00:00" : userModel.user.morning; | ||
| 91 | + String noon = | ||
| 92 | + userModel.user.noon.isEmpty ? "00:00-00:00" : userModel.user.noon; | ||
| 93 | + String night = | ||
| 94 | + userModel.user.night.isEmpty ? "00:00-00:00" : userModel.user.night; | ||
| 95 | + userModel.user.morning == '' | ||
| 96 | + ? dailyMap.putIfAbsent('morning', () => '') | ||
| 97 | + : dailyMap.putIfAbsent( | ||
| 98 | + 'morning', () => _getHourAndMinute(userModel.user.morning, 1)); | ||
| 99 | + userModel.user.noon == '' | ||
| 100 | + ? dailyMap.putIfAbsent('noon', () => '') | ||
| 101 | + : dailyMap.putIfAbsent( | ||
| 102 | + 'noon', () => _getHourAndMinute(userModel.user.noon, 2)); | ||
| 103 | + userModel.user.night == '' | ||
| 104 | + ? dailyMap.putIfAbsent('night', () => '') | ||
| 105 | + : dailyMap.putIfAbsent( | ||
| 106 | + 'night', () => _getHourAndMinute(userModel.user.night, 3)); | ||
| 107 | + // _initSunDateList( | ||
| 108 | + // userModel.user.morning, userModel.user.noon, userModel.user.night); | ||
| 109 | + } | ||
| 110 | + | ||
| 111 | + //根据获取时间 11:00-12:30 获取30分钟间隔组装的数组 | ||
| 112 | + _getHourAndMinute(String hourAndMinuteStr, int mnd) { | ||
| 113 | + List tempDate = hourAndMinuteStr.split("-"); | ||
| 114 | + String beginDate = tempDate[0]; | ||
| 115 | + String endDate = tempDate[1]; | ||
| 116 | + List tempHour = beginDate.split(':'); | ||
| 117 | + | ||
| 118 | + /*获取开始小时*/ | ||
| 119 | + int beginHour = int.parse(tempHour[0]); | ||
| 120 | + /*获取开始分钟*/ | ||
| 121 | + int beginMinute = int.parse(tempHour[1]); | ||
| 122 | + List res = []; | ||
| 123 | + bool tempLimit = true; | ||
| 124 | + while (tempLimit) { | ||
| 125 | + String temp = _dealTime(beginHour, beginMinute); | ||
| 126 | + | ||
| 127 | + // bool tempSelect = false; | ||
| 128 | + | ||
| 129 | + // Map tempMap = {'title': temp, 'select': tempSelect}; | ||
| 130 | + res.add(temp); | ||
| 131 | + if (temp == endDate) { | ||
| 132 | + tempLimit = false; | ||
| 133 | + break; | ||
| 134 | + } | ||
| 135 | + if (beginMinute == 30) { | ||
| 136 | + beginHour++; | ||
| 137 | + if (beginHour >= 24) { | ||
| 138 | + beginHour = 0; | ||
| 139 | + } | ||
| 140 | + } | ||
| 141 | + beginMinute = (beginMinute + 30) % 60; | ||
| 142 | + } | ||
| 143 | + return res; | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + /// 根据时间和分钟组装 格式:11:00 | ||
| 147 | + _dealTime(int begin, int mm) { | ||
| 148 | + String sb = ''; | ||
| 149 | + if (begin < 10) { | ||
| 150 | + sb = '0$begin'; | ||
| 151 | + } else { | ||
| 152 | + sb = '$begin'; | ||
| 153 | + } | ||
| 154 | + sb = '$sb:'; | ||
| 155 | + if (mm < 10) { | ||
| 156 | + sb = '${sb}0${mm}'; | ||
| 157 | + } else { | ||
| 158 | + sb = '${sb}${mm}'; | ||
| 159 | + } | ||
| 160 | + return sb; | ||
| 161 | + } | ||
| 162 | + | ||
| 82 | //获取桌位列表 | 163 | //获取桌位列表 |
| 83 | getTableList({needLoading = true}) async { | 164 | getTableList({needLoading = true}) async { |
| 84 | UserModel userModel = Provider.of<UserModel>(context, listen: false); | 165 | UserModel userModel = Provider.of<UserModel>(context, listen: false); |
| @@ -247,24 +328,46 @@ class SelectTableFPageState extends State<SelectTableFPage> { | @@ -247,24 +328,46 @@ class SelectTableFPageState extends State<SelectTableFPage> { | ||
| 247 | 328 | ||
| 248 | //获取一天开始-结束时间字符串 | 329 | //获取一天开始-结束时间字符串 |
| 249 | String _getRdate() { | 330 | String _getRdate() { |
| 331 | + String keys = ''; | ||
| 332 | + | ||
| 333 | + if (widget.ddate_slot == '1') { | ||
| 334 | + //早市 | ||
| 335 | + keys = 'morning'; | ||
| 336 | + } else if (widget.ddate_slot == '2') { | ||
| 337 | + //午市 | ||
| 338 | + keys = 'noon'; | ||
| 339 | + } else if (widget.ddate_slot == '3') { | ||
| 340 | + //晚市 | ||
| 341 | + keys = 'night'; | ||
| 342 | + } | ||
| 343 | + String ymd = | ||
| 344 | + DateUtil.formatDate(widget.dateTime, format: DateFormats.y_mo_d); | ||
| 345 | + String timeStrStart = ''; | ||
| 346 | + String timeStrEnd = ''; | ||
| 250 | //一天开始时间 | 347 | //一天开始时间 |
| 251 | - double startDay = (DateTime.parse((widget.dateTime.year.toString() + | ||
| 252 | - "-" + | ||
| 253 | - Utils.addZeroNumber(widget.dateTime.month) + | ||
| 254 | - "-" + | ||
| 255 | - Utils.addZeroNumber(widget.dateTime.day) + | ||
| 256 | - " 00:00:00")) | ||
| 257 | - .millisecondsSinceEpoch) / | ||
| 258 | - 1000; | 348 | + double startDay; |
| 259 | //一天结束时间 | 349 | //一天结束时间 |
| 260 | - double endDay = (DateTime.parse((widget.dateTime.year.toString() + | ||
| 261 | - "-" + | ||
| 262 | - Utils.addZeroNumber(widget.dateTime.month) + | ||
| 263 | - "-" + | ||
| 264 | - Utils.addZeroNumber(widget.dateTime.day) + | ||
| 265 | - " 23:59:59")) | ||
| 266 | - .millisecondsSinceEpoch) / | ||
| 267 | - 1000; | 350 | + double endDay; |
| 351 | + if (keys != '') { | ||
| 352 | + List temp = dailyMap[keys]; | ||
| 353 | + timeStrStart = ymd + ' ' + temp.first + ':00'; | ||
| 354 | + timeStrEnd = ymd + ' ' + temp.last + ':00'; | ||
| 355 | + } else { | ||
| 356 | + timeStrStart = widget.dateTime.year.toString() + | ||
| 357 | + "-" + | ||
| 358 | + Utils.addZeroNumber(widget.dateTime.month) + | ||
| 359 | + "-" + | ||
| 360 | + Utils.addZeroNumber(widget.dateTime.day) + | ||
| 361 | + " 00:00:00"; | ||
| 362 | + timeStrEnd = widget.dateTime.year.toString() + | ||
| 363 | + "-" + | ||
| 364 | + Utils.addZeroNumber(widget.dateTime.month) + | ||
| 365 | + "-" + | ||
| 366 | + Utils.addZeroNumber(widget.dateTime.day) + | ||
| 367 | + " 23:59:59"; | ||
| 368 | + } | ||
| 369 | + startDay = (DateTime.parse(timeStrStart).millisecondsSinceEpoch) / 1000; | ||
| 370 | + endDay = (DateTime.parse(timeStrEnd).millisecondsSinceEpoch) / 1000; | ||
| 268 | return startDay.floor().toString() + "-" + endDay.floor().toString(); | 371 | return startDay.floor().toString() + "-" + endDay.floor().toString(); |
| 269 | } | 372 | } |
| 270 | 373 |
| @@ -617,11 +617,11 @@ class TableManagerPageState extends State<TableManagerPage> { | @@ -617,11 +617,11 @@ class TableManagerPageState extends State<TableManagerPage> { | ||
| 617 | } | 617 | } |
| 618 | 618 | ||
| 619 | ///早餐、午餐、晚餐点击方法 | 619 | ///早餐、午餐、晚餐点击方法 |
| 620 | - _clickMorAndNoonAndNig() { | 620 | + _clickMorAndNoonAndNig() async { |
| 621 | tableManagerModel.selectDateStr = tableManagerModel.returnDayDateWeekStr( | 621 | tableManagerModel.selectDateStr = tableManagerModel.returnDayDateWeekStr( |
| 622 | tableManagerModel.dateTimeSelect, tableManagerModel.currTimeIndex); | 622 | tableManagerModel.dateTimeSelect, tableManagerModel.currTimeIndex); |
| 623 | 623 | ||
| 624 | - tableManagerModel.getReserveList(context, needLoading: false); | 624 | + await tableManagerModel.getReserveList(context, needLoading: true); |
| 625 | } | 625 | } |
| 626 | 626 | ||
| 627 | @override | 627 | @override |
| @@ -738,7 +738,10 @@ class TableManagerPageState extends State<TableManagerPage> { | @@ -738,7 +738,10 @@ class TableManagerPageState extends State<TableManagerPage> { | ||
| 738 | onPress: () { | 738 | onPress: () { |
| 739 | if (tableManagerModel.currTimeIndex == 1) | 739 | if (tableManagerModel.currTimeIndex == 1) |
| 740 | return; | 740 | return; |
| 741 | - tableManagerModel.currTimeIndex = 1; | 741 | + setState(() { |
| 742 | + tableManagerModel.currTimeIndex = 1; | ||
| 743 | + }); | ||
| 744 | + | ||
| 742 | _clickMorAndNoonAndNig(); | 745 | _clickMorAndNoonAndNig(); |
| 743 | }, | 746 | }, |
| 744 | )), | 747 | )), |
| @@ -772,7 +775,9 @@ class TableManagerPageState extends State<TableManagerPage> { | @@ -772,7 +775,9 @@ class TableManagerPageState extends State<TableManagerPage> { | ||
| 772 | onPress: () { | 775 | onPress: () { |
| 773 | if (tableManagerModel.currTimeIndex == 2) | 776 | if (tableManagerModel.currTimeIndex == 2) |
| 774 | return; | 777 | return; |
| 775 | - tableManagerModel.currTimeIndex = 2; | 778 | + setState(() { |
| 779 | + tableManagerModel.currTimeIndex = 2; | ||
| 780 | + }); | ||
| 776 | _clickMorAndNoonAndNig(); | 781 | _clickMorAndNoonAndNig(); |
| 777 | }, | 782 | }, |
| 778 | )), | 783 | )), |
| @@ -803,7 +808,10 @@ class TableManagerPageState extends State<TableManagerPage> { | @@ -803,7 +808,10 @@ class TableManagerPageState extends State<TableManagerPage> { | ||
| 803 | onPress: () { | 808 | onPress: () { |
| 804 | if (tableManagerModel.currTimeIndex == 3) | 809 | if (tableManagerModel.currTimeIndex == 3) |
| 805 | return; | 810 | return; |
| 806 | - tableManagerModel.currTimeIndex = 3; | 811 | + setState(() { |
| 812 | + tableManagerModel.currTimeIndex = 3; | ||
| 813 | + }); | ||
| 814 | + | ||
| 807 | _clickMorAndNoonAndNig(); | 815 | _clickMorAndNoonAndNig(); |
| 808 | }, | 816 | }, |
| 809 | )), | 817 | )), |
| @@ -294,6 +294,7 @@ class TableManagerModel with ChangeNotifier { | @@ -294,6 +294,7 @@ class TableManagerModel with ChangeNotifier { | ||
| 294 | //晚市 | 294 | //晚市 |
| 295 | keys = 'night'; | 295 | keys = 'night'; |
| 296 | } | 296 | } |
| 297 | + | ||
| 297 | if (keys != '') { | 298 | if (keys != '') { |
| 298 | List temp = dailyMap[keys]; | 299 | List temp = dailyMap[keys]; |
| 299 | String timeStrStart = ymd + ' ' + temp.first + ':00'; | 300 | String timeStrStart = ymd + ' ' + temp.first + ':00'; |
| @@ -470,15 +471,15 @@ class TableManagerModel with ChangeNotifier { | @@ -470,15 +471,15 @@ class TableManagerModel with ChangeNotifier { | ||
| 470 | notebook.status == "2" || | 471 | notebook.status == "2" || |
| 471 | notebook.status == "5") { | 472 | notebook.status == "5") { |
| 472 | tableMap["$tid"] = notebook; | 473 | tableMap["$tid"] = notebook; |
| 473 | - } | ||
| 474 | 474 | ||
| 475 | - ///预订按钮点击的时候提醒已经被预订的桌子 | ||
| 476 | - /// | ||
| 477 | - if (showMsg && selectTables.length > 0) { | ||
| 478 | - for (t.Table item in selectTables) { | ||
| 479 | - if (item.id == tid) { | ||
| 480 | - msg += '${item.name},'; | ||
| 481 | - tempSelectTables.remove(item); | 475 | + ///预订按钮点击的时候提醒已经被预订的桌子 |
| 476 | + /// | ||
| 477 | + if (showMsg && selectTables.length > 0) { | ||
| 478 | + for (t.Table item in selectTables) { | ||
| 479 | + if (item.id == tid) { | ||
| 480 | + msg += '${item.name},'; | ||
| 481 | + tempSelectTables.remove(item); | ||
| 482 | + } | ||
| 482 | } | 483 | } |
| 483 | } | 484 | } |
| 484 | } | 485 | } |
| @@ -537,24 +538,45 @@ class TableManagerModel with ChangeNotifier { | @@ -537,24 +538,45 @@ class TableManagerModel with ChangeNotifier { | ||
| 537 | 538 | ||
| 538 | //获取一天开始-结束时间字符串 | 539 | //获取一天开始-结束时间字符串 |
| 539 | String _getRdate() { | 540 | String _getRdate() { |
| 541 | + String keys = ''; | ||
| 542 | + | ||
| 543 | + if (currTimeIndex == 1) { | ||
| 544 | + //早市 | ||
| 545 | + keys = 'morning'; | ||
| 546 | + } else if (currTimeIndex == 2) { | ||
| 547 | + //午市 | ||
| 548 | + keys = 'noon'; | ||
| 549 | + } else if (currTimeIndex == 3) { | ||
| 550 | + //晚市 | ||
| 551 | + keys = 'night'; | ||
| 552 | + } | ||
| 553 | + String ymd = DateUtil.formatDate(dateTime, format: DateFormats.y_mo_d); | ||
| 554 | + String timeStrStart = ''; | ||
| 555 | + String timeStrEnd = ''; | ||
| 540 | //一天开始时间 | 556 | //一天开始时间 |
| 541 | - double startDay = (DateTime.parse((dateTime.year.toString() + | ||
| 542 | - "-" + | ||
| 543 | - Utils.addZeroNumber(dateTime.month) + | ||
| 544 | - "-" + | ||
| 545 | - Utils.addZeroNumber(dateTime.day) + | ||
| 546 | - " 00:00:00")) | ||
| 547 | - .millisecondsSinceEpoch) / | ||
| 548 | - 1000; | 557 | + double startDay; |
| 549 | //一天结束时间 | 558 | //一天结束时间 |
| 550 | - double endDay = (DateTime.parse((dateTime.year.toString() + | ||
| 551 | - "-" + | ||
| 552 | - Utils.addZeroNumber(dateTime.month) + | ||
| 553 | - "-" + | ||
| 554 | - Utils.addZeroNumber(dateTime.day) + | ||
| 555 | - " 23:59:59")) | ||
| 556 | - .millisecondsSinceEpoch) / | ||
| 557 | - 1000; | 559 | + double endDay; |
| 560 | + if (keys != '') { | ||
| 561 | + List temp = dailyMap[keys]; | ||
| 562 | + timeStrStart = ymd + ' ' + temp.first + ':00'; | ||
| 563 | + timeStrEnd = ymd + ' ' + temp.last + ':00'; | ||
| 564 | + } else { | ||
| 565 | + timeStrStart = dateTime.year.toString() + | ||
| 566 | + "-" + | ||
| 567 | + Utils.addZeroNumber(dateTime.month) + | ||
| 568 | + "-" + | ||
| 569 | + Utils.addZeroNumber(dateTime.day) + | ||
| 570 | + " 00:00:00"; | ||
| 571 | + timeStrEnd = dateTime.year.toString() + | ||
| 572 | + "-" + | ||
| 573 | + Utils.addZeroNumber(dateTime.month) + | ||
| 574 | + "-" + | ||
| 575 | + Utils.addZeroNumber(dateTime.day) + | ||
| 576 | + " 23:59:59"; | ||
| 577 | + } | ||
| 578 | + startDay = (DateTime.parse(timeStrStart).millisecondsSinceEpoch) / 1000; | ||
| 579 | + endDay = (DateTime.parse(timeStrEnd).millisecondsSinceEpoch) / 1000; | ||
| 558 | return startDay.floor().toString() + "-" + endDay.floor().toString(); | 580 | return startDay.floor().toString() + "-" + endDay.floor().toString(); |
| 559 | } | 581 | } |
| 560 | 582 | ||
| @@ -662,7 +684,7 @@ class TableManagerModel with ChangeNotifier { | @@ -662,7 +684,7 @@ class TableManagerModel with ChangeNotifier { | ||
| 662 | dateText = _returnDate(day); | 684 | dateText = _returnDate(day); |
| 663 | selectDateStr = returnDayDateWeekStr(day, currTimeIndex); | 685 | selectDateStr = returnDayDateWeekStr(day, currTimeIndex); |
| 664 | dateTime = day; | 686 | dateTime = day; |
| 665 | - getReserveList(context, needLoading: false); | 687 | + getReserveList(context, needLoading: true); |
| 666 | } | 688 | } |
| 667 | 689 | ||
| 668 | _returnDate(DateTime day) { | 690 | _returnDate(DateTime day) { |
-
Please register or login to post a comment