Commit a73f1cd2daf9374588d0e9af3a682b1ef7a726dd

Authored by “gaiyaguang”
2 parents 450c5e0e fe71d74a

Merge branch 'v1.3+' of http://123.56.79.57/xt/Flutter-ReserveApp into v1.3+

... ... @@ -11,14 +11,14 @@ if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = "121"
def flutterVersionCode = "132"
if (flutterVersionCode == null) {
flutterVersionCode = '131'
flutterVersionCode = '132'
}
def flutterVersionName = "1.2.1"
def flutterVersionName = "1.3.2"
if (flutterVersionName == null) {
flutterVersionName = '1.3.1'
flutterVersionName = '1.3.2'
}
apply plugin: 'com.android.application'
... ...
import 'dart:io';
import 'package:common_utils/common_utils.dart';
import 'package:dio/dio.dart';
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
... ... @@ -24,7 +25,6 @@ import 'pages/login/login_page.dart';
import 'provider/user_model.dart';
import 'route/navigate_service.dart';
import 'route/routes.dart';
import 'utils/log_util.dart';
import 'package:flutter/services.dart';
Future<void> main() async {
... ...
import 'dart:convert';
import 'package:json_annotation/json_annotation.dart';
import 'package:one_key/utils/log_util.dart';
import 'package:one_key/utils/utils.dart';
part 'notebook.g.dart';
... ...
import 'package:common_utils/common_utils.dart';
import 'package:flutter/cupertino.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:one_key/models/table.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';
import 'dart:convert';
import "table.dart";
import 'package:one_key/models/table.dart' as t;
part 'notebook_detail.g.dart';
@JsonSerializable()
class NotebookDetail {
NotebookDetail();
NotebookDetail.def(BuildContext context){
id="-1";
pnum="6";
rname="";
sex="1";
phone="";
cusdem="";
type="0";
ddate=(DateTime.now().millisecondsSinceEpoch/1000).floor().toString();
ddate_solt=defDdateSolt(context);
is_set_ddate="0";
tables=[];
}
NotebookDetail.fromTableManager(String ddateStr,String ddatesolt,t.Table table){
id="-1";
pnum="6";
rname="";
sex="1";
phone="";
cusdem="";
type="0";
ddate=ddateStr;
ddate_solt=ddatesolt;
is_set_ddate="0";
tables=[table];
}
String defDdateSolt(BuildContext context){
int millsNow=DateTime.now().millisecondsSinceEpoch;
UserModel userModel=Provider.of<UserModel>(context,listen: false);
String morning=userModel.user.morning==""?"00:00-00:00":userModel.user.morning;
String noon=userModel.user.noon==""?"00:00-00:00":userModel.user.noon;
String night=userModel.user.night==""?"00:00-00:00":userModel.user.night;
String endMorning=morning.split("-")[1];
String endNoon=noon.split("-")[1];
String endNight=night.split("-")[1];
int endMorningMills=DateUtil.getDateMsByTimeStr(DateUtil.formatDate(DateTime.now()).replaceRange(11,19, "$endMorning:00"));
int endNoonMills=DateUtil.getDateMsByTimeStr(DateUtil.formatDate(DateTime.now()).replaceRange(11,19, "$endNoon:00"));
int endNightMills=DateUtil.getDateMsByTimeStr(DateUtil.formatDate(DateTime.now()).replaceRange(11,19, "$endNight:00"));
if(millsNow<=endMorningMills){
return "1";
}else if(millsNow<=endNoonMills){
return "2";
}else if(millsNow<=endNightMills){
return "3";
}
}
String id;
String abolition;
String tableinfo;
... ... @@ -26,8 +82,8 @@ class NotebookDetail {
String note_name;
String channel;
String cdate;
List<Table> demands; //需求桌位
List<Table> tables; //预订桌位
List<t.Table> demands; //需求桌位
List<t.Table> tables; //预订桌位
Cancel cancel;
String get statuImgAssets {
... ... @@ -131,6 +187,13 @@ class NotebookDetail {
factory NotebookDetail.fromJson(Map<String, dynamic> json) =>
_$NotebookDetailFromJson(json);
Map<String, dynamic> toJson() => _$NotebookDetailToJson(this);
@override
String toString() {
return 'NotebookDetail{id: $id, abolition: $abolition, tableinfo: $tableinfo, pnum: $pnum, rname: $rname, sex: $sex, phone: $phone, cusdem: $cusdem, cusman: $cusman, ddate: $ddate, is_set_ddate: $is_set_ddate, ddate_solt: $ddate_solt, status: $status, action: $action, type: $type, note_name: $note_name, channel: $channel, cdate: $cdate, demands: $demands, tables: $tables, cancel: $cancel}';
}
}
@JsonSerializable()
... ...
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'notebook_detail.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
... ... @@ -28,11 +30,11 @@ NotebookDetail _$NotebookDetailFromJson(Map<String, dynamic> json) {
..cdate = json['cdate'] as String
..demands = (json['demands'] as List)
?.map(
(e) => e == null ? null : Table.fromJson(e as Map<String, dynamic>))
(e) => e == null ? null : t.Table.fromJson(e as Map<String, dynamic>))
?.toList()
..tables = (json['tables'] as List)
?.map(
(e) => e == null ? null : Table.fromJson(e as Map<String, dynamic>))
(e) => e == null ? null : t.Table.fromJson(e as Map<String, dynamic>))
?.toList()
..cancel = json['cancel'] == null
? null
... ...
... ... @@ -225,6 +225,13 @@ class Daily extends Object {
_$DailyFromJson(srcJson);
Map<String, dynamic> toJson() => _$DailyToJson(this);
@override
String toString() {
return 'Daily{morning: $morning, noon: $noon, night: $night}';
}
}
@JsonSerializable()
... ...
import 'package:json_annotation/json_annotation.dart';
import 'package:one_key/utils/log_util.dart';
part 'table.g.dart';
... ...
... ... @@ -4,7 +4,6 @@ import 'dart:io';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/utils/log_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/loading.dart';
... ...
... ... @@ -32,5 +32,9 @@ class HttpUrl {
static const String get_table_list =
"?service=Android.Reserve.NewGetTableList"; //根据商家ID 获取桌位信息列表: 1:散座 2:包间 默认:获取所有数据
static const String set_reserve_info =
"?service=Android.Customer.SetReserveInfo"; //录入顾客订座相关信息,同时更新商家桌位状态
"?service=Android.Reserve.SetReserveInfo"; //录入/更改内部预订
static const String set_customer_info =
"?service=Android.Customer.SetReserveInfo"; //更改在线预订
static const String set_switch_status =
"?service=App.Reserve.SetSwitchStatus"; //启用/停用桌位
}
... ...
... ... @@ -29,6 +29,7 @@ class HandleOnlinePage extends StatefulWidget {
final String rid;
final String mid;
final bool fromNotify;
HandleOnlinePage(this.rid, this.mid, {this.fromNotify = false});
@override
... ...
... ... @@ -122,10 +122,10 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
}
}
//选完今天明天刷新页面
int ddate = _getDdate(_notebookDetailChangeModel);
int ddate = Utils.getDdate(_notebookDetailChangeModel.dateList);
String ddateSolt =
_getDdateSolt(_notebookDetailChangeModel);
String pnum = _getPnum(_notebookDetailChangeModel);
Utils.getDdateSolt(_notebookDetailChangeModel.sunDateList);
String pnum = Utils.getPnum(_notebookDetailChangeModel.personNumList);
List<t.TableList> list =
await _notebookDetailChangeModel.getNewTableList(
context,
... ... @@ -183,9 +183,9 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
_notebookDetailChangeModel.notifyListeners();
}
}
int ddate = _getDdate(_notebookDetailChangeModel);
String pnum = _getPnum(_notebookDetailChangeModel);
String ddateSolt = _getDdateSolt(_notebookDetailChangeModel);
int ddate = Utils.getDdate(_notebookDetailChangeModel.dateList);
String pnum = Utils.getPnum(_notebookDetailChangeModel.personNumList);
String ddateSolt = Utils.getDdateSolt(_notebookDetailChangeModel.sunDateList);
_notebookDetailChangeModel.getNewTableList(
context,
'${ddate}',
... ... @@ -235,9 +235,9 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
}
_notebookDetailChangeModel.notifyListeners();
//人数选择页面刷新
String pnum = _getPnum(_notebookDetailChangeModel);
int ddate = _getDdate(_notebookDetailChangeModel);
String ddateSolt = _getDdateSolt(_notebookDetailChangeModel);
String pnum = Utils.getPnum(_notebookDetailChangeModel.personNumList);
int ddate = Utils.getDdate(_notebookDetailChangeModel.dateList);
String ddateSolt = Utils.getDdateSolt(_notebookDetailChangeModel.sunDateList);
_notebookDetailChangeModel.getNewTableList(
context,
... ... @@ -285,13 +285,13 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
_notebookDetailChangeModel.dateList[2]['title'] = '其他';
}
// 选完日历刷新页面
String ddateSolt = _getDdateSolt(_notebookDetailChangeModel);
String pnum = _getPnum(_notebookDetailChangeModel);
String ddateSolt = Utils.getDdateSolt(_notebookDetailChangeModel.sunDateList);
String pnum = Utils.getPnum(_notebookDetailChangeModel.personNumList);
_notebookDetailChangeModel.getNewTableList(
context,
'${dateTimeMill}',
ddateSolt,
_getPnum(_notebookDetailChangeModel),
pnum,
_notebookDetailChangeModel.tableList);
}
_notebookDetailChangeModel.notifyListeners();
... ... @@ -755,7 +755,7 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
body: Column(children: <Widget>[
SizedBox(height: ScreenUtil.statusBarHeight),
MyAppBar(
"变更预订",
widget.detailEntity.id=="-1"?"录入订座信息":"变更预订",
showBack: true,
),
Expanded(
... ... @@ -772,7 +772,7 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
width: double.infinity,
height: 84,
fontSize: 34,
content: "确定修改",
content: widget.detailEntity.id=="-1"?"完成预订":"确定修改",
state: 2,
onPress: () async {
String name =
... ... @@ -785,12 +785,12 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
Utils.showToast("请选择桌位");
return;
}
SunReserveInfoModel _model =
SunReserveInfoModel _model =_notebookDetailChangeModel.detailEntity.type=="1"?//判断是否在线预订
await _notebookDetailChangeModel
.setReserveInfo(context);
.updateOnlineReserveInfo(context):await _notebookDetailChangeModel.setReserveInfo(context);
if (ObjectUtil.isNotEmpty(_model.row) ||
ObjectUtil.isNotEmpty(_model.row.id)) {
print('变更成功');
print('成功');
// _notebookDetailChangeModel.clearData();
bus.emit("refresh_detail");
String ddate_solt = '';
... ... @@ -813,15 +813,17 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
List<dynamic> tableinfo =
convert.jsonDecode(_model.row.tableinfo);
print(tableinfo);
String _nameStr = _model.row.name;
String _nameStr=t.TableList.fromJson(tableinfo[0]).name;
if (tableinfo.length > 1) {
_nameStr = _model.row.name + '等${tableinfo.length}桌';
_nameStr = t.TableList.fromJson(tableinfo[0]).name + '等${tableinfo.length}桌';
}
LogUtil.v(_nameStr);
NavigatorUtil.goInvicationPage(context, _model.row.id,
_nameStr, _model.row.ddate, ddate_solt,
replace: true);
EventBus().emit("refresh_tablemanager");//刷新桌位
} else {
Utils.showToast("变更预订订单失败,请重试!");
Utils.showToast(widget.detailEntity.id=="-1"?"录入预订订单失败,请重试!":"变更预订订单失败,请重试!");
}
},
))
... ... @@ -830,48 +832,6 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
}
}
/// 获取日期 今天 明天 后天等等
int _getDdate(NotebookDetailChangeModel model) {
//当前选中 月 日string
String mdStr = '';
//今天 明天 其他天
for (var item in model.dateList) {
if (item['select'] == true) {
mdStr = item['title'];
}
}
String timeNowYear = DateUtil.formatDate(DateTime.now(), format: 'yyyy');
String ymyStr = timeNowYear + '-' + mdStr; //年月日
String timeStr = ymyStr + ' ' + "00:00:00";
int ddate = DateUtil.getDateMsByTimeStr(timeStr); //筛选日期时间戳
return ddate;
}
/// 获取早餐、午餐、晚餐字段 1 ,2, 3
String _getDdateSolt(NotebookDetailChangeModel model) {
String ddateSolt = '';
for (var item in model.sunDateList) {
if (item['isSelect']) {
ddateSolt = '${item['ddateSolt']}';
}
}
return ddateSolt;
}
/// 选中前面的按钮获取人数,输入的自己获取
String _getPnum(NotebookDetailChangeModel model) {
String pnum = '6';
for (var item in model.personNumList) {
if (item['isSelect']) {
pnum = item['dateText'];
}
}
if (pnum == '更多') {
pnum = '6';
}
return pnum;
}
class CustomButton extends StatefulWidget {
final String dateText;
final String dayText;
... ... @@ -991,9 +951,9 @@ class _ButtonState extends State<CustomButton> {
},
onEditingComplete: () {
_cancelNode.unfocus();
int ddate = _getDdate(widget.model);
String ddateSolt = _getDdateSolt(widget.model);
String pnum = _getPnum(widget.model);
int ddate = Utils.getDdate(widget.model.dateList);
String ddateSolt = Utils.getDdateSolt(widget.model.sunDateList);
String pnum = Utils.getPnum(widget.model.personNumList);
widget.model.getNewTableList(context, '${ddate}',
ddateSolt, pnum, widget.model.tableList);
... ...
... ... @@ -12,7 +12,6 @@ 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/log_util.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
... ...
... ... @@ -7,9 +7,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/models/notebook_detail.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/notebook_detail_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/provider/enter_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';
... ... @@ -20,7 +18,6 @@ import 'package:one_key/widgets/app_bar.dart';
import 'package:one_key/widgets/common_button.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/new_table_item.dart';
import 'package:one_key/widgets/table_item.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
import 'package:one_key/models/table_list.dart' as t;
... ... @@ -34,28 +31,29 @@ class EnterPage extends StatefulWidget {
const EnterPage({Key key, this.detailEntity, this.rid})
: super(key: key);
@override
_EnterPageState createState() => _EnterPageState();
}
class _EnterPageState extends State<EnterPage> {
DateTime dateTime; //当前日期
NotebookDetailChangeModel _notebookDetailChangeModel;
EnterModel _enterModel;
FocusNode _phoneNode = FocusNode();
FocusNode _nameNode = FocusNode();
FocusNode _needNode = FocusNode();
NotebookDetailModel detailModel = NotebookDetailModel();
@override
void initState() {
super.initState();
LogUtil.v(widget.detailEntity.toString());
dateTime = DateTime.now();
_notebookDetailChangeModel =
Provider.of<NotebookDetailChangeModel>(context, listen: false);
_notebookDetailChangeModel.initDateHourMinuteList(context);
_enterModel =
Provider.of<EnterModel>(context, listen: true);
_enterModel.initData(widget.detailEntity);
_enterModel.initDateHourMinuteList(context);
String ddate = widget.detailEntity.ddate.toString() + '000';
_notebookDetailChangeModel.getNewTableList(
_enterModel.getNewTableList(
context,
ddate,
widget.detailEntity.ddate_solt,
... ... @@ -79,7 +77,7 @@ class _EnterPageState extends State<EnterPage> {
//第一行 日期选择
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: _notebookDetailChangeModel.dateList.map((value) {
children: _enterModel.dateList.map((value) {
return CustomButton(
dateText: value['title'],
fontSize: value['fontSize'],
... ... @@ -94,24 +92,24 @@ class _EnterPageState extends State<EnterPage> {
_calendWidget(DateTime.now());
} else {
for (int j = 0;
j < _notebookDetailChangeModel.dateList.length;
j < _enterModel.dateList.length;
j++) {
_notebookDetailChangeModel.dateList[j]['select'] =
_enterModel.dateList[j]['select'] =
false;
if (_notebookDetailChangeModel.dateList[j]['title'] ==
if (_enterModel.dateList[j]['title'] ==
value['title']) {
_notebookDetailChangeModel.dateList[j]['select'] =
_enterModel.dateList[j]['select'] =
true;
if (j == 0 || j == 1) {
_notebookDetailChangeModel.dateList[2]['title'] =
_enterModel.dateList[2]['title'] =
'其他';
}
if (j ==
_notebookDetailChangeModel.dateList.length - 1) {
_enterModel.dateList.length - 1) {
String selectStr =
_notebookDetailChangeModel.dateList[2]['title'];
_enterModel.dateList[2]['title'];
String timeNow = DateUtil.formatDate(
DateTime.now(),
);
... ... @@ -122,22 +120,23 @@ class _EnterPageState extends State<EnterPage> {
}
}
//选完今天明天刷新页面
int ddate = _getDdate(_notebookDetailChangeModel);
int ddate = Utils.getDdate(_enterModel.dateList);
_enterModel.updateSunDateList(DateTime.fromMillisecondsSinceEpoch(ddate), context);
String ddateSolt =
_getDdateSolt(_notebookDetailChangeModel);
String pnum = _getPnum(_notebookDetailChangeModel);
Utils.getDdateSolt(_enterModel.sunDateList);
String pnum = Utils.getPnum(_enterModel.personNumList);
List<t.TableList> list =
await _notebookDetailChangeModel.getNewTableList(
await _enterModel.getNewTableList(
context,
'${ddate}',
ddateSolt,
pnum,
_notebookDetailChangeModel.tableList);
_enterModel.tableList);
if (list.length == 0) {
_notebookDetailChangeModel.isRecommend = true;
_enterModel.isRecommend = true;
}
}
_notebookDetailChangeModel.notifyListeners();
_enterModel.notifyListeners();
},
);
}).toList()),
... ... @@ -146,16 +145,17 @@ class _EnterPageState extends State<EnterPage> {
//早市、午市、晚市
Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: _notebookDetailChangeModel.sunDateList.map((value) {
children: _enterModel.sunDateList.map((value) {
return Container(
margin: _notebookDetailChangeModel.sunDateList.length == 3 &&
margin: _enterModel.sunDateList.length == 3 &&
value['ddateSolt'] == 3
? EdgeInsets.only(right: 0)
: EdgeInsets.only(right: ScreenUtil().setWidth(20)),
child: CustomButton(
onTap: () {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
for (var item in _notebookDetailChangeModel.sunDateList) {
if(!value['isEnable'])return;
for (var item in _enterModel.sunDateList) {
item['isSelect'] = false;
if (item['dateText'] == value['dateText']) {
item['isSelect'] = true;
... ... @@ -173,28 +173,29 @@ class _EnterPageState extends State<EnterPage> {
}
if (key != '') {
for (var sunitem
in _notebookDetailChangeModel.dailyMap[key]) {
in _enterModel.dailyMap[key]) {
if (sunitem['select'] == true) {
_notebookDetailChangeModel.ddateStr =
_enterModel.ddateStr =
sunitem['title'];
}
}
}
_notebookDetailChangeModel.notifyListeners();
_enterModel.notifyListeners();
}
}
int ddate = _getDdate(_notebookDetailChangeModel);
String pnum = _getPnum(_notebookDetailChangeModel);
String ddateSolt = _getDdateSolt(_notebookDetailChangeModel);
_notebookDetailChangeModel.getNewTableList(
int ddate = Utils.getDdate(_enterModel.dateList);
String pnum = Utils.getPnum(_enterModel.personNumList);
String ddateSolt = Utils.getDdateSolt(_enterModel.sunDateList);
_enterModel.getNewTableList(
context,
'${ddate}',
'${ddateSolt}',
pnum,
_notebookDetailChangeModel.tableList);
_enterModel.tableList);
},
dateText: value['dateText'],
dayText: '',
isEnable: value['isEnable'],
isSelect: value['isSelect'],
),
);
... ... @@ -204,23 +205,23 @@ class _EnterPageState extends State<EnterPage> {
///人数选择
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: _notebookDetailChangeModel.personNumList.map((value) {
children: _enterModel.personNumList.map((value) {
return CustomButton(
onTap: () {
for (int j = 0;
j < _notebookDetailChangeModel.personNumList.length;
j < _enterModel.personNumList.length;
j++) {
_notebookDetailChangeModel.personNumList[j]['isSelect'] =
_enterModel.personNumList[j]['isSelect'] =
false;
if (_notebookDetailChangeModel.personNumList[j]
if (_enterModel.personNumList[j]
['dateText'] ==
value['dateText']) {
_notebookDetailChangeModel.personNumList[j]['isSelect'] =
_enterModel.personNumList[j]['isSelect'] =
true;
if (j < 5) {
_notebookDetailChangeModel.numController.text =
_enterModel.numController.text =
value['dateText'];
FocusScope.of(context)
.requestFocus(FocusNode()); //点击空白处隐藏键盘
... ... @@ -228,23 +229,23 @@ class _EnterPageState extends State<EnterPage> {
}
// if (j < 5) {
// _notebookDetailChangeModel.personNumList[5]
// _enterModel.personNumList[5]
// ['dateText'] = '更多';
// }
}
}
_notebookDetailChangeModel.notifyListeners();
_enterModel.notifyListeners();
//人数选择页面刷新
String pnum = _getPnum(_notebookDetailChangeModel);
int ddate = _getDdate(_notebookDetailChangeModel);
String ddateSolt = _getDdateSolt(_notebookDetailChangeModel);
String pnum = Utils.getPnum(_enterModel.personNumList);
int ddate = Utils.getDdate(_enterModel.dateList);
String ddateSolt = Utils.getDdateSolt(_enterModel.sunDateList);
_notebookDetailChangeModel.getNewTableList(
_enterModel.getNewTableList(
context,
'${ddate}',
ddateSolt,
pnum,
_notebookDetailChangeModel.tableList);
_enterModel.tableList);
},
dateText: value['dateText'],
fontSize: value['fontSize'],
... ... @@ -253,7 +254,7 @@ class _EnterPageState extends State<EnterPage> {
isImage: value['isImage'],
isSelect: value['isSelect'],
isTextFiled: value['isTextFiled'],
model: _notebookDetailChangeModel,
model: _enterModel,
);
}).toList(),
)
... ... @@ -270,41 +271,42 @@ class _EnterPageState extends State<EnterPage> {
int dateTimeMill = day.millisecondsSinceEpoch;
String dateText = DateUtil.formatDateMs(dateTimeMill, format: 'MM-dd');
bool isThird = true;
for (int i = 0; i < _notebookDetailChangeModel.dateList.length; i++) {
_notebookDetailChangeModel.dateList[i]['select'] = false;
for (int i = 0; i < _enterModel.dateList.length; i++) {
_enterModel.dateList[i]['select'] = false;
if (_notebookDetailChangeModel.dateList[i]['title'] == dateText) {
_notebookDetailChangeModel.dateList[i]['select'] = true;
if (_enterModel.dateList[i]['title'] == dateText) {
_enterModel.dateList[i]['select'] = true;
isThird = false;
}
}
if (isThird) {
_notebookDetailChangeModel.dateList[2]['select'] = true;
_notebookDetailChangeModel.dateList[2]['title'] = dateText;
_enterModel.dateList[2]['select'] = true;
_enterModel.dateList[2]['title'] = dateText;
} else {
_notebookDetailChangeModel.dateList[2]['title'] = '其他';
_enterModel.dateList[2]['title'] = '其他';
}
_enterModel.updateSunDateList(dateTime, context);
// 选完日历刷新页面
String ddateSolt = _getDdateSolt(_notebookDetailChangeModel);
String pnum = _getPnum(_notebookDetailChangeModel);
_notebookDetailChangeModel.getNewTableList(
String ddateSolt = Utils.getDdateSolt(_enterModel.sunDateList);
String pnum = Utils.getPnum(_enterModel.personNumList);
_enterModel.getNewTableList(
context,
'${dateTimeMill}',
ddateSolt,
_getPnum(_notebookDetailChangeModel),
_notebookDetailChangeModel.tableList);
pnum,
_enterModel.tableList);
}
_notebookDetailChangeModel.notifyListeners();
_enterModel.notifyListeners();
});
}
/// 可订桌位
_middleWidget() {
List canBookTable = [];
if (_notebookDetailChangeModel.isRecommend) {
canBookTable = _notebookDetailChangeModel.recommendList;
if (_enterModel.isRecommend) {
canBookTable = _enterModel.recommendList;
} else {
canBookTable = _notebookDetailChangeModel.tableList;
canBookTable = _enterModel.tableList;
}
return Container(
padding: EdgeInsets.all(ScreenUtil().setWidth(40)),
... ... @@ -317,7 +319,7 @@ class _EnterPageState extends State<EnterPage> {
//当前选中 月 日string
String mdStr = '';
//今天 明天 其他天
for (var item in _notebookDetailChangeModel.dateList) {
for (var item in _enterModel.dateList) {
if (item['select'] == true) {
mdStr = item['title'];
}
... ... @@ -328,7 +330,7 @@ class _EnterPageState extends State<EnterPage> {
String timeStr = ymyStr + ' ' + "00:00:00";
int ddate = DateUtil.getDateMsByTimeStr(timeStr); //筛选日期时间戳
String ddateSolt = '';
for (var item in _notebookDetailChangeModel.sunDateList) {
for (var item in _enterModel.sunDateList) {
if (item['isSelect']) {
ddateSolt = '${item['ddateSolt']}';
}
... ... @@ -339,34 +341,34 @@ class _EnterPageState extends State<EnterPage> {
Map temp = await NavigatorUtil.goSelectTablePage(
context, widget.rid, ddate, ddateSolt,
canChoose: true,
object: {'object': _notebookDetailChangeModel.tableList});
object: {'object': _enterModel.tableList});
// if (temp['tid'] != null) {
// setReserveStatus("5", tid: temp['tid']);
// }
if (temp == null || temp['object'].length == 0) {
if (_notebookDetailChangeModel.tableList.length == 0) {
_notebookDetailChangeModel.isRecommend = true;
_notebookDetailChangeModel.tableList = [];
if (_enterModel.tableList.length == 0) {
_enterModel.isRecommend = true;
_enterModel.tableList = [];
for (t.TableList item
in _notebookDetailChangeModel.recommendList) {
in _enterModel.recommendList) {
item.selected = false;
}
setState(() {});
}
} else {
_notebookDetailChangeModel.isRecommend = false;
_notebookDetailChangeModel.tableList = temp['object'];
// if (_notebookDetailChangeModel.tableList.length == 0) {
_enterModel.isRecommend = false;
_enterModel.tableList = temp['object'];
// if (_enterModel.tableList.length == 0) {
// isRecommend = true;
// }
for (t.TableList item
in _notebookDetailChangeModel.tableList) {
in _enterModel.tableList) {
item.selected = true;
}
setState(() {});
}
// _notebookDetailChangeModel.notifyListeners();
// _enterModel.notifyListeners();
},
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
... ... @@ -410,9 +412,9 @@ class _EnterPageState extends State<EnterPage> {
canSelected: true,
onSelected: (table) {
if ((table as t.TableList).selected) {
_notebookDetailChangeModel.tableList.add(table);
_enterModel.tableList.add(table);
} else {
_notebookDetailChangeModel.tableList
_enterModel.tableList
.removeWhere((t) => t.id == table.id);
}
},
... ... @@ -448,7 +450,7 @@ class _EnterPageState extends State<EnterPage> {
style: TextStyle(
fontSize: ScreenUtil().setSp(34),
color: MyColours.color_353535),
controller: _notebookDetailChangeModel.phoneController,
controller: _enterModel.phoneController,
focusNode: _phoneNode,
// textAlignVertical: TextAlignVertical.top,
decoration: InputDecoration(
... ... @@ -477,7 +479,7 @@ class _EnterPageState extends State<EnterPage> {
child: Text(
int.parse(widget.detailEntity.is_set_ddate) == 0
? '未设置到店时间'
: _notebookDetailChangeModel.ddateStr,
: _enterModel.ddateStr,
style: TextStyle(
color: int.parse(widget.detailEntity.is_set_ddate) == 0
? MyColours.color_999999
... ... @@ -504,7 +506,7 @@ class _EnterPageState extends State<EnterPage> {
style: TextStyle(
fontSize: ScreenUtil().setSp(34),
color: MyColours.color_353535),
controller: _notebookDetailChangeModel.nameController,
controller: _enterModel.nameController,
focusNode: _nameNode,
// textAlignVertical: TextAlignVertical.top,
decoration: InputDecoration(
... ... @@ -527,16 +529,16 @@ class _EnterPageState extends State<EnterPage> {
),
HEmptyView(40),
Row(
children: _notebookDetailChangeModel.sexList.map((value) {
children: _enterModel.sexList.map((value) {
return _callButton(
onPress: () {
for (var item in _notebookDetailChangeModel.sexList) {
for (var item in _enterModel.sexList) {
item['select'] = false;
if (item['title'] == value['title']) {
item['select'] = true;
}
}
_notebookDetailChangeModel.notifyListeners();
_enterModel.notifyListeners();
},
content: value['title'],
hasLeftBorder: value['hasLeftBorder'],
... ... @@ -555,7 +557,7 @@ class _EnterPageState extends State<EnterPage> {
style: TextStyle(
fontSize: ScreenUtil().setSp(34),
color: MyColours.color_353535),
controller: _notebookDetailChangeModel.customController,
controller: _enterModel.customController,
focusNode: _needNode,
// textAlignVertical: TextAlignVertical.top,
decoration: InputDecoration(
... ... @@ -591,11 +593,11 @@ class _EnterPageState extends State<EnterPage> {
String title = '早市';
String key;
for (var item in _notebookDetailChangeModel.sunDateList) {
for (var item in _enterModel.sunDateList) {
if (item['isSelect'] == true) {
title = item['dateText'];
key = item['key'];
tempMndList = _notebookDetailChangeModel.dailyMap[key];
tempMndList = _enterModel.dailyMap[key];
}
}
//计算行数
... ... @@ -677,14 +679,14 @@ class _EnterPageState extends State<EnterPage> {
tempMndList[index]['title']) {
item['select'] = true;
widget.detailEntity.is_set_ddate = '1';
_notebookDetailChangeModel.isSetDate = "1";
_notebookDetailChangeModel.ddateStr =
_enterModel.isSetDate = "1";
_enterModel.ddateStr =
item['title'];
}
}
// });
_notebookDetailChangeModel.notifyListeners();
_enterModel.notifyListeners();
Navigator.pop(context);
},
width: 80,
... ... @@ -743,8 +745,6 @@ class _EnterPageState extends State<EnterPage> {
@override
Widget build(BuildContext context) {
_notebookDetailChangeModel =
Provider.of<NotebookDetailChangeModel>(context, listen: true);
return GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () {
... ... @@ -752,142 +752,103 @@ class _EnterPageState extends State<EnterPage> {
},
child: Scaffold(
backgroundColor: Colors.white,
body: Column(children: <Widget>[
SizedBox(height: ScreenUtil.statusBarHeight),
MyAppBar(
"变更预订",
showBack: true,
),
Expanded(
child: SingleChildScrollView(
child: Column(
children: [_topWidget(), _middleWidget(), _bottomWidget()],
))),
Container(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(40),
vertical: ScreenUtil().setWidth(60),
),
child: CommonButton(
width: double.infinity,
height: 84,
fontSize: 34,
content: "确定修改",
state: 2,
onPress: () async {
String name =
_notebookDetailChangeModel.nameController.text.trim();
if (ObjectUtil.isEmpty(name)) {
Utils.showToast("请填写客户姓名");
return;
}
if (_notebookDetailChangeModel.tableList.length == 0) {
Utils.showToast("请选择桌位");
return;
}
SunReserveInfoModel _model =
await _notebookDetailChangeModel
.setReserveInfo(context);
if (ObjectUtil.isNotEmpty(_model.row) ||
ObjectUtil.isNotEmpty(_model.row.id)) {
print('变更成功');
// _notebookDetailChangeModel.clearData();
bus.emit("refresh_detail");
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 = '晚餐';
}
body: SafeArea(
child: Column(children: <Widget>[
MyAppBar(
"录入预订",
showBack: false,
),
Expanded(
child: SingleChildScrollView(
child: Column(
children: [_topWidget(), _middleWidget(), _bottomWidget()],
))),
Container(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(40),
vertical: ScreenUtil().setWidth(60),
),
child: CommonButton(
width: double.infinity,
height: 84,
fontSize: 34,
content: "录入预订",
state: 2,
onPress: () async {
String name =
_enterModel.nameController.text.trim();
if (ObjectUtil.isEmpty(name)) {
Utils.showToast("请填写客户姓名");
return;
}
List<dynamic> tableinfo =
convert.jsonDecode(_model.row.tableinfo);
print(tableinfo);
String _nameStr = _model.row.name;
if (tableinfo.length > 1) {
_nameStr = _model.row.name + '等${tableinfo.length}桌';
if (_enterModel.tableList.length == 0) {
Utils.showToast("请选择桌位");
return;
}
NavigatorUtil.goInvicationPage(context, _model.row.id,
_nameStr, _model.row.ddate, ddate_solt,
replace: true);
} else {
Utils.showToast("变更预订订单失败,请重试!");
}
},
))
]),
SunReserveInfoModel _model =
await _enterModel
.setReserveInfo(context);
if (ObjectUtil.isNotEmpty(_model.row) ||
ObjectUtil.isNotEmpty(_model.row.id)) {
print('录入成功');
// _enterModel.clearData();
bus.emit("refresh_detail");
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);
String _nameStr = _model.row.name;
if (tableinfo.length > 1) {
_nameStr = _model.row.name + '等${tableinfo.length}桌';
}
NavigatorUtil.goInvicationPage(context, _model.row.id,
_nameStr, _model.row.ddate, ddate_solt,
replace: true);
} else {
Utils.showToast("录入预订订单失败,请重试!");
}
},
))
]),
),
));
}
}
/// 获取日期 今天 明天 后天等等
int _getDdate(NotebookDetailChangeModel model) {
//当前选中 月 日string
String mdStr = '';
//今天 明天 其他天
for (var item in model.dateList) {
if (item['select'] == true) {
mdStr = item['title'];
}
}
String timeNowYear = DateUtil.formatDate(DateTime.now(), format: 'yyyy');
String ymyStr = timeNowYear + '-' + mdStr; //年月日
String timeStr = ymyStr + ' ' + "00:00:00";
int ddate = DateUtil.getDateMsByTimeStr(timeStr); //筛选日期时间戳
return ddate;
}
/// 获取早餐、午餐、晚餐字段 1 ,2, 3
String _getDdateSolt(NotebookDetailChangeModel model) {
String ddateSolt = '';
for (var item in model.sunDateList) {
if (item['isSelect']) {
ddateSolt = '${item['ddateSolt']}';
}
}
return ddateSolt;
}
/// 选中前面的按钮获取人数,输入的自己获取
String _getPnum(NotebookDetailChangeModel model) {
String pnum = '6';
for (var item in model.personNumList) {
if (item['isSelect']) {
pnum = item['dateText'];
}
}
if (pnum == '更多') {
pnum = '6';
}
return pnum;
}
class CustomButton extends StatefulWidget {
final String dateText;
final String dayText;
final bool isEnable;
final bool isSelect;
final double fontSize;
final bool isImage;
final double width;
final GestureTapCallback onTap;
final bool isTextFiled;
final NotebookDetailChangeModel model;
final EnterModel model;
final double height;
const CustomButton({
Key key,
this.dateText,
this.dayText,
this.isEnable=true,
this.isSelect,
this.fontSize = 34,
this.isImage = false,
... ... @@ -917,10 +878,10 @@ class _ButtonState extends State<CustomButton> {
width: ScreenUtil().setWidth(widget.width * 2),
height: ScreenUtil().setWidth(widget.height * 2),
decoration: BoxDecoration(
color: widget.isSelect ? MyColours.color_199095 : Colors.white,
color: !widget.isEnable?MyColours.color_999999:widget.isSelect ? MyColours.color_199095 : Colors.white,
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10)),
border: Border.all(
color: MyColours.color_199095,
color: !widget.isEnable?MyColours.color_999999:MyColours.color_199095,
width: ScreenUtil().setWidth(2))),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
... ... @@ -991,9 +952,9 @@ class _ButtonState extends State<CustomButton> {
},
onEditingComplete: () {
_cancelNode.unfocus();
int ddate = _getDdate(widget.model);
String ddateSolt = _getDdateSolt(widget.model);
String pnum = _getPnum(widget.model);
int ddate = Utils.getDdate(widget.model.dateList);
String ddateSolt = Utils.getDdateSolt(widget.model.sunDateList);
String pnum = Utils.getPnum(widget.model.personNumList);
widget.model.getNewTableList(context, '${ddate}',
ddateSolt, pnum, widget.model.tableList);
... ... @@ -1006,7 +967,7 @@ class _ButtonState extends State<CustomButton> {
fontWeight: widget.isImage && widget.dateText == "其他"
? FontWeight.normal
: FontWeight.bold,
color: widget.isSelect
color: !widget.isEnable?MyColours.color_666666:widget.isSelect
? MyColours.color_fefefe
: MyColours.color_199095,
fontSize: ScreenUtil().setSp(widget.fontSize))),
... ...
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:common_utils/common_utils.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/app.dart';
import 'package:one_key/models/notebook_detail.dart';
import 'package:one_key/pages/detail/notebook_detail_change_page.dart';
import 'package:one_key/pages/detail/notebook_detail_page.dart';
import 'package:one_key/pages/enter/enter_page.dart';
import 'package:one_key/pages/message/message_page.dart';
import 'package:one_key/pages/my/my_page.dart';
... ... @@ -15,13 +19,13 @@ import 'package:one_key/provider/enter_model.dart';
import 'package:one_key/provider/message_dialog_model.dart';
import 'package:one_key/provider/message_model.dart';
import 'package:one_key/provider/my_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/table_manager_model.dart';
import 'package:one_key/provider/tools.dart';
import 'package:one_key/provider/update_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/log_util.dart';
import 'package:one_key/utils/misc.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
... ... @@ -33,7 +37,7 @@ import 'package:tpns_flutter_plugin/tpns_flutter_plugin.dart';
class HomePage extends StatefulWidget {
final int initialIndex; //初始tab
HomePage({this.initialIndex = 2});
HomePage({this.initialIndex = 1});
@override
State<StatefulWidget> createState() {
... ... @@ -44,7 +48,7 @@ class HomePage extends StatefulWidget {
class HomePageState extends State<HomePage> with WidgetsBindingObserver {
List<Widget> pages = List<Widget>();
int _currIndex = 2;
int _currIndex = 1;
Color _activeColor = MyColours.color_199095;
Color _defaultColor = MyColours.color_999999;
... ... @@ -64,10 +68,10 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
create: (_) => MessageModel(),
child: SafeArea(child: MessagePage()),
))
..add(ChangeNotifierProvider<EnterModel>(
create: (_) => EnterModel(null),
child: SafeArea(child: EnterPage()),
))
// ..add(ChangeNotifierProvider<EnterModel>(
// create: (_) => EnterModel(),
// child: SafeArea(child: EnterPage(detailEntity:NotebookDetail.def(context),rid: "-1",)),
// ))
..add(ChangeNotifierProvider<NoteBookModel>(
create: (_) => NoteBookModel(),
child: SafeArea(child: NoteBookPage()),
... ... @@ -323,24 +327,24 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
fontSize: ScreenUtil().setSp(22)),
),
),
BottomNavigationBarItem(
icon: Image(
image: AssetImage("assets/message_default.png"),
width: ScreenUtil().setWidth(48),
height: ScreenUtil().setWidth(48),
),
activeIcon: Image(
image: AssetImage("assets/message_selected.png"),
width: ScreenUtil().setWidth(48),
height: ScreenUtil().setWidth(48),
),
title: Text(
"订座",
style: TextStyle(
color: _currIndex == 1 ? _activeColor : _defaultColor,
fontSize: ScreenUtil().setSp(22)),
),
),
// BottomNavigationBarItem(
// icon: Image(
// image: AssetImage("assets/message_default.png"),
// width: ScreenUtil().setWidth(48),
// height: ScreenUtil().setWidth(48),
// ),
// activeIcon: Image(
// image: AssetImage("assets/message_selected.png"),
// width: ScreenUtil().setWidth(48),
// height: ScreenUtil().setWidth(48),
// ),
// title: Text(
// "订座",
// style: TextStyle(
// color: _currIndex == 1 ? _activeColor : _defaultColor,
// fontSize: ScreenUtil().setSp(22)),
// ),
// ),
BottomNavigationBarItem(
icon: Image(
image: AssetImage("assets/notebook_default.png"),
... ... @@ -355,7 +359,7 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
title: Text(
"已预订",
style: TextStyle(
color: _currIndex == 2 ? _activeColor : _defaultColor,
color: _currIndex == 1 ? _activeColor : _defaultColor,
fontSize: ScreenUtil().setSp(22)),
),
),
... ... @@ -373,7 +377,7 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
title: Text(
"桌位",
style: TextStyle(
color: _currIndex == 3? _activeColor : _defaultColor,
color: _currIndex == 2? _activeColor : _defaultColor,
fontSize: ScreenUtil().setSp(22)),
),
),
... ... @@ -391,7 +395,7 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
title: Text(
"我的",
style: TextStyle(
color: _currIndex == 4 ? _activeColor : _defaultColor,
color: _currIndex == 3 ? _activeColor : _defaultColor,
fontSize: ScreenUtil().setSp(22)),
),
),
... ... @@ -403,7 +407,7 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
setState(() {
_currIndex = index;
});
if (_currIndex == 4) {
if (_currIndex == 3) {
Utils.changeStatusColor(color: MyColours.color_199095);
} else {
Utils.changeStatusColor(color: MyColours.color_ffffff);
... ...
... ... @@ -3,7 +3,6 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/app.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/log_util.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/v_empty_view.dart';
... ...
import 'package:common_utils/common_utils.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
... ... @@ -10,7 +11,6 @@ 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/log_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/app_bar.dart';
... ... @@ -20,6 +20,7 @@ import 'package:one_key/widgets/page_exception.dart';
import 'package:provider/provider.dart';
class NoteBookPage extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
... ... @@ -44,6 +45,7 @@ class NoteBookPageState extends State<NoteBookPage> {
void initState() {
// TODO: implement initState
super.initState();
LogUtil.v("notebook_page initState");
userModel = Provider.of<UserModel>(context, listen: false);
_controller = EasyRefreshController();
_initTime();
... ... @@ -419,6 +421,7 @@ class NoteBookPageState extends State<NoteBookPage> {
pageState: model.pageState,
callback: () {
_getReserveList();
_reserveCountDay();
},
emptyMsg: "暂时没有预订哦",
emptyImg: "empty_search",
... ...
import 'dart:ffi';
import 'package:common_utils/common_utils.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/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/models/notebook_detail.dart';
import 'package:one_key/provider/table_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/log_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/navigator_util.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/page_exception.dart';
import 'package:one_key/widgets/table_item.dart';
import 'package:one_key/models/table.dart' as t;
import 'package:provider/provider.dart';
... ... @@ -36,345 +31,158 @@ class TableManagerPage extends StatefulWidget {
class TableManagerPageState extends State<TableManagerPage> {
List<Area> areas = []; //区域列表
List<t.Table> selectTables = []; //选择的桌位
List<TableOuter> tableOuterList = []; //区域-桌位列表
Map<String, List<t.Table>> areaTableMap = {}; //区域-桌位Map
TableManagerModel tableManagerModel;
Map<String, Notebook> tableMap = {}; //记录已预订桌位对应的订单
String currentArea; //当前选中区域
DateTime dateTime=DateTime.now();
String dateText = ""; //当前显示日期时间
int currTimeIndex = 1; //当前选中时间段
String morning; //早市时间段
String noon; //午市时间段
String night; //晚市时间段
UserModel userModel;
@override
void initState() {
// TODO: implement initState
super.initState();
LogUtil.v("table_manager_page initState");
WidgetsBinding.instance.addPostFrameCallback((_) {
userModel = Provider.of<UserModel>(context, listen: false);
tableManagerModel=Provider.of<TableManagerModel>(context,listen: false);
_initTime();
getTableList();
tableManagerModel=Provider.of<TableManagerModel>(context,listen: true);
tableManagerModel.initTime(context);
EventBus().on("refresh_tablemanager", (arg) {//订座-完成预订 刷新管理桌位
tableManagerModel.getReserveList(context);
});
});
}
//初始化时间
_initTime() {
dateTime = DateTime.now();
dateText = Utils.addZeroNumber(dateTime.month) +
"月" +
Utils.addZeroNumber(dateTime.day) +
"日" +
" 今天";
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;
if (dateTime.isBefore(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
morning.split("-")[1] +
":00"))) {
//未过早市
currTimeIndex = 1;
} else if (dateTime.isAfter(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
morning.split("-")[1] +
":00")) &&
dateTime.isBefore(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
noon.split("-")[1] +
":00"))) {
//过了早市,未过午市
currTimeIndex = 2;
} else if (dateTime.isAfter(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
noon.split("-")[1] +
":00")) &&
dateTime.isBefore(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
night.split("-")[1] +
":00"))) {
//过了午市,未过晚市
currTimeIndex = 3;
} else {
//过了晚市
currTimeIndex = 3;
}
}
//获取桌位列表
getTableList() async {
Map<String, String> params = {"sellerid": userModel.user.sellerid};
tableOuterList = await tableManagerModel.getTableList(context, params);
_getReserveList();
}
//获取已预订列表
_getReserveList() async {
NoteBookModel model = new NoteBookModel();
Map<String, String> params = {
"sid": userModel.user.sellerid,
"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) {
tableMap["$tid"] = notebook;
}
}
}
print(tableMap);
initData();
}
//初始桌位数据
initData() {
for (TableOuter outer in tableOuterList) {
int count = 0;
for (t.Table table in outer.list) {
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;
} else {
table.sign = "";
table.notebookId = "";
if (table.enable == "1") {
count++;
}
}
} else {
table.sign = "2";
table.notebookId = "";
}
}
areaTableMap["${outer.name}"] = outer.list;
Area area = Area();
area.name = outer.name;
area.count = count;
areas.add(area);
}
currentArea = areaTableMap.keys.first;
setState(() {});
}
//获取一天开始-结束时间字符串
String _getRdate() {
//一天开始时间
double startDay = (DateTime.parse((dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" 00:00:00"))
.millisecondsSinceEpoch) /
1000;
//一天结束时间
double endDay = (DateTime.parse((dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" 23:59:59"))
.millisecondsSinceEpoch) /
1000;
return startDay.floor().toString() + "-" + endDay.floor().toString();
}
//生成日期文本
_createDateText(DateTime day) {
if (Utils.isOneDay(day, dateTime)) return; //日期没变
setState(() {
DateTime dateNow = DateTime.now();
dateText = Utils.addZeroNumber(day.month) +
"月" +
Utils.addZeroNumber(day.day) +
"日";
if (Utils.isOneDay(day, dateNow)) {
dateText += " 今天";
} else if (Utils.isOneDay(day, dateNow.add(Duration(days: 1)))) {
dateText += " 明天";
} else if (Utils.isOneDay(day, dateNow.add(Duration(days: 2)))) {
dateText += " 后天";
} else {
dateText += " 周${Utils.formatWeekDayNum(day.weekday)}";
}
dateTime = day;
});
_getReserveList();
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: areaTableMap.isEmpty
? Container(
width: double.infinity,
height: double.infinity,
color: MyColours.color_ffffff,
)
: Column(
children: <Widget>[
MyAppBar(
"桌位",
showBack: true,
),
Container(
color: MyColours.color_ffffff,
width: double.infinity,
padding: EdgeInsets.symmetric(vertical: ScreenUtil().setHeight(16)),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child: Center(
child: GestureDetector(
onTap: () {
DialogUtil.showCalendarDialog(context, dateTime)
.then((day) {
if (day != null) {
_createDateText(day);
}
});
},
child: Container(
child: Text(
dateText,
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setSp(34)),
child: Consumer<TableManagerModel>(
builder: (context,model,child){
return Column(
children: <Widget>[
MyAppBar(
"桌位",
showBack: false
),
Container(
color: MyColours.color_ffffff,
width: double.infinity,
padding: EdgeInsets.symmetric(vertical: ScreenUtil().setHeight(16)),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child: Center(
child: GestureDetector(
onTap: () {
DialogUtil.showCalendarDialog(context, tableManagerModel.dateTime)
.then((day) {
if (day != null) {
tableManagerModel.createDateText(context,day);
}
});
},
child: Container(
child: Text(
tableManagerModel.dateText,
style: TextStyle(
color: MyColours.color_199095,
fontSize: ScreenUtil().setSp(34)),
),
),
),
),
),
),
),
MyDivider(
ScreenUtil().setWidth(2),
ScreenUtil().setHeight(68),
color: MyColours.color_E0E0E0,
),
Expanded(
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(30)),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Offstage(
offstage: morning == "00:00-00:00" ? true : false,
child: Padding(
padding: EdgeInsets.only(
right: ScreenUtil().setWidth(18)),
child: CommonButton(
content: "早市",
state: currTimeIndex == 1 ? 1 : 0,
width: 92,
height: 48,
fontSize: 32,
onPress: () {
if (currTimeIndex == 1) return;
setState(() {
currTimeIndex = 1;
});
_getReserveList();
},
))),
Offstage(
offstage: noon == "00:00-00:00" ? true : false,
child: Padding(
padding: EdgeInsets.only(
right: ScreenUtil().setWidth(18)),
child: CommonButton(
content: "午市",
state: currTimeIndex == 2 ? 1 : 0,
width: 92,
height: 48,
fontSize: 32,
onPress: () {
if (currTimeIndex == 2) return;
setState(() {
currTimeIndex = 2;
});
_getReserveList();
},
))),
Offstage(
offstage: night == "00:00-00:00" ? true : false,
child: Container(
// padding: EdgeInsets.symmetric(
// horizontal: ScreenUtil().setWidth(10)),
child: CommonButton(
content: "晚市",
state: currTimeIndex == 3 ? 1 : 0,
width: 92,
height: 48,
fontSize: 32,
onPress: () {
if (currTimeIndex == 3) return;
setState(() {
currTimeIndex = 3;
});
_getReserveList();
},
)),
),
],
MyDivider(
ScreenUtil().setWidth(2),
ScreenUtil().setHeight(68),
color: MyColours.color_E0E0E0,
),
),
)
],
),
),
Expanded(
child: Container(
Expanded(
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(30)),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Offstage(
offstage: tableManagerModel.morning == "00:00-00:00" ? true : false,
child: Padding(
padding: EdgeInsets.only(
right: ScreenUtil().setWidth(18)),
child: CommonButton(
content: "早市",
state: tableManagerModel.currTimeIndex == 1 ? 1 : 0,
width: 92,
height: 48,
fontSize: 32,
onPress: () {
if (tableManagerModel.currTimeIndex == 1) return;
tableManagerModel.currTimeIndex = 1;
tableManagerModel.getReserveList(context);
},
))),
Offstage(
offstage: tableManagerModel.noon == "00:00-00:00" ? true : false,
child: Padding(
padding: EdgeInsets.only(
right: ScreenUtil().setWidth(18)),
child: CommonButton(
content: "午市",
state: tableManagerModel.currTimeIndex == 2 ? 1 : 0,
width: 92,
height: 48,
fontSize: 32,
onPress: () {
if (tableManagerModel.currTimeIndex == 2) return;
tableManagerModel.currTimeIndex = 2;
tableManagerModel.getReserveList(context);
},
))),
Offstage(
offstage: tableManagerModel.night == "00:00-00:00" ? true : false,
child: Container(
// padding: EdgeInsets.symmetric(
// horizontal: ScreenUtil().setWidth(10)),
child: CommonButton(
content: "晚市",
state: tableManagerModel.currTimeIndex == 3 ? 1 : 0,
width: 92,
height: 48,
fontSize: 32,
onPress: () {
if (tableManagerModel.currTimeIndex == 3) return;
tableManagerModel.currTimeIndex = 3;
tableManagerModel.getReserveList(context);
},
)),
),
],
),
),
)
],
),
),
Container(
height: ScreenUtil().setWidth(20),
width: double.infinity,
color: MyColours.color_f5f5f5,
),
Expanded(
child: Consumer<TableManagerModel>(
builder: (context,model,child){
if (model.pageState != PageState.Success) {
return ExceptionPage(
pageState: model.pageState,
callback: () {
if(tableManagerModel.tableOuterList.isEmpty){
tableManagerModel.getTableList(context);
}else{
tableManagerModel.getReserveList(context);
}
},
emptyMsg: "暂时没有桌位哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
);
}else{
return Container(
color: MyColours.color_ffffff,
child: Row(
children: <Widget>[
... ... @@ -384,15 +192,21 @@ class TableManagerPageState extends State<TableManagerPage> {
color: MyColours.color_f1f1f1,
child: ListView.builder(
itemBuilder: (context, index) {
return AreaItem(areas[index], currentArea,
(area) {
setState(() {
currentArea = (area as Area).name;
});
});
return Selector<TableManagerModel,Area>(
selector: (context,model)=>model.areas[index],
builder: (context,area,_){
return AreaItem(area, tableManagerModel.currentArea,
(area) {
setState(() {
tableManagerModel.currentArea = (area as Area).name;
tableManagerModel.currentTables=tableManagerModel.areaTableMap[tableManagerModel.currentArea];
});
});
},
);
},
itemExtent: ScreenUtil().setHeight(207),
itemCount: areas.length,
itemCount: tableManagerModel.areas.length,
),
),
Expanded(
... ... @@ -409,55 +223,93 @@ class TableManagerPageState extends State<TableManagerPage> {
crossAxisCount: 3,
childAspectRatio: 8 / 9),
itemBuilder: (context, index) {
return TableItem(
areaTableMap[currentArea][index],
onSelected: (table) {
if ((table as t.Table).selected) {
selectTables.add(table);
} else {
selectTables.removeWhere(
(t) => t.id == table.id);
}
},
canSelected: false,
canChoose: false,
tableMap: tableMap,
rid: "");
return Selector<TableManagerModel,t.Table>(
shouldRebuild: (pre,next)=>true,
selector: (context,model)=>model.currentTables[index],
builder: (context,table,_){
return TableItem(
table,
onSelected: (table) {
if ((table as t.Table).selected) {
tableManagerModel.selectTables.add(table);
} else {
tableManagerModel.selectTables.removeWhere(
(t) => t.id == table.id);
}
DialogUtil.showTableManagerDialog(context, table).then((value){
if(value!=null){
switch(value){
case 1://查看详情
NavigatorUtil.goNotebookDetailPage(context, tableManagerModel.tableMap[table.id].id);
break;
case 2://订座
NavigatorUtil.goNoteBookChangePage(context, NotebookDetail.fromTableManager(tableManagerModel.getCurrDdateStr(), tableManagerModel.currTimeIndex.toString(),table), "");
break;
case 3://停用,启用桌位
Map<String,String> params={
"id":(table as t.Table).id,
"status":(table as t.Table).enable=="1"?"0":"1"
};
tableManagerModel.setSwitchStatus(context, params).then((value){
if(value!=null){
(table as t.Table).enable=((int.parse((table as t.Table).enable)+1)%2).toString();
if((table as t.Table).enable=="1"){
for(Area area in tableManagerModel.areas){
if(area.name==tableManagerModel.currentArea){
if(table.sign != '5'&&table.sign != '1'){//已预订
area.count++;
}
break;
}
}
}else{
for(Area area in tableManagerModel.areas){
if(area.name==tableManagerModel.currentArea){
if(table.sign != '5'&&table.sign != '1'){//已预订
area.count--;
}
break;
}
}
}
tableManagerModel.notifyListeners();
}
});
break;
}
}
});
},
canSelected: false,
canChoose: false,
tableMap: tableManagerModel.tableMap,
rid: "");
},
);
},
itemCount: areaTableMap[currentArea].length,
itemCount: tableManagerModel.currentTables.length,
)),
],
)),
)
],
),
),
);
}
},
),
],
),
],
);
},
),
);
}
tableToTableList(t.Table table) {
TableList _tableList = TableList(
'', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
_tableList.id = table.id;
_tableList.rid = table.rid;
_tableList.tid = table.tid;
_tableList.name = table.name;
_tableList.tablePnum = table.table_pnum;
_tableList.sellerid = null;
_tableList.qrcode = null;
_tableList.mostPnum = table.most_pnum;
_tableList.hot = null;
_tableList.orderO = table.order_o;
_tableList.status = table.status;
_tableList.enable = table.enable;
_tableList.spell = table.spell;
_tableList.cdate = null;
_tableList.rname = table.rname;
_tableList.regionName = table.rname;
_tableList.selected = true;
return _tableList;
@override
void dispose() {
// TODO: implement dispose
super.dispose();
EventBus().off("refresh_tablemanager");
}
}
... ...
import 'dart:convert';
import 'dart:io';
import 'package:common_utils/common_utils.dart';
import 'package:contacts_service/contacts_service.dart';
import 'package:dio/dio.dart';
import 'package:flutter/cupertino.dart';
... ... @@ -9,7 +10,6 @@ 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/user_model.dart';
import 'package:one_key/utils/log_util.dart';
import 'package:one_key/utils/misc.dart';
import 'package:provider/provider.dart';
... ...
... ... @@ -46,9 +46,8 @@ class EnterModel with ChangeNotifier {
isSetDate = '0';
}
//构造函数,初始化
EnterModel(this.detailEntity) {
// clearData();
initData(NotebookDetail notebookDetail){
this.detailEntity=notebookDetail;
print(detailEntity);
if (detailEntity.phone != '0') {
phoneController.text = detailEntity.phone;
... ... @@ -111,7 +110,7 @@ class EnterModel with ChangeNotifier {
}
/// 初始化 早市、午市、晚市
_initSunDateList(morning, noon, night) {
_initSunDateList(BuildContext context,morning, noon, night) {
String ddateSolt = detailEntity.ddate_solt;
if (morning != '') {
sunDateList.add({
... ... @@ -119,7 +118,8 @@ class EnterModel with ChangeNotifier {
'dayText': '',
'ddateSolt': 1,
'key': 'morning',
'isSelect': ddateSolt == '1' ? true : false
'isSelect': ddateSolt == '1' ? true : false,
"isEnable":!isOverMorning(DateTime.fromMillisecondsSinceEpoch(int.parse(detailEntity.ddate)*1000), context)
});
}
if (noon != '') {
... ... @@ -128,21 +128,75 @@ class EnterModel with ChangeNotifier {
'dayText': '',
'ddateSolt': 2,
'key': 'noon',
'isSelect': ddateSolt == '2' ? true : false
'isSelect': ddateSolt == '2' ? true : false,
"isEnable":!isOverNoon(DateTime.fromMillisecondsSinceEpoch(int.parse(detailEntity.ddate)*1000), context)
});
}
if (noon != '') {
if (night != '') {
sunDateList.add({
'dateText': '晚市',
'dayText': '',
'ddateSolt': 3,
'key': 'night',
'isSelect': ddateSolt == '3' ? true : false
'isSelect': ddateSolt == '3' ? true : false,
"isEnable":!isOverNight(DateTime.fromMillisecondsSinceEpoch(int.parse(detailEntity.ddate)*1000), context)
});
}
notifyListeners();
}
updateSunDateList(DateTime dateTime,BuildContext context){
UserModel userModel=Provider.of<UserModel>(context,listen: false);
for(Map item in sunDateList){
item["isEnable"]=true;
if(item['dateText']=="早市"){
item["isEnable"]=!isOverMorning(dateTime, context);
}else if(item['dateText']=="午市"){
item["isEnable"]=!isOverNoon(dateTime, context);
}else if(item['dateText']=="晚市"){
item["isEnable"]=!isOverNight(dateTime, context);
}
}
}
//当前时间是否查过所选日期早市
bool isOverMorning(DateTime dateTime,BuildContext context){
int millsNow=DateTime.now().millisecondsSinceEpoch;
UserModel userModel=Provider.of<UserModel>(context,listen: false);
String morning=userModel.user.morning==""?"00:00-00:00":userModel.user.morning;
String endMorning=morning.split("-")[1];
int endMorningMills=DateUtil.getDateMsByTimeStr(DateUtil.formatDate(dateTime).replaceRange(11,19, "$endMorning:00"));
if(millsNow>endMorningMills)return true;
return false;
}
//当前时间是否查过所选日期午市
bool isOverNoon(DateTime dateTime,BuildContext context){
int millsNow=DateTime.now().millisecondsSinceEpoch;
UserModel userModel=Provider.of<UserModel>(context,listen: false);
String noon=userModel.user.noon==""?"00:00-00:00":userModel.user.noon;
String endNoon=noon.split("-")[1];
int endNoonMills=DateUtil.getDateMsByTimeStr(DateUtil.formatDate(dateTime).replaceRange(11,19, "$endNoon:00"));
if(millsNow>endNoonMills)return true;
return false;
}
//当前时间是否查过所选日期晚市
bool isOverNight(DateTime dateTime,BuildContext context){
int millsNow=DateTime.now().millisecondsSinceEpoch;
UserModel userModel=Provider.of<UserModel>(context,listen: false);
String night=userModel.user.night==""?"00:00-00:00":userModel.user.night;
String endNight=night.split("-")[1];
int endNightMills=DateUtil.getDateMsByTimeStr(DateUtil.formatDate(dateTime).replaceRange(11,19, "$endNight:00"));
if(millsNow>endNightMills)return true;
return false;
}
//人数
_initPersonNumList() {
String pnum = detailEntity.pnum;
... ... @@ -241,7 +295,7 @@ class EnterModel with ChangeNotifier {
? dailyMap.putIfAbsent('night', () => '')
: dailyMap.putIfAbsent(
'night', () => _getHourAndMinute(model.daily.night, 3, model));
_initSunDateList(model.daily.morning, model.daily.noon, model.daily.night);
_initSunDateList(context,model.daily.morning, model.daily.noon, model.daily.night);
}
//根据获取时间 11:00-12:30 获取30分钟间隔组装的数组
... ... @@ -380,6 +434,7 @@ class EnterModel with ChangeNotifier {
} else {
Utils.showToast(baseResp.msg ?? "");
}
tableList = [];
for (int i = 0; i < itemModelList.length; i++) {
... ... @@ -543,7 +598,6 @@ class EnterModel with ChangeNotifier {
}
Map<String, String> params = {
'is_set_ddate': isSetDate,
"rid": detailEntity.id, //变更订单必传预定ID
"sid": userModel.user.sellerid, //商家ID
"tid": tableSelectInfo, //桌子ID: 格式 2,3,4
"pnum": pnum, //预定用餐人数
... ... @@ -552,16 +606,16 @@ class EnterModel with ChangeNotifier {
"phone": phoneController.text, //预订人电话
"cusdem": customController.text, //预订人需求:25汉字
"rdate": rdate, //预定用餐时间范围:时间戳 开始时间戳(time)-结束时间戳(time)
"ddate": '${ddate}'.substring(0, 10), //到店时间
"ddate": '$ddate'.substring(0, 10), //到店时间
"ddate_solt": ddateSolt
};
print(params);
print(params.toString());
BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
.request<Map<String, dynamic>>(
context, Method.get, HttpUrl.set_reserve_info,
data: params)
.catchError((error) {
print(error.toString());
print(error);
});
SunReserveInfoModel itemModel;
if (baseResp == null) return itemModel;
... ...
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/models/message.dart';
... ... @@ -7,7 +8,6 @@ import 'package:one_key/net/http_url.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:audioplayers/audio_cache.dart';
import 'package:one_key/utils/log_util.dart';
import 'package:one_key/utils/utils.dart';
class MessageDialogModel extends ChangeNotifier{
... ...
... ... @@ -6,7 +6,6 @@ import 'package:one_key/models/message.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/utils/log_util.dart';
import 'package:one_key/utils/utils.dart';
class MessageModel extends ChangeNotifier {
... ...
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';
... ... @@ -131,7 +132,7 @@ class NotebookDetailChangeModel with ChangeNotifier {
'isSelect': ddateSolt == '2' ? true : false
});
}
if (noon != '') {
if (night != '') {
sunDateList.add({
'dateText': '晚市',
'dayText': '',
... ... @@ -244,7 +245,7 @@ class NotebookDetailChangeModel with ChangeNotifier {
_initSunDateList(model.daily.morning, model.daily.noon, model.daily.night);
}
//根据获取时间 11:00-12:30 获取30分钟间隔组装的数组
//根据获取时间 11:00-12:30 获取30分钟间隔组装的数组
_getHourAndMinute(
String hourAndMinuteStr, int mnd, SunSellerInfoModel model) {
List tempDate = hourAndMinuteStr.split("-");
... ... @@ -357,11 +358,13 @@ class NotebookDetailChangeModel with ChangeNotifier {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
Map<String, String> params = {
"sid": userModel.user.sellerid,
"rid": detailEntity.id,
"rdate": rdate,
'ddate_solt': ddate_solt,
'pnum': pnum
};
if(detailEntity.id.isNotEmpty&&detailEntity.id!="-1"){
params['rid']=detailEntity.id;
}
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.get_table_list,
data: params)
... ... @@ -470,7 +473,7 @@ class NotebookDetailChangeModel with ChangeNotifier {
}
}
///录入顾客订座相关信息,同时更新商家桌位状态
///录入更改内部预订
Future<SunReserveInfoModel> setReserveInfo(BuildContext context) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
String pnum = '6';
... ... @@ -501,6 +504,7 @@ class NotebookDetailChangeModel with ChangeNotifier {
String timeStr = ymyStr + ' ' + ddateStr + ':00';
// int start = DateUtil.getDateMsByTimeStr(timeStr);
LogUtil.v(timeStr);
// String tempDdate = ymyStr + ' ' + ddateStr + ':00';
int ddate = DateUtil.getDateMsByTimeStr(timeStr);
String tableSelectInfo = '';
... ... @@ -532,18 +536,18 @@ class NotebookDetailChangeModel with ChangeNotifier {
keys = 'night';
}
if (keys != '') {
String start = '${ddate}'.substring(0, 10);
List temp = dailyMap[keys];
String timeStrStart = ymyStr + ' ' + temp.first['title'] + ':00';
String timeStrEnd = ymyStr + ' ' + temp.last['title'] + ':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 = {
'is_set_ddate': isSetDate,
"rid": detailEntity.id, //变更订单必传预定ID
"sid": userModel.user.sellerid, //商家ID
"tid": tableSelectInfo, //桌子ID: 格式 2,3,4
"pnum": pnum, //预定用餐人数
... ... @@ -551,10 +555,14 @@ class NotebookDetailChangeModel with ChangeNotifier {
"sex": sex, //预订人姓名:1:男 2:女
"phone": phoneController.text, //预订人电话
"cusdem": customController.text, //预订人需求:25汉字
'note_name':userModel.user.account,
'type':"0",//内部预订
"rdate": rdate, //预定用餐时间范围:时间戳 开始时间戳(time)-结束时间戳(time)
"ddate": '${ddate}'.substring(0, 10), //到店时间
"ddate_solt": ddateSolt
};
if(detailEntity.id.isNotEmpty&&detailEntity.id!="-1"){
params['rid']=detailEntity.id;
}
print(params);
BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
.request<Map<String, dynamic>>(
... ... @@ -574,7 +582,119 @@ class NotebookDetailChangeModel with ChangeNotifier {
baseResp.responseData['data']['row'] != null) {
itemModel = ReserveInfoModel.fromJson(baseResp.responseData).data;
} else {
Utils.showToast(baseResp.msg ?? "变更预订失败,请重试");
Utils.showToast(baseResp.msg ?? detailEntity.id=="-1"?"录入预订订单失败,请重试!":"变更预订订单失败,请重试!");
}
return itemModel;
}
}
//更改在线预订
Future<SunReserveInfoModel> updateOnlineReserveInfo(BuildContext context) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
String pnum = '6';
for (var item in personNumList) {
if (item['isSelect']) {
pnum = item['dateText'];
}
}
if (pnum == '') {
pnum = '6';
}
String sex = '1';
for (var item in sexList) {
if (item['select']) {
sex = item['code'];
}
}
//当前选中 月 日string
String mdStr = '';
//今天 明天 其他天
for (var item in dateList) {
if (item['select'] == true) {
mdStr = item['title'];
}
}
String timeNowYear = DateUtil.formatDate(DateTime.now(), format: 'yyyy');
String ymyStr = timeNowYear + '-' + mdStr; //年月日
String timeStr = ymyStr + ' ' + ddateStr + ':00';
// int start = DateUtil.getDateMsByTimeStr(timeStr);
// String tempDdate = ymyStr + ' ' + ddateStr + ':00';
int ddate = DateUtil.getDateMsByTimeStr(timeStr);
String tableSelectInfo = '';
for (TableList item in tableList) {
// if (item.selected) {
tableSelectInfo += ',${item.id}';
// }
}
print(tableSelectInfo);
if (tableSelectInfo.startsWith(',')) {
tableSelectInfo = tableSelectInfo.substring(1);
}
print(tableSelectInfo);
String rdate = '';
String ddateSolt = '';
print(sunDateList);
for (var item in sunDateList) {
if (item['isSelect'] == true) {
String keys = '';
ddateSolt = '${item['ddateSolt']}';
if (item['ddateSolt'] == 1) {
//早市
keys = 'morning';
} else if (item['ddateSolt'] == 2) {
//午市
keys = 'noon';
} else if (item['ddateSolt'] == 3) {
//晚市
keys = 'night';
}
if (keys != '') {
List temp = dailyMap[keys];
String timeStrStart = ymyStr + ' ' + temp.first['title'] + ':00';
String timeStrEnd = ymyStr + ' ' + temp.last['title'] + ':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 = {
'is_set_ddate': isSetDate,
"sid": userModel.user.sellerid, //商家ID
"tid": tableSelectInfo, //桌子ID: 格式 2,3,4
"pnum": pnum, //预定用餐人数
"rname": nameController.text, //预订人姓名
"sex": sex, //预订人姓名:1:男 2:女
"phone": phoneController.text, //预订人电话
"cusdem": customController.text, //预订人需求:25汉字
'type':"1",//在线预订
"rdate": rdate, //预定用餐时间范围:时间戳 开始时间戳(time)-结束时间戳(time)
"ddate": '${ddate}'.substring(0, 10), //到店时间
"ddate_solt": ddateSolt
};
print(params);
BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
.request<Map<String, dynamic>>(
context, Method.get, 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;
}
... ...
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/constant/error.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/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/models/table.dart' as t;
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';
import 'notebook_model.dart';
class TableManagerModel with ChangeNotifier{
List<Area> areas = []; //区域列表
List<t.Table> selectTables = []; //选择的桌位
List<TableOuter> tableOuterList = []; //区域-桌位列表
Map<String, List<t.Table>> areaTableMap = {}; //区域-桌位Map
List<t.Table> currentTables=[];//当前显示的区域-桌位
Map<String, Notebook> tableMap = {}; //记录已预订桌位对应的订单
String currentArea; //当前选中区域
DateTime dateTime=DateTime.now();
String dateText = ""; //当前显示日期时间
int currTimeIndex = 1; //当前选中时间段
String morning; //早市时间段
String noon; //午市时间段
String night; //晚市时间段
UserModel userModel;
PageState pageState = PageState.Loading;
//初始化时间
initTime(BuildContext context) async {
userModel = Provider.of<UserModel>(context, listen: false);
dateTime = DateTime.now();
dateText = Utils.addZeroNumber(dateTime.month) +
"月" +
Utils.addZeroNumber(dateTime.day) +
"日" +
" 今天";
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;
if (dateTime.isBefore(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
morning.split("-")[1] +
":00"))) {
//未过早市
currTimeIndex = 1;
} else if (dateTime.isAfter(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
morning.split("-")[1] +
":00")) &&
dateTime.isBefore(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
noon.split("-")[1] +
":00"))) {
//过了早市,未过午市
currTimeIndex = 2;
} else if (dateTime.isAfter(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
noon.split("-")[1] +
":00")) &&
dateTime.isBefore(DateTime.parse(dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" " +
night.split("-")[1] +
":00"))) {
//过了午市,未过晚市
currTimeIndex = 3;
} else {
//过了晚市
currTimeIndex = 3;
}
await getTableList(context);
getReserveList(context);
}
getCurrDdateStr(){
String currSelectTime="";
if(currTimeIndex==1){
currSelectTime=morning.split("-")[0];
}else if(currTimeIndex==2){
currSelectTime=noon.split("-")[0];
}else{
currSelectTime=night.split("-")[0];
}
String ddateStr=DateUtil.getDateMsByTimeStr(DateUtil.formatDate(dateTime).replaceRange(11,19, "$currSelectTime:00")).toString();
return ddateStr.substring(0,10);
}
//获取桌位数据
Future<List<TableOuter>> getTableList(BuildContext context,Map<String,String> params) async {
Future<List<TableOuter>> getTableList(BuildContext context) async {
pageState = PageState.Loading;
notifyListeners();
Map<String, String> params = {"sellerid": userModel.user.sellerid};
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.table_list,
data: params,showLoading: true)
data: params,showLoading: false)
.catchError((error) {
print(error.toString());
if (error is MyError) {
switch (error.type) {
case 1:
pageState = PageState.ConnectivityError;
break;
case 2:
pageState = PageState.ConnectivityTimeOut;
break;
default:
pageState = PageState.ConnectivityError;
break;
}
}
notifyListeners();
});
tableOuterList=[];
if(baseResp.code==Constant.status_success){
return (baseResp.data[0] as List).map((value){
if ((baseResp.data[0] as List).isEmpty) {
pageState = PageState.Empty;
notifyListeners();
}
tableOuterList=(baseResp.data[0] as List).map((value){
TableOuter tableOuter=TableOuter();
tableOuter.name=value["name"];
tableOuter.list=(value["list"] as List).map((table){
... ... @@ -28,6 +165,138 @@ class TableManagerModel with ChangeNotifier{
return tableOuter;
}).toList();
}
return [];
return tableOuterList;
}
//获取已预订列表
getReserveList(BuildContext context) async {
tableMap.clear();
NoteBookModel model = new NoteBookModel();
Map<String, String> params = {
"sid": userModel.user.sellerid,
"rdate": _getRdate(),
"ddate_solt": currTimeIndex.toString(),
"y": "200",
"x": "1",
"keywords": "",
"sort": "1"
};
pageState = PageState.Loading;
notifyListeners();
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) {
tableMap["$tid"] = notebook;
}
}
}
print(tableMap);
initData();
}
//获取一天开始-结束时间字符串
String _getRdate() {
//一天开始时间
double startDay = (DateTime.parse((dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" 00:00:00"))
.millisecondsSinceEpoch) /
1000;
//一天结束时间
double endDay = (DateTime.parse((dateTime.year.toString() +
"-" +
Utils.addZeroNumber(dateTime.month) +
"-" +
Utils.addZeroNumber(dateTime.day) +
" 23:59:59"))
.millisecondsSinceEpoch) /
1000;
return startDay.floor().toString() + "-" + endDay.floor().toString();
}
//初始桌位数据
initData() {
areas.clear();
areaTableMap.clear();
for (TableOuter outer in tableOuterList) {
int count = 0;
for (t.Table table in outer.list) {
table.sign = "";
table.notebookId = "";
table.reserver = "";
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;
} else {
table.sign = "";
table.notebookId = "";
if (table.enable == "1") {
count++;
}
}
} else {//用餐中
table.sign = "2";
table.notebookId = "";
}
}
areaTableMap["${outer.name}"] = outer.list;
Area area = Area();
area.name = outer.name;
area.count = count;
areas.add(area);
}
currentArea = areaTableMap.keys.first;
currentTables=areaTableMap[currentArea];
pageState = PageState.Success;
notifyListeners();
}
//生成日期文本
createDateText(BuildContext context,DateTime day) {
if (Utils.isOneDay(day, dateTime)) return; //日期没变
DateTime dateNow = DateTime.now();
dateText = Utils.addZeroNumber(day.month) +
"月" +
Utils.addZeroNumber(day.day) +
"日";
if (Utils.isOneDay(day, dateNow)) {
dateText += " 今天";
} else if (Utils.isOneDay(day, dateNow.add(Duration(days: 1)))) {
dateText += " 明天";
} else if (Utils.isOneDay(day, dateNow.add(Duration(days: 2)))) {
dateText += " 后天";
} else {
dateText += " 周${Utils.formatWeekDayNum(day.weekday)}";
}
dateTime = day;
getReserveList(context);
}
//获取桌位数据
Future<dynamic> setSwitchStatus(BuildContext context,Map<String,String> params) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.set_switch_status,
data: params,showLoading: true)
.catchError((error) {
print(error.toString());
});
if(baseResp==null)return null;
if(baseResp.code==Constant.status_success){
return baseResp.data;
}else{
Utils.showToast(baseResp.msg);
}
}
}
\ No newline at end of file
... ...
... ... @@ -2,6 +2,7 @@ import 'dart:convert';
import 'dart:io';
import 'dart:math';
import 'package:common_utils/common_utils.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
... ... @@ -13,7 +14,6 @@ import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/log_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/v_empty_view.dart';
... ...
... ... @@ -46,4 +46,5 @@ class MyColours {
static const Color color_E0E0E0 = Color(0xffE0E0E0);
static const Color color_E95750 = Color(0xffE95750);
static const Color color_A9E3E6 = Color(0xffA9E3E6);
static const Color color_e5e5e5 = Color(0xffe5e5e5);
}
... ...
... ... @@ -19,7 +19,6 @@ 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_detail_model.dart';
import 'package:one_key/utils/fluro_convert_utils.dart';
import 'package:one_key/utils/log_util.dart';
import 'package:provider/provider.dart';
// 登录页
... ...
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:one_key/pages/login/login_page.dart';
import 'package:one_key/utils/log_util.dart';
import 'route_handles.dart';
... ...
import 'dart:convert';
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_picker/flutter_picker.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
... ... @@ -7,13 +8,14 @@ import 'package:one_key/constant/constant.dart';
import 'package:one_key/pages/message/message_dialog_item.dart';
import 'package:one_key/provider/message_dialog_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/log_util.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/common_button.dart';
import 'package:one_key/widgets/table_item.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
import 'package:table_calendar/table_calendar.dart';
import 'package:one_key/models/table.dart' as t;
class DialogUtil {
//显示消息弹框
... ... @@ -524,6 +526,102 @@ class DialogUtil {
});
}
//显示桌位管理弹框
static Future<int> showTableManagerDialog(BuildContext context,t.Table table) {
return showModalBottomSheet(
context: context,
builder: (context) {
Widget widget = Container(
width: double.infinity,
color: MyColours.color_f1f1f1,
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
width: double.infinity,
alignment: Alignment.center,
padding: EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(20)),
child: Text("${table.name}",style: TextStyle(fontSize: ScreenUtil().setSp(30),color: MyColours.color_999999),),
),
Offstage(
offstage: table.enable=="0",
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Offstage(
offstage: !(table.signStr=="已预订"||table.signStr=="用餐中"),
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: (){
Navigator.of(context).pop(1);
},
child: Container(
width: double.infinity,
alignment: Alignment.center,
padding: EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(40)),
child: Text("查看详情",style: TextStyle(fontSize: ScreenUtil().setSp(34),color: MyColours.color_353535),),
),
)
),
Offstage(
offstage: table.signStr!="",
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: (){
Navigator.of(context).pop(2);
},
child: Container(
width: double.infinity,
alignment: Alignment.center,
padding: EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(40)),
child: Text("订座",style: TextStyle(fontSize: ScreenUtil().setSp(34),color: MyColours.color_353535),),
)
),
),
Container(
width: double.infinity,
height: ScreenUtil().setWidth(2),
color: MyColours.color_e5e5e5,
)
],
),
),
GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: (){
Navigator.of(context).pop(3);
},
child: Container(
width: double.infinity,
alignment: Alignment.center,
padding: EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(40)),
child: Text("${table.enable=='1'?'停用桌位':'启用桌位'}",style: TextStyle(fontSize: ScreenUtil().setSp(34),color: MyColours.color_353535),),
)
),
Container(
width: double.infinity,
height: ScreenUtil().setWidth(10),
color: MyColours.color_e5e5e5,
),
GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: (){
Navigator.of(context).pop();
},
child: Container(
width: double.infinity,
alignment: Alignment.center,
padding: EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(40)),
child: Text("取消",style: TextStyle(fontSize: ScreenUtil().setSp(34),color: MyColours.color_353535),),
)
),
],
),
);
return widget;
});
}
//显示选择客户经理弹框
static Future<List<int>> showSelectCusmanDialog(
BuildContext context, List<String> data, ValueChanged valueChanged) {
... ...
class LogUtil {
static const String _TAG_DEF = "###common_utils###";
static bool debuggable = false; //是否是debug模式,true: log v 不输出.
static String TAG = _TAG_DEF;
static void init({bool isDebug = false, String tag = _TAG_DEF}) {
debuggable = isDebug;
TAG = tag;
}
static void e(Object object, {String tag}) {
_printLog(tag, ':', object);
}
static void v(Object object, {String tag}) {
if (debuggable) {
_printLog(tag, ':', object);
}
}
static void _printLog(String tag, String stag, Object object) {
String da = object.toString();
String _tag = (tag == null || tag.isEmpty) ? TAG : tag;
while (da.isNotEmpty) {
if (da.length > 1024) {
print("$_tag $stag ${da.substring(0, 1024)}");
da = da.substring(1024, da.length);
} else {
print("$_tag $stag $da");
da = "";
}
}
}
}
\ No newline at end of file
... ... @@ -6,7 +6,6 @@ import 'package:one_key/models/table_list.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/route/routes.dart';
import 'package:one_key/utils/fluro_convert_utils.dart';
import 'package:one_key/utils/log_util.dart';
import 'package:one_key/utils/utils.dart';
import '../app.dart';
... ... @@ -32,7 +31,7 @@ class NavigatorUtil {
}
/// 首页
static void goHomePage(BuildContext context, {int initialIndex = 2}) {
static void goHomePage(BuildContext context, {int initialIndex = 1}) {
_navigateTo(context, "${Routes.home}?initialIndex=$initialIndex",
clearStack: true);
}
... ...
import 'dart:io';
import 'package:common_utils/common_utils.dart';
import 'package:connectivity/connectivity.dart';
import 'package:device_info/device_info.dart';
import 'package:flutter/cupertino.dart';
... ... @@ -8,7 +9,6 @@ import 'package:flutter_statusbarcolor/flutter_statusbarcolor.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:flutter/services.dart';
import 'package:fluwx/fluwx.dart';
import 'package:one_key/utils/log_util.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:package_info/package_info.dart';
import 'package:url_launcher/url_launcher.dart';
... ... @@ -143,4 +143,46 @@ class Utils {
}
return false;
}
/// 获取日期 今天 明天 后天等等
static int getDdate(List dateList) {
//当前选中 月 日string
String mdStr = '';
//今天 明天 其他天
for (var item in dateList) {
if (item['select'] == true) {
mdStr = item['title'];
}
}
String timeNowYear = DateUtil.formatDate(DateTime.now(), format: 'yyyy');
String ymyStr = timeNowYear + '-' + mdStr; //年月日
String timeStr = ymyStr + ' ' + "00:00:00";
int ddate = DateUtil.getDateMsByTimeStr(timeStr); //筛选日期时间戳
return ddate;
}
/// 获取早餐、午餐、晚餐字段 1 ,2, 3
static String getDdateSolt(List sunDateList) {
String ddateSolt = '';
for (var item in sunDateList) {
if (item['isSelect']) {
ddateSolt = '${item['ddateSolt']}';
}
}
return ddateSolt;
}
/// 选中前面的按钮获取人数,输入的自己获取
static String getPnum(List personNumList) {
String pnum = '6';
for (var item in personNumList) {
if (item['isSelect']) {
pnum = item['dateText'];
}
}
if (pnum == '更多') {
pnum = '6';
}
return pnum;
}
}
... ...
... ... @@ -228,13 +228,12 @@ class TableItemState extends State<TableItem> {
Positioned(
top: 3,
right: 5,
child: !(table.selected ?? false)
? Container()
: Image.asset(
"assets/icon_selected.png",
width: ScreenUtil().setWidth(40),
height: ScreenUtil().setWidth(40),
))
child: widget.canSelected&&(table.selected ?? false)
? Image.asset(
"assets/icon_selected.png",
width: ScreenUtil().setWidth(40),
height: ScreenUtil().setWidth(40),
):Container())
],
),
);
... ...