Commit 553fcc76411043cac515cf9b9a5c07d9bed0936e

Authored by wdn127929
1 parent f90aa0ef

bu gbug

... ... @@ -469,8 +469,12 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
if (model.pageState != PageState.Success) {
return ExceptionPage(
pageState: model.pageState,
callback: () {
callback: () async {
// _getOrderListData();
_initCancel();
_getReserveDetail();
_getOrderInfo();
managers = await detailModel.getManagers(context);
},
emptyMsg: "暂时没有预订列表信息哦",
emptyImg: "empty_search",
... ...
... ... @@ -37,7 +37,7 @@ import 'package:one_key/models/message.dart';
class HomePage extends StatefulWidget {
final int initialIndex; //初始tab
HomePage({this.initialIndex = 1});
HomePage({this.initialIndex = 2});
@override
State<StatefulWidget> createState() {
... ... @@ -95,16 +95,16 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
));
WidgetsBinding.instance.addPostFrameCallback((_) {
initPlatformState();
if (widget.initialIndex == 1) return;
if (widget.initialIndex == 0) return;
_getIntent();
Future.delayed(Duration(milliseconds: 30000), () {
ContactModel.getInstance().uploadLocalContact(context);
UpdateModel updateModel = new UpdateModel();
updateModel.checkUpdate(context, showToast: false);
});
timer = Timer.periodic(Duration(minutes: 3), (_) {
_getAllUnMessages();
});
// timer = Timer.periodic(Duration(minutes: 3), (_) {
// _getAllUnMessages();
// });
});
}
... ...
... ... @@ -7,12 +7,14 @@ import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/models/notebook.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/home_enter_model.dart';
import 'package:one_key/provider/notebook_detail_change_model.dart';
import 'package:one_key/provider/notebook_detail_model.dart';
import 'package:one_key/provider/notebook_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';
... ... @@ -76,19 +78,19 @@ class _HomeEnterPageState extends State<HomeEnterPage> {
super.initState();
dateTimeNow = DateTime.now();
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
_initTime();
setState(() {});
sid = Provider.of<UserModel>(context, listen: false).user.sellerid;
_homeEnterModel.initDateHourMinuteList(context, currTimeIndex, dateText);
String ddate = DateTime.now().millisecondsSinceEpoch.toString();
_homeEnterModel.getNewTableList(
await _homeEnterModel.getNewTableList(
context, ddate, currTimeIndex.toString(), pnum);
Map<String, String> params = {
"uid": Provider.of<UserModel>(context, listen: false).user.openid
};
remarkManagerModel.getRemarks(context, params);
await remarkManagerModel.getRemarks(context, params);
});
}
... ... @@ -347,308 +349,244 @@ class _HomeEnterPageState extends State<HomeEnterPage> {
),
],
),
VEmptyView(30),
MyDivider(double.infinity, ScreenUtil().setWidth(2),
color: MyColours.color_efefef),
//备注
VEmptyView(50),
Row(
Stack(
children: [
Expanded(
child: TextField(
maxLines: 1,
inputFormatters: [LengthLimitingTextInputFormatter(25)],
//输入文本的样式
style: TextStyle(
fontSize: ScreenUtil().setSp(34),
color: MyColours.color_353535),
controller: _homeEnterModel.customController,
focusNode: _needNode,
// textAlignVertical: TextAlignVertical.top,
decoration: InputDecoration(
hintText: "备注(选填)",
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(34),
Column(
children: [
VEmptyView(30),
MyDivider(double.infinity, ScreenUtil().setWidth(2),
color: MyColours.color_efefef),
//备注
VEmptyView(50),
Row(
children: [
Expanded(
child: TextField(
maxLines: 1,
inputFormatters: [LengthLimitingTextInputFormatter(25)],
//输入文本的样式
style: TextStyle(
fontSize: ScreenUtil().setSp(34),
color: MyColours.color_353535),
controller: _homeEnterModel.customController,
focusNode: _needNode,
// textAlignVertical: TextAlignVertical.top,
decoration: InputDecoration(
hintText: "备注(选填)",
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(34),
),
// contentPadding:
// EdgeInsets.only(bottom: ScreenUtil().setWidth(17)),
border: InputBorder.none,
),
onChanged: (value) {
print(value);
currentRemark = value;
// print();
},
onEditingComplete: () {
print('fff');
_needNode.unfocus();
},
// keyboardType: TextInputType.number,
)),
InkWell(
onTap: () {
DialogUtil.showRemarkDialog(
context, remarkManagerModel.ofenRemarks, (item) {
int index =
remarkManagerModel.ofenRemarks.indexOf(item);
_refreshRemark(
remarkManagerModel.ofenRemarks, index);
});
},
child: Container(
margin:
EdgeInsets.only(left: ScreenUtil().setWidth(40)),
width: ScreenUtil().setWidth(122),
height: ScreenUtil().setWidth(42),
child: Text(
'常用备注',
style: TextStyle(
fontSize: ScreenUtil().setSp(30),
color: MyColours.color_199095),
),
),
),
],
),
// contentPadding:
// EdgeInsets.only(bottom: ScreenUtil().setWidth(17)),
border: InputBorder.none,
),
onChanged: (value) {
print(value);
currentRemark = value;
// print();
},
onEditingComplete: () {
print('fff');
_needNode.unfocus();
},
// keyboardType: TextInputType.number,
)),
InkWell(
onTap: () {
DialogUtil.showRemarkDialog(
context, remarkManagerModel.ofenRemarks, (item) {
int index = remarkManagerModel.ofenRemarks.indexOf(item);
_refreshRemark(remarkManagerModel.ofenRemarks, index);
});
},
child: Container(
margin: EdgeInsets.only(left: ScreenUtil().setWidth(40)),
width: ScreenUtil().setWidth(122),
height: ScreenUtil().setWidth(42),
child: Text(
'常用备注',
style: TextStyle(
fontSize: ScreenUtil().setSp(30),
color: MyColours.color_199095),
VEmptyView(30),
MyDivider(double.infinity, ScreenUtil().setWidth(2),
color: MyColours.color_efefef),
//日期2020-01-01 ***** 早餐/午餐/晚餐 ***** 时间段16:30
VEmptyView(50),
Row(
// mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
_buttonChoose(dateText, (value) {
if (dateText == '') {
_calendWidget(DateTime.now());
} else {
// bool isThird = true;
_calendWidget(dateTimeNow);
}
}),
HEmptyView(40),
_buttonChoose(
currTimeIndex == 1
? '早餐'
: currTimeIndex == 2
? '午餐'
: '晚餐', (value) {
FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
List<String> temp = [];
for (int i = 0;
i < _homeEnterModel.sunDateList.length;
i++) {
temp.add(_homeEnterModel.sunDateList[i]['dateText']);
}
_showMorningAndNightChooseWidget(context, temp);
}),
HEmptyView(40),
_buttonChoose(
_homeEnterModel.ddateStr == '' ||
_homeEnterModel.isSetDate == '0'
? '时间(选填)'
: _homeEnterModel.ddateStr, (value) {
FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
_showDateChooseWidget(context);
}),
],
),
),
VEmptyView(40),
Row(
children: [
Text('预计人数',
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setWidth(28))),
HEmptyView(20),
_buttonChoose(pnum, (value) {
FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
DialogUtil.showSelectCusmanDialog(
context, _homeEnterModel.personNumList,
(value) {
if (value != null) {
setState(() {
selectPnum = value.first;
pnum = _homeEnterModel.personNumList[value.first];
});
String ymyStr = dateText; //年月日
String timeStr = ymyStr + ' ' + "00:00:00";
int ddate =
DateUtil.getDateMsByTimeStr(timeStr); //筛选日期时间戳
// String pnum = Utils.getPnum(_homeEnterModel.personNumList);
_homeEnterModel.getNewTableList(context, '${ddate}',
currTimeIndex.toString(), pnum);
_homeEnterModel.notifyListeners();
}
}, selecteds: selectPnum == null ? [] : [selectPnum])
.then((value) {});
}),
HEmptyView(20),
Text('人',
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setWidth(28))),
],
),
],
),
Offstage(
offstage: !(showPhoneHistory &&
_homeEnterModel.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: _homeEnterModel.userHistorys.length > 1
? ScreenUtil().setWidth(208)
: ScreenUtil().setWidth(104),
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(30)),
child: Align(
alignment: Alignment.topCenter,
child: MediaQuery.removePadding(
context: context,
removeTop: true,
child: ListView.builder(
itemBuilder: (context, index) {
return GestureDetector(
onTap: () {
setState(() {
showPhoneHistory = false;
_homeEnterModel.phoneController.text =
_homeEnterModel
.userHistorys[index].phone;
_homeEnterModel.nameController.text =
_homeEnterModel
.userHistorys[index].rname;
_phoneNode.unfocus();
_homeEnterModel.userHistorys.clear();
});
},
child: Container(
width: double.infinity,
height: ScreenUtil().setWidth(102),
decoration: BoxDecoration(
border: Border(
bottom: (index !=
(_homeEnterModel
.userHistorys
.length -
1) &&
_homeEnterModel
.userHistorys.length >
1)
? BorderSide(
color: MyColours.color_e5e5e5,
width:
ScreenUtil().setWidth(2))
: BorderSide.none)),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
_homeEnterModel
.userHistorys[index].phone,
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(32)),
),
Text(
_homeEnterModel
.userHistorys[index].rname,
style: TextStyle(
color: MyColours.color_333333,
fontSize: ScreenUtil().setSp(32)),
)
],
),
),
);
},
itemExtent: ScreenUtil().setWidth(104),
itemCount: _homeEnterModel.userHistorys.length,
))),
),
)
],
),
VEmptyView(30),
MyDivider(double.infinity, ScreenUtil().setWidth(2),
color: MyColours.color_efefef),
//日期2020-01-01 ***** 早餐/午餐/晚餐 ***** 时间段16:30
VEmptyView(50),
Row(
// mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
_buttonChoose(dateText, (value) {
if (dateText == '') {
_calendWidget(DateTime.now());
} else {
// bool isThird = true;
_calendWidget(dateTimeNow);
}
}),
HEmptyView(40),
_buttonChoose(
currTimeIndex == 1
? '早餐'
: currTimeIndex == 2
? '午餐'
: '晚餐', (value) {
FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
List<String> temp = [];
for (int i = 0; i < _homeEnterModel.sunDateList.length; i++) {
temp.add(_homeEnterModel.sunDateList[i]['dateText']);
}
_showMorningAndNightChooseWidget(context, temp);
}),
HEmptyView(40),
_buttonChoose(
_homeEnterModel.ddateStr == '' ||
_homeEnterModel.isSetDate == '0'
? '时间(选填)'
: _homeEnterModel.ddateStr, (value) {
FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
_showDateChooseWidget(context);
}),
],
),
VEmptyView(40),
Row(
children: [
Text('预计人数',
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setWidth(28))),
HEmptyView(20),
_buttonChoose(pnum, (value) {
FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
DialogUtil.showSelectCusmanDialog(
context, _homeEnterModel.personNumList, (value) {
if (value != null) {
setState(() {
selectPnum = value.first;
pnum = _homeEnterModel.personNumList[value.first];
});
String ymyStr = dateText; //年月日
String timeStr = ymyStr + ' ' + "00:00:00";
int ddate = DateUtil.getDateMsByTimeStr(timeStr); //筛选日期时间戳
// String pnum = Utils.getPnum(_homeEnterModel.personNumList);
_homeEnterModel.getNewTableList(
context, '${ddate}', currTimeIndex.toString(), pnum);
_homeEnterModel.notifyListeners();
}
}, selecteds: selectPnum == null ? [] : [selectPnum])
.then((value) {});
}),
HEmptyView(20),
Text('人',
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setWidth(28))),
],
),
// Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: _homeEnterModel.dateList.map((value) {
// return CustomButton(
// dateText: value['title'].toString().length <= 5
// ? value['title'].toString()
// : value['title'].toString().substring(5),
// fontSize: value['fontSize'],
// dayText: value['dayText'],
// isImage: value['isImage'],
// isSelect: value['select'],
// onTap: () async {
// print(value['title']);
// FocusScope.of(context)
// .requestFocus(FocusNode()); //点击空白处隐藏键盘
// if (value['title'] == '其他') {
// _calendWidget(DateTime.now());
// } else {
// for (int j = 0;
// j < _homeEnterModel.dateList.length;
// j++) {
// _homeEnterModel.dateList[j]['select'] = false;
// if (_homeEnterModel.dateList[j]['title'] ==
// value['title']) {
// _homeEnterModel.dateList[j]['select'] = true;
// if (j == 0 || j == 1) {
// _homeEnterModel.dateList[2]['title'] = '其他';
// }
// if (j == _homeEnterModel.dateList.length - 1) {
// String selectStr = _homeEnterModel.dateList[2]
// ['title'] +
// " 00:00:00";
// _calendWidget(DateUtil.getDateTime(selectStr));
// }
// }
// }
// _homeEnterModel.initHourAndMinuteSelect();
// //选完今天明天刷新页面
// int ddate = Utils.getDdate(_homeEnterModel.dateList);
// String ddateSolt =
// Utils.getDdateSolt(_homeEnterModel.sunDateList);
// // String pnum =
// // Utils.getPnum(_homeEnterModel.personNumList);
// List<t.TableList> list =
// await _homeEnterModel.getNewTableList(
// context,
// '${ddate}',
// ddateSolt,
// pnum,
// _homeEnterModel.tableList);
// if (list.length == 0) {
// _homeEnterModel.isRecommend = true;
// }
// }
// _homeEnterModel.notifyListeners();
// },
// );
// }).toList()),
// VEmptyView(40),
// //早市、午市、晚市
// Row(
// // mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: _homeEnterModel.sunDateList.map((value) {
// return Container(
// margin: _homeEnterModel.sunDateList.length == 3 &&
// value['ddateSolt'] == 3
// ? EdgeInsets.only(right: 0)
// : EdgeInsets.only(right: ScreenUtil().setWidth(20)),
// child: CustomButton(
// onTap: () {
// FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
// String key = '';
// for (var item in _homeEnterModel.sunDateList) {
// item['isSelect'] = false;
// if (item['dateText'] == value['dateText']) {
// item['isSelect'] = true;
// if (item['ddateSolt'] == 1) {
// //早市
// key = 'morning';
// } else if (item['ddateSolt'] == 2) {
// //午市
// key = 'noon';
// } else if (item['ddateSolt'] == 3) {
// //晚市
// key = 'night';
// }
// }
// }
// _homeEnterModel.initHourAndMinuteSelect();
// if (key != '') {
// for (var sunitem in _homeEnterModel.dailyMap[key]) {
// if (sunitem['select'] == true) {
// _homeEnterModel.ddateStr = sunitem['title'];
// }
// }
// }
// _homeEnterModel.notifyListeners();
// int ddate = Utils.getDdate(_homeEnterModel.dateList);
// // String pnum = Utils.getPnum(_homeEnterModel.personNumList);
// String ddateSolt =
// Utils.getDdateSolt(_homeEnterModel.sunDateList);
// _homeEnterModel.getNewTableList(context, '${ddate}',
// '${ddateSolt}', pnum, _homeEnterModel.tableList);
// },
// dateText: value['dateText'],
// dayText: '',
// isSelect: value['isSelect'],
// ),
// );
// }).toList()),
// VEmptyView(40),
// ///人数选择
// Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: _homeEnterModel.personNumList.map((value) {
// return CustomButton(
// onTap: () {
// for (int j = 0;
// j < _homeEnterModel.personNumList.length;
// j++) {
// _homeEnterModel.personNumList[j]['isSelect'] = false;
// if (_homeEnterModel.personNumList[j]['dateText'] ==
// value['dateText']) {
// _homeEnterModel.personNumList[j]['isSelect'] = true;
// if (j < 5) {
// _homeEnterModel.numController.text = value['dateText'];
// FocusScope.of(context)
// .requestFocus(FocusNode()); //点击空白处隐藏键盘
// }
// // if (j < 5) {
// // _homeEnterModel.personNumList[5]
// // ['dateText'] = '更多';
// // }
// }
// }
// _homeEnterModel.notifyListeners();
// //人数选择页面刷新
// // String pnum = Utils.getPnum(_homeEnterModel.personNumList);
// int ddate = Utils.getDdate(_homeEnterModel.dateList);
// String ddateSolt =
// Utils.getDdateSolt(_homeEnterModel.sunDateList);
// _homeEnterModel.getNewTableList(context, '${ddate}',
// ddateSolt, pnum, _homeEnterModel.tableList);
// },
// dateText: value['dateText'],
// fontSize: value['fontSize'],
// dayText: '',
// width: value['width'],
// isImage: value['isImage'],
// isSelect: value['isSelect'],
// isTextFiled: value['isTextFiled'],
// model: _homeEnterModel,
// );
// }).toList(),
// ),
// VEmptyView(20),
)
],
),
);
... ... @@ -782,7 +720,35 @@ class _HomeEnterPageState extends State<HomeEnterPage> {
canBookTable[index],
isRegionName: true,
canSelected: true,
onSelected: (table) {
onSelected: (table) async {
List<String> tempOrder = await _getReserveList(sid);
if (tempOrder.length > 0) {
for (String item in tempOrder) {
if (table.id == item) {
Utils.showToast('该桌位已被其他同事预定!');
//今天 明天 其他天
String tempTime = _homeEnterModel.ddateStr;
if (_homeEnterModel.ddateStr == '') {
if (currTimeIndex == 1) {
tempTime = '08:00';
} else if (currTimeIndex == 2) {
tempTime = '12:00';
} else if (currTimeIndex == 3) {
tempTime = '18:30';
}
}
String timeStr = dateText + ' ' + tempTime + ':00';
LogUtil.v(timeStr);
int ddate = DateUtil.getDateMsByTimeStr(timeStr);
_homeEnterModel.getNewTableList(context, '${ddate}',
currTimeIndex.toString(), pnum);
FocusScope.of(context)
.requestFocus(FocusNode()); //点击空白处隐藏键盘
_homeEnterModel.notifyListeners();
}
}
}
if ((table as t.TableList).selected) {
_homeEnterModel.tableList.add(table);
} else {
... ... @@ -1234,24 +1200,63 @@ class _HomeEnterPageState extends State<HomeEnterPage> {
_homeEnterModel.nameController.text = '';
_homeEnterModel.phoneController.text = '';
_homeEnterModel.customController.text = '';
dateText = ""; //当前显示日期时间
// currTimeIndex = null;
_homeEnterModel.ddateStr = '';
pnum = '6';
selectPnum = 5;
dateTimeNow = DateTime.now();
dateText = "${dateTimeNow.year}" +
"-" +
Utils.addZeroNumber(dateTimeNow.month) +
"-" +
Utils.addZeroNumber(dateTimeNow.day);
String ddate = DateTime.now().millisecondsSinceEpoch.toString() + '000';
_homeEnterModel.initDateHourMinuteList(context, currTimeIndex, dateText);
String ddate = DateTime.now().millisecondsSinceEpoch.toString();
await _homeEnterModel.getNewTableList(
context, ddate, currTimeIndex.toString(), pnum);
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
_homeEnterModel.notifyListeners();
}
//获取一天开始-结束时间字符串
String _getRdate() {
//一天开始时间
double startDay =
(DateTime.parse((dateText + " 00:00:00")).millisecondsSinceEpoch) /
1000;
//一天结束时间
double endDay =
(DateTime.parse((dateText + " 23:59:59")).millisecondsSinceEpoch) /
1000;
return startDay.floor().toString() + "-" + endDay.floor().toString();
}
//获取已预订列表
Future<List<String>> _getReserveList(String sid) async {
List<String> listHasOrder = [];
NoteBookModel model = new NoteBookModel();
Map<String, String> params = {
"sid": sid,
"rdate": _getRdate(),
"ddate_solt": currTimeIndex.toString(),
"y": "200",
"x": "1",
"keywords": "",
"sort": "1"
};
List<Notebook> noteBooks = await model.getReserveList(context, params);
for (Notebook notebook in noteBooks) {
if (notebook.tid.isEmpty) continue;
if (notebook.status == "1" ||
notebook.status == "2" ||
notebook.status == "5") {
//已预订,用餐中,已安排
List<String> tids = notebook.tid.split(",");
for (String tid in tids) {
listHasOrder.add("$tid");
}
}
}
return listHasOrder;
}
_getContactData() async {
Contact contact = await _contactPicker.selectContactWithNative();
setState(() {
... ... @@ -1389,7 +1394,24 @@ class _HomeEnterPageState extends State<HomeEnterPage> {
// EventBus().emit("refresh_tablemanager"); //刷新桌位
} else {
Utils.showToast("录入预订订单失败,请重试!");
Utils.showToast("预订失败!");
// //今天 明天 其他天
// String tempTime = _homeEnterModel.ddateStr;
// if (_homeEnterModel.ddateStr == '') {
// if (currTimeIndex == 1) {
// tempTime = '08:00';
// } else if (currTimeIndex == 2) {
// tempTime = '12:00';
// } else if (currTimeIndex == 3) {
// tempTime = '18:30';
// }
// }
// String timeStr = dateText + ' ' + tempTime + ':00';
// LogUtil.v(timeStr);
// int ddate = DateUtil.getDateMsByTimeStr(timeStr);
// _homeEnterModel.getNewTableList(
// context, '${ddate}', currTimeIndex.toString(), pnum);
}
},
))
... ...