Commit 01f7dad462800e24fbc33332d46134e1ec83a1eb

Authored by wdn127929
1 parent a99e91c8

修复取消桌位无法再次预订bug

... ... @@ -1061,9 +1061,7 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> {
///早餐、午餐、晚餐点击方法
_clickMorAndNoonAndNig() {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
int ddate =
(_notebookDetailChangeModel.dateTime.millisecondsSinceEpoch / 1000)
.floor();
int ddate = _notebookDetailChangeModel.dateTime.millisecondsSinceEpoch;
String ddateSolt = _notebookDetailChangeModel.currTimeIndex.toString();
_notebookDetailChangeModel.getNewTableList(
context,
... ...
import 'dart:ffi';
import 'package:common_utils/common_utils.dart';
import 'package:dotted_border/dotted_border.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
... ... @@ -66,6 +67,7 @@ class SelectTableFPageState extends State<SelectTableFPage> {
int selectNum = 0;
bool isSelected = true; //全部按钮
int _selectNumber;
Map dailyMap = {}; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟
@override
void initState() {
... ... @@ -74,11 +76,90 @@ class SelectTableFPageState extends State<SelectTableFPage> {
for (int i = 1; i < 31; i++) {
personNumList.add(i.toString());
}
initDateHourMinuteList(context);
WidgetsBinding.instance.addPostFrameCallback((_) {
getTableList();
});
}
/// 早市、午市、晚市对应的半个小时间隔时间段
initDateHourMinuteList(BuildContext context) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
String morning =
userModel.user.morning.isEmpty ? "00:00-00:00" : userModel.user.morning;
String noon =
userModel.user.noon.isEmpty ? "00:00-00:00" : userModel.user.noon;
String night =
userModel.user.night.isEmpty ? "00:00-00:00" : userModel.user.night;
userModel.user.morning == ''
? dailyMap.putIfAbsent('morning', () => '')
: dailyMap.putIfAbsent(
'morning', () => _getHourAndMinute(userModel.user.morning, 1));
userModel.user.noon == ''
? dailyMap.putIfAbsent('noon', () => '')
: dailyMap.putIfAbsent(
'noon', () => _getHourAndMinute(userModel.user.noon, 2));
userModel.user.night == ''
? dailyMap.putIfAbsent('night', () => '')
: dailyMap.putIfAbsent(
'night', () => _getHourAndMinute(userModel.user.night, 3));
// _initSunDateList(
// userModel.user.morning, userModel.user.noon, userModel.user.night);
}
//根据获取时间 11:00-12:30 获取30分钟间隔组装的数组
_getHourAndMinute(String hourAndMinuteStr, int mnd) {
List tempDate = hourAndMinuteStr.split("-");
String beginDate = tempDate[0];
String endDate = tempDate[1];
List tempHour = beginDate.split(':');
/*获取开始小时*/
int beginHour = int.parse(tempHour[0]);
/*获取开始分钟*/
int beginMinute = int.parse(tempHour[1]);
List res = [];
bool tempLimit = true;
while (tempLimit) {
String temp = _dealTime(beginHour, beginMinute);
// bool tempSelect = false;
// Map tempMap = {'title': temp, 'select': tempSelect};
res.add(temp);
if (temp == endDate) {
tempLimit = false;
break;
}
if (beginMinute == 30) {
beginHour++;
if (beginHour >= 24) {
beginHour = 0;
}
}
beginMinute = (beginMinute + 30) % 60;
}
return res;
}
/// 根据时间和分钟组装 格式:11:00
_dealTime(int begin, int mm) {
String sb = '';
if (begin < 10) {
sb = '0$begin';
} else {
sb = '$begin';
}
sb = '$sb:';
if (mm < 10) {
sb = '${sb}0${mm}';
} else {
sb = '${sb}${mm}';
}
return sb;
}
//获取桌位列表
getTableList({needLoading = true}) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
... ... @@ -247,24 +328,46 @@ class SelectTableFPageState extends State<SelectTableFPage> {
//获取一天开始-结束时间字符串
String _getRdate() {
String keys = '';
if (widget.ddate_slot == '1') {
//早市
keys = 'morning';
} else if (widget.ddate_slot == '2') {
//午市
keys = 'noon';
} else if (widget.ddate_slot == '3') {
//晚市
keys = 'night';
}
String ymd =
DateUtil.formatDate(widget.dateTime, format: DateFormats.y_mo_d);
String timeStrStart = '';
String timeStrEnd = '';
//一天开始时间
double startDay = (DateTime.parse((widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
" 00:00:00"))
.millisecondsSinceEpoch) /
1000;
double startDay;
//一天结束时间
double endDay = (DateTime.parse((widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
" 23:59:59"))
.millisecondsSinceEpoch) /
1000;
double endDay;
if (keys != '') {
List temp = dailyMap[keys];
timeStrStart = ymd + ' ' + temp.first + ':00';
timeStrEnd = ymd + ' ' + temp.last + ':00';
} else {
timeStrStart = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
" 00:00:00";
timeStrEnd = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
" 23:59:59";
}
startDay = (DateTime.parse(timeStrStart).millisecondsSinceEpoch) / 1000;
endDay = (DateTime.parse(timeStrEnd).millisecondsSinceEpoch) / 1000;
return startDay.floor().toString() + "-" + endDay.floor().toString();
}
... ...
... ... @@ -617,11 +617,11 @@ class TableManagerPageState extends State<TableManagerPage> {
}
///早餐、午餐、晚餐点击方法
_clickMorAndNoonAndNig() {
_clickMorAndNoonAndNig() async {
tableManagerModel.selectDateStr = tableManagerModel.returnDayDateWeekStr(
tableManagerModel.dateTimeSelect, tableManagerModel.currTimeIndex);
tableManagerModel.getReserveList(context, needLoading: false);
await tableManagerModel.getReserveList(context, needLoading: true);
}
@override
... ... @@ -738,7 +738,10 @@ class TableManagerPageState extends State<TableManagerPage> {
onPress: () {
if (tableManagerModel.currTimeIndex == 1)
return;
tableManagerModel.currTimeIndex = 1;
setState(() {
tableManagerModel.currTimeIndex = 1;
});
_clickMorAndNoonAndNig();
},
)),
... ... @@ -772,7 +775,9 @@ class TableManagerPageState extends State<TableManagerPage> {
onPress: () {
if (tableManagerModel.currTimeIndex == 2)
return;
tableManagerModel.currTimeIndex = 2;
setState(() {
tableManagerModel.currTimeIndex = 2;
});
_clickMorAndNoonAndNig();
},
)),
... ... @@ -803,7 +808,10 @@ class TableManagerPageState extends State<TableManagerPage> {
onPress: () {
if (tableManagerModel.currTimeIndex == 3)
return;
tableManagerModel.currTimeIndex = 3;
setState(() {
tableManagerModel.currTimeIndex = 3;
});
_clickMorAndNoonAndNig();
},
)),
... ...
... ... @@ -294,6 +294,7 @@ class TableManagerModel with ChangeNotifier {
//晚市
keys = 'night';
}
if (keys != '') {
List temp = dailyMap[keys];
String timeStrStart = ymd + ' ' + temp.first + ':00';
... ... @@ -470,15 +471,15 @@ class TableManagerModel with ChangeNotifier {
notebook.status == "2" ||
notebook.status == "5") {
tableMap["$tid"] = notebook;
}
///预订按钮点击的时候提醒已经被预订的桌子
///
if (showMsg && selectTables.length > 0) {
for (t.Table item in selectTables) {
if (item.id == tid) {
msg += '${item.name},';
tempSelectTables.remove(item);
///预订按钮点击的时候提醒已经被预订的桌子
///
if (showMsg && selectTables.length > 0) {
for (t.Table item in selectTables) {
if (item.id == tid) {
msg += '${item.name},';
tempSelectTables.remove(item);
}
}
}
}
... ... @@ -537,24 +538,45 @@ class TableManagerModel with ChangeNotifier {
//获取一天开始-结束时间字符串
String _getRdate() {
String keys = '';
if (currTimeIndex == 1) {
//早市
keys = 'morning';
} else if (currTimeIndex == 2) {
//午市
keys = 'noon';
} else if (currTimeIndex == 3) {
//晚市
keys = 'night';
}
String ymd = DateUtil.formatDate(dateTime, format: DateFormats.y_mo_d);
String timeStrStart = '';
String timeStrEnd = '';
//一天开始时间
double startDay = (DateTime.parse((dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" 00:00:00"))
.millisecondsSinceEpoch) /
1000;
double startDay;
//一天结束时间
double endDay = (DateTime.parse((dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" 23:59:59"))
.millisecondsSinceEpoch) /
1000;
double endDay;
if (keys != '') {
List temp = dailyMap[keys];
timeStrStart = ymd + ' ' + temp.first + ':00';
timeStrEnd = ymd + ' ' + temp.last + ':00';
} else {
timeStrStart = dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" 00:00:00";
timeStrEnd = dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" 23:59:59";
}
startDay = (DateTime.parse(timeStrStart).millisecondsSinceEpoch) / 1000;
endDay = (DateTime.parse(timeStrEnd).millisecondsSinceEpoch) / 1000;
return startDay.floor().toString() + "-" + endDay.floor().toString();
}
... ... @@ -662,7 +684,7 @@ class TableManagerModel with ChangeNotifier {
dateText = _returnDate(day);
selectDateStr = returnDayDateWeekStr(day, currTimeIndex);
dateTime = day;
getReserveList(context, needLoading: false);
getReserveList(context, needLoading: true);
}
_returnDate(DateTime day) {
... ...