Commit 1cf3f302c870fb5a31031bb1229b41785dcedb3d

Authored by wdn127929
1 parent 92aacb1d

订座详情联系人置顶UI

@@ -57,7 +57,7 @@ class Notebook { @@ -57,7 +57,7 @@ class Notebook {
57 } 57 }
58 58
59 String get rnameStr { 59 String get rnameStr {
60 - if (rname.isEmpty) return ""; 60 + if (rname == null || rname.isEmpty) return "";
61 switch (sex) { 61 switch (sex) {
62 case "1": //先生 62 case "1": //先生
63 return rname + "先生"; 63 return rname + "先生";
@@ -152,6 +152,52 @@ class NotebookDetail { @@ -152,6 +152,52 @@ class NotebookDetail {
152 return md; 152 return md;
153 } 153 }
154 154
  155 + String get ddateF {
  156 + DateTime dateTime =
  157 + DateTime.fromMillisecondsSinceEpoch(int.parse(ddate) * 1000);
  158 + return _returnDate(dateTime);
  159 + }
  160 +
  161 + String get ddateSolt {
  162 + String md = '';
  163 + switch (ddate_solt) {
  164 + case "1":
  165 + md += " 早餐";
  166 + break;
  167 + case "2":
  168 + md += " 午餐";
  169 + break;
  170 + case "3":
  171 + md += " 晚餐";
  172 + break;
  173 + }
  174 + return md;
  175 + }
  176 +
  177 + String _returnDate(DateTime day) {
  178 + String date = '';
  179 + DateTime dateNow = DateTime.now();
  180 + String ymd = "${day.year}-" +
  181 + Utils.addZeroNumber(day.month) +
  182 + "-" +
  183 + Utils.addZeroNumber(day.day);
  184 + date += ymd;
  185 + date += ' (';
  186 + if (Utils.isOneDay(day, dateNow)) {
  187 + date += "今天 ";
  188 + } else if (Utils.isOneDay(day, dateNow.add(Duration(days: 1)))) {
  189 + date += "明天 ";
  190 + } else if (Utils.isOneDay(day, dateNow.add(Duration(days: 2)))) {
  191 + date += "后天 ";
  192 + }
  193 +
  194 + date += "周${Utils.formatWeekDayNum(day.weekday)}";
  195 + String time = Utils.lunarCalendarHolidays(day);
  196 + date += ' ${time}';
  197 + date += ')';
  198 + return date;
  199 + }
  200 +
155 String get ddateHm { 201 String get ddateHm {
156 if (type == "0" || (type == "1" && is_set_ddate == "1")) { 202 if (type == "0" || (type == "1" && is_set_ddate == "1")) {
157 DateTime dateTime = 203 DateTime dateTime =
This diff could not be displayed because it is too large.
@@ -6,28 +6,27 @@ import 'package:flutter/material.dart'; @@ -6,28 +6,27 @@ import 'package:flutter/material.dart';
6 import 'package:flutter_screenutil/flutter_screenutil.dart'; 6 import 'package:flutter_screenutil/flutter_screenutil.dart';
7 import 'package:one_key/constant/state.dart'; 7 import 'package:one_key/constant/state.dart';
8 import 'package:one_key/models/area.dart'; 8 import 'package:one_key/models/area.dart';
9 -import 'package:one_key/models/notebook_detail.dart';  
10 -import 'package:one_key/models/tableOuter.dart';  
11 -import 'package:one_key/models/table_list.dart'; 9 +
  10 +import 'package:one_key/models/reserve_info_model.dart';
  11 +
12 import 'package:one_key/pages/table/area_item_table.dart'; 12 import 'package:one_key/pages/table/area_item_table.dart';
13 -import 'package:one_key/pages/table/cc_menu_wdn.dart'; 13 +
14 import 'package:one_key/provider/table_manager_model.dart'; 14 import 'package:one_key/provider/table_manager_model.dart';
  15 +import 'package:one_key/provider/user_model.dart';
15 import 'package:one_key/res/colors.dart'; 16 import 'package:one_key/res/colors.dart';
16 import 'package:one_key/utils/dialog_util.dart'; 17 import 'package:one_key/utils/dialog_util.dart';
17 import 'package:one_key/utils/event_bus.dart'; 18 import 'package:one_key/utils/event_bus.dart';
18 import 'package:one_key/route/navigator_util.dart'; 19 import 'package:one_key/route/navigator_util.dart';
19 import 'package:one_key/utils/utils.dart'; 20 import 'package:one_key/utils/utils.dart';
20 import 'package:one_key/widgets/MyDivider.dart'; 21 import 'package:one_key/widgets/MyDivider.dart';
21 -import 'package:one_key/widgets/app_bar.dart';  
22 -import 'package:one_key/widgets/area_item.dart';  
23 -import 'package:one_key/widgets/common_button.dart'; 22 +
24 import 'package:one_key/widgets/common_button_flat.dart'; 23 import 'package:one_key/widgets/common_button_flat.dart';
25 import 'package:one_key/widgets/f_table_item.dart'; 24 import 'package:one_key/widgets/f_table_item.dart';
26 import 'package:one_key/widgets/h_empty_view.dart'; 25 import 'package:one_key/widgets/h_empty_view.dart';
27 import 'package:one_key/widgets/page_exception.dart'; 26 import 'package:one_key/widgets/page_exception.dart';
28 import 'package:one_key/widgets/round_button.dart'; 27 import 'package:one_key/widgets/round_button.dart';
29 import 'package:one_key/widgets/system_app_bar.dart'; 28 import 'package:one_key/widgets/system_app_bar.dart';
30 -import 'package:one_key/widgets/table_item.dart'; 29 +
31 import 'package:one_key/models/table.dart' as t; 30 import 'package:one_key/models/table.dart' as t;
32 import 'package:one_key/widgets/v_empty_view.dart'; 31 import 'package:one_key/widgets/v_empty_view.dart';
33 import 'package:provider/provider.dart'; 32 import 'package:provider/provider.dart';
@@ -61,6 +60,8 @@ class TableManagerPageState extends State<TableManagerPage> { @@ -61,6 +60,8 @@ class TableManagerPageState extends State<TableManagerPage> {
61 final ItemPositionsListener itemPositionsListener = 60 final ItemPositionsListener itemPositionsListener =
62 ItemPositionsListener.create(); 61 ItemPositionsListener.create();
63 62
  63 +
  64 +
64 @override 65 @override
65 void initState() { 66 void initState() {
66 // TODO: implement initState 67 // TODO: implement initState
@@ -73,6 +74,7 @@ class TableManagerPageState extends State<TableManagerPage> { @@ -73,6 +74,7 @@ class TableManagerPageState extends State<TableManagerPage> {
73 74
74 // personNumList.add('30以上'); 75 // personNumList.add('30以上');
75 76
  77 +
76 WidgetsBinding.instance.addPostFrameCallback((_) { 78 WidgetsBinding.instance.addPostFrameCallback((_) {
77 tableManagerModel.initTime(context); 79 tableManagerModel.initTime(context);
78 EventBus().on("refresh_tablemanager", (arg) { 80 EventBus().on("refresh_tablemanager", (arg) {
@@ -81,7 +83,7 @@ class TableManagerPageState extends State<TableManagerPage> { @@ -81,7 +83,7 @@ class TableManagerPageState extends State<TableManagerPage> {
81 print(tableManagerModel); 83 print(tableManagerModel);
82 }); 84 });
83 EventBus().on("refresh_tablePhoto", (arg) { 85 EventBus().on("refresh_tablePhoto", (arg) {
84 - //订座-完成预订 刷新管理桌位 86 + ///刷新图片显示
85 _refreshTablePhoto(); 87 _refreshTablePhoto();
86 }); 88 });
87 }); 89 });
@@ -431,7 +433,95 @@ class TableManagerPageState extends State<TableManagerPage> { @@ -431,7 +433,95 @@ class TableManagerPageState extends State<TableManagerPage> {
431 children: [ 433 children: [
432 RoundButton( 434 RoundButton(
433 onPressed: () async { 435 onPressed: () async {
434 - await tableManagerModel.setReserveInfo(context); 436 + SunReserveInfoModel _model =
  437 + await tableManagerModel.setReserveInfo(context);
  438 + if (_model != null &&
  439 + ObjectUtil.isNotEmpty(_model.row) &&
  440 + ObjectUtil.isNotEmpty(_model.row.id)) {
  441 + print('成功');
  442 + tableManagerModel.selectTables = [];
  443 + // _homeEnterModel.clearData();
  444 + bus.emit("refresh_tablemanager"); //刷新当前页面
  445 + bus.emit("refresh_book_list"); //刷新已预订列表
  446 + //进入订座详情页面
  447 + NavigatorUtil.goNotebookDetailPage(
  448 + context,
  449 + _model.row.id,
  450 + Provider.of<UserModel>(context, listen: false)
  451 + .user
  452 + .openid,
  453 + );
  454 + // String ddate_solt = '';
  455 + // if (_model.row.isSetDdate == '1') {
  456 + // String createtime =
  457 + // _model.row.ddate.toString() + '000';
  458 + // DateTime createTime =
  459 + // DateTime.fromMillisecondsSinceEpoch(
  460 + // int.parse(createtime));
  461 + // ddate_solt = DateUtil.formatDate(createTime,
  462 + // format: DateFormats.h_m);
  463 + // } else {
  464 + // if (_model.row.ddateSolt == '1') {
  465 + // ddate_solt = '早餐';
  466 + // } else if (_model.row.ddateSolt == '2') {
  467 + // ddate_solt = '午餐';
  468 + // } else if (_model.row.ddateSolt == '3') {
  469 + // ddate_solt = '晚餐';
  470 + // }
  471 + // }
  472 + // List<dynamic> tableinfo =
  473 + // convert.jsonDecode(_model.row.tableinfo);
  474 + // print(tableinfo);
  475 +
  476 + // String _nameStr =
  477 + // t.TableList.fromJson(tableinfo[0]).name;
  478 + // if (tableinfo.length > 1) {
  479 + // _nameStr = t.TableList.fromJson(tableinfo[0]).name +
  480 + // '等${tableinfo.length}桌';
  481 + // }
  482 + // LogUtil.v(_nameStr);
  483 + // String _tid = '';
  484 + // for (int i = 0; i < tableinfo.length; i++) {
  485 + // _tid += '${t.TableList.fromJson(tableinfo[i]).id},';
  486 + // }
  487 + // if (_tid.endsWith(',')) {
  488 + // _tid = _tid.substring(0, _tid.length - 1);
  489 + // }
  490 + // NavigatorUtil.goInvicationPage(
  491 + // context,
  492 + // _model.row.id,
  493 + // _nameStr,
  494 + // _model.row.ddate,
  495 + // ddate_solt,
  496 + // _model.row.phone,
  497 + // _model.row.ddateSolt,
  498 + // tid: _tid,
  499 + // replace: false);
  500 + // //今天 明天 其他天
  501 + // String tempTime = _homeEnterModel.ddateStr;
  502 + // if (_homeEnterModel.ddateStr == '') {
  503 + // if (currTimeIndex == 1) {
  504 + // tempTime = '08:00';
  505 + // } else if (currTimeIndex == 2) {
  506 + // tempTime = '12:00';
  507 + // } else if (currTimeIndex == 3) {
  508 + // tempTime = '18:00';
  509 + // }
  510 + // }
  511 + // print(_model.row.tableinfo);
  512 + // _clearData();
  513 + // String timeStr = dateText + ' ' + tempTime + ':00';
  514 +
  515 + // LogUtil.v(timeStr);
  516 + // int ddate = DateUtil.getDateMsByTimeStr(timeStr);
  517 +
  518 + // _homeEnterModel.getNewTableList(context, '${ddate}',
  519 + // currTimeIndex.toString(), pnum);
  520 +
  521 + // EventBus().emit("refresh_tablemanager"); //刷新桌位
  522 + } else {
  523 + Utils.showToast("预订失败!");
  524 + }
435 }, 525 },
436 text: '预订', 526 text: '预订',
437 fontSize: 48, 527 fontSize: 48,
@@ -4,6 +4,7 @@ import 'package:one_key/constant/error.dart'; @@ -4,6 +4,7 @@ import 'package:one_key/constant/error.dart';
4 import 'package:one_key/constant/state.dart'; 4 import 'package:one_key/constant/state.dart';
5 import 'package:one_key/models/manager.dart'; 5 import 'package:one_key/models/manager.dart';
6 import 'package:one_key/models/notebook_detail.dart'; 6 import 'package:one_key/models/notebook_detail.dart';
  7 +import 'package:one_key/models/user_history_entity.dart';
7 import 'package:one_key/net/base_resp.dart'; 8 import 'package:one_key/net/base_resp.dart';
8 import 'package:one_key/net/dio_util.dart'; 9 import 'package:one_key/net/dio_util.dart';
9 import 'package:one_key/net/http_url.dart'; 10 import 'package:one_key/net/http_url.dart';
@@ -19,6 +20,54 @@ class NotebookDetailModel extends ChangeNotifier { @@ -19,6 +20,54 @@ class NotebookDetailModel extends ChangeNotifier {
19 TextEditingController numController = TextEditingController(); 20 TextEditingController numController = TextEditingController();
20 String strTF; 21 String strTF;
21 String prestrTF; 22 String prestrTF;
  23 + TextEditingController phoneController = TextEditingController();
  24 + TextEditingController nameController = TextEditingController();
  25 + List sexList;
  26 + List<UserHistoryEntity> userHistorys = []; //历史录入
  27 + NotebookDetailModel() {
  28 + initSexList();
  29 + }
  30 +
  31 + ///称谓
  32 + initSexList() {
  33 + String sexStr = '1';
  34 + sexList = [
  35 + {
  36 + 'title': '先生',
  37 + 'select': sexStr == '1' ? true : false,
  38 + 'code': '1',
  39 + 'hasLeftBorder': true
  40 + },
  41 + {
  42 + 'title': '女士',
  43 + 'select': sexStr == '2' ? true : false,
  44 + 'code': '2',
  45 + 'hasLeftBorder': false
  46 + },
  47 + {
  48 + 'title': '公司',
  49 + 'select': sexStr == '3' ? true : false,
  50 + 'code': '3',
  51 + 'hasLeftBorder': false
  52 + }
  53 + ];
  54 + }
  55 +
  56 + //获取历史录入
  57 + getUserHistorys(BuildContext context, Map<String, String> params) async {
  58 + BaseResp<List> baseResp = await DioUtil()
  59 + .request<List>(context, Method.get, HttpUrl.get_reserve_user,
  60 + data: params, showLoading: false)
  61 + .catchError((error) {
  62 + print(error.toString());
  63 + });
  64 + if (baseResp != null && baseResp.code == Constant.status_success) {
  65 + userHistorys = baseResp.data.map<UserHistoryEntity>((value) {
  66 + return UserHistoryEntity.fromJson(value);
  67 + }).toList();
  68 + notifyListeners();
  69 + }
  70 + }
22 71
23 ///获取已预订订单 72 ///获取已预订订单
24 Future<NotebookDetail> getReserveDetail( 73 Future<NotebookDetail> getReserveDetail(
@@ -142,7 +191,14 @@ class NotebookDetailModel extends ChangeNotifier { @@ -142,7 +191,14 @@ class NotebookDetailModel extends ChangeNotifier {
142 // 编辑订单附加信息 191 // 编辑订单附加信息
143 192
144 Future<bool> upReserveInfo(BuildContext context, 193 Future<bool> upReserveInfo(BuildContext context,
145 - {String rid, String actualPum, String conAmount}) async { 194 + {String rid,
  195 + String actualPum,
  196 + String conAmount,
  197 + String dateStr,
  198 + String cusdem,
  199 + String sex,
  200 + String name,
  201 + String phone}) async {
146 Map<String, dynamic> params = { 202 Map<String, dynamic> params = {
147 "rid": rid, 203 "rid": rid,
148 }; 204 };
@@ -152,6 +208,21 @@ class NotebookDetailModel extends ChangeNotifier { @@ -152,6 +208,21 @@ class NotebookDetailModel extends ChangeNotifier {
152 if (conAmount != null) { 208 if (conAmount != null) {
153 params['con_amount'] = conAmount; 209 params['con_amount'] = conAmount;
154 } 210 }
  211 + if (dateStr != null) {
  212 + params['dateStr'] = dateStr;
  213 + }
  214 + if (cusdem != null) {
  215 + params['cusdem'] = cusdem;
  216 + }
  217 + if (sex != null) {
  218 + params['sex'] = sex;
  219 + }
  220 + if (name != null) {
  221 + params['name'] = name;
  222 + }
  223 + if (phone != null) {
  224 + params['phone'] = phone;
  225 + }
155 bool sucess = await _upReserveInfo(context, params); 226 bool sucess = await _upReserveInfo(context, params);
156 if (sucess) { 227 if (sucess) {
157 Utils.showToast("修改成功!"); 228 Utils.showToast("修改成功!");
@@ -55,6 +55,7 @@ class TableManagerModel with ChangeNotifier { @@ -55,6 +55,7 @@ class TableManagerModel with ChangeNotifier {
55 55
56 PageState pageState = PageState.Loading; 56 PageState pageState = PageState.Loading;
57 57
  58 +
58 Map dailyMap = {}; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟 59 Map dailyMap = {}; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟
59 bool swichState = false; //仅看空座 60 bool swichState = false; //仅看空座
60 String selectDateStr = ''; 61 String selectDateStr = '';
@@ -314,7 +315,10 @@ class TableManagerModel with ChangeNotifier { @@ -314,7 +315,10 @@ class TableManagerModel with ChangeNotifier {
314 "ddate": '${ddate}'.substring(0, 10), //到店时间 315 "ddate": '${ddate}'.substring(0, 10), //到店时间
315 'is_set_ddate': '1', 316 'is_set_ddate': '1',
316 "channel": '5', 317 "channel": '5',
317 - "uid": userModel.user.openid 318 + "uid": userModel.user.openid,
  319 + 'sex': '',
  320 + 'phone': '',
  321 + "cusdem": ''
318 }; 322 };
319 print(params); 323 print(params);
320 BaseResp<Map<String, dynamic>> baseResp = await DioUtil() 324 BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
@@ -6,8 +6,11 @@ class RowMultiText extends StatelessWidget { @@ -6,8 +6,11 @@ class RowMultiText extends StatelessWidget {
6 final String title; 6 final String title;
7 final String content; 7 final String content;
8 final TextAlign textAlign; 8 final TextAlign textAlign;
  9 + final Color textColor;
9 10
10 - RowMultiText(this.title, this.content, {this.textAlign = TextAlign.right}); 11 + RowMultiText(this.title, this.content,
  12 + {this.textAlign = TextAlign.right,
  13 + this.textColor = MyColours.color_828282});
11 14
12 @override 15 @override
13 Widget build(BuildContext context) { 16 Widget build(BuildContext context) {
@@ -24,9 +27,8 @@ class RowMultiText extends StatelessWidget { @@ -24,9 +27,8 @@ class RowMultiText extends StatelessWidget {
24 alignment: Alignment.centerLeft, 27 alignment: Alignment.centerLeft,
25 child: Text( 28 child: Text(
26 title, 29 title,
27 - style: TextStyle(  
28 - color: MyColours.color_828282,  
29 - fontSize: ScreenUtil().setSp(30)), 30 + style:
  31 + TextStyle(color: textColor, fontSize: ScreenUtil().setSp(30)),
30 ), 32 ),
31 ), 33 ),
32 Expanded( 34 Expanded(
@@ -569,6 +569,13 @@ packages: @@ -569,6 +569,13 @@ packages:
569 url: "https://pub.flutter-io.cn" 569 url: "https://pub.flutter-io.cn"
570 source: hosted 570 source: hosted
571 version: "3.5.1" 571 version: "3.5.1"
  572 + keyboard_visibility:
  573 + dependency: "direct main"
  574 + description:
  575 + name: keyboard_visibility
  576 + url: "https://pub.flutter-io.cn"
  577 + source: hosted
  578 + version: "0.5.6"
572 latlng: 579 latlng:
573 dependency: transitive 580 dependency: transitive
574 description: 581 description:
@@ -91,6 +91,8 @@ dependencies: @@ -91,6 +91,8 @@ dependencies:
91 package_info: ^0.4.0+18 91 package_info: ^0.4.0+18
92 # 获取设备信息 92 # 获取设备信息
93 device_info: ^0.4.2+4 93 device_info: ^0.4.2+4
  94 +#监听键盘
  95 + keyboard_visibility: ^0.5.6
94 96
95 # 获取通讯录 97 # 获取通讯录
96 contacts_service: ^0.4.6 98 contacts_service: ^0.4.6