Commit 98eca51df836e572cc5c41aa68c7d503b7aafd51

Authored by wdn127929
1 parent ee335a7b

优化变更预订时的选择桌位页面

Too many changes to show.

To preserve performance only 10 of 10+ files are displayed.

import 'dart:convert';
import 'dart:io';
import 'dart:ui';
import 'package:call_log/call_log.dart';
import 'package:common_utils/common_utils.dart';
// import 'package:contacts_service/contacts_service.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/notebook_detail.dart';
import 'package:one_key/models/remark.dart';
import 'package:one_key/models/reserve_info_model.dart';
import 'package:one_key/provider/notebook_detail_change_model.dart';
import 'package:one_key/provider/remark_manager_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/misc.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/triangle_custom_painter.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/app_bar.dart';
import 'package:one_key/widgets/common_button.dart';
import 'package:one_key/widgets/common_button_flat.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/new_table_item.dart';
import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart';
import 'package:one_key/models/table_list.dart' as t;
import 'dart:convert' as convert;
import 'package:easy_contact_picker/easy_contact_picker.dart';
import '../../app.dart';
import '../../models/tableOuter.dart';
import '../../models/table_or_reserve_model.dart';
import '../../models/user.dart';
import '../../models/user_history_entity.dart';
import '../../provider/marketing_center_provider.dart';
import '../../provider/notebook_detail_change_model_only.dart';
import '../../utils/call_log_utils.dart';
import '../../utils/common_utils.dart';
import '../../utils/screen_util.dart';
import '../../widgets/special_text/my_extended_text_selection_controls.dart';
import 'package:flutter_picker/flutter_picker.dart' as Picker;
typedef clickCallback = void Function(String value);
class NoteBookChangeFPageOnly extends StatefulWidget {
final NotebookDetail detailEntity;
final String rid;
final bool back;
const NoteBookChangeFPageOnly(
{Key key, this.detailEntity, this.rid, this.back})
: super(key: key);
@override
_NoteBookChangeFPageOnlyState createState() =>
_NoteBookChangeFPageOnlyState();
}
class _NoteBookChangeFPageOnlyState extends State<NoteBookChangeFPageOnly> {
NotebookDetailChangeModelOnly _notebookDetailChangeModel;
FocusNode _phoneNode = FocusNode();
FocusNode _nameNode = FocusNode();
EasyContactPicker _contactPicker = EasyContactPicker();
RemarkManagerModel remarkManagerModel;
String currentRemark = '';
bool showPhoneHistory = false; //显示客户历史记录
ScrollController _controller = ScrollController();
String nameStr = '';
FocusNode _cusdemNode = FocusNode();
MyTextSelectionControls _myExtendedMaterialTextSelectionControls =
MyTextSelectionControls();
ScrollController _scrollCrl = ScrollController();
MarketingCenterProvider marketingCenterProvider;
DateTime dateTime = DateTime.now();
String dateText = ""; //当前显示日期时间
int currTimeIndex = 1;
String morning; //早市时间段
String noon; //午市时间段
String night; //晚市时间段
@override
void initState() {
super.initState();
_initDateList( widget.detailEntity);
if (App.sp.containsKey('user')) {
String s = App.sp.getString('user');
User _user = User.fromJson(json.decode(s));
morning = _user.morning.isEmpty ? "00:00-00:00" : _user.morning;
noon = _user.noon.isEmpty ? "00:00-00:00" : _user.noon;
night = _user.night.isEmpty ? "00:00-00:00" : _user.night;
}
currTimeIndex = int.parse(widget.detailEntity.ddate_solt);
_nameNode.addListener(() {
if (_nameNode.hasFocus) {
print('得到焦点');
} else {
print('失去焦点');
// _homeEnterModel.nameController.text = nameStr + _nameSuffix();
_addNameSuffix(nameStr, _nameSuffix());
}
setState(() {});
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
_myExtendedMaterialTextSelectionControls =
MyTextSelectionControls(callback: (value) {
_notebookDetailChangeModel.phoneController.value = TextEditingValue(
text: value,
selection: TextSelection.fromPosition(TextPosition(
affinity: TextAffinity.downstream,
offset: value.toString().length)));
});
_initDateList( _notebookDetailChangeModel.detailEntity);
// _notebookDetailChangeModel =
// Provider.of<NotebookDetailChangeModelOnly>(context, listen: false);
// sid = Provider.of<UserModel>(context, listen: false).user.sellerid;
// initDateHourMinuteList(context);
_notebookDetailChangeModel.getNewTableList(
context,
widget.detailEntity.ddate.toString() + '000',
widget.detailEntity.ddate_solt,
widget.detailEntity.pnum,
widget.detailEntity.tables);
getDzSellerConf();
_initData();
});
}
/// 早市、午市、晚市对应的半个小时间隔时间段
// initDateHourMinuteList(BuildContext context) async {
// UserModel userModel = Provider.of<UserModel>(context, listen: false);
// morning =
// userModel.user.morning.isEmpty ? "00:00-00:00" : userModel.user.morning;
// noon = userModel.user.noon.isEmpty ? "00:00-00:00" : userModel.user.noon;
// night = userModel.user.night.isEmpty ? "00:00-00:00" : userModel.user.night;
// }
///初始化 日期选择 月-日 某天
_initDateList(NotebookDetail notebookDetail)
{ String createtime =
notebookDetail.ddate.toString() + '000';
dateTime = DateTime.fromMillisecondsSinceEpoch(int.parse(createtime));
dateText = _returnDate(dateTime);
// String dateTimeSelect = DateUtil.formatDateMs(
// dateTime.millisecondsSinceEpoch,
// format: 'yyyy-MM-dd');
}
//生成日期文本
createDateText(BuildContext context, DateTime day) {
if (Utils.isOneDay(day, dateTime)) return; //日期没变
// dateTimeSelect = day;
dateText = _returnDate(day);
dateTime = day;
// getReserveList(context, needLoading: false);
}
_returnDate(DateTime day) {
// String time = Utils.lunarCalendarHolidays(day);
String date = _returnDayDateWeek(day);
// date += ' ${time}';
return date;
}
String _returnDayDateWeek(DateTime day) {
String date = '';
DateTime dateNow = DateTime.now();
String ymd = "${day.year}-" +
Utils.addZeroNumber(day.month) +
"-" +
Utils.addZeroNumber(day.day);
if (Utils.isOneDay(day, dateNow)) {
date += "今天 ";
} else if (Utils.isOneDay(day, dateNow.add(Duration(days: 1)))) {
date += "明天 ";
} else if (Utils.isOneDay(day, dateNow.add(Duration(days: 2)))) {
date += "后天 ";
}
date += ymd;
date += " 星期${Utils.formatWeekDayNum(day.weekday)}";
return date;
}
@override
void dispose() {
_nameNode.unfocus();
_phoneNode.unfocus();
super.dispose();
}
getDzSellerConf() async {
await marketingCenterProvider.getDzSellerConf(context,showLoading: false,selfDismiss: true);
}
_initData() async {
print(widget.detailEntity);
for (var item in widget.detailEntity.tables) {
item.selected = true;
}
nameStr = _notebookDetailChangeModel.nameController.text;
if (nameStr != '' && nameStr != null) {
_addNameSuffix(nameStr, _nameSuffix());
}
Map<String, String> params = {
"uid": Provider.of<UserModel>(context, listen: false).user.openid
};
await remarkManagerModel.getRemarks(context, params,selfDismiss:true);
}
//姓名后缀
_nameSuffix() {
for (var item in _notebookDetailChangeModel.sexList) {
if (item['select'] == true) {
return item['title'];
}
}
}
_addNameSuffix(String name, String suffix) {
if (name == _notebookDetailChangeModel.nameController.text &&
_notebookDetailChangeModel.nameController.text.endsWith(suffix)) {
return;
}
if (name != '' && name != null) {
_notebookDetailChangeModel.nameController.text = name + suffix ?? '';
}
}
_refreshRemark(List<Remark> remark, int index) {
if (remark[index].selected) {
if (currentRemark.length == 0) {
currentRemark += '${remark[index].custom}';
} else {
if (!currentRemark.contains(remark[index].custom)) {
if (currentRemark.endsWith('、')) {
currentRemark += '${remark[index].custom}';
} else {
currentRemark += '、${remark[index].custom}';
}
}
}
} else {
if (currentRemark.contains(remark[index].custom)) {
int start = currentRemark.indexOf(remark[index].custom);
int end = start + remark[index].custom.length;
currentRemark = currentRemark.replaceRange(start, end, '');
if (currentRemark.endsWith('、')) {
currentRemark = currentRemark.substring(0, currentRemark.length - 1);
}
if (currentRemark.startsWith('、')) {
currentRemark = currentRemark.substring(1, currentRemark.length);
}
if (currentRemark.contains('、、')) {
currentRemark = currentRemark.replaceRange(
currentRemark.indexOf('、、'),
currentRemark.indexOf('、、') + 2,
'、');
}
}
}
if (currentRemark.length > 100) {
currentRemark = currentRemark.substring(0, 100);
}
setState(() {
_notebookDetailChangeModel.customController.text = currentRemark;
});
// setState(() {
// // _notebookDetailChangeModel.customController.text = currentRemark;
// });
}
Widget _callButton(
{GestureTapCallback onPress,
content,
hasLeftBorder = true,
isSelect = false}) {
return InkWell(
onTap: onPress,
child: Container(
width: ScreenUtil().setWidth(84),
height: ScreenUtil().setHeight(48),
decoration: BoxDecoration(
color: isSelect ? MyColours.color_199095 : MyColours.color_fefefe,
border: Border(
bottom: BorderSide(
color: MyColours.color_6AB6B9,
width: ScreenUtil().setWidth(2)),
top: BorderSide(
color: MyColours.color_6AB6B9,
width: ScreenUtil().setWidth(2)),
left: hasLeftBorder
? BorderSide(
color: MyColours.color_6AB6B9,
width: ScreenUtil().setWidth(2))
: BorderSide.none,
right: BorderSide(
color: MyColours.color_6AB6B9,
width: ScreenUtil().setWidth(2)))),
child: Align(
alignment: Alignment.center,
child: Text(
content,
style: TextStyle(
color: isSelect ? Colors.white : MyColours.color_353535,
fontSize: ScreenUtil().setSp(28)),
),
),
),
);
}
_getCallLog() async {
List<Picker.PickerItem<dynamic>> data = [];
Iterable<CallLogEntry> result = await CallLogUtils.getCallLog(context);
if (result != null) {
_notebookDetailChangeModel.userHistorys = [];
List<CallLogEntry> object = Utils.removeDuplicates(result.toList());
print(object);
_notebookDetailChangeModel.userHistorys = [];
showPhoneHistory = false;
// setState(() {});
object.forEach((element) {
_notebookDetailChangeModel.userHistorys.add(UserHistoryEntity(
'', '', element.name ?? '', '1', element.number, '', '', ''));
String title = '';
title += ' ${element.number ?? ''}';
if (element.name != null && element.name != '') {
title += ' ${element.name}';
}
String stateStr = ''; //状态
if (element.callType.name == 'incoming' ||
element.callType.name == 'wifiIncoming' ||
element.callType.name == 'answeredExternally') {
stateStr = ' 呼入';
} else if (element.callType.name == 'outgoing' ||
element.callType.name == 'wifiOutgoing' ||
element.callType.name == 'voiceMail') {
stateStr = ' 呼出';
} else if (element.callType.name == 'missed') {
stateStr = ' 未接';
} else if (element.callType.name == 'rejected') {
stateStr = ' 拒接';
} else if (element.callType.name == 'blocked') {
stateStr = ' 拦截';
}
String sunString =
Utils.formatCallLogFromMill(element.timestamp.toString());
data.add(Picker.PickerItem(
text: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
child: Row(
children: [
HEmptyView(30),
Text(title ?? '',
style: TextStyle(
fontSize: font(16), color: MyColours.color_515151)),
Expanded(
child: Text(stateStr ?? '',
style: TextStyle(
fontSize: font(16),
color: MyColours.color_26000000))),
],
)),
Container(
margin: EdgeInsets.only(right: w(15)),
child: Text(sunString ?? '',
style: TextStyle(
fontSize: font(16), color: MyColours.color_515151)))
],
)));
});
if (data.length > 0) {
//有记录,底部弹窗展示
// showPhoneHistory = true;
// setState(() {});
DialogUtil.showSelectCusmanWidgetDialog(context, data, (value) {
if (value != null) {
_byValueToReqeust(value[0]);
}
}, title: '从通话记录选择客人电话', selecteds: [
// _getFirSelected(hourAndMinute, data),
// _getSecSelected(hourAndMinute)
]).then((value) {
print(value);
});
} else {
Utils.showToast('暂无通话记录!');
}
}
}
_byValueToReqeust(int index) {
setState(() {
showPhoneHistory = false;
UserHistoryEntity userHistoryEntity =
_notebookDetailChangeModel.userHistorys[index];
_notebookDetailChangeModel.phoneController.text = userHistoryEntity.phone;
// if (userHistoryEntity.sex == null || userHistoryEntity.sex == '') {
// userHistoryEntity.sex = '1';
// }
// _homeEnterModel.nameController.text =
// _homeEnterModel
// .userHistorys[index].rname +
// _nameSuffix();
for (var item in _notebookDetailChangeModel.sexList) {
item['select'] = false;
if (item['title'] == userHistoryEntity.sexStr) {
item['select'] = true;
}
}
_addNameSuffix(userHistoryEntity.rname, _nameSuffix());
if (userHistoryEntity.rname == null || userHistoryEntity.rname == '') {
nameStr = _notebookDetailChangeModel.nameController.text;
if (nameStr.endsWith('女士')) {
nameStr = nameStr.replaceAll('女士', '');
}
if (nameStr.endsWith('先生')) {
nameStr = nameStr.replaceAll('先生', '');
}
if (nameStr.endsWith('公司')) {
nameStr = nameStr.replaceAll('公司', '');
}
} else {
nameStr = userHistoryEntity.rname;
}
_phoneNode.unfocus();
_notebookDetailChangeModel.userHistorys.clear();
});
}
_openAddressBook() async {
if (!(await checkContactPermission())) {
PermissionStatus permissionStatus = await contactPermissionStatus();
if (permissionStatus == PermissionStatus.permanentlyDenied) {
//用户选择不在弹出权限提示框
print('never');
DialogUtil.openAlertDialog(
context, '未获得通讯录权限', "请在手机的权限管理里,将通讯录权限开启", '去设置', 340.0,
onTap: () {
openSetting();
Navigator.pop(context, '');
});
} else {
// 申请权限
bool canContacts = await requestContactPermission();
if (canContacts) {
_getContactData();
} else {
//拒绝通讯录权限 , 苹果拒绝权限后,不再提示权限框,进入此处
DialogUtil.openAlertDialog(
context, '未获得通讯录权限', "请在手机的权限管理里,将通讯录权限开启。", '去设置', 340.0,
onTap: () {
openSetting();
Navigator.pop(context, '');
});
}
}
} else {
_getContactData();
}
}
_getContactData() async {
Contact contact = await _contactPicker.selectContactWithNative();
setState(() {
String fullName =
contact.fullName.replaceAll(new RegExp(r"\s+\b|\b\s"), "");
String phone =
contact.phoneNumber.replaceAll(new RegExp(r"\s+\b|\b\s"), "");
if (fullName.compareTo(phone) == 0) {
fullName = '';
} else {
fullName = contact.fullName;
}
_notebookDetailChangeModel.phoneController.text =
contact.phoneNumber.replaceAll(new RegExp(r"\s+"), "");
// _notebookDetailChangeModel.nameController.text = fullName;
nameStr = fullName;
_addNameSuffix(fullName, _nameSuffix());
});
}
///早餐、午餐、晚餐点击方法
_clickMorAndNoonAndNig() {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
int ddate = dateTime.millisecondsSinceEpoch;
String ddateSolt = currTimeIndex.toString();
_notebookDetailChangeModel.getNewTableList(
context,
'${ddate}',
'${ddateSolt}',
widget.detailEntity.pnum,
_notebookDetailChangeModel.tableListOrReserve);
}
List<Widget> _tableWidget(List<TableListReserve> tables) {
List<Widget> list = [];
tables.forEach((element) {
list.add(Container(
// height: ScreenUtil().setWidth(50),
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(20),
vertical: ScreenUtil().setWidth(18)),
margin: EdgeInsets.only(
right: tables.length > 0 ? ScreenUtil().setWidth(10) : 0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10)),
color: MyColours.color_199095),
child: Text(
element.name,
style: TextStyle(
color: MyColours.color_ffffff, fontSize: ScreenUtil().setSp(30)),
),
));
});
return list;
}
_listWidget(List<Remark> remarks, CustomCallBack callback) {
List<Widget> lists = remarks.map((item) {
return remarkButton(
content: item.custom,
isSelect: item.selected,
onPress: () {
setState(() {
item.selected = !item.selected;
});
callback(item);
});
}).toList();
return lists;
}
@override
Widget build(BuildContext context) {
_notebookDetailChangeModel =
Provider.of<NotebookDetailChangeModelOnly>(context, listen: true);
remarkManagerModel = Provider.of<RemarkManagerModel>(context, listen: true);
marketingCenterProvider =
Provider.of<MarketingCenterProvider>(context, listen: true);
int sum = 3;
int hide = 0;
int btnNum = 0;
if (morning == "00:00-00:00") {
hide++;
}
if (noon == "00:00-00:00") {
hide++;
}
if (night == "00:00-00:00") {
hide++;
}
btnNum = sum - hide;
return GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
if (showPhoneHistory) {
setState(() {
showPhoneHistory = false;
// _notebookDetailChangeModel.userHistorys.clear();
});
}
},
child: Scaffold(
backgroundColor: Colors.white,
appBar: SystemAppBar(
widget.detailEntity.id == "-1" ? "录入订座信息" : "变更预订", onTap: () {
Navigator.pop(context);
}),
body: SingleChildScrollView(
controller: _controller,
child: Column(
children: [
Container(
color: MyColours.color_ffffff,
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(15)),
child: Row(
children: <Widget>[
Expanded(
child: GestureDetector(
onTap: () {
DialogUtil.showCalendarDialog(context, dateTime)
.then((day) {
if (day != null) {
createDateText(context, day);
int dateTimeMill = day.millisecondsSinceEpoch;
dateTime = day;
_notebookDetailChangeModel.getNewTableList(
context,
'${dateTimeMill}',
currTimeIndex.toString(),
widget.detailEntity.pnum,
_notebookDetailChangeModel
.tableListOrReserve);
}
});
},
child: Container(
// height: ScreenUtil().setWidth(80),
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(15),
vertical: ScreenUtil().setWidth(20)),
decoration: BoxDecoration(
color: MyColours.color_199095,
borderRadius: BorderRadius.circular(
ScreenUtil().setWidth(20))),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: Text(
dateText,
textAlign: TextAlign.center,
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(28)),
)),
// HEmptyView(10),
Image.asset(
Utils.getImgPath('f_arrow_right'),
width: ScreenUtil().setWidth(25),
// height: ScreenUtil().setWidth(10),
)
],
)),
)),
// MyDivider(
// ScreenUtil().setWidth(2),
// ScreenUtil().setHeight(68),
// color: MyColours.color_E0E0E0,
// ),
HEmptyView(20),
Container(
width: btnNum == 3 &&
(currTimeIndex == 3 || currTimeIndex == 1)
? ScreenUtil().setWidth(300) +
ScreenUtil().setWidth(4)
: ScreenUtil().setWidth(300),
height: ScreenUtil().setWidth(74),
decoration: BoxDecoration(
color: Color.fromRGBO(232, 232, 232, 1),
borderRadius: BorderRadius.circular(
ScreenUtil().setWidth(20),
)),
child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceEvenly,
// crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Offstage(
offstage:
morning == "00:00-00:00" ? true : false,
child: CommonButtonFlat(
content: "早餐",
state: currTimeIndex == 1 ? 1 : 0,
fontSize: 28,
right: noon == "00:00-00:00" &&
night == "00:00-00:00"
? true
: false,
width: ScreenUtil().setWidth(300) / btnNum,
onPress: () {
if (currTimeIndex == 1) return;
currTimeIndex = 1;
_clickMorAndNoonAndNig();
},
)),
btnNum == 3 && currTimeIndex == 3
? MyDivider(
ScreenUtil().setWidth(4),
ScreenUtil().setWidth(46),
color: MyColours.color_dfdfdf,
)
: SizedBox(),
Offstage(
offstage:
noon == "00:00-00:00" ? true : false,
child: CommonButtonFlat(
content: "午餐",
state: currTimeIndex == 2 ? 1 : 0,
fontSize: 28,
width: ScreenUtil().setWidth(300) / btnNum,
left:
morning == "00:00-00:00" ? true : false,
right:
night == "00:00-00:00" ? true : false,
onPress: () {
if (currTimeIndex == 2) return;
currTimeIndex = 2;
_clickMorAndNoonAndNig();
},
)),
btnNum == 3 && currTimeIndex == 1
? MyDivider(
ScreenUtil().setWidth(4),
ScreenUtil().setWidth(46),
color: MyColours.color_dfdfdf,
)
: SizedBox(),
Offstage(
offstage: night == "00:00-00:00" ? true : false,
child: Container(
child: CommonButtonFlat(
content: "晚餐",
left: morning == "00:00-00:00" &&
noon == "00:00-00:00"
? true
: false,
state: currTimeIndex == 3 ? 1 : 0,
fontSize: 28,
width: ScreenUtil().setWidth(300) / btnNum,
onPress: () {
if (currTimeIndex == 3) return;
currTimeIndex = 3;
_clickMorAndNoonAndNig();
},
)),
),
],
),
),
],
),
),
VEmptyView(15),
Container(
color: MyColours.color_ffffff,
width: double.infinity,
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(20),
vertical: ScreenUtil().setWidth(25)),
alignment: Alignment.center,
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
'预订桌位',
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(30)),
),
Spacer(),
_notebookDetailChangeModel.tableListOrReserve.length < 3
? Row(
children: _tableWidget(
_notebookDetailChangeModel
.tableListOrReserve),
)
: InkWell(
onTap: () {
DialogUtil.openFTablesChangeDialogOnly(
context,
_notebookDetailChangeModel
.tableListOrReserve);
},
child: Container(
// height: ScreenUtil()
// .setWidth(
// 50),
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(20),
vertical: ScreenUtil().setWidth(18)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(
ScreenUtil().setWidth(10)),
color: MyColours.color_199095),
child: Text(
'${_notebookDetailChangeModel.tableListOrReserve.length}桌 查看',
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(30)),
),
),
),
HEmptyView(10),
InkWell(
onTap: () async {
FocusScope.of(context)
.requestFocus(FocusNode()); //点击空白处隐藏键盘
int ddate = dateTime.millisecondsSinceEpoch;
String ddateSolt = currTimeIndex.toString();
Map temp = await NavigatorUtil
.goSelectTableFPageOrRerserve(
context, widget.rid, ddate, ddateSolt,
canChoose: true,
object: {
'object': _notebookDetailChangeModel
.tableListOrReserve
});
// if (temp['tid'] != null) {
// setReserveStatus("5", tid: temp['tid']);
// }
if (temp == null) {
// if (_notebookDetailChangeModel
// .tableList.length ==
// 0) {
// _notebookDetailgoSelectTablePagChangeModel
// .isRecommend = true;
// _notebookDetailChangeModel.tableListOrReserve =
// [];
// for (t.TableList item
// in _notebookDetailChangeModel
// .recommendList) {
// item.selected = false;
// }
// setState(() {});
// }
} else if (temp['object'].length == 0) {
// _notebookDetailChangeModel.isRecommend =
// true;
// _notebookDetailChangeModel.tableListOrReserve = [];
// for (t.TableList item
// in _notebookDetailChangeModel
// .recommendList) {
// item.selected = false;
// }
// setState(() {});
} else {
_notebookDetailChangeModel.tableListOrReserve =
temp['object'];
// if (_notebookDetailChangeModel.tableListOrReserve.length == 0) {
// isRecommend = true;
// }
for (TableListReserve item
in _notebookDetailChangeModel
.tableListOrReserve) {
item.selected = true;
}
// setState(() {});
int dateTimeMill =
dateTime.millisecondsSinceEpoch;
await _notebookDetailChangeModel
.getNewTableList(
context,
'${dateTimeMill}',
currTimeIndex.toString(),
widget.detailEntity.pnum,
_notebookDetailChangeModel
.tableListOrReserve);
_notebookDetailChangeModel.notifyListeners();
}
// _notebookDetailChangeModel.notifyListeners();
},
child: Text('更多桌位',
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setSp(28),
decoration: TextDecoration.underline))),
],
),
),
Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(20)),
child: Column(children: [
Stack(
children: [
Column(
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: Container(
height: ScreenUtil().setWidth(60),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: ScreenUtil()
.setWidth(2),
color: MyColours
.color_efefef))),
child: TextField(
maxLines: 1,
//输入文本的样式
style: TextStyle(
fontSize: ScreenUtil().setSp(30),
color: MyColours.color_353535),
controller: _notebookDetailChangeModel
.nameController,
focusNode: _nameNode,
// textAlignVertical: TextAlignVertical.top,
decoration: InputDecoration(
hintText: "客人姓名",
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(30),
),
// contentPadding:
// EdgeInsets.only(bottom: ScreenUtil().setWidth(17)),
contentPadding: EdgeInsets.zero,
border: OutlineInputBorder(
borderSide: BorderSide.none),
),
onChanged: (value) {
print('ggg');
if (value.endsWith('先生') ||
value.endsWith('女士') ||
value.endsWith('公司')) {
nameStr = value.substring(
0, value.length - 2);
} else {
nameStr = value;
}
if (_notebookDetailChangeModel
.phoneController
.text
.length ==
0 &&
value.length > 0) {
if (marketingCenterProvider
.nameSwich) {
setState(() {
showPhoneHistory = true;
});
Map<String, String> params = {
"keywords": value,
"sid": Provider.of<UserModel>(
context,
listen: false)
.user
.sellerid,
};
JhCommonUtils.debounce(() =>
_notebookDetailChangeModel
.getUserHistorys(
context, params));
}
} else {
setState(() {
showPhoneHistory = false;
});
}
},
onTap: () {
// setState(() {
// showPhoneHistory = true;
// });
// Future.delayed(Duration(milliseconds: 300), () {
// _controller.jumpTo(_controller.position.maxScrollExtent);
// });
},
onEditingComplete: () {
print('fff');
_nameNode.unfocus();
// _homeEnterModel.nameController.text =
// nameStr + _nameSuffix();
_addNameSuffix(
nameStr, _nameSuffix());
},
keyboardType: TextInputType.text,
),
),
),
// HEmptyView(40),
Row(
children: _notebookDetailChangeModel
.sexList
.map((value) {
return _callButton(
onPress: () {
for (var item
in _notebookDetailChangeModel
.sexList) {
item['select'] = false;
if (item['title'] ==
value['title']) {
item['select'] = true;
// _homeEnterModel.nameController.text =
// nameStr + item['title'];
if (nameStr != null &&
nameStr != '') {
_addNameSuffix(
nameStr, item['title']);
}
}
}
_notebookDetailChangeModel
.notifyListeners();
},
content: value['title'],
hasLeftBorder: value['hasLeftBorder'],
isSelect: value['select']);
}).toList()),
],
),
// VEmptyView(30),
// MyDivider(double.infinity,
// ScreenUtil().setWidth(2),
// color:
// MyColours.color_efefef),
//电话
VEmptyView(20),
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: Container(
height: ScreenUtil().setWidth(60),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: ScreenUtil()
.setWidth(2),
color: MyColours
.color_efefef))),
child: TextField(
selectionControls:
_myExtendedMaterialTextSelectionControls,
maxLines: 1,
//输入文本的样式
style: TextStyle(
fontSize:
ScreenUtil().setSp(30),
color: MyColours.color_353535),
controller:
_notebookDetailChangeModel
.phoneController,
focusNode: _phoneNode,
inputFormatters: <
TextInputFormatter>[
LengthLimitingTextInputFormatter(
11) //限制长度
],
// textAlignVertical: TextAlignVertical.top,
decoration: InputDecoration(
hintText: "电话",
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize:
ScreenUtil().setSp(30),
),
// contentPadding:
// EdgeInsets.only(bottom: ScreenUtil().setWidth(17)),
contentPadding: EdgeInsets.zero,
border: OutlineInputBorder(
borderSide: BorderSide.none),
),
onChanged: (value) {
LogUtil.v("value:$value");
if (value.isEmpty ||
value.length > 11) {
//内容为空,或 超过11位
setState(() {
_notebookDetailChangeModel
.userHistorys
.clear();
});
return;
}
if (value.isEmpty ||
value.length > 0) {
if (marketingCenterProvider
.phoneSwich) {
setState(() {
showPhoneHistory = true;
});
Map<String, String> params = {
"keywords": value,
"sid":
Provider.of<UserModel>(
context,
listen: false)
.user
.sellerid,
};
JhCommonUtils.debounce(() =>
_notebookDetailChangeModel
.getUserHistorys(
context, params));
}
} else {
setState(() {
showPhoneHistory = false;
});
}
},
onEditingComplete: () {
_phoneNode.unfocus();
},
onTap: () {
// setState(() {
// showPhoneHistory = true;
// });
// Future.delayed(Duration(milliseconds: 300), () {
// _controller.jumpTo(_controller.position.maxScrollExtent);
// });
},
keyboardType:
TextInputType.numberWithOptions(
decimal: true),
)),
),
InkWell(
onTap: () async {
_openAddressBook();
// var result = await CallLogUtil.getCallLog();
// print(result);
},
child: Container(
// color: Colors.red,
width: ScreenUtil().setWidth(64) * 2,
height: ScreenUtil().setWidth(48),
alignment: Alignment.centerRight,
child: Text('电话簿',
style: TextStyle(
color: MyColours.color_199095,
fontSize:
ScreenUtil().setSp(28),
decoration:
TextDecoration.underline)),
),
),
if (Platform.isAndroid)
Row(
children: [
HEmptyView(20),
MyDivider(
1.0, ScreenUtil().setWidth(40)),
HEmptyView(20),
InkWell(
onTap: () async {
_getCallLog();
},
child: Container(
// color: Colors.red,
// width: ScreenUtil().setWidth(64) * 2,
height: ScreenUtil().setWidth(48),
alignment: Alignment.centerLeft,
child: Text('通话记录',
style: TextStyle(
color: MyColours
.color_199095,
fontSize: ScreenUtil()
.setSp(28),
decoration: TextDecoration
.underline)),
),
),
],
)
],
),
],
),
],
),
])),
VEmptyView(40),
Stack(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.centerLeft,
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(20)),
child: Text(
'备注',
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(30)),
),
)),
VEmptyView(30),
//输入框
Container(
width: double.infinity,
margin: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(20)),
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(20),
vertical: ScreenUtil().setWidth(20)),
alignment: Alignment.topLeft,
decoration: BoxDecoration(
color: MyColours.color_ffffff,
border: Border.all(
color: MyColours.color_cccccc,
width: ScreenUtil().setWidth(2)),
borderRadius: BorderRadius.circular(
ScreenUtil().setWidth(10))),
child: TextField(
controller:
_notebookDetailChangeModel.customController,
focusNode: _cusdemNode,
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(28),
textBaseline: TextBaseline.alphabetic),
textAlignVertical: TextAlignVertical.center,
maxLines: 5,
maxLength: 100,
decoration: InputDecoration(
hintText: "请输入备注或点击快捷选择标签",
hintStyle: TextStyle(
color: MyColours.color_979797,
fontSize: ScreenUtil().setSp(28),
),
contentPadding: EdgeInsets.zero,
border: OutlineInputBorder(
borderSide: BorderSide.none),
),
keyboardType: TextInputType.text,
onChanged: (value) {
setState(() {
currentRemark = value ?? "";
});
}),
),
VEmptyView(40),
Container(
padding: EdgeInsets.only(
left: ScreenUtil().setWidth(20),
right: ScreenUtil().setWidth(20),
bottom: ScreenUtil().setWidth(40)),
child: Wrap(
children: _listWidget(
remarkManagerModel.ofenRemarks, (item) {
int index = remarkManagerModel.ofenRemarks
.indexOf(item);
_refreshRemark(
remarkManagerModel.ofenRemarks, index);
}),
spacing: ScreenUtil().setWidth(20),
runSpacing: ScreenUtil().setWidth(20),
// alignment: WrapAlignment.start,
// runAlignment: WrapAlignment.end,
),
),
],
),
Offstage(
offstage: !(showPhoneHistory &&
_notebookDetailChangeModel.userHistorys.length > 0),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.white),
color: MyColours.color_ffffff,
boxShadow: [
BoxShadow(
color: MyColours.color_e5e5e5,
blurRadius: ScreenUtil().setWidth(20))
]),
// width: ScreenUtil().setWidth(440),
// height:
// _notebookDetailChangeModel.userHistorys.length > 1
// ? ScreenUtil().setWidth(208)
// : ScreenUtil().setWidth(104),
width: ScreenUtil().screenWidth - w(60),
// width: ScreenUtil().setWidth(350),
constraints: BoxConstraints(maxHeight: w(260)),
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(30)),
child: Align(
alignment: Alignment.topCenter,
child: MediaQuery.removePadding(
context: context,
removeTop: true,
child: Scrollbar(
isAlwaysShown: true, //设置滚动条常亮
controller: _scrollCrl, //必须设置一个controller
///添加进度条
child: ListView.builder(
controller: _scrollCrl,
itemBuilder: (context, index) {
return GestureDetector(
onTap: () {
_byValueToReqeust(index);
},
child: Container(
width: double.infinity,
height:
ScreenUtil().setWidth(102),
decoration: BoxDecoration(
border: Border(
bottom: (index !=
(_notebookDetailChangeModel
.userHistorys
.length -
1) &&
_notebookDetailChangeModel
.userHistorys
.length >
1)
? BorderSide(
color: MyColours
.color_e5e5e5,
width:
ScreenUtil()
.setWidth(
2))
: BorderSide.none)),
child: Align(
alignment:
Alignment.centerLeft,
child: Text(
(_nameNode.hasFocus
? (_notebookDetailChangeModel
.userHistorys[
index]
.rnameStr ==
null
? ''
: _notebookDetailChangeModel
.userHistorys[
index]
.rnameStr)
: (_notebookDetailChangeModel
.userHistorys[
index]
.phone ==
null
? ''
: _notebookDetailChangeModel
.userHistorys[
index]
.phone)) +
' ' +
(_nameNode.hasFocus
? (_notebookDetailChangeModel
.userHistorys[
index]
.phone ==
null
? ''
: _notebookDetailChangeModel
.userHistorys[
index]
.phone)
: (_notebookDetailChangeModel
.userHistorys[
index]
.rnameStr ==
null
? ''
: _notebookDetailChangeModel
.userHistorys[
index]
.rnameStr)) +
' ' +
_notebookDetailChangeModel
.userHistorys[
index]
.nickName,
style: TextStyle(
color: MyColours
.color_333333,
fontSize: ScreenUtil()
.setSp(32)),
))),
);
},
itemExtent: ScreenUtil().setWidth(104),
itemCount: _notebookDetailChangeModel
.userHistorys.length,
)))),
),
)
],
),
VEmptyView(80),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
HEmptyView(30),
RoundButton(
text: '返回',
fontSize: 28,
isBold: false,
height: ScreenUtil().setWidth(70),
width: ScreenUtil().setWidth(200),
radius: ScreenUtil().setWidth(10),
gradientStart: MyColours.color_ffffff,
textColor: MyColours.color_333333,
borderColor: MyColours.color_199095,
gradientEnd: MyColours.color_ffffff,
onPressed: () {
//返回
Navigator.pop(context);
},
),
RoundButton(
text: '确定变更',
fontSize: 28,
isBold: false,
height: ScreenUtil().setWidth(70),
width: ScreenUtil().setWidth(200),
radius: ScreenUtil().setWidth(10),
onPressed: () async {
// String name =
// _notebookDetailChangeModel.nameController.text.trim();
// if (ObjectUtil.isEmpty(name)) {
// Utils.showToast("请填写客户姓名");
// return;
// }
if (_notebookDetailChangeModel
.tableListOrReserve.length ==
0) {
Utils.showToast("请选择桌位");
return;
}
if (_notebookDetailChangeModel.phoneController.text
.trim()
.length >
0) {
if (!Utils.isInteger(_notebookDetailChangeModel
.phoneController.text
.replaceAll(' ', ''))) {
Utils.showToast('手机号错误,请修改正确');
return;
}
}
FocusScope.of(context)
.requestFocus(FocusNode()); //点击空白处隐藏键盘
print(widget.detailEntity.uid);
SunReserveInfoModel _model =
_notebookDetailChangeModel.detailEntity.type ==
"1"
? //判断是否在线预订
await _notebookDetailChangeModel
.updateOnlineReserveInfoOnly(
context,
nameStr,
widget.detailEntity.uid,
currTimeIndex,
dateTime,
morning,
noon,
night)
: await _notebookDetailChangeModel
.setReserveInfoOnly(
context,
nameStr,
widget.detailEntity.uid,
currTimeIndex,
dateTime,
morning,
noon,
night);
if (_model != null) {
if (ObjectUtil.isNotEmpty(_model.row) ||
ObjectUtil.isNotEmpty(_model.row.id)) {
print('成功');
// _notebookDetailChangeModel.clearData();
bus.emit("refresh_detail");
bus.emit("refresh_book_list"); //刷新已预订列表
if (widget.back) {
EventBus()
.emit("refresh_invitaion_info"); //刷新预订安排页面
Navigator.pop(context);
} else {
String ddate_solt = '';
if (_model.row.isSetDdate == '1') {
String createtime =
_model.row.ddate.toString() + '000';
DateTime createTime =
DateTime.fromMillisecondsSinceEpoch(
int.parse(createtime));
ddate_solt = DateUtil.formatDate(createTime,
format: DateFormats.h_m);
} else {
if (_model.row.ddateSolt == '1') {
ddate_solt = '早餐';
} else if (_model.row.ddateSolt == '2') {
ddate_solt = '午餐';
} else if (_model.row.ddateSolt == '3') {
ddate_solt = '晚餐';
}
}
List<dynamic> tableinfo =
convert.jsonDecode(_model.row.tableinfo);
print(tableinfo);
// if (tableinfo.length > 1) {
// _nameStr =
// t.TableList.fromJson(tableinfo[0]).name +
// '等${tableinfo.length}桌';
// }
String _nameStr = '';
String _tid = '';
for (int i = 0; i < tableinfo.length; i++) {
_nameStr +=
'${t.TableList.fromJson(tableinfo[i]).name},';
_tid +=
'${t.TableList.fromJson(tableinfo[i]).id},';
}
if (_tid.endsWith(',')) {
_tid = _tid.substring(0, _tid.length - 1);
}
if (_nameStr.endsWith(',')) {
_nameStr = _nameStr.substring(
0, _nameStr.length - 1);
}
LogUtil.v(_nameStr);
NavigatorUtil.goInvicationPage(
context, _model.row.id,
// _nameStr,
// _model.row.ddate,
// ddate_solt,
// _model.row.phone,
// _model.row.ddateSolt,
// _model.row.rname == null
// ? ''
// : _model.row.rname,
// _model.row.sex == null ? '' : _model.row.sex,
// _model.row.cusdem,
// tid: _tid,
replace: true);
}
EventBus().emit("refresh_tablemanager"); //刷新桌位
EventBus().emit("refresh_detail"); //刷新订座详情页
EventBus().emit("refresh_action_log"); //获取变更记录
} else {
Utils.showToast(widget.detailEntity.id == "-1"
? "录入预订订单失败,请重试!"
: "变更预订订单失败,请重试!");
}
}
},
),
HEmptyView(30),
],
),
VEmptyView(60)
],
)),
));
}
}
Widget remarkButton({GestureTapCallback onPress, content, isSelect = false}) {
return InkWell(
onTap: onPress,
child: Container(
// height: ScreenUtil().setWidth(50),
// alignment: Alignment.center,
// margin: EdgeInsets.only(right: ScreenUtil().setWidth(16)),
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(20),
vertical: ScreenUtil().setWidth(10)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(96)),
color: isSelect ? MyColours.color_515151 : MyColours.color_ffffff,
border: Border.all(
width: ScreenUtil().setWidth(2),
color: isSelect ? MyColours.color_FFF0E5 : MyColours.color_DBDBDB,
)),
child: Text(
content,
style: TextStyle(
color: isSelect ? Colors.white : MyColours.color_999999,
fontSize: ScreenUtil().setSp(24)),
),
),
);
}
... ...
This diff could not be displayed because it is too large.
... ... @@ -4751,7 +4751,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
detailEntity.role_name !=
'店长')) {
NavigatorUtil
.goNoteBookChangeFPage(
.goNoteBookChangeFPageOnly(
context,
detailEntity,
widget.rid);
... ...
// 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';
// import 'package:one_key/constant/state.dart';
// import 'package:one_key/models/area.dart';
// import 'package:one_key/models/notebook.dart';
// import 'package:one_key/models/tableOuter.dart';
// import 'package:one_key/models/table_list.dart';
// import 'package:one_key/pages/table/area_item_table.dart';
// import 'package:one_key/pages/table/area_item_table_or_reserve.dart';
// import 'package:one_key/provider/choose_table_model.dart';
// import 'package:one_key/provider/notebook_detail_change_model.dart';
// import 'package:one_key/provider/notebook_model.dart';
// import 'package:one_key/provider/user_model.dart';
// import 'package:one_key/res/colors.dart';
// import 'package:one_key/utils/dialog_util.dart';
// import 'package:one_key/utils/utils.dart';
// import 'package:one_key/widgets/MyDivider.dart';
// import 'package:one_key/widgets/app_bar.dart';
// import 'package:one_key/widgets/area_item.dart';
// import 'package:one_key/widgets/common_button.dart';
// import 'package:one_key/widgets/f_table_item.dart';
// import 'package:one_key/widgets/h_empty_view.dart';
// import 'package:one_key/widgets/page_exception.dart';
// import 'package:one_key/widgets/table_item.dart';
// import 'package:one_key/models/table.dart' as t;
// import 'package:one_key/widgets/v_empty_view.dart';
// import 'package:provider/provider.dart';
// import 'dart:convert' as convert;
// import '../../models/get_board_model.dart';
// import '../../models/table_or_reserve_model.dart';
// import '../../models/table_or_reserve_model.dart';
// import '../../models/table_or_reserve_model.dart';
// import '../../models/table_or_reserve_model.dart';
// import '../../provider/table_manage_model_or_reserve.dart';
// import '../table/table_item_or_reserve.dart';
// class SelectTableFPageOrReserve extends StatefulWidget {
// final String rid; //预订id
// final DateTime dateTime; //日期
// final String ddate_slot; //时段
// final bool canChoose; //变更预订可以取消原来已预订的选中状态
// final List<TableList> tableList;
// final String fromPage;
// final String tid;
// final String hmS;
// final String hmE;
// final String source;
// final String ridFeast; //宴会id
// SelectTableFPageOrReserve(this.rid, this.dateTime, this.ddate_slot,
// {this.canChoose = false,
// this.tableList,
// this.fromPage,
// this.tid,
// this.hmS,
// this.hmE,
// this.source = '0',
// this.ridFeast});
// @override
// State<StatefulWidget> createState() {
// // TODO: implement createState
// return new SelectTableFPageOrReserveState();
// }
// }
// class SelectTableFPageOrReserveState extends State<SelectTableFPageOrReserve> {
// // List<Area> areas = []; //区域列表
// // List<t.Table> selectTables = []; //选择的桌位
// // List<TableOuter> tableOuterList = []; //区域-桌位列表
// // Map<String, List<t.Table>> areaTableMap = {}; //区域-桌位Map
// ChooseTableModel _chooseTableModel;
// // Map<String, Notebook> tableMap = {}; //记录已预订桌位对应的订单
// // String currentArea; //当前选中区域
// List<String> personNumList = [];
// int selectNum = 0;
// // bool isSelected = true; //全部按钮
// int _selectNumber;
// // Map dailyMap = {}; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟
// List<Notebook> noteBooks;
// TableManagerModelOrReserve tableManagerModel;
// @override
// void initState() {
// // TODO: implement initState
// super.initState();
// for (int i = 1; i < 31; i++) {
// personNumList.add(i.toString());
// }
// // initDateHourMinuteList(context);
// WidgetsBinding.instance.addPostFrameCallback((_) {
// // getTableList();
// _getTableListOrReserve();
// });
// }
// ///
// _getTableListOrReserve() async {
// await tableManagerModel.getTableListOrReserve(
// context,
// );
// tableManagerModel.tablesOrReserveDataShow.forEach((element) {
// element.tableList.forEach((element) {
// element.selected = false;
// for (var table in widget.tableList) {
// if (element.id == table.id) {
// element.selected = true;
// selectNum++;
// tableManagerModel.selectTablesOrReserve.add(element);
// }
// }
// });
// });
// tableManagerModel.notifyListeners();
// }
// /// 早市、午市、晚市对应的半个小时间隔时间段
// // 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]);
// // if (beginMinute == 15) {
// // beginMinute = 30;
// // } else if (beginMinute == 45) {
// // beginHour++;
// // beginMinute = 0;
// // }
// // List endTemp = endDate.split(':');
// // /*获取结束小时*/
// // int endHour = int.parse(endTemp[0]);
// // /*获取结束分钟*/
// // int endMinute = int.parse(endTemp[1]);
// // if (endMinute == 15) {
// // endDate = '${endTemp[0]}:00';
// // } else if (endMinute == 45) {
// // endDate = '${endTemp[0]}:30';
// // }
// // 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);
// // Map<String, String> params = {"sellerid": userModel.user.sellerid};
// // tableOuterList = await _chooseTableModel.getTableList(context, params,
// // needLoading: needLoading);
// // _chooseTableModel.tablesAll = [];
// // selectTables = [];
// // for (TableOuter item in tableOuterList) {
// // // if (item.name == "推荐") {
// // // itemModelList.remove(item);
// // // }
// // for (var item1 in item.list) {
// // item1.selected = false;
// // for (var table in widget.tableList) {
// // if (item1.id == table.id) {
// // item1.selected = true;
// // selectNum++;
// // selectTables.add(item1);
// // // if (!tableList.contains(item)) {
// // // tableList.add(item);
// // // }
// // }
// // }
// // }
// // _chooseTableModel.tablesAll.addAll(item.list);
// // }
// // if (tableOuterList.isEmpty) {
// // _chooseTableModel.pageState = PageState.Success;
// // _chooseTableModel.notifyListeners();
// // } else {
// // _getReserveList(userModel.user.sellerid, needLoading: needLoading);
// // }
// // // if (_chooseTableModel.pageState == PageState.Success) {
// // // }
// // }
// // refreshTable(context) async {
// // await getTableList(needLoading: false);
// // // if (temp.length > 0) {
// // // _getReserveList(context, needLoading: false);
// // // } else {
// // // // pageState = PageState.Empty;
// // // _chooseTableModel.pageState = PageState.Success;
// // // _chooseTableModel.notifyListeners();
// // // }
// // }
// // //获取预订(原来普通预订和宴会预订)
// // _getReserveListAndFeastData(context, params, showloading) async {
// // UserModel userModel = Provider.of<UserModel>(context, listen: false);
// // String timeStrStart = '';
// // String timeStrEnd = '';
// // String hmsS = " ${widget.hmS}:00"; //起始
// // String hmsE = " ${widget.hmE}:59"; //结束
// // if (widget.hmS == 'null' || widget.hmE == 'null') {
// // //用餐段对应的时间段作为起始时间
// // 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);
// // if (keys != '') {
// // List temp = dailyMap[keys];
// // timeStrStart = ymd + ' ' + temp.first + ':00';
// // timeStrEnd = ymd + ' ' + temp.last + ':00';
// // } else {
// // hmsS = " 00:00:00";
// // hmsE = " 23:59:59";
// // timeStrStart = widget.dateTime.year.toString() +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.month) +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.day) +
// // hmsS;
// // timeStrEnd = widget.dateTime.year.toString() +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.month) +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.day) +
// // hmsE;
// // }
// // } else {
// // hmsS = " ${widget.hmS}:00"; //起始
// // hmsE = " ${widget.hmE}:59"; //结束
// // timeStrStart = widget.dateTime.year.toString() +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.month) +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.day) +
// // hmsS;
// // timeStrEnd = widget.dateTime.year.toString() +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.month) +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.day) +
// // hmsE;
// // }
// // String start =
// // (DateUtil.getDateMsByTimeStr(timeStrStart) / 1000).floor().toString();
// // String end =
// // (DateUtil.getDateMsByTimeStr(timeStrEnd) / 1000).floor().toString();
// // Map<String, String> banquetmap = {
// // 'sid': userModel.user.sellerid,
// // 'rdate': '${start}',
// // 'edate': '${end}',
// // // 'ddate_interval': widget.ddate_slot
// // };
// // return await Future.wait<bool>([
// // _getOldReserve(context, params, showloading),
// // _chooseTableModel.getBanquetByDate(context, banquetmap,
// // showLoading: showloading)
// // ]).then((results) {
// // if (results[0] && results[1]) {
// // //成功
// // return true;
// // } else {
// // if (!results[0]) {
// // // Utils.showToast('');
// // } else {
// // // Utils.showToast('');
// // }
// // return false;
// // }
// // }).catchError((e) {
// // print(e);
// // return false;
// // });
// // }
// // Future<bool> _getOldReserve(context, params, showloading) async {
// // NoteBookModel model = new NoteBookModel();
// // noteBooks =
// // await model.getReserveList(context, params, needLoading: showloading);
// // return true;
// // }
// // //获取已预订列表
// // _getReserveList(String sid, {needLoading = true}) async {
// // NoteBookModel model = new NoteBookModel();
// // Map<String, String> params = {
// // "sid": sid,
// // "rdate": _getRdate(),
// // // "ddate_solt": widget.ddate_slot,
// // "y": "200",
// // "x": "1",
// // "keywords": "",
// // "sort": "1"
// // };
// // if (widget.source == '1') {
// // params['source'] = '1';
// // }
// // // List<Notebook> noteBooks =
// // // await model.getReserveList(context, params, needLoading: needLoading);
// // bool success =
// // await _getReserveListAndFeastData(context, params, needLoading);
// // if (success) {
// // List<FeastBoardModel> banquetByDateDataTemp = []; //转换为桌子id为key,data为value
// // _chooseTableModel.banquetByDateData.forEach((element) {
// // _chooseTableModel.tablesAll.forEach((table) {
// // if (table.name == element.title) {
// // FeastBoardModel feastBoardModel = FeastBoardModel();
// // feastBoardModel.title = table.id;
// // feastBoardModel.data = element.data;
// // banquetByDateDataTemp.add(feastBoardModel);
// // }
// // });
// // });
// // // banquetByDateData.map((e) => null)
// // // String banquetKey = '';
// // // if (widget.ddate_slot == '1') {
// // // banquetKey = '早餐';
// // // } else if (widget.ddate_slot == '2') {
// // // banquetKey = '午餐';
// // // } else if (widget.ddate_slot == '3') {
// // // banquetKey = '晚餐';
// // // }
// // Map<String, List<FeastBoardSunModel>> banquetData = {};
// // banquetByDateDataTemp.forEach((element) {
// // List<FeastBoardSunModel> data = [];
// // if (element.data['其他'].length > 0) {
// // // FeastBoardSunModel feastBoardSunModel = element.data['其他'][0];
// // element.data['其他'].forEach((feastBoardSunModel) {
// // if (feastBoardSunModel.lost == null ||
// // feastBoardSunModel.lost == '') {
// // data.add(feastBoardSunModel); //未丢单宴会合集
// // }
// // });
// // }
// // if (element.data['早餐'].length > 0) {
// // // FeastBoardSunModel feastBoardSunModel = element.data['早餐'][0];
// // element.data['早餐'].forEach((feastBoardSunModel) {
// // if (feastBoardSunModel.lost == null ||
// // feastBoardSunModel.lost == '') {
// // data.add(feastBoardSunModel); //未丢单宴会合集
// // }
// // });
// // }
// // if (element.data['午餐'].length > 0) {
// // // FeastBoardSunModel feastBoardSunModel = element.data['午餐'][0];
// // element.data['午餐'].forEach((feastBoardSunModel) {
// // if (feastBoardSunModel.lost == null ||
// // feastBoardSunModel.lost == '') {
// // data.add(feastBoardSunModel); //未丢单宴会合集
// // }
// // });
// // }
// // if (element.data['晚餐'].length > 0) {
// // // FeastBoardSunModel feastBoardSunModel = element.data['晚餐'][0];
// // element.data['晚餐'].forEach((feastBoardSunModel) {
// // if (feastBoardSunModel.lost == null ||
// // feastBoardSunModel.lost == '') {
// // data.add(feastBoardSunModel); //未丢单宴会合集
// // }
// // });
// // }
// // // 不是丢单宴会&&不是当前宴会
// // // 移除当前宴会订单
// // if (widget.ridFeast != null) {
// // print(data);
// // data.removeWhere((element) => element.rid == widget.ridFeast);
// // print(data);
// // }
// // if (!banquetData.containsKey(element.title) && data.length > 0) {
// // banquetData[element.title] = data;
// // }
// // });
// // List<String> tidsWidget =
// // widget.tableList.map((element) => element.id).toList();
// // print(tidsWidget);
// // banquetData.forEach((key, value) {
// // value.forEach((element) {
// // //未丢单的宴会
// // if (!tidsWidget.contains(key)) {
// // //带过来的桌子,不能标记已预订,或者已经有宴会
// // Notebook notebook = Notebook();
// // notebook.tid = key;
// // notebook.status = '10'; //宴会类型
// // notebook.className = element.className;
// // notebook.id = element.rid;
// // notebook.rname = element.rname;
// // notebook.nick_name = element.nickName ?? element.account;
// // noteBooks.add(notebook);
// // }
// // print(noteBooks);
// // // banquetByDateDataTemp.forEach((element) {
// // // FeastBoardSunModel feastBoardSunModel = element.data[banquetKey][0];
// // // if (feastBoardSunModel.lost == null || feastBoardSunModel.lost == '') {
// // //未丢单的宴会
// // // Notebook notebook = Notebook();
// // // notebook.tid = element.title;
// // // notebook.status = '10'; //宴会类型
// // // notebook.className = feastBoardSunModel.className;
// // // notebook.id = feastBoardSunModel.rid;
// // // notebook.rname = feastBoardSunModel.rname;
// // // notebook.nick_name =
// // // feastBoardSunModel.nickName ?? feastBoardSunModel.account;
// // // noteBooks.add(notebook);
// // // }
// // });
// // });
// // for (Notebook notebook in noteBooks) {
// // if (notebook.tid.isEmpty) continue;
// // if (notebook.status == "1" ||
// // notebook.status == "2" ||
// // notebook.status == "5" ||
// // notebook.status == "10") {
// // //已预订,用餐中,已安排
// // List<String> tids = notebook.tid.split(",");
// // for (String tid in tids) {
// // tableMap["$tid"] = notebook;
// // }
// // }
// // }
// // // List<Notebook> noteBooks =
// // // await newGetReserveList(context, params, showLoading: showloading);
// // // List<t.Table> tempSelectTables = [];
// // // tempSelectTables.addAll(selectTables);
// // // String msg = '';
// // // for (Notebook notebook in noteBooks) {
// // // if (notebook.tid.isEmpty) continue;
// // // //已预订,用餐中,已安排
// // // List<String> tids = notebook.tid.split(",");
// // // for (String tid in tids) {
// // // if (notebook.status == "1" ||
// // // notebook.status == "2" ||
// // // notebook.status == "5" ||
// // // notebook.status == "10") {
// // // 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 && msg != '' && selectTables.length > 0) {
// // // if (msg.endsWith(',')) {
// // // msg = msg.substring(0, msg.length - 1);
// // // }
// // // selectTables = tempSelectTables;
// // // Utils.showToast('${msg}已被预订,请选择其他桌位!');
// // // print(tableMap);
// // // initData(needKeep: needKeep);
// // // // notifyListeners();
// // // return false;
// // // }
// // // print(tableMap);
// // // initData(needKeep: needKeep);
// // // return true;
// // }
// // print(tableMap);
// // if (needLoading) {
// // initData();
// // } else {
// // initData(needRetain: true);
// // }
// // }
// //初始桌位数据
// // initData({bool needRetain = false}) {
// // areas.clear();
// // areaTableMap.clear();
// // List<t.Table> tempTableAll = [];
// // tempTableAll.addAll(_chooseTableModel.tablesAll);
// // for (TableOuter outer in tableOuterList) {
// // int count = 0;
// // List<t.Table> tempList = [];
// // tempList.addAll(outer.list);
// // for (t.Table table in outer.list) {
// // // table.selected = false;
// // if (widget.tid != '' && table.id == widget.tid) {
// // table.selected = true;
// // currentArea = outer.name;
// // }
// // if (table.tablestatus == "0") {
// // //没有用餐中
// // if (tableMap["${table.id}"] != null) {
// // Notebook notebook = tableMap["${table.id}"];
// // table.sign = notebook.status;
// // table.notebookId = notebook.id;
// // table.reserver = notebook.rnameStr;
// // table.pnum = notebook.actual_pnum;
// // table.nickName = notebook.nick_name;
// // table.noteName = notebook.note_name;
// // table.label = notebook.className;
// // //(不能移除自己定的桌子)
// // String idNow = '';
// // if (tableMap.containsKey('${table.id}')) {
// // //包含,证明该桌子已经被预订了
// // idNow = tableMap['${table.id}'].id;
// // if (idNow != widget.rid) {
// // //不是自己的当前订单
// // //剔除已经预订的桌子,剩下空桌子(仅看空座)
// // tempList.remove(table);
// // //全部
// // tempTableAll.remove(table);
// // }
// // }
// // } else {
// // table.sign = "";
// // table.notebookId = "";
// // if (table.enable == "1") {
// // count++;
// // }
// // }
// // } else {
// // table.sign = "2";
// // table.notebookId = "";
// // }
// // }
// // areaTableMap["${outer.name}"] = outer.list;
// // _chooseTableModel.areaTableMapCanNote["${outer.name}"] = tempList;
// // Area area = Area();
// // area.name = outer.name;
// // area.count = outer.list.length == 0 ? -1 : count;
// // area.rid = outer.list.length == 0 ? outer.rid : outer.list[0].rid;
// // area.orderId = outer.orderId;
// // areas.add(area);
// // }
// // _chooseTableModel.tablesCanNote = tempTableAll;
// // if (_chooseTableModel.swichState) {
// // _chooseTableModel.areaTableMapShow =
// // _chooseTableModel.areaTableMapCanNote;
// // _chooseTableModel.tablesShow = _chooseTableModel.tablesCanNote;
// // } else {
// // _chooseTableModel.areaTableMapShow = areaTableMap;
// // _chooseTableModel.tablesShow = _chooseTableModel.tablesAll;
// // }
// // print(currentArea);
// // if (widget.tid == '') {
// // if (!needRetain) {
// // // currentArea = areaTableMap.keys.first;
// // currentArea = '全部';
// // _chooseTableModel.currentTables = _chooseTableModel.tablesAll;
// // }
// // // if (areas.length == 1) {
// // // currentArea = areaTableMap.keys.first;
// // // }
// // }
// // _chooseTableModel.pageState = PageState.Success;
// // _chooseTableModel.notifyListeners();
// // }
// //获取一天开始-结束时间字符串
// // String _getRdate() {
// // String timeStrStart = '';
// // String timeStrEnd = '';
// // //一天开始时间
// // double startDay;
// // //一天结束时间
// // double endDay;
// // String hmsS = " ${widget.hmS}:00"; //起始
// // String hmsE = " ${widget.hmE}:59"; //结束
// // if (widget.hmS == 'null' || widget.hmE == 'null') {
// // //用餐段对应的时间段作为起始时间
// // 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);
// // if (keys != '') {
// // List temp = dailyMap[keys];
// // timeStrStart = ymd + ' ' + temp.first + ':00';
// // timeStrEnd = ymd + ' ' + temp.last + ':00';
// // } else {
// // hmsS = " 00:00:00";
// // hmsE = " 23:59:59";
// // timeStrStart = widget.dateTime.year.toString() +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.month) +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.day) +
// // hmsS;
// // timeStrEnd = widget.dateTime.year.toString() +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.month) +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.day) +
// // hmsE;
// // }
// // } else {
// // hmsS = " ${widget.hmS}:00"; //起始
// // hmsE = " ${widget.hmE}:59"; //结束
// // timeStrStart = widget.dateTime.year.toString() +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.month) +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.day) +
// // hmsS;
// // timeStrEnd = widget.dateTime.year.toString() +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.month) +
// // "-" +
// // Utils.addZeroNumber(widget.dateTime.day) +
// // hmsE;
// // }
// // // }
// // startDay = (DateTime.parse(timeStrStart).millisecondsSinceEpoch) / 1000;
// // endDay = (DateTime.parse(timeStrEnd).millisecondsSinceEpoch) / 1000;
// // return startDay.floor().toString() + "-" + endDay.floor().toString();
// // }
// Widget item(int i) {
// return GridView.builder(
// // controller: _areaController,
// // physics: NeverScrollableScrollPhysics(),
// padding: EdgeInsets.symmetric(
// vertical: ScreenUtil().setWidth(20),
// horizontal: ScreenUtil().setWidth(10)),
// shrinkWrap: true,
// itemCount:
// tableManagerModel.tablesOrReserveDataShow[i].tableList.length == 0
// ? 1
// : tableManagerModel.tablesOrReserveDataShow[i].tableList.length +
// 1,
// gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
// crossAxisCount: 4,
// childAspectRatio: 1,
// mainAxisSpacing: ScreenUtil().setWidth(30),
// crossAxisSpacing: ScreenUtil().setWidth(12),
// ),
// itemBuilder: (BuildContext context, int index) {
// if (index ==
// tableManagerModel.tablesOrReserveDataShow[i].tableList.length ||
// tableManagerModel.tablesOrReserveDataShow[i].tableList.length ==
// 0) {
// return InkWell(
// onTap: () async {
// List<String> areasTemp = [];
// for (int i = 0;
// i < tableManagerModel.tablesOrReserveDataShow.length;
// i++) {
// areasTemp
// .add(tableManagerModel.tablesOrReserveDataShow[i].name);
// }
// //添加桌位弹框
// await DialogUtil.openCreateTableDialog(
// context, areasTemp, i, personNumList,
// onTap: (Map<String, String> value) async {
// print(value);
// // 'areaname':
// // areas[currentAreaIndex],
// // 'name': controller.text,
// // 'pnumMin': pnumMin,
// // 'pnumMax': pnumMax
// //添加桌位 接口参数带整合???
// // 以下是旧的不去,明天添加桌位接口
// String rid;
// for (TableListReseveSunModel item
// in tableManagerModel.tablesOrReserveDataShow) {
// if (item.name == value['areaname']) {
// rid = item.id;
// }
// }
// Map<String, String> params = {
// 'rid': rid,
// 'name': value['name'],
// };
// if (value['pnumMin'] != '') {
// params['pnum'] = value['pnumMin'];
// }
// if (value['pnumMax'] != '') {
// params['most_pnum'] = value['pnumMax'];
// }
// bool success =
// await _chooseTableModel.addTable(context, params);
// print(success);
// if (success) {
// Utils.showToast('添加成功!');
// _getTableListOrReserve();
// }
// });
// },
// child: Container(
// child: DottedBorder(
// dashPattern: [5, 5, 5, 5],
// borderType: BorderType.RRect,
// radius: Radius.circular(ScreenUtil().setWidth(20)),
// // padding: EdgeInsets.all(ScreenUtil().setWidth(70)),
// color: MyColours.color_E0E0E0,
// strokeWidth: ScreenUtil().setWidth(2),
// child: ClipRRect(
// borderRadius: BorderRadius.all(
// Radius.circular(ScreenUtil().setWidth(20))),
// child: Container(
// height: ScreenUtil().screenWidth -
// ScreenUtil().setWidth(12 * 3 - 10 * 2),
// width: ScreenUtil().screenWidth -
// ScreenUtil().setWidth(12 * 3 - 10 * 2),
// child: Column(
// mainAxisAlignment: MainAxisAlignment.center,
// children: [
// Image.asset(Utils.getImgPath('add_store'),
// width: ScreenUtil().setWidth(32)),
// ],
// ),
// ),
// ),
// )));
// } else {
// TableListReserve data =
// tableManagerModel.tablesOrReserveDataShow[i].tableList[index];
// return Selector<TableManagerModelOrReserve, TableListReserve>(
// shouldRebuild: (pre, next) => true,
// selector: (context, model) => data,
// builder: (context, table, _) {
// return TableItemOrReserve(table,
// canSelected: true,
// selectTables: tableManagerModel.selectTablesOrReserve,
// onSelected: (tableListReserve) {
// if (widget.fromPage == 'tablePhoto') {
// for (TableListReseveSunModel item
// in tableManagerModel.tablesOrReserveDataShow) {
// for (TableListReserve element in item.tableList) {
// element.selected = false;
// selectNum = 0;
// if (table.id == item.id) {
// element.selected = true;
// tableManagerModel.selectTablesOrReserve = [];
// selectNum++;
// tableManagerModel.selectTablesOrReserve.add(table);
// }
// }
// }
// setState(() {});
// } else {
// if ((table as t.Table).selected) {
// tableManagerModel.selectTablesOrReserve.add(table);
// selectNum++;
// widget.tableList.add(tableToTableList(table));
// } else {
// widget.tableList.removeWhere((t) => t.id == table.id);
// selectNum--;
// tableManagerModel.selectTablesOrReserve
// .removeWhere((t) => t.id == table.id);
// }
// setState(() {});
// }
// }, fromPage: widget.fromPage, rid: widget.rid);
// },
// );
// }
// },
// );
// }
// @override
// Widget build(BuildContext context) {
// _chooseTableModel = Provider.of<ChooseTableModel>(context);
// tableManagerModel =
// Provider.of<TableManagerModelOrReserve>(context, listen: true);
// return Scaffold(
// body: SafeArea(
// child: Column(
// children: <Widget>[
// MyAppBar(
// "选择桌位",
// showBack: true,
// ),
// Expanded(
// child: Consumer<TableManagerModelOrReserve>(
// builder: (context, model, child) {
// if (model.pageStateOrReserve != PageState.Success) {
// Expanded(
// child: ExceptionPage(
// pageState: model.pageStateOrReserve,
// callback: () {
// tableManagerModel.getTableListOrReserve(context,
// showLoading: true);
// },
// emptyMsg: "暂时没有桌位哦",
// emptyImg: "empty_search",
// showMsg: "加载中,请稍后...",
// ));
// } else {
// return Column(
// // crossAxisAlignment: CrossAxisAlignment.center,
// children: [
// Container(
// color: MyColours.color_ffffff,
// height: ScreenUtil().setWidth(92),
// margin:
// EdgeInsets.only(bottom: ScreenUtil().setWidth(30)),
// child: Row(
// children: [
// HEmptyView(20),
// Expanded(
// child: ListView.builder(
// itemCount: tableManagerModel
// .tablesOrReserveDataShow
// .length ==
// 0
// ? 1
// : tableManagerModel
// .tablesOrReserveDataShow
// .length +
// 1,
// shrinkWrap: true,
// scrollDirection: Axis.horizontal,
// itemBuilder:
// (BuildContext contxt, int index) {
// if (index ==
// tableManagerModel
// .tablesOrReserveDataShow
// .length ||
// tableManagerModel
// .tablesOrReserveDataShow
// .length ==
// 0) {
// return InkWell(
// onTap: () async {
// //添加区域弹框
// await DialogUtil
// .openCreateAreaDialog(context,
// onTap: (value) async {
// print(value);
// //添加区域
// bool success =
// await _chooseTableModel
// .addTableAreas(
// context, value);
// print(success);
// if (success) {
// Utils.showToast('添加成功!');
// tableManagerModel
// .getTableListOrReserve(
// context,
// showLoading: true);
// // UserModel userModel =
// // Provider.of<UserModel>(context,
// // listen: false);
// // Map<String, String> params = {
// // "sellerid": userModel.user.sellerid
// // };
// // await _chooseTableModel.getTableList(
// // context, params,
// // needLoading: false);
// // initData();
// }
// });
// },
// child: Column(
// children: [
// VEmptyView(20),
// DottedBorder(
// dashPattern: [5, 5, 5, 5],
// borderType: BorderType.RRect,
// radius: Radius.circular(
// ScreenUtil().setWidth(10)),
// // padding: EdgeInsets.all(ScreenUtil().setWidth(70)),
// color: MyColours.color_199095,
// strokeWidth:
// ScreenUtil().setWidth(2),
// child: ClipRRect(
// borderRadius: BorderRadius
// .all(Radius.circular(
// ScreenUtil()
// .setWidth(10))),
// child: Container(
// height: ScreenUtil()
// .setWidth(25 * 2),
// width: ScreenUtil()
// .setWidth(104 * 2),
// child: Column(
// mainAxisAlignment:
// MainAxisAlignment
// .center,
// children: [
// Image.asset(
// Utils.getImgPath(
// 'add_area'),
// width: ScreenUtil()
// .setWidth(24)),
// ],
// ),
// ),
// ),
// )
// ],
// ),
// );
// } else {
// return AreaItemTableOrReserve(
// tableManagerModel
// .tablesOrReserveDataShow[index],
// (area) {
// tableManagerModel
// .tablesOrReserveDataShow
// .forEach((element) {
// element.select = false;
// });
// setState(() {
// // isSelected = false;
// area.select = true;
// tableManagerModel.selectNumber =
// index;
// });
// });
// }
// })),
// InkWell(
// onTap: () {
// setState(() {
// model.swichState = !model.swichState;
// });
// if (model.swichState) {
// //把没有预订和宴会的桌子筛选出来显示
// model.tablesOrReserveData.forEach((element) {
// if (element.tableList != null &&
// element.tableList.length > 0) {
// List<TableListReserve> tableList = [];
// element.tableList.forEach((element1) {
// if (element1.reserveList == null &&
// element1.banquetList == null) {
// //空桌子
// tableList.add(element1);
// }
// });
// model
// .tablesOrReserveDataShow[model
// .tablesOrReserveDataShow
// .indexWhere((elementShow) =>
// elementShow.id == element.id)]
// .tableList = tableList;
// }
// });
// } else {
// model.tablesOrReserveDataShow =
// model.tablesOrReserveData.toList();
// }
// setState(() {});
// },
// child: Container(
// margin: EdgeInsets.only(
// top: ScreenUtil().setWidth(20),
// ),
// child: Row(
// children: [
// MyDivider(ScreenUtil().setWidth(15),
// ScreenUtil().setWidth(80),
// color: MyColours.color_F1F0F4),
// MyDivider(ScreenUtil().setWidth(2),
// ScreenUtil().setWidth(80),
// color: MyColours.color_9C9C9C),
// HEmptyView(30),
// Image.asset(
// model.swichState
// ? Utils.getImgPath('f_swich_on')
// : Utils.getImgPath('f_swich_off'),
// width: ScreenUtil().setWidth(90),
// // height: ScreenUtil().setWidth(82),
// ),
// HEmptyView(20),
// Text(
// '仅看\n空座',
// style: TextStyle(
// fontSize: ScreenUtil().setSp(28),
// color: MyColours.color_333333,
// ),
// ),
// HEmptyView(40)
// ],
// )),
// )
// ],
// ),
// ),
// Expanded(
// flex: 2,
// child: Container(
// constraints: BoxConstraints(
// minHeight: ScreenUtil().setWidth(100)),
// color: Color.fromRGBO(249, 249, 249, 1),
// child: item(_selectNumber))),
// Container(
// width: double.infinity,
// height: ScreenUtil().setHeight(84),
// margin: EdgeInsets.only(
// bottom: ScreenUtil().setWidth(50)),
// padding: EdgeInsets.symmetric(
// horizontal: ScreenUtil().setWidth(31)),
// alignment: Alignment.center,
// color: MyColours.color_ffffff,
// child: CommonButton(
// // content: widget.fromPage == 'tablePhoto'
// // ? '确定'
// // : "已选${selectNum}个 确定",
// content: '确定',
// width: 300,
// height: 84,
// fontSize: 34,
// state: 1,
// onPress: () {
// if (widget.fromPage == "tablePhoto") {
// Map temp = {
// 'tid': tableManagerModel
// .selectTablesOrReserve.length >
// 0
// ? tableManagerModel
// .selectTablesOrReserve[0].id
// : '',
// 'tname': tableManagerModel
// .selectTablesOrReserve.length >
// 0
// ? tableManagerModel
// .selectTablesOrReserve[0].name
// : ''
// };
// Navigator.of(context).pop(temp);
// } else {
// if (widget.canChoose) {
// // if (widget.tableList.length > 0) {
// String tid = "";
// for (TableList table in widget.tableList) {
// tid += table.id + ",";
// }
// if (widget.tableList.length > 0) {
// tid = tid.substring(0, tid.length - 1);
// }
// Map temp = {
// 'object': widget.tableList,
// 'tid': tid
// };
// Navigator.of(context).pop(temp);
// // }
// } else {
// if (tableManagerModel
// .selectTablesOrReserve.length >
// 0) {
// String tid = "";
// for (TableListReserve table
// in tableManagerModel
// .selectTablesOrReserve) {
// tid += table.id + ",";
// }
// if (tableManagerModel
// .selectTablesOrReserve.length >
// 0) {
// tid = tid.substring(0, tid.length - 1);
// }
// Map temp = {
// 'object': widget.tableList,
// 'tid': tid
// };
// Navigator.of(context).pop(temp);
// }
// }
// }
// },
// )),
// ]);
// }
// }),
// ),
// ],
// ),
// ));
// }
// tableToTableList(TableListReserve table) {
// TableList _tableList = TableList(
// '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
// _tableList.id = table.id;
// _tableList.rid = table.rid;
// _tableList.tid = table.tid;
// _tableList.name = table.name;
// _tableList.tablePnum = table.tablePnum;
// _tableList.sellerid = null;
// _tableList.qrcode = null;
// _tableList.mostPnum = table.mostPnum;
// _tableList.hot = null;
// _tableList.orderO = table.orderO;
// _tableList.status = table.status;
// _tableList.enable = table.enable;
// _tableList.spell = table.spell;
// _tableList.cdate = null;
// _tableList.rname = table.reserver;
// _tableList.regionName = table.reserver;
// _tableList.selected = true;
// return _tableList;
// }
// }
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';
import 'package:one_key/constant/state.dart';
import 'package:one_key/models/area.dart';
import 'package:one_key/models/notebook.dart';
import 'package:one_key/models/tableOuter.dart';
import 'package:one_key/models/table_list.dart';
import 'package:one_key/pages/table/area_item_table.dart';
import 'package:one_key/pages/table/area_item_table_or_reserve.dart';
import 'package:one_key/provider/choose_table_model.dart';
import 'package:one_key/provider/notebook_detail_change_model.dart';
import 'package:one_key/provider/notebook_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/app_bar.dart';
import 'package:one_key/widgets/area_item.dart';
import 'package:one_key/widgets/common_button.dart';
import 'package:one_key/widgets/f_table_item.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/page_exception.dart';
import 'package:one_key/widgets/table_item.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
import 'dart:convert' as convert;
import '../../models/get_board_model.dart';
import '../../models/table_or_reserve_model.dart';
import '../../models/table_or_reserve_model.dart';
import '../../models/table_or_reserve_model.dart';
import '../../models/table_or_reserve_model.dart';
import '../../provider/table_manage_model_or_reserve.dart';
import '../table/table_item_or_reserve.dart';
class SelectTableFPageOrReserve extends StatefulWidget {
final String rid; //预订id
final DateTime dateTime; //日期
final String ddate_slot; //时段
final bool canChoose; //变更预订可以取消原来已预订的选中状态
final List<TableListReserve> tableList;
final String fromPage;
final String tid;
final String hmS;
final String hmE;
final String source;
final String ridFeast; //宴会id
SelectTableFPageOrReserve(this.rid, this.dateTime, this.ddate_slot,
{this.canChoose = false,
this.tableList,
this.fromPage,
this.tid,
this.hmS,
this.hmE,
this.source = '0',
this.ridFeast});
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return new SelectTableFPageOrReserveState();
}
}
class SelectTableFPageOrReserveState extends State<SelectTableFPageOrReserve> {
// List<Area> areas = []; //区域列表
// List<t.Table> selectTables = []; //选择的桌位
// List<TableOuter> tableOuterList = []; //区域-桌位列表
// Map<String, List<t.Table>> areaTableMap = {}; //区域-桌位Map
ChooseTableModel _chooseTableModel;
// Map<String, Notebook> tableMap = {}; //记录已预订桌位对应的订单
// String currentArea; //当前选中区域
List<String> personNumList = [];
int selectNum = 0;
// bool isSelected = true; //全部按钮
int _selectNumber = 0;
// Map dailyMap = {}; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟
List<Notebook> noteBooks;
TableManagerModelOrReserve tableManagerModel;
bool swichState = false; //仅看空座
@override
void initState() {
// TODO: implement initState
super.initState();
for (int i = 1; i < 31; i++) {
personNumList.add(i.toString());
}
// initDateHourMinuteList(context);
WidgetsBinding.instance.addPostFrameCallback((_) {
// getTableList();
_getTableListOrReserve();
});
}
///
_getTableListOrReserve() async {
await tableManagerModel.getTableListOrReserve(
context, int.parse(widget.ddate_slot), widget.dateTime, _selectNumber);
tableManagerModel.tablesOrReserveDataShow.forEach((element) {
element.tableList.forEach((element) {
element.selected = false;
for (var table in widget.tableList) {
if (element.id == table.id) {
element.selected = true;
selectNum++;
tableManagerModel.selectTablesOrReserve.add(element);
}
}
});
});
tableManagerModel.notifyListeners();
}
Widget item(int i) {
return GridView.builder(
// controller: _areaController,
// physics: NeverScrollableScrollPhysics(),
padding: EdgeInsets.symmetric(
vertical: ScreenUtil().setWidth(20),
horizontal: ScreenUtil().setWidth(10)),
shrinkWrap: true,
itemCount:
tableManagerModel.tablesOrReserveDataShow[i].tableList.length == 0
? 1
: tableManagerModel.tablesOrReserveDataShow[i].tableList.length +
1,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 4,
childAspectRatio: 1,
mainAxisSpacing: ScreenUtil().setWidth(30),
crossAxisSpacing: ScreenUtil().setWidth(12),
),
itemBuilder: (BuildContext context, int index) {
if (index ==
tableManagerModel.tablesOrReserveDataShow[i].tableList.length ||
tableManagerModel.tablesOrReserveDataShow[i].tableList.length ==
0) {
return InkWell(
onTap: () async {
List<String> areasTemp = [];
for (int i = 0;
i < tableManagerModel.tablesOrReserveDataShow.length;
i++) {
areasTemp
.add(tableManagerModel.tablesOrReserveDataShow[i].name);
}
//添加桌位弹框
await DialogUtil.openCreateTableDialog(
context, areasTemp, i, personNumList,
onTap: (Map<String, String> value) async {
print(value);
// 'areaname':
// areas[currentAreaIndex],
// 'name': controller.text,
// 'pnumMin': pnumMin,
// 'pnumMax': pnumMax
//添加桌位 接口参数带整合???
// 以下是旧的不去,明天添加桌位接口
String rid;
for (TableListReseveSunModel item
in tableManagerModel.tablesOrReserveDataShow) {
if (item.name == value['areaname']) {
rid = item.id;
}
}
Map<String, String> params = {
'rid': rid,
'name': value['name'],
};
if (value['pnumMin'] != '') {
params['pnum'] = value['pnumMin'];
}
if (value['pnumMax'] != '') {
params['most_pnum'] = value['pnumMax'];
}
bool success =
await _chooseTableModel.addTable(context, params);
print(success);
if (success) {
Utils.showToast('添加成功!');
_getTableListOrReserve();
}
});
},
child: Container(
child: DottedBorder(
dashPattern: [5, 5, 5, 5],
borderType: BorderType.RRect,
radius: Radius.circular(ScreenUtil().setWidth(20)),
// padding: EdgeInsets.all(ScreenUtil().setWidth(70)),
color: MyColours.color_E0E0E0,
strokeWidth: ScreenUtil().setWidth(2),
child: ClipRRect(
borderRadius: BorderRadius.all(
Radius.circular(ScreenUtil().setWidth(20))),
child: Container(
height: ScreenUtil().screenWidth -
ScreenUtil().setWidth(12 * 3 - 10 * 2),
width: ScreenUtil().screenWidth -
ScreenUtil().setWidth(12 * 3 - 10 * 2),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset(Utils.getImgPath('add_store'),
width: ScreenUtil().setWidth(32)),
],
),
),
),
)));
} else {
TableListReserve data =
tableManagerModel.tablesOrReserveDataShow[i].tableList[index];
return Selector<TableManagerModelOrReserve, TableListReserve>(
shouldRebuild: (pre, next) => true,
selector: (context, model) => data,
builder: (context, table, _) {
return TableItemOrReserve(table,
canSelected: true,
selectTables: tableManagerModel.selectTablesOrReserve,
onSelected: (tableListReserve) {
if (widget.fromPage == 'tablePhoto') {
for (TableListReseveSunModel item
in tableManagerModel.tablesOrReserveDataShow) {
for (TableListReserve element in item.tableList) {
element.selected = false;
selectNum = 0;
if (table.id == item.id) {
element.selected = true;
tableManagerModel.selectTablesOrReserve = [];
selectNum++;
tableManagerModel.selectTablesOrReserve.add(table);
}
}
}
setState(() {});
} else {
if ((table as TableListReserve).selected) {
tableManagerModel.selectTablesOrReserve.add(table);
selectNum++;
widget.tableList.add(table);
} else {
widget.tableList.removeWhere((t) => t.id == table.id);
selectNum--;
tableManagerModel.selectTablesOrReserve
.removeWhere((t) => t.id == table.id);
}
setState(() {});
}
}, fromPage: widget.fromPage, rid: widget.rid);
},
);
}
},
);
}
@override
Widget build(BuildContext context) {
_chooseTableModel = Provider.of<ChooseTableModel>(context);
tableManagerModel =
Provider.of<TableManagerModelOrReserve>(context, listen: true);
return Scaffold(
body: SafeArea(
child: Column(
children: <Widget>[
MyAppBar(
"选择桌位",
showBack: true,
),
Expanded(
child: Consumer<TableManagerModelOrReserve>(
builder: (context, model, child) {
if (model.pageStateOrReserve != PageState.Success) {
Expanded(
child: ExceptionPage(
pageState: model.pageStateOrReserve,
callback: () {
tableManagerModel.getTableListOrReserve(context,
int.parse(widget.ddate_slot), widget.dateTime, _selectNumber,
showLoading: true);
},
emptyMsg: "暂时没有桌位哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
));
} else {
return Column(
// crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
color: MyColours.color_ffffff,
height: ScreenUtil().setWidth(92),
margin:
EdgeInsets.only(bottom: ScreenUtil().setWidth(30)),
child: Row(
children: [
HEmptyView(20),
Expanded(
child: ListView.builder(
itemCount: tableManagerModel
.tablesOrReserveDataShow
.length ==
0
? 1
: tableManagerModel
.tablesOrReserveDataShow
.length +
1,
shrinkWrap: true,
scrollDirection: Axis.horizontal,
itemBuilder:
(BuildContext contxt, int index) {
if (index ==
tableManagerModel
.tablesOrReserveDataShow
.length ||
tableManagerModel
.tablesOrReserveDataShow
.length ==
0) {
return InkWell(
onTap: () async {
//添加区域弹框
await DialogUtil
.openCreateAreaDialog(context,
onTap: (value) async {
print(value);
//添加区域
bool success =
await _chooseTableModel
.addTableAreas(
context, value);
print(success);
if (success) {
Utils.showToast('添加成功!');
tableManagerModel
.getTableListOrReserve(
context,
int.parse(
widget.ddate_slot),
widget.dateTime,
_selectNumber,
showLoading: true);
// UserModel userModel =
// Provider.of<UserModel>(context,
// listen: false);
// Map<String, String> params = {
// "sellerid": userModel.user.sellerid
// };
// await _chooseTableModel.getTableList(
// context, params,
// needLoading: false);
// initData();
}
});
},
child: Column(
children: [
VEmptyView(20),
DottedBorder(
dashPattern: [5, 5, 5, 5],
borderType: BorderType.RRect,
radius: Radius.circular(
ScreenUtil().setWidth(10)),
// padding: EdgeInsets.all(ScreenUtil().setWidth(70)),
color: MyColours.color_199095,
strokeWidth:
ScreenUtil().setWidth(2),
child: ClipRRect(
borderRadius: BorderRadius
.all(Radius.circular(
ScreenUtil()
.setWidth(10))),
child: Container(
height: ScreenUtil()
.setWidth(25 * 2),
width: ScreenUtil()
.setWidth(104 * 2),
child: Column(
mainAxisAlignment:
MainAxisAlignment
.center,
children: [
Image.asset(
Utils.getImgPath(
'add_area'),
width: ScreenUtil()
.setWidth(24)),
],
),
),
),
)
],
),
);
} else {
return AreaItemTableOrReserve(
tableManagerModel
.tablesOrReserveDataShow[index],
(area) {
tableManagerModel
.tablesOrReserveDataShow
.forEach((element) {
element.select = false;
});
setState(() {
// isSelected = false;
area.select = true;
_selectNumber = index;
});
});
}
})),
InkWell(
onTap: () {
setState(() {
swichState = !swichState;
});
if (swichState) {
//把没有预订和宴会的桌子筛选出来显示
model.tablesOrReserveData.forEach((element) {
if (element.tableList != null &&
element.tableList.length > 0) {
List<TableListReserve> tableList = [];
element.tableList.forEach((element1) {
if (element1.reserveList ==
null &&
(element1.banquetList ==
null ||
element1.banquetList
.length ==
0)) {
//空桌子
tableList.add(element1);
}
});
model
.tablesOrReserveDataShow[model
.tablesOrReserveDataShow
.indexWhere((elementShow) =>
elementShow.id == element.id)]
.tableList = tableList;
}
});
} else {
// model.tablesOrReserveDataShow =
// model.tablesOrReserveData.toList();
tableManagerModel.getTableListOrReserve(
context,
int.parse(widget.ddate_slot),
widget.dateTime,
_selectNumber,
showLoading: true);
}
setState(() {});
},
child: Container(
margin: EdgeInsets.only(
top: ScreenUtil().setWidth(20),
),
child: Row(
children: [
MyDivider(ScreenUtil().setWidth(15),
ScreenUtil().setWidth(80),
color: MyColours.color_F1F0F4),
MyDivider(ScreenUtil().setWidth(2),
ScreenUtil().setWidth(80),
color: MyColours.color_9C9C9C),
HEmptyView(30),
Image.asset(
swichState
? Utils.getImgPath('f_swich_on')
: Utils.getImgPath('f_swich_off'),
width: ScreenUtil().setWidth(90),
// height: ScreenUtil().setWidth(82),
),
HEmptyView(20),
Text(
'仅看\n空座',
style: TextStyle(
fontSize: ScreenUtil().setSp(28),
color: MyColours.color_333333,
),
),
HEmptyView(40)
],
)),
)
],
),
),
Expanded(
flex: 2,
child: Container(
constraints: BoxConstraints(
minHeight: ScreenUtil().setWidth(100)),
color: Color.fromRGBO(249, 249, 249, 1),
child: item(_selectNumber))),
Container(
width: double.infinity,
height: ScreenUtil().setHeight(84),
margin: EdgeInsets.only(
bottom: ScreenUtil().setWidth(50)),
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(31)),
alignment: Alignment.center,
color: MyColours.color_ffffff,
child: CommonButton(
// content: widget.fromPage == 'tablePhoto'
// ? '确定'
// : "已选${selectNum}个 确定",
content: '确定',
width: 300,
height: 84,
fontSize: 34,
state: 1,
onPress: () {
if (widget.fromPage == "tablePhoto") {
Map temp = {
'tid': tableManagerModel
.selectTablesOrReserve.length >
0
? tableManagerModel
.selectTablesOrReserve[0].id
: '',
'tname': tableManagerModel
.selectTablesOrReserve.length >
0
? tableManagerModel
.selectTablesOrReserve[0].name
: ''
};
Navigator.of(context).pop(temp);
} else {
if (widget.canChoose) {
// if (widget.tableList.length > 0) {
String tid = "";
for (TableListReserve table
in widget.tableList) {
tid += table.id + ",";
}
if (widget.tableList.length > 0) {
tid = tid.substring(0, tid.length - 1);
}
Map temp = {
'object': widget.tableList,
'tid': tid
};
Navigator.of(context).pop(temp);
// }
} else {
if (tableManagerModel
.selectTablesOrReserve.length >
0) {
String tid = "";
for (TableListReserve table
in tableManagerModel
.selectTablesOrReserve) {
tid += table.id + ",";
}
if (tableManagerModel
.selectTablesOrReserve.length >
0) {
tid = tid.substring(0, tid.length - 1);
}
Map temp = {
'object': widget.tableList,
'tid': tid
};
Navigator.of(context).pop(temp);
}
}
}
},
)),
]);
}
}),
),
],
),
));
}
// tableToTableList(TableListReserve table) {
// TableList _tableList = TableList(
// '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
// _tableList.id = table.id;
// _tableList.rid = table.rid;
// _tableList.tid = table.tid;
// _tableList.name = table.name;
// _tableList.tablePnum = table.tablePnum;
// _tableList.sellerid = null;
// _tableList.qrcode = null;
// _tableList.mostPnum = table.mostPnum;
// _tableList.hot = null;
// _tableList.orderO = table.orderO;
// _tableList.status = table.status;
// _tableList.enable = table.enable;
// _tableList.spell = table.spell;
// _tableList.cdate = null;
// _tableList.rname = table.reserver;
// _tableList.regionName = table.reserver;
// _tableList.selected = true;
// return _tableList;
// }
}
... ...
... ... @@ -373,7 +373,7 @@ class _InvicationAdditionPageState extends State<InvicationAdditionPage> {
),
// textAlignVertical: TextAlignVertical.center,
maxLines: 5,
maxLength: 50,
maxLength: 200,
// inputFormatters: [
// LengthLimitingTextInputFormatter(10), // 设置输入长度限制
// ],
... ... @@ -563,10 +563,10 @@ class _InvicationAdditionPageState extends State<InvicationAdditionPage> {
maxLines: 1,
inputFormatters: [
LengthLimitingTextInputFormatter(
10), // 设置输入长度限制
15), // 设置输入长度限制
],
decoration: InputDecoration(
hintText: "点击输入区域标题(不超过10个字)",
hintText: "点击输入区域标题(不超过15个字)",
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(32),
... ...
... ... @@ -3251,7 +3251,7 @@ class InvicationPageState extends State<InvicationPage>
Provider.of<UserModel>(context, listen: false);
if (Utils.getAuthority(context, '变更预订') ||
detailEntity.uid == userModel.user.openid) {
NavigatorUtil.goNoteBookChangeFPage(
NavigatorUtil.goNoteBookChangeFPageOnly(
context, detailEntity, widget.rid,
back: true);
}
... ...
... ... @@ -155,7 +155,7 @@ class TableItemOrReserveState extends State<TableItemOrReserve> {
return;
}
//从变更页面进来 canChoose = true
if (widget.canSelected && table.signStr.isEmpty) {
if (widget.canSelected && table.signStr== null) {
setState(() {
table.selected = !(table.selected ?? false);
});
... ... @@ -185,7 +185,7 @@ class TableItemOrReserveState extends State<TableItemOrReserve> {
}
} else if (widget.fromPage == 'new' &&
widget.canSelected &&
table.signStr.isEmpty) {
table.signStr == null) {
if (islock && table.signStr != '已预订') {
return;
}
... ...
... ... @@ -3905,8 +3905,11 @@ class TableManagerPageState extends State<TableManagerPage> {
.forEach((element1) {
if (element1.reserveList ==
null &&
element1.banquetList ==
null) {
(element1.banquetList ==
null ||
element1.banquetList
.length ==
0)) {
//空桌子
tableList.add(element1);
}
... ... @@ -3921,12 +3924,23 @@ class TableManagerPageState extends State<TableManagerPage> {
.tableList = tableList;
}
});
setState(() {});
} else {
model.tablesOrReserveDataShow =
model.tablesOrReserveData.toList();
tableManagerModel.getTableListOrReserve(
context,
currTimeIndex,
dateTime,
selectNumber);
// model.tablesOrReserveDataShow = [];
// model.tablesOrReserveData
// .forEach((element) {
// model.tablesOrReserveDataShow.add( TableListReseveSunModel.fromJson(
// element.toJson()));
// });
// model.tablesOrReserveDataShow =
// model.tablesOrReserveData.toList();
}
setState(() {});
// print(model.tablesOrReserveDataShow);
},
child: Container(
margin: EdgeInsets.only(
... ...
... ... @@ -345,13 +345,13 @@ class MarketingCenterProvider extends ChangeNotifier {
// 获取商家订座配置
Future<bool> getDzSellerConf(BuildContext context,
{bool showLoading = true}) async {
{bool showLoading = true,bool selfDismiss = false}) async {
Map<String, String> params = {
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid
};
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.post, HttpUrl.get_dz_seller_conf,
data: params, showLoading: showLoading)
data: params, showLoading: showLoading,selfDismiss: selfDismiss)
.catchError((error) {
print(error.toString());
Utils.showToast('请求失败,请重试');
... ...
import 'dart:convert';
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:one_key/app.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/models/notebook_detail.dart';
import 'package:one_key/models/reserve_info_model.dart';
import 'package:one_key/models/seller_info.dart';
import 'package:one_key/models/table_list.dart';
import 'package:one_key/models/user_history_entity.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/provider/customer_provider.dart';
import 'package:one_key/provider/notebook_detail_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';
import 'package:one_key/models/table.dart' as t;
import '../constant/error.dart';
import '../models/is_exist_order_model.dart';
import '../models/tableOuter.dart';
import '../models/table_or_reserve_model.dart';
class NotebookDetailChangeModelOnly with ChangeNotifier {
TextEditingController phoneController = TextEditingController(); //电话
TextEditingController nameController = TextEditingController(); //客户姓名
TextEditingController customController = TextEditingController(); //客户要求
List sexList = []; // 先生、女士、公司
NotebookDetail detailEntity;
List<TableListReserve> tableListOrReserve = [];
List<TableList> recommendList = []; //推荐列表
// bool isRecommend = false; //是否展示推荐
List oldTableList = [];
List<UserHistoryEntity> userHistorys = []; //历史录入
clearData() {
phoneController = TextEditingController(); //电话
nameController = TextEditingController(); //客户姓名
customController = TextEditingController(); //客户要求
sexList = []; // 先生、女士、公司
tableListOrReserve = [];
}
//构造函数,初始化
NotebookDetailChangeModelOnly(this.detailEntity) {
// clearData();
print(detailEntity);
if (detailEntity.phone != '0') {
phoneController.text = detailEntity.phone;
}
if (detailEntity.rnameStr != '') {
nameController.text = detailEntity.rname;
}
if (detailEntity.cusdem != '') {
customController.text = detailEntity.cusdem;
}
_initSexList();
}
// /// 初始化 早市、午市、晚市
// _initSunDateList(morning, noon, night) {
// String ddateSolt = detailEntity.ddate_solt;
// if (morning != '') {
// sunDateList.add({
// 'dateText': '早市',
// 'dayText': '',
// 'ddateSolt': 1,
// 'key': 'morning',
// 'isSelect': ddateSolt == '1' ? true : false
// });
// }
// if (noon != '') {
// sunDateList.add({
// 'dateText': '午市',
// 'dayText': '',
// 'ddateSolt': 2,
// 'key': 'noon',
// 'isSelect': ddateSolt == '2' ? true : false
// });
// }
// if (night != '') {
// sunDateList.add({
// 'dateText': '晚市',
// 'dayText': '',
// 'ddateSolt': 3,
// 'key': 'night',
// 'isSelect': ddateSolt == '3' ? true : false
// });
// }
// // initHourAndMinuteSelect();
// notifyListeners();
// }
///称谓
_initSexList() {
String sexStr = detailEntity.sex;
sexList = [
{
'title': '先生',
'select': sexStr == '1' ? true : false,
'code': '1',
'hasLeftBorder': true
},
{
'title': '女士',
'select': sexStr == '2' ? true : false,
'code': '2',
'hasLeftBorder': false
},
{
'title': '公司',
'select': sexStr == '3' ? true : false,
'code': '3',
'hasLeftBorder': false
}
];
}
List<t.Table> getSpTableList() {
List<t.Table> tables = [];
String tableList = App.sp.getString('table_list');
if (tableList != null) {
List list = json.decode(tableList);
if (list.length > 0) {
list.forEach((element) {
tables.addAll(TableOuter.fromJson2(element).list);
});
}
}
return tables;
}
/// 根据时间和分钟组装 格式: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;
}
///获取某个商家下所有服务员信息 **** 取得某个商家的早市、午市、晚市营业时间
Future<SunSellerInfoModel> getManagersInfo(BuildContext context) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
Map<String, String> params = {
"seller_id": userModel.user.sellerid,
"seller_openid": userModel.user.openid
};
BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
.request<Map<String, dynamic>>(context, Method.post, HttpUrl.sellerinfo,
data: params)
.catchError((error) {
print(error.toString());
});
SunSellerInfoModel itemModel;
if (baseResp == null) return itemModel;
if (baseResp.code == Constant.status_success) {
if (int.parse(baseResp.status) != Constant.status_success) {
Utils.showToast(baseResp.msg ?? "");
return itemModel;
}
if (baseResp.responseData['data'] != null) {
itemModel = SellerInfoModel.fromJson(baseResp.responseData).data;
} else {
Utils.showToast(baseResp.msg ?? "");
}
return itemModel;
}
}
// Future<bool> getTableItExistOrder(
// BuildContext context, String rdate, String tableids, String ddateSolt,String rid,List oldTableList,
// {showLoading = false, bool selfDismiss = false}) async {
// Map<String, String> params = {
// 'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
// 'tableid': tableids,
// 'rdate': rdate,
// 'ddate_solt': ddateSolt,
// 'rid':rid
// };
// BaseResp<dynamic> baseResp = await DioUtil()
// .request<dynamic>(context, Method.get, HttpUrl.get_table_it_exist_order,
// data: params, showLoading: showLoading, selfDismiss: selfDismiss)
// .catchError((error) {
// print(error.toString());
// if (error is MyError) {}
// return true;
// });
// if (baseResp == null) return false;
// if (baseResp.code == Constant.status_success) {
// List<IsExistOrderSunModel> data =
// IsExistOrderModel.fromJson(baseResp.responseData).data;
// if (data.length > 0) {
// String msg = '';
// String msgDel = '';
// data.forEach((element) {
// //提示并且把桌子从选中的桌子助农筛选出去
// selectTablesOrReserve
// .removeWhere((element1) => element1.id == element.id);
// if (element.isOccupy == '1') {
// //被占用了
// msg += '${element.name},';
// } else if (element.isOccupy == '0') {
// //被删除了
// msgDel += '${element.name},';
// }
// });
// if (msg.endsWith(',')) {
// msg = msg.substring(0, msg.length - 1);
// }
// if (msgDel.endsWith(',')) {
// msgDel = msgDel.substring(0, msgDel.length - 1);
// }
// if (msg != '' && msgDel == '') {
// Utils.showToast('${msg}已被占用啦');
// } else if (msg == '' && msgDel != '') {
// Utils.showToast('${msgDel}已被删除啦');
// } else if (msg != '' && msgDel != '') {
// Utils.showToast('${msg}已被占用啦\n' + '${msgDel}已被删除啦');
// }
// notifyListeners();
// return false;
// } else {
// return true;
// }
// } else {
// Utils.showToast(baseResp.msg ?? "");
// }
// return true;
// }
///根据商家ID 获取桌位信息列表: 1:散座 2:包间 默认:获取所有数据
Future<List<TableListReserve>> getNewTableList(BuildContext context,
String ddate, String ddate_solt, String pnum, List oldTableList) async {
DateTime createTime = DateTime.fromMillisecondsSinceEpoch(int.parse(ddate));
String rdate = DateUtil.formatDate(createTime, format: "yyyyMMdd");
UserModel userModel = Provider.of<UserModel>(context, listen: false);
Map<String, String> params = {
"sid": userModel.user.sellerid,
"rdate": rdate,
'ddate_solt': ddate_solt,
};
if (pnum != null && pnum != '') {
params['pnum'] = pnum;
}
if (detailEntity.id.isNotEmpty && detailEntity.id != "-1") {
params['rid'] = detailEntity.id;
}
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.post, HttpUrl.get_table_list,
data: params)
.catchError((error) {
print(error.toString());
});
List<TableListSunModel> itemModelList;
if (baseResp == null) return tableListOrReserve;
if (baseResp.code == Constant.status_success) {
if (int.parse(baseResp.status) != Constant.status_success) {
Utils.showToast(baseResp.msg ?? "");
return tableListOrReserve;
}
if (baseResp.responseData['data'] != null) {
itemModelList = TableListModel.fromJson(baseResp.responseData).data;
} else {
Utils.showToast(baseResp.msg ?? "");
}
tableListOrReserve = [];
for (int i = 0; i < itemModelList.length; i++) {
if (itemModelList[i].name == "推荐") {
recommendList = itemModelList[i].list;
itemModelList.removeAt(i);
}
}
List<String> tableIds = []; //所有桌位的id
List<String> tableIdsOld = []; //带过来所有桌位的id
List<t.Table> tableS = getSpTableList(); //缓存的所有桌子
for (t.Table elementT in tableS) {
tableIds.add(elementT.id);
}
for (var table in oldTableList) {
tableIdsOld.add(table.id);
}
for (TableListSunModel item in itemModelList) {
if (item.name == "推荐") {
itemModelList.remove(item);
}
for (var item in item.list) {
for (var table in oldTableList) {
if (item.id == table.id) {
item.selected = true;
if (!tableListOrReserve.contains(item)) {
tableListOrReserve
.add(TableListReserve.fromJson(item.toJson()));
}
}
}
}
}
List<String> combinedList = [];
for (var old in tableIdsOld) {
if (!tableIds.contains(old)) {
//删除了
combinedList.add(old);
}
}
// tables
// List usedTableList = []; //被占用的包间
// for (var itemOld in oldTableList) {
// if (tableList.length == 0) {
// usedTableList = oldTableList;
// } else {
// for (var item in tableList) {
// if (item.id != itemOld.id) {
// usedTableList.add(item);
// }
// }
// }
// }
List idold = [];
for (var itemOld in oldTableList) {
idold.add(itemOld.id);
}
List idnew = [];
for (var item in tableListOrReserve) {
idnew.add(item.id);
}
for (var item in idnew) {
idold.remove(item);
}
print(idold); //被占用的桌子的id
if (idold.length > 0) {
print(combinedList);
List delTablesid = []; //删除
List useTablesid = []; //占用
if (combinedList.length > 0) {
//存在删除的桌位
for (String ids in idold) {
if (combinedList.contains(ids)) {
delTablesid.add(ids);
} else {
useTablesid.add(ids);
}
}
} else {
useTablesid.addAll(idold); //占用
}
String msg = '';
String msgDel = '';
for (var item in oldTableList) {
if (useTablesid.contains(item.id)) {
msg += '${item.name},';
}
if (delTablesid.contains(item.id)) {
msgDel += '${item.name},';
}
}
if (msg.endsWith(',')) {
msg = msg.substring(0, msg.length - 1);
}
if (msgDel.endsWith(',')) {
msgDel = msgDel.substring(0, msgDel.length - 1);
}
if (msg != '' && msgDel == '') {
Utils.showToast('${msg}已被占用啦');
} else if (msg == '' && msgDel != '') {
Utils.showToast('${msgDel}已被删除啦');
} else if (msg != '' && msgDel != '') {
Utils.showToast('${msg}已被占用啦\n' + '${msgDel}已被删除啦');
}
}
// if (usedTableList.length > 0) {
// print(usedTableList);
// String msg = '';
// for (var item in usedTableList) {
// msg += '${item.name},';
// }
// if (msg.endsWith(',')) {
// msg = msg.substring(0, msg.length - 1);
// }
// Utils.showToast('${msg}已被占用啦');
// }
// if(usedTableList.length > 0){
// for (TableList item in usedTableList) {
// item
// }
// }
// if (tableList.length == 0) {
// // Utils.showToast('包间已经被预订');
// isRecommend = true;
// } else {
// isRecommend = false;
// }
print(tableListOrReserve);
notifyListeners();
return tableListOrReserve;
}
}
///录入更改内部预订
Future<SunReserveInfoModel> setReserveInfoOnly(
BuildContext context,
String nameStr,
String uid,
int currTimeIndex,
DateTime dateTime,
String morning,
String noon,
String night) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
if (phoneController.text.trim().length > 0) {
//判断是否可以输入自己的手机号
CustomerProvider customerProvider =
Provider.of<CustomerProvider>(context, listen: false);
await customerProvider.getSellerGuest(context);
if (customerProvider.isselfphone) {
//录入客户电话时不能用自己手机号(管店)
if (userModel.user.userphone == phoneController.text.trim() ||
userModel.user.userphoneMyPage == phoneController.text.trim()) {
Utils.showToast('录入客户电话时不能用自己手机号!');
return null;
}
}
}
String ddateHm = detailEntity.ddateHm; //订座详情页面的到店时间
String ddateSolt = detailEntity.ddate_solt; //订座详情页面的餐段(1,2,3 早餐、午餐、晚餐)
String tempTime = ddateHm; //默认上个页面到店时间半小时值
if (ddateSolt != currTimeIndex.toString()) {
if (currTimeIndex == 1) {
tempTime = '08:00';
if (userModel.user.morning != '' && userModel.user.morning != null) {
List tempDate = userModel.user.morning.split("-");
tempTime = tempDate[0];
}
} else if (currTimeIndex == 2) {
tempTime = '12:00';
if (userModel.user.noon != '' && userModel.user.noon != null) {
List tempDate = userModel.user.noon.split("-");
tempTime = tempDate[0];
}
} else if (currTimeIndex == 3) {
tempTime = '18:00';
if (userModel.user.night != '' && userModel.user.night != null) {
List tempDate = userModel.user.night.split("-");
tempTime = tempDate[0];
}
}
}
String ymd = DateUtil.formatDate(dateTime, format: DateFormats.y_mo_d);
String timeStr = ymd + ' ' + tempTime + ':00';
LogUtil.v(timeStr);
int ddate = DateUtil.getDateMsByTimeStr(timeStr);
String tableSelectInfo = '';
for (TableListReserve item in tableListOrReserve) {
// if (item.selected) {
tableSelectInfo += ',${item.id}';
// }
}
print(tableSelectInfo);
if (tableSelectInfo.startsWith(',')) {
tableSelectInfo = tableSelectInfo.substring(1);
}
print(tableSelectInfo);
String rdate = '';
String timeStrStart;
String timeStrEnd;
if (currTimeIndex == 1) {
//早市
List timem = morning.split('-');
timeStrStart = ymd + ' ' + timem[0] + ':00';
timeStrEnd = ymd + ' ' + timem[1] + ':00';
} else if (currTimeIndex == 2) {
//午市
List timem = noon.split('-');
timeStrStart = ymd + ' ' + timem[0] + ':00';
timeStrEnd = ymd + ' ' + timem[1] + ':00';
} else if (currTimeIndex == 3) {
//晚市
List timem = night.split('-');
timeStrStart = ymd + ' ' + timem[0] + ':00';
timeStrEnd = ymd + ' ' + timem[1] + ':00';
}
int startM = DateUtil.getDateMsByTimeStr(timeStrStart);
int endM = DateUtil.getDateMsByTimeStr(timeStrEnd);
String start = '${startM}'.substring(0, 10);
String end = '${endM}'.substring(0, 10);
rdate = start + '-' + end;
Map<String, String> params = {
"sid": userModel.user.sellerid, //商家ID
"tid": tableSelectInfo, //桌子ID: 格式 2,3,4
'note_name': userModel.user.account,
'type': "0", //内部预订
"rdate": rdate, //预定用餐时间范围:时间戳 开始时间戳(time)-结束时间戳(time)
// 'is_set_ddate': "1",
"ddate": '${ddate}'.substring(0, 10), //到店时间
"channel": '5',
"uid": uid
};
if (detailEntity.id.isNotEmpty && detailEntity.id != "-1") {
params['rid'] = detailEntity.id;
}
if (nameStr.trim().length > 0) {
String sex = '1';
for (var item in sexList) {
if (item['select']) {
sex = item['code'];
}
}
params['rname'] = nameStr; //预订人姓名
params['sex'] = sex; //预订人性别:1:男 2:女
}
if (phoneController.text.trim().length > 0) {
params['phone'] = phoneController.text.replaceAll(' ', ''); //预订人电话
}
// if (customController.text.trim().length > 0) {
// params['cusdem'] = customController.text; //预订人需求:25汉字
// }
params['cusdem'] = customController.text; //预订人需求:25汉字
print(params);
BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
.request<Map<String, dynamic>>(
context, Method.post, HttpUrl.set_reserve_info,
data: params)
.catchError((error) {
print(error.toString());
});
SunReserveInfoModel itemModel = SunReserveInfoModel(null, null, null);
if (baseResp == null) return itemModel;
if (baseResp.code == Constant.status_success) {
if (int.parse(baseResp.status) != Constant.status_success) {
Utils.showToast(baseResp.msg ?? "");
return itemModel;
}
if (baseResp.responseData['data'] != null &&
baseResp.responseData['data']['row'] != null) {
itemModel = ReserveInfoModel.fromJson(baseResp.responseData).data;
} else {
Utils.showToast(baseResp.msg ?? detailEntity.id == "-1"
? "录入预订订单失败,请重试!"
: "变更预订订单失败,请重试!");
}
return itemModel;
}
}
//更改在线预订
Future<SunReserveInfoModel> updateOnlineReserveInfoOnly(
BuildContext context,
String nameStr,
String uid,
int currTimeIndex,
DateTime dateTime,
String morning,
String noon,
String night) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
if (phoneController.text.trim().length > 0) {
//判断是否可以输入自己的手机号
CustomerProvider customerProvider =
Provider.of<CustomerProvider>(context, listen: false);
await customerProvider.getSellerGuest(context);
if (customerProvider.isselfphone) {
//录入客户电话时不能用自己手机号(管店)
if (userModel.user.userphone == phoneController.text.trim() ||
userModel.user.userphoneMyPage == phoneController.text.trim()) {
Utils.showToast('录入客户电话时不能用自己手机号!');
return null;
}
}
}
String ddateHm = detailEntity.ddateHm; //订座详情页面的到店时间
String ddateSolt = detailEntity.ddate_solt; //订座详情页面的餐段(1,2,3 早餐、午餐、晚餐)
String tempTime = ddateHm; //默认上个页面到店时间半小时值
if (ddateSolt != currTimeIndex.toString() || tempTime == '') {
if (currTimeIndex == 1) {
tempTime = '08:00';
ddateSolt = '1';
if (userModel.user.morning != '' && userModel.user.morning != null) {
List tempDate = userModel.user.morning.split("-");
tempTime = tempDate[0];
}
} else if (currTimeIndex == 2) {
tempTime = '12:00';
ddateSolt = '2';
if (userModel.user.noon != '' && userModel.user.noon != null) {
List tempDate = userModel.user.noon.split("-");
tempTime = tempDate[0];
}
} else if (currTimeIndex == 3) {
tempTime = '18:00';
ddateSolt = '3';
if (userModel.user.night != '' && userModel.user.night != null) {
List tempDate = userModel.user.night.split("-");
tempTime = tempDate[0];
}
}
}
String ymd = DateUtil.formatDate(dateTime, format: DateFormats.y_mo_d);
String timeStr = ymd + ' ' + tempTime + ':00';
// int start = DateUtil.getDateMsByTimeStr(timeStr);
LogUtil.v(timeStr);
// String tempDdate = ymyStr + ' ' + ddateStr + ':00';
int ddate = DateUtil.getDateMsByTimeStr(timeStr);
String tableSelectInfo = '';
for (TableListReserve item in tableListOrReserve) {
// if (item.selected) {
tableSelectInfo += ',${item.id}';
// }
}
print(tableSelectInfo);
if (tableSelectInfo.startsWith(',')) {
tableSelectInfo = tableSelectInfo.substring(1);
}
print(tableSelectInfo);
String rdate = '';
String timeStrStart;
String timeStrEnd;
if (currTimeIndex == 1) {
//早市
List timem = morning.split('-');
timeStrStart = ymd + ' ' + timem[0] + ':00';
timeStrEnd = ymd + ' ' + timem[1] + ':00';
} else if (currTimeIndex == 2) {
//午市
List timem = noon.split('-');
timeStrStart = ymd + ' ' + timem[0] + ':00';
timeStrEnd = ymd + ' ' + timem[1] + ':00';
} else if (currTimeIndex == 3) {
//晚市
List timem = night.split('-');
timeStrStart = ymd + ' ' + timem[0] + ':00';
timeStrEnd = ymd + ' ' + timem[1] + ':00';
}
int startM = DateUtil.getDateMsByTimeStr(timeStrStart);
int endM = DateUtil.getDateMsByTimeStr(timeStrEnd);
String start = '${startM}'.substring(0, 10);
String end = '${endM}'.substring(0, 10);
rdate = start + '-' + end;
Map<String, String> params = {
"sid": userModel.user.sellerid, //商家ID
"tid": tableSelectInfo, //桌子ID: 格式 2,3,4
"type": "0",
"rdate": rdate, //预定用餐时间范围:时间戳 开始时间戳(time)-结束时间戳(time)
"ddate": '${ddate}'.substring(0, 10), //到店时间
"ddate_solt": ddateSolt,
'note_name': userModel.user.account
};
if (detailEntity.id.isNotEmpty && detailEntity.id != "-1") {
params['rid'] = detailEntity.id;
}
if (nameStr.trim().length > 0) {
String sex = '1';
for (var item in sexList) {
if (item['select']) {
sex = item['code'];
}
}
params['rname'] = nameStr; //预订人姓名
params['sex'] = sex; //预订人性别:1:男 2:女
}
if (phoneController.text.trim().length > 0) {
params['phone'] = phoneController.text.replaceAll(' ', ''); //预订人电话
}
// if (customController.text.trim().length > 0) {
params['cusdem'] = customController.text; //预订人需求:25汉字
// }
print(params);
BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
.request<Map<String, dynamic>>(
context, Method.post, HttpUrl.set_customer_info,
data: params)
.catchError((error) {
print(error.toString());
});
SunReserveInfoModel itemModel;
if (baseResp == null) return itemModel;
if (baseResp.code == Constant.status_success) {
if (int.parse(baseResp.status) != Constant.status_success) {
Utils.showToast(baseResp.msg ?? "");
return itemModel;
}
if (baseResp.responseData['data'] != null &&
baseResp.responseData['data']['row'] != null) {
itemModel = ReserveInfoModel.fromJson(baseResp.responseData).data;
} else {
Utils.showToast(baseResp.msg ?? "变更预订订单失败,请重试!");
}
return itemModel;
}
}
//获取历史录入
getUserHistorys(BuildContext context, Map<String, String> params) async {
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.post, HttpUrl.get_reserve_user,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
});
if (baseResp != null && baseResp.code == Constant.status_success) {
userHistorys = baseResp.data.map<UserHistoryEntity>((value) {
return UserHistoryEntity.fromJson(value);
}).toList();
notifyListeners();
}
}
}
... ...