Showing
13 changed files
with
1551 additions
and
100 deletions
lib/models/dsolt_xt.dart
0 → 100644
| @@ -28,29 +28,26 @@ class GetStaffModel { | @@ -28,29 +28,26 @@ class GetStaffModel { | ||
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | class GetStaffSunModel { | 30 | class GetStaffSunModel { |
| 31 | - String id; | ||
| 32 | String sid; | 31 | String sid; |
| 33 | String userId; | 32 | String userId; |
| 34 | - Null status; | ||
| 35 | - Null cdate; | 33 | + String nickName; |
| 34 | + String account; | ||
| 36 | 35 | ||
| 37 | - GetStaffSunModel({this.id, this.sid, this.userId, this.status, this.cdate}); | 36 | + GetStaffSunModel({this.sid, this.userId, this.nickName, this.account}); |
| 38 | 37 | ||
| 39 | GetStaffSunModel.fromJson(Map<String, dynamic> json) { | 38 | GetStaffSunModel.fromJson(Map<String, dynamic> json) { |
| 40 | - id = json['id']; | ||
| 41 | sid = json['sid']; | 39 | sid = json['sid']; |
| 42 | userId = json['user_id']; | 40 | userId = json['user_id']; |
| 43 | - status = json['status']; | ||
| 44 | - cdate = json['cdate']; | 41 | + nickName = json['nick_name']; |
| 42 | + account = json['account']; | ||
| 45 | } | 43 | } |
| 46 | 44 | ||
| 47 | Map<String, dynamic> toJson() { | 45 | Map<String, dynamic> toJson() { |
| 48 | final Map<String, dynamic> data = new Map<String, dynamic>(); | 46 | final Map<String, dynamic> data = new Map<String, dynamic>(); |
| 49 | - data['id'] = this.id; | ||
| 50 | data['sid'] = this.sid; | 47 | data['sid'] = this.sid; |
| 51 | data['user_id'] = this.userId; | 48 | data['user_id'] = this.userId; |
| 52 | - data['status'] = this.status; | ||
| 53 | - data['cdate'] = this.cdate; | 49 | + data['nick_name'] = this.nickName; |
| 50 | + data['account'] = this.account; | ||
| 54 | return data; | 51 | return data; |
| 55 | } | 52 | } |
| 56 | } | 53 | } |
lib/models/set_xuan_tai_model.dart
0 → 100644
| 1 | +import 'package:one_key/models/dsolt_xt.dart'; | ||
| 2 | +import 'package:one_key/models/table_list.dart' as t; | ||
| 3 | + | ||
| 4 | +class SetXuanTaiModel { | ||
| 5 | + String rid; | ||
| 6 | + String reserveOrder; | ||
| 7 | + String ddateInterval; | ||
| 8 | + String rdate; | ||
| 9 | + List<Tids> tids; | ||
| 10 | + List<Setmeal> setmeal; | ||
| 11 | + List<Wine> wine; | ||
| 12 | + List<Other> other; | ||
| 13 | + String remark; | ||
| 14 | + List<Images> images; | ||
| 15 | + | ||
| 16 | + String dateTimeShowxt = '请选择'; //宴会日期显示 选台 2022-08-02(周二 七月十五) | ||
| 17 | + DateTime dateTimext = DateTime.now(); //宴会日期 | ||
| 18 | + String cdShow = '请选择'; | ||
| 19 | + int cdSelIndex; | ||
| 20 | + String qsDateShow = '暂未选择'; //起始时间 | ||
| 21 | + String startDate = ''; | ||
| 22 | + String endDate = ''; | ||
| 23 | + List<t.TableList> tableList; | ||
| 24 | + | ||
| 25 | + SetXuanTaiModel( | ||
| 26 | + {this.rid, | ||
| 27 | + this.reserveOrder, | ||
| 28 | + this.ddateInterval, | ||
| 29 | + this.rdate, | ||
| 30 | + this.tids, | ||
| 31 | + this.setmeal, | ||
| 32 | + this.wine, | ||
| 33 | + this.other, | ||
| 34 | + this.remark, | ||
| 35 | + this.images}); | ||
| 36 | + | ||
| 37 | + SetXuanTaiModel.fromJson(Map<String, dynamic> json) { | ||
| 38 | + rid = json['rid']; | ||
| 39 | + reserveOrder = json['reserve_order']; | ||
| 40 | + ddateInterval = json['ddate_interval']; | ||
| 41 | + rdate = json['rdate']; | ||
| 42 | + if (json['tids'] = null) { | ||
| 43 | + tids = <Tids>[]; | ||
| 44 | + json['tids'].forEach((v) { | ||
| 45 | + tids.add(new Tids.fromJson(v)); | ||
| 46 | + }); | ||
| 47 | + } | ||
| 48 | + if (json['setmeal'] = null) { | ||
| 49 | + setmeal = <Setmeal>[]; | ||
| 50 | + json['setmeal'].forEach((v) { | ||
| 51 | + setmeal.add(new Setmeal.fromJson(v)); | ||
| 52 | + }); | ||
| 53 | + } | ||
| 54 | + if (json['wine'] = null) { | ||
| 55 | + wine = <Wine>[]; | ||
| 56 | + json['wine'].forEach((v) { | ||
| 57 | + wine.add(new Wine.fromJson(v)); | ||
| 58 | + }); | ||
| 59 | + } | ||
| 60 | + if (json['other'] = null) { | ||
| 61 | + other = <Other>[]; | ||
| 62 | + json['other'].forEach((v) { | ||
| 63 | + other.add(new Other.fromJson(v)); | ||
| 64 | + }); | ||
| 65 | + } | ||
| 66 | + remark = json['remark']; | ||
| 67 | + if (json['images'] = null) { | ||
| 68 | + images = <Images>[]; | ||
| 69 | + json['images'].forEach((v) { | ||
| 70 | + images.add(new Images.fromJson(v)); | ||
| 71 | + }); | ||
| 72 | + } | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + Map<String, dynamic> toJson() { | ||
| 76 | + final Map<String, dynamic> data = new Map<String, dynamic>(); | ||
| 77 | + data['rid'] = this.rid; | ||
| 78 | + data['reserve_order'] = this.reserveOrder; | ||
| 79 | + data['ddate_interval'] = this.ddateInterval; | ||
| 80 | + data['rdate'] = this.rdate; | ||
| 81 | + if (this.tids = null) { | ||
| 82 | + data['tids'] = this.tids.map((v) => v.toJson()).toList(); | ||
| 83 | + } | ||
| 84 | + if (this.setmeal = null) { | ||
| 85 | + data['setmeal'] = this.setmeal.map((v) => v.toJson()).toList(); | ||
| 86 | + } | ||
| 87 | + if (this.wine = null) { | ||
| 88 | + data['wine'] = this.wine.map((v) => v.toJson()).toList(); | ||
| 89 | + } | ||
| 90 | + if (this.other = null) { | ||
| 91 | + data['other'] = this.other.map((v) => v.toJson()).toList(); | ||
| 92 | + } | ||
| 93 | + data['remark'] = this.remark; | ||
| 94 | + if (this.images = null) { | ||
| 95 | + data['images'] = this.images.map((v) => v.toJson()).toList(); | ||
| 96 | + } | ||
| 97 | + return data; | ||
| 98 | + } | ||
| 99 | +} | ||
| 100 | + | ||
| 101 | +class Tids { | ||
| 102 | + String tid; | ||
| 103 | + String numStr; | ||
| 104 | + String name; | ||
| 105 | + | ||
| 106 | + Tids({this.tid, this.numStr, this.name}); | ||
| 107 | + | ||
| 108 | + Tids.fromJson(Map<String, dynamic> json) { | ||
| 109 | + tid = json['tid']; | ||
| 110 | + numStr = json['num']; | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + Map<String, dynamic> toJson() { | ||
| 114 | + final Map<String, dynamic> data = new Map<String, dynamic>(); | ||
| 115 | + data['tid'] = this.tid; | ||
| 116 | + data['num'] = this.numStr; | ||
| 117 | + return data; | ||
| 118 | + } | ||
| 119 | +} | ||
| 120 | + | ||
| 121 | +class Setmeal { | ||
| 122 | + String setmealId; | ||
| 123 | + String price; | ||
| 124 | + String finalPrice; | ||
| 125 | + String pnum; | ||
| 126 | + String min; | ||
| 127 | + String spare; | ||
| 128 | + | ||
| 129 | + Setmeal( | ||
| 130 | + {this.setmealId, | ||
| 131 | + this.price, | ||
| 132 | + this.finalPrice, | ||
| 133 | + this.pnum, | ||
| 134 | + this.min, | ||
| 135 | + this.spare}); | ||
| 136 | + | ||
| 137 | + Setmeal.fromJson(Map<String, dynamic> json) { | ||
| 138 | + setmealId = json['setmeal_id']; | ||
| 139 | + price = json['price']; | ||
| 140 | + finalPrice = json['final_price']; | ||
| 141 | + pnum = json['pnum']; | ||
| 142 | + min = json['min']; | ||
| 143 | + spare = json['spare']; | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + Map<String, dynamic> toJson() { | ||
| 147 | + final Map<String, dynamic> data = new Map<String, dynamic>(); | ||
| 148 | + data['setmeal_id'] = this.setmealId; | ||
| 149 | + data['price'] = this.price; | ||
| 150 | + data['final_price'] = this.finalPrice; | ||
| 151 | + data['pnum'] = this.pnum; | ||
| 152 | + data['min'] = this.min; | ||
| 153 | + data['spare'] = this.spare; | ||
| 154 | + return data; | ||
| 155 | + } | ||
| 156 | +} | ||
| 157 | + | ||
| 158 | +class Wine { | ||
| 159 | + String wineId; | ||
| 160 | + String price; | ||
| 161 | + String finalPrice; | ||
| 162 | + String num; | ||
| 163 | + | ||
| 164 | + Wine({this.wineId, this.price, this.finalPrice, this.num}); | ||
| 165 | + | ||
| 166 | + Wine.fromJson(Map<String, dynamic> json) { | ||
| 167 | + wineId = json['wine_id']; | ||
| 168 | + price = json['price']; | ||
| 169 | + finalPrice = json['final_price']; | ||
| 170 | + num = json['num']; | ||
| 171 | + } | ||
| 172 | + | ||
| 173 | + Map<String, dynamic> toJson() { | ||
| 174 | + final Map<String, dynamic> data = new Map<String, dynamic>(); | ||
| 175 | + data['wine_id'] = this.wineId; | ||
| 176 | + data['price'] = this.price; | ||
| 177 | + data['final_price'] = this.finalPrice; | ||
| 178 | + data['num'] = this.num; | ||
| 179 | + return data; | ||
| 180 | + } | ||
| 181 | +} | ||
| 182 | + | ||
| 183 | +class Other { | ||
| 184 | + String otherId; | ||
| 185 | + String price; | ||
| 186 | + String finalPrice; | ||
| 187 | + String num; | ||
| 188 | + | ||
| 189 | + Other({this.otherId, this.price, this.finalPrice, this.num}); | ||
| 190 | + | ||
| 191 | + Other.fromJson(Map<String, dynamic> json) { | ||
| 192 | + otherId = json['other_id']; | ||
| 193 | + price = json['price']; | ||
| 194 | + finalPrice = json['final_price']; | ||
| 195 | + num = json['num']; | ||
| 196 | + } | ||
| 197 | + | ||
| 198 | + Map<String, dynamic> toJson() { | ||
| 199 | + final Map<String, dynamic> data = new Map<String, dynamic>(); | ||
| 200 | + data['other_id'] = this.otherId; | ||
| 201 | + data['price'] = this.price; | ||
| 202 | + data['final_price'] = this.finalPrice; | ||
| 203 | + data['num'] = this.num; | ||
| 204 | + return data; | ||
| 205 | + } | ||
| 206 | +} | ||
| 207 | + | ||
| 208 | +class Images { | ||
| 209 | + String url; | ||
| 210 | + | ||
| 211 | + Images({this.url}); | ||
| 212 | + | ||
| 213 | + Images.fromJson(Map<String, dynamic> json) { | ||
| 214 | + url = json['url']; | ||
| 215 | + } | ||
| 216 | + | ||
| 217 | + Map<String, dynamic> toJson() { | ||
| 218 | + final Map<String, dynamic> data = new Map<String, dynamic>(); | ||
| 219 | + data['url'] = this.url; | ||
| 220 | + return data; | ||
| 221 | + } | ||
| 222 | +} |
| @@ -292,4 +292,8 @@ class HttpUrl { | @@ -292,4 +292,8 @@ class HttpUrl { | ||
| 292 | static const String del_deposit = "?service=App.Banquet.DelDeposit"; // 删除宴会定金 | 292 | static const String del_deposit = "?service=App.Banquet.DelDeposit"; // 删除宴会定金 |
| 293 | static const String create_banquet = | 293 | static const String create_banquet = |
| 294 | "?service=App.Banquet.CreateBanquet"; //创建意向 | 294 | "?service=App.Banquet.CreateBanquet"; //创建意向 |
| 295 | + static const String set_banquet_info = | ||
| 296 | + "?service=App.Banquet.SetBanquetInfo"; //设置选台信息 | ||
| 297 | + | ||
| 298 | + | ||
| 295 | } | 299 | } |
| 1 | + | ||
| 2 | + | ||
| 1 | import 'dart:convert'; | 3 | import 'dart:convert'; |
| 2 | import 'dart:ui'; | 4 | import 'dart:ui'; |
| 3 | 5 | ||
| @@ -2507,3 +2509,4 @@ Widget remarkButton({GestureTapCallback onPress, content, isSelect = false}) { | @@ -2507,3 +2509,4 @@ Widget remarkButton({GestureTapCallback onPress, content, isSelect = false}) { | ||
| 2507 | ), | 2509 | ), |
| 2508 | ); | 2510 | ); |
| 2509 | } | 2511 | } |
| 2512 | + |
| 1 | +import 'dart:convert'; | ||
| 2 | + | ||
| 1 | import 'package:cached_network_image/cached_network_image.dart'; | 3 | import 'package:cached_network_image/cached_network_image.dart'; |
| 2 | import 'package:dotted_border/dotted_border.dart'; | 4 | import 'package:dotted_border/dotted_border.dart'; |
| 3 | import 'package:flutter/gestures.dart'; | 5 | import 'package:flutter/gestures.dart'; |
| @@ -10,11 +12,15 @@ import 'package:one_key/widgets/round_button.dart'; | @@ -10,11 +12,15 @@ import 'package:one_key/widgets/round_button.dart'; | ||
| 10 | import 'package:one_key/widgets/v_empty_view.dart'; | 12 | import 'package:one_key/widgets/v_empty_view.dart'; |
| 11 | import 'package:provider/provider.dart'; | 13 | import 'package:provider/provider.dart'; |
| 12 | 14 | ||
| 15 | +import '../../models/dsolt_xt.dart'; | ||
| 13 | import '../../models/feast_menu_model.dart'; | 16 | import '../../models/feast_menu_model.dart'; |
| 17 | +import '../../models/set_xuan_tai_model.dart'; | ||
| 18 | +import '../../models/upload_img_model.dart'; | ||
| 14 | import '../../provider/feast_model.dart'; | 19 | import '../../provider/feast_model.dart'; |
| 15 | import '../../provider/upload_img_provider.dart'; | 20 | import '../../provider/upload_img_provider.dart'; |
| 16 | import '../../provider/user_model.dart'; | 21 | import '../../provider/user_model.dart'; |
| 17 | import '../../res/colors.dart'; | 22 | import '../../res/colors.dart'; |
| 23 | +import '../../utils/ConvertNumberToChineseMoneyWords.dart'; | ||
| 18 | import '../../utils/dialog_util.dart'; | 24 | import '../../utils/dialog_util.dart'; |
| 19 | import '../../utils/screen_util.dart'; | 25 | import '../../utils/screen_util.dart'; |
| 20 | import '../../utils/upload_image_util.dart'; | 26 | import '../../utils/upload_image_util.dart'; |
| @@ -24,6 +30,7 @@ import '../../widgets/set_time_widget.dart'; | @@ -24,6 +30,7 @@ import '../../widgets/set_time_widget.dart'; | ||
| 24 | import '../../widgets/system_app_bar.dart'; | 30 | import '../../widgets/system_app_bar.dart'; |
| 25 | import '../online_check/img_picker_widget_f.dart'; | 31 | import '../online_check/img_picker_widget_f.dart'; |
| 26 | import '../table/area_item_table.dart'; | 32 | import '../table/area_item_table.dart'; |
| 33 | +import 'package:one_key/models/table_list.dart' as t; | ||
| 27 | 34 | ||
| 28 | class FeastCreatePage extends StatefulWidget { | 35 | class FeastCreatePage extends StatefulWidget { |
| 29 | FeastCreatePage({Key key}) : super(key: key); | 36 | FeastCreatePage({Key key}) : super(key: key); |
| @@ -60,39 +67,89 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -60,39 +67,89 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 60 | 67 | ||
| 61 | String selectMenu = '意向'; //当前选中的菜单名称 | 68 | String selectMenu = '意向'; //当前选中的菜单名称 |
| 62 | Set<String> menuSet = {}; //已经保存的菜单名称 | 69 | Set<String> menuSet = {}; //已经保存的菜单名称 |
| 63 | - String cdShow = '请选择'; //餐段显示 | ||
| 64 | - String qsDateShow = '请选择'; //起始时间 | ||
| 65 | - String startDate = ''; | ||
| 66 | - String endDate = ''; | ||
| 67 | - String dateTimeShowxt = '请选择'; //宴会日期显示 选台 2022-08-02(周二 七月十五) | ||
| 68 | - DateTime dateTimext; //宴会日期 | 70 | + |
| 69 | ScrollController controller = ScrollController(); | 71 | ScrollController controller = ScrollController(); |
| 70 | String djDBR = '请选择'; //定金担保人 | 72 | String djDBR = '请选择'; //定金担保人 |
| 73 | + UploadImageProvider _uploadImageProvider; | ||
| 74 | + List<SetXuanTaiModel> xuantaiData = []; | ||
| 75 | + int xuantaiSelIndex = 0; | ||
| 76 | + List<DsoltXt> dsoltList = []; | ||
| 71 | 77 | ||
| 72 | @override | 78 | @override |
| 73 | void initState() { | 79 | void initState() { |
| 74 | // TODO: implement initState | 80 | // TODO: implement initState |
| 75 | super.initState(); | 81 | super.initState(); |
| 76 | dateTime = DateTime.now(); | 82 | dateTime = DateTime.now(); |
| 77 | - dateTimext = DateTime.now(); | ||
| 78 | Utils.changeStatusColor(color: MyColours.color_438E93); | 83 | Utils.changeStatusColor(color: MyColours.color_438E93); |
| 79 | initSexList(); | 84 | initSexList(); |
| 80 | 85 | ||
| 86 | + xuantaiData.add(initSetXuanTaiModel()); | ||
| 87 | + initTime(context); | ||
| 81 | WidgetsBinding.instance.addPostFrameCallback((_) { | 88 | WidgetsBinding.instance.addPostFrameCallback((_) { |
| 82 | _getSellerUserBySellerid(); | 89 | _getSellerUserBySellerid(); |
| 90 | + _getStaff(); | ||
| 91 | + _getClassify(); | ||
| 83 | // scrollController.jumpTo(scrollController.position.minScrollExtent); | 92 | // scrollController.jumpTo(scrollController.position.minScrollExtent); |
| 84 | }); | 93 | }); |
| 85 | } | 94 | } |
| 86 | 95 | ||
| 87 | - ///商家编辑页面 ----- 获取经理数据 | 96 | + initSetXuanTaiModel() { |
| 97 | + SetXuanTaiModel setXuanTaiModel = SetXuanTaiModel(); | ||
| 98 | + setXuanTaiModel.dateTimeShowxt = '请选择'; | ||
| 99 | + setXuanTaiModel.cdShow = '请选择'; | ||
| 100 | + setXuanTaiModel.qsDateShow = '暂未选择'; //起始时间 | ||
| 101 | + setXuanTaiModel.images = []; | ||
| 102 | + setXuanTaiModel.other = []; | ||
| 103 | + setXuanTaiModel.setmeal = []; | ||
| 104 | + setXuanTaiModel.tids = []; | ||
| 105 | + setXuanTaiModel.wine = []; | ||
| 106 | + return setXuanTaiModel; | ||
| 107 | + } | ||
| 108 | + | ||
| 109 | + dsoltModel(String id, String title) { | ||
| 110 | + DsoltXt dsoltXt = DsoltXt(); | ||
| 111 | + dsoltXt.id = id; | ||
| 112 | + dsoltXt.title = title; | ||
| 113 | + return dsoltXt; | ||
| 114 | + } | ||
| 115 | + | ||
| 116 | + //初始化餐段 | ||
| 117 | + initTime(BuildContext context) async { | ||
| 118 | + dsoltList = []; | ||
| 119 | + dsoltList.add(dsoltModel('0', '不带餐')); | ||
| 120 | + UserModel userModel = Provider.of<UserModel>(context, listen: false); | ||
| 121 | + | ||
| 122 | + String morning = | ||
| 123 | + userModel.user.morning.isEmpty ? "00:00-00:00" : userModel.user.morning; | ||
| 124 | + String noon = | ||
| 125 | + userModel.user.noon.isEmpty ? "00:00-00:00" : userModel.user.noon; | ||
| 126 | + String night = | ||
| 127 | + userModel.user.night.isEmpty ? "00:00-00:00" : userModel.user.night; | ||
| 128 | + if (morning != "00:00-00:00") { | ||
| 129 | + dsoltList.add(dsoltModel('1', '早餐')); | ||
| 130 | + } | ||
| 131 | + if (noon != "00:00-00:00") { | ||
| 132 | + dsoltList.add(dsoltModel('2', '午餐')); | ||
| 133 | + } | ||
| 134 | + if (night != "00:00-00:00") { | ||
| 135 | + dsoltList.add(dsoltModel('3', '晚餐')); | ||
| 136 | + } | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + ///获取经理数据 ---- 接单人---全部员工 | ||
| 140 | + | ||
| 88 | _getSellerUserBySellerid() async { | 141 | _getSellerUserBySellerid() async { |
| 89 | await feastModel.getAuthUserLists(context); | 142 | await feastModel.getAuthUserLists(context); |
| 143 | + } | ||
| 144 | + | ||
| 145 | + ///跟单人---宴会员工 | ||
| 146 | + _getStaff() async { | ||
| 147 | + await feastModel.getStaff(context); | ||
| 148 | + } | ||
| 90 | 149 | ||
| 91 | - // for (int i = 0; i < feastModel.sellerManageList.length; i++) { | ||
| 92 | - // if (manageShow == feastModel.sellerManageList[i].title) { | ||
| 93 | - // customerProvider.manageSelIndex = i; | ||
| 94 | - // } | ||
| 95 | - // } | 150 | + ///获取宴会分类 |
| 151 | + Future<bool> _getClassify({bool isShowLoading = true}) async { | ||
| 152 | + await feastModel.getClassify(context, isShowLoading: isShowLoading); | ||
| 96 | } | 153 | } |
| 97 | 154 | ||
| 98 | ///称谓 | 155 | ///称谓 |
| @@ -232,7 +289,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -232,7 +289,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 232 | labelShow, | 289 | labelShow, |
| 233 | overflow: TextOverflow.ellipsis, | 290 | overflow: TextOverflow.ellipsis, |
| 234 | style: TextStyle( | 291 | style: TextStyle( |
| 235 | - color: labelShow == '请选择' | 292 | + color: labelShow == '请选择' || labelShow == '暂未选择' |
| 236 | ? MyColours.color_999999 | 293 | ? MyColours.color_999999 |
| 237 | : MyColours.color_515151, | 294 | : MyColours.color_515151, |
| 238 | fontSize: ScreenUtil().setSp(28), | 295 | fontSize: ScreenUtil().setSp(28), |
| @@ -494,6 +551,70 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -494,6 +551,70 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 494 | return ymd; | 551 | return ymd; |
| 495 | } | 552 | } |
| 496 | 553 | ||
| 554 | + Future<bool> yxSave() async { | ||
| 555 | + if (dateTimeShow == '请选择') { | ||
| 556 | + Utils.showToast('请选择宴会日期'); | ||
| 557 | + return false; | ||
| 558 | + } | ||
| 559 | + if (jdShow == '请选择') { | ||
| 560 | + Utils.showToast('请选择接单人'); | ||
| 561 | + return false; | ||
| 562 | + } | ||
| 563 | + if (gdShow == '请选择') { | ||
| 564 | + Utils.showToast('请选择跟单人'); | ||
| 565 | + return false; | ||
| 566 | + } | ||
| 567 | + if (feastTypeShow == '请选择') { | ||
| 568 | + Utils.showToast('请选择宴会类型'); | ||
| 569 | + return false; | ||
| 570 | + } | ||
| 571 | + if (nameC.text.trim().length == 0) { | ||
| 572 | + Utils.showToast('请输入预订人'); | ||
| 573 | + return false; | ||
| 574 | + } | ||
| 575 | + if (phoneC.text.trim().length == 0) { | ||
| 576 | + Utils.showToast('请输入电话'); | ||
| 577 | + return false; | ||
| 578 | + } | ||
| 579 | + for (UploadImgModel item in _uploadImageProvider.feastRemarkImageList) { | ||
| 580 | + if (item.process < 1) { | ||
| 581 | + Utils.showToast('正在上传图片,请稍等'); | ||
| 582 | + return false; | ||
| 583 | + } | ||
| 584 | + } | ||
| 585 | + | ||
| 586 | + List imageQiniuUrlList = []; //接口图片数据list | ||
| 587 | + for (int i = 0; i < _uploadImageProvider.feastRemarkImageList.length; i++) { | ||
| 588 | + imageQiniuUrlList | ||
| 589 | + .add({"url": _uploadImageProvider.feastRemarkImageList[i].qiniuUrl}); | ||
| 590 | + } | ||
| 591 | + | ||
| 592 | + String ddate = (dateTime.millisecondsSinceEpoch / 1000).floor().toString(); | ||
| 593 | + Map<String, String> pramas = { | ||
| 594 | + 'sid': Provider.of<UserModel>(context, listen: false).user.sellerid, | ||
| 595 | + 'ddate': ddate, | ||
| 596 | + 'jiedan_id': feastModel.sellerManageList[jdSelIndex].id, | ||
| 597 | + 'staff_id': feastModel.personnalList[gdSelIndex].id, | ||
| 598 | + 'classify_id': feastModel.classifyData[feastTypeSelIndex].id, | ||
| 599 | + 'phone': phoneC.text, | ||
| 600 | + 'rname': nameC.text, | ||
| 601 | + 'sex': sexList[sexSelectIndex]['code'], | ||
| 602 | + }; | ||
| 603 | + if (customC.text.trim().length > 0) { | ||
| 604 | + pramas['remark'] = customC.text; //备注 | ||
| 605 | + } | ||
| 606 | + if (imageQiniuUrlList.length > 0) { | ||
| 607 | + pramas['images'] = json.encode(imageQiniuUrlList); //备注图片 | ||
| 608 | + } | ||
| 609 | + bool success = await feastModel.createBanquet(context, pramas); | ||
| 610 | + if (success) { | ||
| 611 | + Utils.showToast('保存成功'); | ||
| 612 | + return true; | ||
| 613 | + } else { | ||
| 614 | + return false; | ||
| 615 | + } | ||
| 616 | + } | ||
| 617 | + | ||
| 497 | ///意向 | 618 | ///意向 |
| 498 | Widget yxWidget() { | 619 | Widget yxWidget() { |
| 499 | return Column( | 620 | return Column( |
| @@ -537,13 +658,13 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -537,13 +658,13 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 537 | FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘 | 658 | FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘 |
| 538 | DialogUtil.showSelectCusmanDialog( | 659 | DialogUtil.showSelectCusmanDialog( |
| 539 | context, | 660 | context, |
| 540 | - feastModel.sellerManageList.map((item) { | 661 | + feastModel.personnalList.map((item) { |
| 541 | return item.title; | 662 | return item.title; |
| 542 | }).toList(), (value) { | 663 | }).toList(), (value) { |
| 543 | if (value != null) { | 664 | if (value != null) { |
| 544 | setState(() { | 665 | setState(() { |
| 545 | gdSelIndex = value.first; | 666 | gdSelIndex = value.first; |
| 546 | - gdShow = feastModel.sellerManageList[gdSelIndex].title; | 667 | + gdShow = feastModel.personnalList[gdSelIndex].title; |
| 547 | }); | 668 | }); |
| 548 | } | 669 | } |
| 549 | }, | 670 | }, |
| @@ -556,14 +677,14 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -556,14 +677,14 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 556 | FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘 | 677 | FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘 |
| 557 | DialogUtil.showSelectCusmanDialog( | 678 | DialogUtil.showSelectCusmanDialog( |
| 558 | context, | 679 | context, |
| 559 | - feastModel.sellerManageList.map((item) { | ||
| 560 | - return item.title; | 680 | + feastModel.classifyData.map((item) { |
| 681 | + return item.className; | ||
| 561 | }).toList(), (value) { | 682 | }).toList(), (value) { |
| 562 | if (value != null) { | 683 | if (value != null) { |
| 563 | setState(() { | 684 | setState(() { |
| 564 | feastTypeSelIndex = value.first; | 685 | feastTypeSelIndex = value.first; |
| 565 | feastTypeShow = | 686 | feastTypeShow = |
| 566 | - feastModel.sellerManageList[feastTypeSelIndex].title; | 687 | + feastModel.classifyData[feastTypeSelIndex].className; |
| 567 | }); | 688 | }); |
| 568 | } | 689 | } |
| 569 | }, | 690 | }, |
| @@ -602,33 +723,22 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -602,33 +723,22 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 602 | children: [ | 723 | children: [ |
| 603 | Expanded( | 724 | Expanded( |
| 604 | child: _callButton( | 725 | child: _callButton( |
| 605 | - onPress: () { | ||
| 606 | - Map<String, String> pramas = { | ||
| 607 | - 'sid': Provider.of<UserModel>(context, listen: false) | ||
| 608 | - .user | ||
| 609 | - .sellerid, | ||
| 610 | - 'ddate': '', | ||
| 611 | - 'jiedan_id': '', | ||
| 612 | - 'staff_id': '', | ||
| 613 | - 'classify_id': '', | ||
| 614 | - 'rname': '', | ||
| 615 | - 'sex': '', | ||
| 616 | - 'phone': '', | ||
| 617 | - 'remark': '', | ||
| 618 | - 'images': '' | ||
| 619 | - }; | ||
| 620 | - feastModel.createBanquet(context, pramas); | 726 | + onPress: () async { |
| 727 | + yxSave(); | ||
| 621 | }, | 728 | }, |
| 622 | content: '仅保存', | 729 | content: '仅保存', |
| 623 | hasLeftBorder: true, | 730 | hasLeftBorder: true, |
| 624 | isSelect: false)), | 731 | isSelect: false)), |
| 625 | Expanded( | 732 | Expanded( |
| 626 | child: _callButton( | 733 | child: _callButton( |
| 627 | - onPress: () { | 734 | + onPress: () async { |
| 735 | + // bool success = await yxSave(); | ||
| 736 | + // if (success) { | ||
| 628 | selectMenu = '选台'; | 737 | selectMenu = '选台'; |
| 629 | menuSet.add('意向'); | 738 | menuSet.add('意向'); |
| 630 | menuSet.add('选台'); | 739 | menuSet.add('选台'); |
| 631 | setState(() {}); | 740 | setState(() {}); |
| 741 | + // } | ||
| 632 | }, | 742 | }, |
| 633 | content: '保存并下一步', | 743 | content: '保存并下一步', |
| 634 | hasLeftBorder: true, | 744 | hasLeftBorder: true, |
| @@ -656,12 +766,13 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -656,12 +766,13 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 656 | Container( | 766 | Container( |
| 657 | height: h(33), | 767 | height: h(33), |
| 658 | child: ListView.builder( | 768 | child: ListView.builder( |
| 659 | - padding: EdgeInsets.only(left: w(21)), | ||
| 660 | - itemCount: 2, | 769 | + padding: EdgeInsets.only(left: w(21), right: w(9)), |
| 770 | + itemCount: xuantaiData.length + 1, | ||
| 661 | shrinkWrap: true, | 771 | shrinkWrap: true, |
| 662 | scrollDirection: Axis.horizontal, | 772 | scrollDirection: Axis.horizontal, |
| 663 | itemBuilder: (BuildContext contxt, int index) { | 773 | itemBuilder: (BuildContext contxt, int index) { |
| 664 | - if (index == 1) { | 774 | + if (index == xuantaiData.length || |
| 775 | + xuantaiData.length == 0) { | ||
| 665 | return InkWell( | 776 | return InkWell( |
| 666 | onTap: () async { | 777 | onTap: () async { |
| 667 | // //添加区域弹框 | 778 | // //添加区域弹框 |
| @@ -685,11 +796,15 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -685,11 +796,15 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 685 | 796 | ||
| 686 | // } | 797 | // } |
| 687 | // }); | 798 | // }); |
| 799 | + xuantaiSelIndex = index; | ||
| 800 | + xuantaiData.add(initSetXuanTaiModel()); | ||
| 801 | + setState(() {}); | ||
| 688 | }, | 802 | }, |
| 689 | child: DottedBorder( | 803 | child: DottedBorder( |
| 690 | dashPattern: [2, 2, 2, 2], | 804 | dashPattern: [2, 2, 2, 2], |
| 691 | borderType: BorderType.RRect, | 805 | borderType: BorderType.RRect, |
| 692 | radius: Radius.circular(r(6)), | 806 | radius: Radius.circular(r(6)), |
| 807 | + | ||
| 693 | // padding: EdgeInsets.all(ScreenUtil().setWidth(70)), | 808 | // padding: EdgeInsets.all(ScreenUtil().setWidth(70)), |
| 694 | color: MyColours.color_199095, | 809 | color: MyColours.color_199095, |
| 695 | strokeWidth: ScreenUtil().setWidth(2), | 810 | strokeWidth: ScreenUtil().setWidth(2), |
| @@ -718,80 +833,127 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -718,80 +833,127 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 718 | ), | 833 | ), |
| 719 | )); | 834 | )); |
| 720 | } else { | 835 | } else { |
| 721 | - return Container( | ||
| 722 | - height: h(33), | ||
| 723 | - width: w(70), | ||
| 724 | - // padding: EdgeInsets.symmetric( | ||
| 725 | - // horizontal: w(8), | ||
| 726 | - // ), | ||
| 727 | - margin: EdgeInsets.only(right: w(8)), | ||
| 728 | - alignment: Alignment.center, | ||
| 729 | - decoration: BoxDecoration( | ||
| 730 | - borderRadius: BorderRadius.circular(r(6)), | ||
| 731 | - color: true | ||
| 732 | - ? MyColours.color_438E93 | ||
| 733 | - : MyColours.color_ffffff), | ||
| 734 | - child: Text( | ||
| 735 | - '第一场', | ||
| 736 | - overflow: TextOverflow.ellipsis, | ||
| 737 | - style: TextStyle( | ||
| 738 | - color: true | ||
| 739 | - ? MyColours.color_F6F6F6 | ||
| 740 | - : MyColours.color_999999, | ||
| 741 | - fontSize: font(18), | ||
| 742 | - fontWeight: FontWeight.bold), | ||
| 743 | - ), | ||
| 744 | - ); | 836 | + String numStr = |
| 837 | + ConvertNumberToChineseMoneyWords.toChinese( | ||
| 838 | + index); | ||
| 839 | + return InkWell( | ||
| 840 | + onTap: () { | ||
| 841 | + setState(() { | ||
| 842 | + xuantaiSelIndex = index; | ||
| 843 | + }); | ||
| 844 | + }, | ||
| 845 | + child: Container( | ||
| 846 | + height: h(33), | ||
| 847 | + width: w(70), | ||
| 848 | + // padding: EdgeInsets.symmetric( | ||
| 849 | + // horizontal: w(8), | ||
| 850 | + // ), | ||
| 851 | + margin: EdgeInsets.only(right: w(8)), | ||
| 852 | + alignment: Alignment.center, | ||
| 853 | + decoration: BoxDecoration( | ||
| 854 | + border: Border.all( | ||
| 855 | + width: w(1), | ||
| 856 | + color: MyColours.color_438E93), | ||
| 857 | + borderRadius: | ||
| 858 | + BorderRadius.circular(r(6)), | ||
| 859 | + color: xuantaiSelIndex == index | ||
| 860 | + ? MyColours.color_438E93 | ||
| 861 | + : MyColours.color_ffffff), | ||
| 862 | + child: Text( | ||
| 863 | + '第${numStr}场', | ||
| 864 | + overflow: TextOverflow.ellipsis, | ||
| 865 | + style: TextStyle( | ||
| 866 | + color: xuantaiSelIndex == index | ||
| 867 | + ? MyColours.color_F6F6F6 | ||
| 868 | + : MyColours.color_999999, | ||
| 869 | + fontSize: font(18), | ||
| 870 | + fontWeight: FontWeight.bold), | ||
| 871 | + ), | ||
| 872 | + )); | ||
| 745 | } | 873 | } |
| 746 | }, | 874 | }, |
| 747 | )), | 875 | )), |
| 748 | - VEmptyView(26), | ||
| 749 | - _selectWidget('宴会日期', dateTimeShowxt, onTap: () { | 876 | + xuantaiData.length > 1 |
| 877 | + ? Center( | ||
| 878 | + child: RoundButton( | ||
| 879 | + margin: EdgeInsets.only(top: w(24)), | ||
| 880 | + text: '删除该场次', | ||
| 881 | + radius: r(5), | ||
| 882 | + width: w(106), | ||
| 883 | + height: h(33), | ||
| 884 | + fontSize: 36, | ||
| 885 | + textColor: MyColours.color_F6F6F6, | ||
| 886 | + isBold: true, | ||
| 887 | + gradientStart: MyColours.color_E34D59, | ||
| 888 | + gradientEnd: MyColours.color_E34D59, | ||
| 889 | + onPressed: () async { | ||
| 890 | + xuantaiData.removeAt(xuantaiSelIndex); | ||
| 891 | + xuantaiSelIndex--; | ||
| 892 | + setState(() {}); | ||
| 893 | + })) | ||
| 894 | + : SizedBox(), | ||
| 895 | + VEmptyView(36), | ||
| 896 | + _selectWidget( | ||
| 897 | + '宴会日期', xuantaiData[xuantaiSelIndex].dateTimeShowxt, | ||
| 898 | + onTap: () { | ||
| 750 | FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘 | 899 | FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘 |
| 751 | - DialogUtil.showCalendarDialog(context, dateTimext) | 900 | + DialogUtil.showCalendarDialog(context, |
| 901 | + xuantaiData[xuantaiSelIndex].dateTimext) | ||
| 752 | .then((day) async { | 902 | .then((day) async { |
| 753 | if (day != null) { | 903 | if (day != null) { |
| 754 | - dateTimext = day; | ||
| 755 | - dateTimeShowxt = createDateText(context, day); | 904 | + xuantaiData[xuantaiSelIndex].dateTimext = day; |
| 905 | + xuantaiData[xuantaiSelIndex].dateTimeShowxt = | ||
| 906 | + createDateText(context, day); | ||
| 756 | setState(() {}); | 907 | setState(() {}); |
| 757 | } | 908 | } |
| 758 | }); | 909 | }); |
| 759 | }), | 910 | }), |
| 760 | - _selectWidget('餐段选择', cdShow, onTap: () { | 911 | + _selectWidget('餐段选择', xuantaiData[xuantaiSelIndex].cdShow, |
| 912 | + onTap: () { | ||
| 761 | FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘 | 913 | FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘 |
| 762 | DialogUtil.showSelectCusmanDialog( | 914 | DialogUtil.showSelectCusmanDialog( |
| 763 | context, | 915 | context, |
| 764 | - feastModel.sellerManageList.map((item) { | 916 | + dsoltList.map((item) { |
| 765 | return item.title; | 917 | return item.title; |
| 766 | }).toList(), (value) { | 918 | }).toList(), (value) { |
| 767 | if (value != null) { | 919 | if (value != null) { |
| 768 | setState(() { | 920 | setState(() { |
| 769 | - jdSelIndex = value.first; | ||
| 770 | - jdShow = | ||
| 771 | - feastModel.sellerManageList[jdSelIndex].title; | 921 | + xuantaiData[xuantaiSelIndex].cdSelIndex = |
| 922 | + value.first; | ||
| 923 | + xuantaiData[xuantaiSelIndex].cdShow = dsoltList[ | ||
| 924 | + xuantaiData[xuantaiSelIndex].cdSelIndex] | ||
| 925 | + .title; | ||
| 772 | }); | 926 | }); |
| 773 | } | 927 | } |
| 774 | }, | 928 | }, |
| 775 | cancelText: '', | 929 | cancelText: '', |
| 776 | title: '选择餐段', | 930 | title: '选择餐段', |
| 777 | - selecteds: | ||
| 778 | - jdSelIndex == null ? [] : [jdSelIndex]) | 931 | + selecteds: xuantaiData[xuantaiSelIndex] |
| 932 | + .cdSelIndex == | ||
| 933 | + null | ||
| 934 | + ? [] | ||
| 935 | + : [xuantaiData[xuantaiSelIndex].cdSelIndex]) | ||
| 779 | .then((value) {}); | 936 | .then((value) {}); |
| 780 | }), | 937 | }), |
| 781 | - _selectWidget('起始时间', qsDateShow, need: false, onTap: () { | 938 | + _selectWidget( |
| 939 | + '起始时间', xuantaiData[xuantaiSelIndex].qsDateShow, | ||
| 940 | + need: false, onTap: () { | ||
| 782 | FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘 | 941 | FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘 |
| 783 | 942 | ||
| 784 | SetTimeWidget.init.showFeastTimeSelector( | 943 | SetTimeWidget.init.showFeastTimeSelector( |
| 785 | context, | 944 | context, |
| 786 | SetTimeWidget.init.getFeastDateData('00:00-23:30'), | 945 | SetTimeWidget.init.getFeastDateData('00:00-23:30'), |
| 787 | - startDate, | ||
| 788 | - endDate, (value) { | 946 | + xuantaiData[xuantaiSelIndex].startDate, |
| 947 | + xuantaiData[xuantaiSelIndex].endDate, (value) { | ||
| 789 | if (value != null) { | 948 | if (value != null) { |
| 790 | - startDate = | 949 | + xuantaiData[xuantaiSelIndex].startDate = |
| 791 | SetTimeWidget.init.getSelectTitle(value[0]); | 950 | SetTimeWidget.init.getSelectTitle(value[0]); |
| 792 | - endDate = | 951 | + xuantaiData[xuantaiSelIndex].endDate = |
| 793 | SetTimeWidget.init.getSelectTitle(value[1]); | 952 | SetTimeWidget.init.getSelectTitle(value[1]); |
| 794 | - qsDateShow = startDate + '-' + endDate; | 953 | + xuantaiData[xuantaiSelIndex].qsDateShow = |
| 954 | + xuantaiData[xuantaiSelIndex].startDate + | ||
| 955 | + '-' + | ||
| 956 | + xuantaiData[xuantaiSelIndex].endDate; | ||
| 795 | setState(() {}); | 957 | setState(() {}); |
| 796 | } | 958 | } |
| 797 | }); | 959 | }); |
| @@ -852,7 +1014,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -852,7 +1014,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 852 | ], | 1014 | ], |
| 853 | )), | 1015 | )), |
| 854 | ListView.builder( | 1016 | ListView.builder( |
| 855 | - itemCount: 2, | 1017 | + itemCount: |
| 1018 | + xuantaiData[xuantaiSelIndex].tids.length, | ||
| 856 | shrinkWrap: true, | 1019 | shrinkWrap: true, |
| 857 | controller: controller, | 1020 | controller: controller, |
| 858 | itemBuilder: | 1021 | itemBuilder: |
| @@ -871,7 +1034,9 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -871,7 +1034,9 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 871 | children: [ | 1034 | children: [ |
| 872 | Expanded( | 1035 | Expanded( |
| 873 | child: Text( | 1036 | child: Text( |
| 874 | - '包间$index', | 1037 | + xuantaiData[xuantaiSelIndex] |
| 1038 | + .tids[index] | ||
| 1039 | + .name, | ||
| 875 | overflow: TextOverflow.ellipsis, | 1040 | overflow: TextOverflow.ellipsis, |
| 876 | style: TextStyle( | 1041 | style: TextStyle( |
| 877 | color: MyColours.color_438E93, | 1042 | color: MyColours.color_438E93, |
| @@ -913,6 +1078,102 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -913,6 +1078,102 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 913 | isBold: false, | 1078 | isBold: false, |
| 914 | gradientStart: MyColours.color_438E93, | 1079 | gradientStart: MyColours.color_438E93, |
| 915 | gradientEnd: MyColours.color_438E93, | 1080 | gradientEnd: MyColours.color_438E93, |
| 1081 | + onPressed: () async { | ||
| 1082 | + FocusScope.of(context) | ||
| 1083 | + .requestFocus(FocusNode()); //点击空白处隐藏键盘 | ||
| 1084 | + | ||
| 1085 | + if (xuantaiData[xuantaiSelIndex].cdShow == | ||
| 1086 | + '不带餐') { | ||
| 1087 | + Map temp = {}; | ||
| 1088 | + if (xuantaiData[xuantaiSelIndex] | ||
| 1089 | + .tableList != | ||
| 1090 | + null && | ||
| 1091 | + xuantaiData[xuantaiSelIndex] | ||
| 1092 | + .tableList | ||
| 1093 | + .length > | ||
| 1094 | + 0) { | ||
| 1095 | + temp = await NavigatorUtil | ||
| 1096 | + .goFeastSelectTablePage(context, | ||
| 1097 | + object: { | ||
| 1098 | + 'object': | ||
| 1099 | + xuantaiData[xuantaiSelIndex] | ||
| 1100 | + .tableList | ||
| 1101 | + }); | ||
| 1102 | + } else { | ||
| 1103 | + temp = await NavigatorUtil | ||
| 1104 | + .goFeastSelectTablePage( | ||
| 1105 | + context, | ||
| 1106 | + ); | ||
| 1107 | + } | ||
| 1108 | + | ||
| 1109 | + if (temp == null) { | ||
| 1110 | + } else if (temp['object'].length == 0) { | ||
| 1111 | + } else { | ||
| 1112 | + xuantaiData[xuantaiSelIndex].tids = []; | ||
| 1113 | + xuantaiData[xuantaiSelIndex].tableList = | ||
| 1114 | + temp['object']; | ||
| 1115 | + | ||
| 1116 | + for (t.TableList item | ||
| 1117 | + in xuantaiData[xuantaiSelIndex] | ||
| 1118 | + .tableList) { | ||
| 1119 | + item.selected = true; | ||
| 1120 | + Tids tids = Tids(); | ||
| 1121 | + tids.tid = item.tid; | ||
| 1122 | + tids.name = item.name; | ||
| 1123 | + xuantaiData[xuantaiSelIndex] | ||
| 1124 | + .tids | ||
| 1125 | + .add(tids); | ||
| 1126 | + } | ||
| 1127 | + setState(() {}); | ||
| 1128 | + } | ||
| 1129 | + } else { | ||
| 1130 | + //带餐 | ||
| 1131 | + } | ||
| 1132 | + // int ddate = xuantaiData[xuantaiSelIndex] | ||
| 1133 | + // .dateTimext | ||
| 1134 | + // .millisecondsSinceEpoch; | ||
| 1135 | + // String ddateSolt = _notebookDetailChangeModel | ||
| 1136 | + // .currTimeIndex | ||
| 1137 | + // .toString(); | ||
| 1138 | + // Map temp = | ||
| 1139 | + // await NavigatorUtil.goSelectTableFPage( | ||
| 1140 | + // context, '', ddate, ddateSolt, | ||
| 1141 | + // canChoose: true, | ||
| 1142 | + // object: { | ||
| 1143 | + // 'object': | ||
| 1144 | + // _notebookDetailChangeModel.tableList | ||
| 1145 | + // }); | ||
| 1146 | + | ||
| 1147 | + // if (temp == null) { | ||
| 1148 | + // } else if (temp['object'].length == 0) { | ||
| 1149 | + // } else { | ||
| 1150 | + // _notebookDetailChangeModel.tableList = | ||
| 1151 | + // temp['object']; | ||
| 1152 | + | ||
| 1153 | + // for (t.TableList item | ||
| 1154 | + // in _notebookDetailChangeModel | ||
| 1155 | + // .tableList) { | ||
| 1156 | + // item.selected = true; | ||
| 1157 | + // } | ||
| 1158 | + // // setState(() {}); | ||
| 1159 | + // int dateTimeMill = | ||
| 1160 | + // _notebookDetailChangeModel | ||
| 1161 | + // .dateTime.millisecondsSinceEpoch; | ||
| 1162 | + | ||
| 1163 | + // await _notebookDetailChangeModel | ||
| 1164 | + // .getNewTableList( | ||
| 1165 | + // context, | ||
| 1166 | + // '${dateTimeMill}', | ||
| 1167 | + // _notebookDetailChangeModel | ||
| 1168 | + // .currTimeIndex | ||
| 1169 | + // .toString(), | ||
| 1170 | + // widget.detailEntity.pnum, | ||
| 1171 | + // _notebookDetailChangeModel | ||
| 1172 | + // .tableList); | ||
| 1173 | + // _notebookDetailChangeModel | ||
| 1174 | + // .notifyListeners(); | ||
| 1175 | + // } | ||
| 1176 | + }, | ||
| 916 | ), | 1177 | ), |
| 917 | VEmptyView(52), | 1178 | VEmptyView(52), |
| 918 | Text( | 1179 | Text( |
| @@ -1166,7 +1427,9 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -1166,7 +1427,9 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 1166 | children: [ | 1427 | children: [ |
| 1167 | Expanded( | 1428 | Expanded( |
| 1168 | child: _callButton( | 1429 | child: _callButton( |
| 1169 | - onPress: () {}, | 1430 | + onPress: () { |
| 1431 | + // setBanquetInfo | ||
| 1432 | + }, | ||
| 1170 | content: '仅保存', | 1433 | content: '仅保存', |
| 1171 | hasLeftBorder: true, | 1434 | hasLeftBorder: true, |
| 1172 | isSelect: false)), | 1435 | isSelect: false)), |
| @@ -2672,6 +2935,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -2672,6 +2935,8 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 2672 | @override | 2935 | @override |
| 2673 | Widget build(BuildContext context) { | 2936 | Widget build(BuildContext context) { |
| 2674 | feastModel = Provider.of<FeastModel>(context, listen: true); | 2937 | feastModel = Provider.of<FeastModel>(context, listen: true); |
| 2938 | + _uploadImageProvider = | ||
| 2939 | + Provider.of<UploadImageProvider>(context, listen: true); | ||
| 2675 | return Scaffold( | 2940 | return Scaffold( |
| 2676 | backgroundColor: MyColours.color_ffffff, | 2941 | backgroundColor: MyColours.color_ffffff, |
| 2677 | appBar: SystemAppBar( | 2942 | appBar: SystemAppBar( |
lib/pages/feast/feast_select_table_page.dart
0 → 100644
| 1 | +import 'dart:ffi'; | ||
| 2 | + | ||
| 3 | +import 'package:common_utils/common_utils.dart'; | ||
| 4 | +import 'package:dotted_border/dotted_border.dart'; | ||
| 5 | +import 'package:flutter/material.dart'; | ||
| 6 | +import 'package:flutter_screenutil/flutter_screenutil.dart'; | ||
| 7 | +import 'package:one_key/constant/state.dart'; | ||
| 8 | +import 'package:one_key/models/area.dart'; | ||
| 9 | +import 'package:one_key/models/notebook.dart'; | ||
| 10 | +import 'package:one_key/models/tableOuter.dart'; | ||
| 11 | +import 'package:one_key/models/table_list.dart'; | ||
| 12 | +import 'package:one_key/pages/table/area_item_table.dart'; | ||
| 13 | +import 'package:one_key/provider/choose_table_model.dart'; | ||
| 14 | +import 'package:one_key/provider/notebook_detail_change_model.dart'; | ||
| 15 | +import 'package:one_key/provider/notebook_model.dart'; | ||
| 16 | +import 'package:one_key/provider/user_model.dart'; | ||
| 17 | +import 'package:one_key/res/colors.dart'; | ||
| 18 | +import 'package:one_key/utils/dialog_util.dart'; | ||
| 19 | +import 'package:one_key/utils/utils.dart'; | ||
| 20 | +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'; | ||
| 24 | +import 'package:one_key/widgets/f_table_item.dart'; | ||
| 25 | +import 'package:one_key/widgets/h_empty_view.dart'; | ||
| 26 | +import 'package:one_key/widgets/page_exception.dart'; | ||
| 27 | +import 'package:one_key/widgets/table_item.dart'; | ||
| 28 | +import 'package:one_key/models/table.dart' as t; | ||
| 29 | +import 'package:one_key/widgets/v_empty_view.dart'; | ||
| 30 | +import 'package:provider/provider.dart'; | ||
| 31 | +import 'dart:convert' as convert; | ||
| 32 | + | ||
| 33 | +class FeastSelectTablePage extends StatefulWidget { | ||
| 34 | + final List<TableList> tableList; | ||
| 35 | + | ||
| 36 | + final String tid; | ||
| 37 | + | ||
| 38 | + FeastSelectTablePage({this.tableList, this.tid}); | ||
| 39 | + | ||
| 40 | + @override | ||
| 41 | + State<StatefulWidget> createState() { | ||
| 42 | + // TODO: implement createState | ||
| 43 | + return new FeastSelectTablePageState(); | ||
| 44 | + } | ||
| 45 | +} | ||
| 46 | + | ||
| 47 | +class FeastSelectTablePageState extends State<FeastSelectTablePage> { | ||
| 48 | + List<Area> areas = []; //区域列表 | ||
| 49 | + List<t.Table> selectTables = []; //选择的桌位 | ||
| 50 | + | ||
| 51 | + List<TableOuter> tableOuterList = []; //区域-桌位列表 | ||
| 52 | + | ||
| 53 | + Map<String, List<t.Table>> areaTableMap = {}; //区域-桌位Map | ||
| 54 | + | ||
| 55 | + ChooseTableModel _chooseTableModel; | ||
| 56 | + | ||
| 57 | + Map<String, Notebook> tableMap = {}; //记录已预订桌位对应的订单 | ||
| 58 | + | ||
| 59 | + String currentArea; //当前选中区域 | ||
| 60 | + // List<String> personNumList = []; | ||
| 61 | + | ||
| 62 | + int selectNum = 0; | ||
| 63 | + bool isSelected = true; //全部按钮 | ||
| 64 | + int _selectNumber; | ||
| 65 | + // Map dailyMap = {}; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟 | ||
| 66 | + | ||
| 67 | + @override | ||
| 68 | + void initState() { | ||
| 69 | + // TODO: implement initState | ||
| 70 | + super.initState(); | ||
| 71 | + // for (int i = 1; i < 31; i++) { | ||
| 72 | + // personNumList.add(i.toString()); | ||
| 73 | + // } | ||
| 74 | + // initDateHourMinuteList(context); | ||
| 75 | + | ||
| 76 | + WidgetsBinding.instance.addPostFrameCallback((_) { | ||
| 77 | + getTableList(); | ||
| 78 | + }); | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + // /// 早市、午市、晚市对应的半个小时间隔时间段 | ||
| 82 | + // initDateHourMinuteList(BuildContext context) async { | ||
| 83 | + // UserModel userModel = Provider.of<UserModel>(context, listen: false); | ||
| 84 | + // String morning = | ||
| 85 | + // userModel.user.morning.isEmpty ? "00:00-00:00" : userModel.user.morning; | ||
| 86 | + // String noon = | ||
| 87 | + // userModel.user.noon.isEmpty ? "00:00-00:00" : userModel.user.noon; | ||
| 88 | + // String night = | ||
| 89 | + // userModel.user.night.isEmpty ? "00:00-00:00" : userModel.user.night; | ||
| 90 | + // userModel.user.morning == '' | ||
| 91 | + // ? dailyMap.putIfAbsent('morning', () => '') | ||
| 92 | + // : dailyMap.putIfAbsent( | ||
| 93 | + // 'morning', () => _getHourAndMinute(userModel.user.morning, 1)); | ||
| 94 | + // userModel.user.noon == '' | ||
| 95 | + // ? dailyMap.putIfAbsent('noon', () => '') | ||
| 96 | + // : dailyMap.putIfAbsent( | ||
| 97 | + // 'noon', () => _getHourAndMinute(userModel.user.noon, 2)); | ||
| 98 | + // userModel.user.night == '' | ||
| 99 | + // ? dailyMap.putIfAbsent('night', () => '') | ||
| 100 | + // : dailyMap.putIfAbsent( | ||
| 101 | + // 'night', () => _getHourAndMinute(userModel.user.night, 3)); | ||
| 102 | + // // _initSunDateList( | ||
| 103 | + // // userModel.user.morning, userModel.user.noon, userModel.user.night); | ||
| 104 | + // } | ||
| 105 | + | ||
| 106 | + // //根据获取时间 11:00-12:30 获取30分钟间隔组装的数组 | ||
| 107 | + // _getHourAndMinute(String hourAndMinuteStr, int mnd) { | ||
| 108 | + // List tempDate = hourAndMinuteStr.split("-"); | ||
| 109 | + // String beginDate = tempDate[0]; | ||
| 110 | + // String endDate = tempDate[1]; | ||
| 111 | + // List tempHour = beginDate.split(':'); | ||
| 112 | + | ||
| 113 | + // /*获取开始小时*/ | ||
| 114 | + // int beginHour = int.parse(tempHour[0]); | ||
| 115 | + // /*获取开始分钟*/ | ||
| 116 | + // int beginMinute = int.parse(tempHour[1]); | ||
| 117 | + // List res = []; | ||
| 118 | + // bool tempLimit = true; | ||
| 119 | + // while (tempLimit) { | ||
| 120 | + // String temp = _dealTime(beginHour, beginMinute); | ||
| 121 | + | ||
| 122 | + // // bool tempSelect = false; | ||
| 123 | + | ||
| 124 | + // // Map tempMap = {'title': temp, 'select': tempSelect}; | ||
| 125 | + // res.add(temp); | ||
| 126 | + // if (temp == endDate) { | ||
| 127 | + // tempLimit = false; | ||
| 128 | + // break; | ||
| 129 | + // } | ||
| 130 | + // if (beginMinute == 30) { | ||
| 131 | + // beginHour++; | ||
| 132 | + // if (beginHour >= 24) { | ||
| 133 | + // beginHour = 0; | ||
| 134 | + // } | ||
| 135 | + // } | ||
| 136 | + // beginMinute = (beginMinute + 30) % 60; | ||
| 137 | + // } | ||
| 138 | + // return res; | ||
| 139 | + // } | ||
| 140 | + | ||
| 141 | + // /// 根据时间和分钟组装 格式:11:00 | ||
| 142 | + // _dealTime(int begin, int mm) { | ||
| 143 | + // String sb = ''; | ||
| 144 | + // if (begin < 10) { | ||
| 145 | + // sb = '0$begin'; | ||
| 146 | + // } else { | ||
| 147 | + // sb = '$begin'; | ||
| 148 | + // } | ||
| 149 | + // sb = '$sb:'; | ||
| 150 | + // if (mm < 10) { | ||
| 151 | + // sb = '${sb}0${mm}'; | ||
| 152 | + // } else { | ||
| 153 | + // sb = '${sb}${mm}'; | ||
| 154 | + // } | ||
| 155 | + // return sb; | ||
| 156 | + // } | ||
| 157 | + | ||
| 158 | + //获取桌位列表 | ||
| 159 | + getTableList({needLoading = true}) async { | ||
| 160 | + UserModel userModel = Provider.of<UserModel>(context, listen: false); | ||
| 161 | + Map<String, String> params = {"sellerid": userModel.user.sellerid}; | ||
| 162 | + tableOuterList = await _chooseTableModel.getTableList(context, params, | ||
| 163 | + needLoading: needLoading); | ||
| 164 | + _chooseTableModel.tablesAll = []; | ||
| 165 | + for (TableOuter item in tableOuterList) { | ||
| 166 | + // if (item.name == "推荐") { | ||
| 167 | + // itemModelList.remove(item); | ||
| 168 | + // } | ||
| 169 | + for (var item1 in item.list) { | ||
| 170 | + item1.selected = false; | ||
| 171 | + for (var table in widget.tableList) { | ||
| 172 | + if (item1.id == table.id) { | ||
| 173 | + item1.selected = true; | ||
| 174 | + selectNum++; | ||
| 175 | + // if (!tableList.contains(item)) { | ||
| 176 | + // tableList.add(item); | ||
| 177 | + // } | ||
| 178 | + } | ||
| 179 | + } | ||
| 180 | + } | ||
| 181 | + _chooseTableModel.tablesAll.addAll(item.list); | ||
| 182 | + } | ||
| 183 | + | ||
| 184 | + if (tableOuterList.isEmpty) { | ||
| 185 | + _chooseTableModel.pageState = PageState.Success; | ||
| 186 | + _chooseTableModel.notifyListeners(); | ||
| 187 | + } else { | ||
| 188 | + initData(); | ||
| 189 | + } | ||
| 190 | + } | ||
| 191 | + | ||
| 192 | + refreshTable(context) async { | ||
| 193 | + await getTableList(needLoading: false); | ||
| 194 | + // if (temp.length > 0) { | ||
| 195 | + // _getReserveList(context, needLoading: false); | ||
| 196 | + // } else { | ||
| 197 | + // // pageState = PageState.Empty; | ||
| 198 | + // _chooseTableModel.pageState = PageState.Success; | ||
| 199 | + // _chooseTableModel.notifyListeners(); | ||
| 200 | + // } | ||
| 201 | + } | ||
| 202 | + | ||
| 203 | + // //获取已预订列表 | ||
| 204 | + // _getReserveList(String sid, {needLoading = true}) async { | ||
| 205 | + // NoteBookModel model = new NoteBookModel(); | ||
| 206 | + // Map<String, String> params = { | ||
| 207 | + // "sid": sid, | ||
| 208 | + // "rdate": _getRdate(), | ||
| 209 | + // "ddate_solt": widget.ddate_slot, | ||
| 210 | + // "y": "200", | ||
| 211 | + // "x": "1", | ||
| 212 | + // "keywords": "", | ||
| 213 | + // "sort": "1" | ||
| 214 | + // }; | ||
| 215 | + // List<Notebook> noteBooks = | ||
| 216 | + // await model.getReserveList(context, params, needLoading: needLoading); | ||
| 217 | + // for (Notebook notebook in noteBooks) { | ||
| 218 | + // if (notebook.tid.isEmpty) continue; | ||
| 219 | + // if (notebook.status == "1" || | ||
| 220 | + // notebook.status == "2" || | ||
| 221 | + // notebook.status == "5") { | ||
| 222 | + // //已预订,用餐中,已安排 | ||
| 223 | + // List<String> tids = notebook.tid.split(","); | ||
| 224 | + // for (String tid in tids) { | ||
| 225 | + // tableMap["$tid"] = notebook; | ||
| 226 | + // } | ||
| 227 | + // } | ||
| 228 | + // } | ||
| 229 | + // print(tableMap); | ||
| 230 | + // if (needLoading) { | ||
| 231 | + // initData(); | ||
| 232 | + // } else { | ||
| 233 | + // initData(needRetain: true); | ||
| 234 | + // } | ||
| 235 | + // } | ||
| 236 | + | ||
| 237 | + //初始桌位数据 | ||
| 238 | + initData({bool needRetain = false}) { | ||
| 239 | + areas.clear(); | ||
| 240 | + areaTableMap.clear(); | ||
| 241 | + List<t.Table> tempTableAll = []; | ||
| 242 | + tempTableAll.addAll(_chooseTableModel.tablesAll); | ||
| 243 | + for (TableOuter outer in tableOuterList) { | ||
| 244 | + int count = 0; | ||
| 245 | + List<t.Table> tempList = []; | ||
| 246 | + tempList.addAll(outer.list); | ||
| 247 | + for (t.Table table in outer.list) { | ||
| 248 | + // table.selected = false; | ||
| 249 | + if (widget.tid != '' && table.id == widget.tid) { | ||
| 250 | + table.selected = true; | ||
| 251 | + currentArea = outer.name; | ||
| 252 | + } | ||
| 253 | + if (table.tablestatus == "0") { | ||
| 254 | + //没有用餐中 | ||
| 255 | + if (tableMap["${table.id}"] != null) { | ||
| 256 | + // Notebook notebook = tableMap["${table.id}"]; | ||
| 257 | + // table.sign = notebook.status; | ||
| 258 | + // table.notebookId = notebook.id; | ||
| 259 | + // table.reserver = notebook.rnameStr; | ||
| 260 | + // table.pnum = notebook.actual_pnum; | ||
| 261 | + // table.nickName = notebook.nick_name; | ||
| 262 | + // table.noteName = notebook.note_name; | ||
| 263 | + //(不能移除自己定的桌子) | ||
| 264 | + // String idNow = ''; | ||
| 265 | + // if (tableMap.containsKey('${table.id}')) { | ||
| 266 | + // //包含,证明该桌子已经被预订了 | ||
| 267 | + // idNow = tableMap['${table.id}'].id; | ||
| 268 | + // if (idNow != widget.rid) { | ||
| 269 | + // //不是自己的当前订单 | ||
| 270 | + // //剔除已经预订的桌子,剩下空桌子(仅看空座) | ||
| 271 | + // tempList.remove(table); | ||
| 272 | + // //全部 | ||
| 273 | + // tempTableAll.remove(table); | ||
| 274 | + // } | ||
| 275 | + // } | ||
| 276 | + } else { | ||
| 277 | + table.sign = ""; | ||
| 278 | + table.notebookId = ""; | ||
| 279 | + if (table.enable == "1") { | ||
| 280 | + count++; | ||
| 281 | + } | ||
| 282 | + } | ||
| 283 | + } else { | ||
| 284 | + table.sign = "2"; | ||
| 285 | + table.notebookId = ""; | ||
| 286 | + } | ||
| 287 | + } | ||
| 288 | + | ||
| 289 | + areaTableMap["${outer.name}"] = outer.list; | ||
| 290 | + _chooseTableModel.areaTableMapCanNote["${outer.name}"] = tempList; | ||
| 291 | + Area area = Area(); | ||
| 292 | + area.name = outer.name; | ||
| 293 | + area.count = outer.list.length == 0 ? -1 : count; | ||
| 294 | + area.rid = outer.list.length == 0 ? outer.rid : outer.list[0].rid; | ||
| 295 | + areas.add(area); | ||
| 296 | + } | ||
| 297 | + _chooseTableModel.tablesCanNote = tempTableAll; | ||
| 298 | + if (_chooseTableModel.swichState) { | ||
| 299 | + _chooseTableModel.areaTableMapShow = | ||
| 300 | + _chooseTableModel.areaTableMapCanNote; | ||
| 301 | + _chooseTableModel.tablesShow = _chooseTableModel.tablesCanNote; | ||
| 302 | + } else { | ||
| 303 | + _chooseTableModel.areaTableMapShow = areaTableMap; | ||
| 304 | + _chooseTableModel.tablesShow = _chooseTableModel.tablesAll; | ||
| 305 | + } | ||
| 306 | + print(currentArea); | ||
| 307 | + if (widget.tid == '') { | ||
| 308 | + if (!needRetain) { | ||
| 309 | + // currentArea = areaTableMap.keys.first; | ||
| 310 | + currentArea = '全部'; | ||
| 311 | + _chooseTableModel.currentTables = _chooseTableModel.tablesAll; | ||
| 312 | + } | ||
| 313 | + // if (areas.length == 1) { | ||
| 314 | + // currentArea = areaTableMap.keys.first; | ||
| 315 | + // } | ||
| 316 | + } | ||
| 317 | + | ||
| 318 | + _chooseTableModel.pageState = PageState.Success; | ||
| 319 | + _chooseTableModel.notifyListeners(); | ||
| 320 | + } | ||
| 321 | + | ||
| 322 | + // //获取一天开始-结束时间字符串 | ||
| 323 | + // String _getRdate() { | ||
| 324 | + // String keys = ''; | ||
| 325 | + | ||
| 326 | + // if (widget.ddate_slot == '1') { | ||
| 327 | + // //早市 | ||
| 328 | + // keys = 'morning'; | ||
| 329 | + // } else if (widget.ddate_slot == '2') { | ||
| 330 | + // //午市 | ||
| 331 | + // keys = 'noon'; | ||
| 332 | + // } else if (widget.ddate_slot == '3') { | ||
| 333 | + // //晚市 | ||
| 334 | + // keys = 'night'; | ||
| 335 | + // } | ||
| 336 | + // String ymd = | ||
| 337 | + // DateUtil.formatDate(widget.dateTime, format: DateFormats.y_mo_d); | ||
| 338 | + // String timeStrStart = ''; | ||
| 339 | + // String timeStrEnd = ''; | ||
| 340 | + // //一天开始时间 | ||
| 341 | + // double startDay; | ||
| 342 | + // //一天结束时间 | ||
| 343 | + // double endDay; | ||
| 344 | + // if (keys != '') { | ||
| 345 | + // List temp = dailyMap[keys]; | ||
| 346 | + // timeStrStart = ymd + ' ' + temp.first + ':00'; | ||
| 347 | + // timeStrEnd = ymd + ' ' + temp.last + ':00'; | ||
| 348 | + // } else { | ||
| 349 | + // timeStrStart = widget.dateTime.year.toString() + | ||
| 350 | + // "-" + | ||
| 351 | + // Utils.addZeroNumber(widget.dateTime.month) + | ||
| 352 | + // "-" + | ||
| 353 | + // Utils.addZeroNumber(widget.dateTime.day) + | ||
| 354 | + // " 00:00:00"; | ||
| 355 | + // timeStrEnd = widget.dateTime.year.toString() + | ||
| 356 | + // "-" + | ||
| 357 | + // Utils.addZeroNumber(widget.dateTime.month) + | ||
| 358 | + // "-" + | ||
| 359 | + // Utils.addZeroNumber(widget.dateTime.day) + | ||
| 360 | + // " 23:59:59"; | ||
| 361 | + // } | ||
| 362 | + // startDay = (DateTime.parse(timeStrStart).millisecondsSinceEpoch) / 1000; | ||
| 363 | + // endDay = (DateTime.parse(timeStrEnd).millisecondsSinceEpoch) / 1000; | ||
| 364 | + // return startDay.floor().toString() + "-" + endDay.floor().toString(); | ||
| 365 | + // } | ||
| 366 | + | ||
| 367 | + Widget item(int i) { | ||
| 368 | + return GridView.builder( | ||
| 369 | + // controller: _areaController, | ||
| 370 | + // physics: NeverScrollableScrollPhysics(), | ||
| 371 | + padding: EdgeInsets.symmetric( | ||
| 372 | + vertical: ScreenUtil().setWidth(20), | ||
| 373 | + horizontal: ScreenUtil().setWidth(10)), | ||
| 374 | + shrinkWrap: true, | ||
| 375 | + itemCount: currentArea == '全部' | ||
| 376 | + ? _chooseTableModel.tablesShow.length | ||
| 377 | + : _chooseTableModel.areaTableMapShow[areas[i].name].length, | ||
| 378 | + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( | ||
| 379 | + crossAxisCount: 4, | ||
| 380 | + childAspectRatio: 1, | ||
| 381 | + mainAxisSpacing: ScreenUtil().setWidth(30), | ||
| 382 | + crossAxisSpacing: ScreenUtil().setWidth(12), | ||
| 383 | + ), | ||
| 384 | + | ||
| 385 | + itemBuilder: (BuildContext context, int index) { | ||
| 386 | + List<t.Table> data = currentArea == '全部' | ||
| 387 | + ? _chooseTableModel.tablesShow | ||
| 388 | + : _chooseTableModel.areaTableMapShow[areas[i].name]; | ||
| 389 | + // if (index == data.length || data.length == 0) { | ||
| 390 | + // return InkWell( | ||
| 391 | + // onTap: () async { | ||
| 392 | + // List<String> areasTemp = []; | ||
| 393 | + // for (int i = 0; i < areas.length; i++) { | ||
| 394 | + // areasTemp.add(areas[i].name); | ||
| 395 | + // } | ||
| 396 | + | ||
| 397 | + // //添加桌位弹框 | ||
| 398 | + // await DialogUtil.openCreateTableDialog( | ||
| 399 | + // context, areasTemp, i, personNumList, | ||
| 400 | + // onTap: (Map<String, String> value) async { | ||
| 401 | + // print(value); | ||
| 402 | + // // 'areaname': | ||
| 403 | + // // areas[currentAreaIndex], | ||
| 404 | + // // 'name': controller.text, | ||
| 405 | + // // 'pnumMin': pnumMin, | ||
| 406 | + // // 'pnumMax': pnumMax | ||
| 407 | + // //添加桌位 接口参数带整合??? | ||
| 408 | + // // 以下是旧的不去,明天添加桌位接口 | ||
| 409 | + // String rid; | ||
| 410 | + // for (Area item in areas) { | ||
| 411 | + // if (item.name == value['areaname']) { | ||
| 412 | + // rid = item.rid; | ||
| 413 | + // } | ||
| 414 | + // } | ||
| 415 | + // Map<String, String> params = { | ||
| 416 | + // 'rid': rid, | ||
| 417 | + // 'name': value['name'], | ||
| 418 | + // }; | ||
| 419 | + // if (value['pnumMin'] != '') { | ||
| 420 | + // params['pnum'] = value['pnumMin']; | ||
| 421 | + // } | ||
| 422 | + // if (value['pnumMax'] != '') { | ||
| 423 | + // params['most_pnum'] = value['pnumMax']; | ||
| 424 | + // } | ||
| 425 | + // bool success = | ||
| 426 | + // await _chooseTableModel.addTable(context, params); | ||
| 427 | + // print(success); | ||
| 428 | + // if (success) { | ||
| 429 | + // Utils.showToast('添加成功!'); | ||
| 430 | + // // TableOuter tableOuter = TableOuter(); | ||
| 431 | + // // tableOuter.name = value; | ||
| 432 | + // // tableOuter.list = []; | ||
| 433 | + // // tableManagerModel.tableOuterList.add(tableOuter); | ||
| 434 | + // // tableManagerModel.initData(); | ||
| 435 | + // // Timer( | ||
| 436 | + // // Duration(milliseconds: 500), | ||
| 437 | + // // () => _areaController.jumpTo( | ||
| 438 | + // // _areaController.position.maxScrollExtent)); | ||
| 439 | + | ||
| 440 | + // // await tableManagerModel | ||
| 441 | + // // .getTableList(context); | ||
| 442 | + // // await tableManagerModel | ||
| 443 | + // // .initData(); | ||
| 444 | + // refreshTable(context); | ||
| 445 | + // } | ||
| 446 | + // }); | ||
| 447 | + // }, | ||
| 448 | + // child: Container( | ||
| 449 | + // child: DottedBorder( | ||
| 450 | + // dashPattern: [5, 5, 5, 5], | ||
| 451 | + // borderType: BorderType.RRect, | ||
| 452 | + // radius: Radius.circular(ScreenUtil().setWidth(20)), | ||
| 453 | + // // padding: EdgeInsets.all(ScreenUtil().setWidth(70)), | ||
| 454 | + // color: MyColours.color_E0E0E0, | ||
| 455 | + // strokeWidth: ScreenUtil().setWidth(2), | ||
| 456 | + // child: ClipRRect( | ||
| 457 | + // borderRadius: BorderRadius.all( | ||
| 458 | + // Radius.circular(ScreenUtil().setWidth(20))), | ||
| 459 | + // child: Container( | ||
| 460 | + // height: ScreenUtil().screenWidth - | ||
| 461 | + // ScreenUtil().setWidth(12 * 3 - 10 * 2), | ||
| 462 | + // width: ScreenUtil().screenWidth - | ||
| 463 | + // ScreenUtil().setWidth(12 * 3 - 10 * 2), | ||
| 464 | + // child: Column( | ||
| 465 | + // mainAxisAlignment: MainAxisAlignment.center, | ||
| 466 | + // children: [ | ||
| 467 | + // Image.asset(Utils.getImgPath('add_store'), | ||
| 468 | + // width: ScreenUtil().setWidth(32)), | ||
| 469 | + // ], | ||
| 470 | + // ), | ||
| 471 | + // ), | ||
| 472 | + // ), | ||
| 473 | + // ))); | ||
| 474 | + // } else { | ||
| 475 | + return Selector<ChooseTableModel, t.Table>( | ||
| 476 | + shouldRebuild: (pre, next) => true, | ||
| 477 | + selector: (context, model) => data[index], | ||
| 478 | + builder: (context, table, _) { | ||
| 479 | + return FTableItem(table, canSelected: true, | ||
| 480 | + onSelected: (t.Table table) { | ||
| 481 | + // if (widget.fromPage == 'tablePhoto') { | ||
| 482 | + // for (String item in areaTableMap.keys) { | ||
| 483 | + // for (t.Table item in areaTableMap[item]) { | ||
| 484 | + // item.selected = false; | ||
| 485 | + // selectNum = 0; | ||
| 486 | + // if (table.id == item.id) { | ||
| 487 | + // item.selected = true; | ||
| 488 | + // selectTables = []; | ||
| 489 | + // selectNum++; | ||
| 490 | + // selectTables.add(table); | ||
| 491 | + // } | ||
| 492 | + // } | ||
| 493 | + // } | ||
| 494 | + // setState(() {}); | ||
| 495 | + // } else { | ||
| 496 | + if ((table as t.Table).selected) { | ||
| 497 | + selectTables.add(table); | ||
| 498 | + | ||
| 499 | + selectNum++; | ||
| 500 | + | ||
| 501 | + widget.tableList.add(tableToTableList(table)); | ||
| 502 | + } else { | ||
| 503 | + widget.tableList.removeWhere((t) => t.id == table.id); | ||
| 504 | + | ||
| 505 | + selectNum--; | ||
| 506 | + | ||
| 507 | + selectTables.removeWhere((t) => t.id == table.id); | ||
| 508 | + } | ||
| 509 | + setState(() {}); | ||
| 510 | + // } | ||
| 511 | + }, fromPage: '', tableMap: tableMap, rid: ''); | ||
| 512 | + }, | ||
| 513 | + ); | ||
| 514 | + }, | ||
| 515 | + ); | ||
| 516 | + } | ||
| 517 | + | ||
| 518 | + @override | ||
| 519 | + Widget build(BuildContext context) { | ||
| 520 | + _chooseTableModel = Provider.of<ChooseTableModel>(context); | ||
| 521 | + return Scaffold( | ||
| 522 | + body: SafeArea( | ||
| 523 | + child: Column( | ||
| 524 | + children: <Widget>[ | ||
| 525 | + MyAppBar( | ||
| 526 | + "选择桌位", | ||
| 527 | + showBack: true, | ||
| 528 | + ), | ||
| 529 | + Expanded( | ||
| 530 | + child: Consumer<ChooseTableModel>(builder: (context, model, _) { | ||
| 531 | + if (model.pageState != PageState.Success) { | ||
| 532 | + return ExceptionPage( | ||
| 533 | + pageState: model.pageState, | ||
| 534 | + callback: () { | ||
| 535 | + getTableList(); | ||
| 536 | + }, | ||
| 537 | + emptyMsg: "暂时没有桌位哦", | ||
| 538 | + emptyImg: "empty_search", | ||
| 539 | + showMsg: "加载中,请稍后...", | ||
| 540 | + ); | ||
| 541 | + } else { | ||
| 542 | + return Column( | ||
| 543 | + // crossAxisAlignment: CrossAxisAlignment.center, | ||
| 544 | + children: [ | ||
| 545 | + Container( | ||
| 546 | + color: MyColours.color_ffffff, | ||
| 547 | + height: ScreenUtil().setWidth(92), | ||
| 548 | + margin: | ||
| 549 | + EdgeInsets.only(bottom: ScreenUtil().setWidth(30)), | ||
| 550 | + child: Row( | ||
| 551 | + children: [ | ||
| 552 | + HEmptyView(20), | ||
| 553 | + Expanded( | ||
| 554 | + child: ListView.builder( | ||
| 555 | + itemCount: | ||
| 556 | + areas.length == 0 ? 1 : areas.length + 1, | ||
| 557 | + shrinkWrap: true, | ||
| 558 | + scrollDirection: Axis.horizontal, | ||
| 559 | + itemBuilder: (BuildContext contxt, int index) { | ||
| 560 | + // if (index == areas.length + 1 || | ||
| 561 | + // areas.length == 0) { | ||
| 562 | + // return InkWell( | ||
| 563 | + // onTap: () async { | ||
| 564 | + // //添加区域弹框 | ||
| 565 | + // await DialogUtil.openCreateAreaDialog( | ||
| 566 | + // context, onTap: (value) async { | ||
| 567 | + // print(value); | ||
| 568 | + // //添加区域 | ||
| 569 | + // bool success = await _chooseTableModel | ||
| 570 | + // .addTableAreas(context, value); | ||
| 571 | + // print(success); | ||
| 572 | + // if (success) { | ||
| 573 | + // Utils.showToast('添加成功!'); | ||
| 574 | + // UserModel userModel = | ||
| 575 | + // Provider.of<UserModel>(context, | ||
| 576 | + // listen: false); | ||
| 577 | + // Map<String, String> params = { | ||
| 578 | + // "sellerid": userModel.user.sellerid | ||
| 579 | + // }; | ||
| 580 | + // await _chooseTableModel.getTableList( | ||
| 581 | + // context, params, | ||
| 582 | + // needLoading: false); | ||
| 583 | + // initData(); | ||
| 584 | + | ||
| 585 | + // // setState(() { | ||
| 586 | + // // updateMenu(); | ||
| 587 | + // // }); | ||
| 588 | + // // _scrollToIndex(widget | ||
| 589 | + // // .tableManagerModel | ||
| 590 | + // // .areas | ||
| 591 | + // // .length); | ||
| 592 | + | ||
| 593 | + // } | ||
| 594 | + // }); | ||
| 595 | + // }, | ||
| 596 | + // child: Column( | ||
| 597 | + // children: [ | ||
| 598 | + // VEmptyView(20), | ||
| 599 | + // DottedBorder( | ||
| 600 | + // dashPattern: [5, 5, 5, 5], | ||
| 601 | + // borderType: BorderType.RRect, | ||
| 602 | + // radius: Radius.circular( | ||
| 603 | + // ScreenUtil().setWidth(10)), | ||
| 604 | + // // padding: EdgeInsets.all(ScreenUtil().setWidth(70)), | ||
| 605 | + // color: MyColours.color_199095, | ||
| 606 | + // strokeWidth: ScreenUtil().setWidth(2), | ||
| 607 | + // child: ClipRRect( | ||
| 608 | + // borderRadius: BorderRadius.all( | ||
| 609 | + // Radius.circular( | ||
| 610 | + // ScreenUtil().setWidth(10))), | ||
| 611 | + // child: Container( | ||
| 612 | + // height: | ||
| 613 | + // ScreenUtil().setWidth(25 * 2), | ||
| 614 | + // width: ScreenUtil() | ||
| 615 | + // .setWidth(104 * 2), | ||
| 616 | + // child: Column( | ||
| 617 | + // mainAxisAlignment: | ||
| 618 | + // MainAxisAlignment.center, | ||
| 619 | + // children: [ | ||
| 620 | + // Image.asset( | ||
| 621 | + // Utils.getImgPath( | ||
| 622 | + // 'add_area'), | ||
| 623 | + // width: ScreenUtil() | ||
| 624 | + // .setWidth(24)), | ||
| 625 | + // ], | ||
| 626 | + // ), | ||
| 627 | + // ), | ||
| 628 | + // ), | ||
| 629 | + // ) | ||
| 630 | + // ], | ||
| 631 | + // ), | ||
| 632 | + // ); | ||
| 633 | + // } else { | ||
| 634 | + if (index == 0) { | ||
| 635 | + return InkWell( | ||
| 636 | + onTap: () { | ||
| 637 | + setState(() { | ||
| 638 | + isSelected = true; | ||
| 639 | + currentArea = '全部'; | ||
| 640 | + _chooseTableModel.currentTables = | ||
| 641 | + _chooseTableModel | ||
| 642 | + .areaTableMapShow[currentArea]; | ||
| 643 | + }); | ||
| 644 | + }, | ||
| 645 | + child: Container( | ||
| 646 | + // width: ScreenUtil().setWidth(104 * 2), | ||
| 647 | + height: ScreenUtil().setWidth(80), | ||
| 648 | + margin: EdgeInsets.only( | ||
| 649 | + right: ScreenUtil().setWidth(20), | ||
| 650 | + top: ScreenUtil().setWidth(20), | ||
| 651 | + ), | ||
| 652 | + padding: EdgeInsets.symmetric( | ||
| 653 | + horizontal: ScreenUtil().setWidth(20), | ||
| 654 | + vertical: ScreenUtil().setWidth(10)), | ||
| 655 | + alignment: Alignment.center, | ||
| 656 | + decoration: BoxDecoration( | ||
| 657 | + // borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10)), | ||
| 658 | + color: isSelected | ||
| 659 | + ? MyColours.color_199095 | ||
| 660 | + : MyColours.color_ffffff, | ||
| 661 | + border: Border.all( | ||
| 662 | + color: MyColours.color_E0E0E0, | ||
| 663 | + width: ScreenUtil().setWidth(2))), | ||
| 664 | + child: Text( | ||
| 665 | + '全部', | ||
| 666 | + overflow: TextOverflow.ellipsis, | ||
| 667 | + style: TextStyle( | ||
| 668 | + color: isSelected | ||
| 669 | + ? MyColours.color_ffffff | ||
| 670 | + : MyColours.color_333333, | ||
| 671 | + fontSize: ScreenUtil().setSp(28), | ||
| 672 | + decoration: TextDecoration.none, | ||
| 673 | + fontWeight: FontWeight.normal), | ||
| 674 | + ), | ||
| 675 | + ), | ||
| 676 | + ); | ||
| 677 | + } else { | ||
| 678 | + return AreaItemTable( | ||
| 679 | + areas[index - 1], currentArea, (area) { | ||
| 680 | + setState(() { | ||
| 681 | + isSelected = false; | ||
| 682 | + _selectNumber = index - 1; | ||
| 683 | + currentArea = areas[index - 1].name; | ||
| 684 | + | ||
| 685 | + _chooseTableModel.currentTables = | ||
| 686 | + _chooseTableModel | ||
| 687 | + .areaTableMapShow[currentArea]; | ||
| 688 | + // _anmationMenu(); | ||
| 689 | + }); | ||
| 690 | + }); | ||
| 691 | + } | ||
| 692 | + // } | ||
| 693 | + }, | ||
| 694 | + )), | ||
| 695 | + // InkWell( | ||
| 696 | + // onTap: () { | ||
| 697 | + // setState(() { | ||
| 698 | + // model.swichState = !model.swichState; | ||
| 699 | + // if (model.swichState) { | ||
| 700 | + // model.areaTableMapShow = | ||
| 701 | + // _chooseTableModel.areaTableMapCanNote; | ||
| 702 | + // model.tablesShow = | ||
| 703 | + // _chooseTableModel.tablesCanNote; | ||
| 704 | + // } else { | ||
| 705 | + // model.areaTableMapShow = model.areaTableMap; | ||
| 706 | + // model.tablesShow = model.tablesAll; | ||
| 707 | + // } | ||
| 708 | + // }); | ||
| 709 | + // }, | ||
| 710 | + // child: Container( | ||
| 711 | + // margin: EdgeInsets.only( | ||
| 712 | + // top: ScreenUtil().setWidth(20), | ||
| 713 | + // ), | ||
| 714 | + // child: Row( | ||
| 715 | + // children: [ | ||
| 716 | + // MyDivider(ScreenUtil().setWidth(15), | ||
| 717 | + // ScreenUtil().setWidth(80), | ||
| 718 | + // color: MyColours.color_F1F0F4), | ||
| 719 | + // MyDivider(ScreenUtil().setWidth(2), | ||
| 720 | + // ScreenUtil().setWidth(80), | ||
| 721 | + // color: MyColours.color_9C9C9C), | ||
| 722 | + // HEmptyView(30), | ||
| 723 | + // Image.asset( | ||
| 724 | + // model.swichState | ||
| 725 | + // ? Utils.getImgPath('f_swich_on') | ||
| 726 | + // : Utils.getImgPath('f_swich_off'), | ||
| 727 | + // width: ScreenUtil().setWidth(90), | ||
| 728 | + // // height: ScreenUtil().setWidth(82), | ||
| 729 | + // ), | ||
| 730 | + // // HEmptyView(20), | ||
| 731 | + // // Text( | ||
| 732 | + // // '仅看\n空座', | ||
| 733 | + // // style: TextStyle( | ||
| 734 | + // // fontSize: ScreenUtil().setSp(28), | ||
| 735 | + // // color: MyColours.color_333333, | ||
| 736 | + // // ), | ||
| 737 | + // // ), | ||
| 738 | + // // HEmptyView(40) | ||
| 739 | + // ], | ||
| 740 | + // )), | ||
| 741 | + // ) | ||
| 742 | + ], | ||
| 743 | + ), | ||
| 744 | + ), | ||
| 745 | + Expanded( | ||
| 746 | + flex: 2, | ||
| 747 | + child: Container( | ||
| 748 | + constraints: BoxConstraints( | ||
| 749 | + minHeight: ScreenUtil().setWidth(100)), | ||
| 750 | + color: Color.fromRGBO(249, 249, 249, 1), | ||
| 751 | + child: item(_selectNumber))), | ||
| 752 | + Container( | ||
| 753 | + width: double.infinity, | ||
| 754 | + height: ScreenUtil().setHeight(84), | ||
| 755 | + margin: EdgeInsets.only( | ||
| 756 | + bottom: ScreenUtil().setWidth(50)), | ||
| 757 | + padding: EdgeInsets.symmetric( | ||
| 758 | + horizontal: ScreenUtil().setWidth(31)), | ||
| 759 | + alignment: Alignment.center, | ||
| 760 | + color: MyColours.color_ffffff, | ||
| 761 | + child: CommonButton( | ||
| 762 | + // content: widget.fromPage == 'tablePhoto' | ||
| 763 | + // ? '确定' | ||
| 764 | + // : "已选${selectNum}个 确定", | ||
| 765 | + content: '确定', | ||
| 766 | + width: 300, | ||
| 767 | + height: 84, | ||
| 768 | + fontSize: 34, | ||
| 769 | + state: 1, | ||
| 770 | + onPress: () { | ||
| 771 | + // if (widget.fromPage == "tablePhoto") { | ||
| 772 | + // Map temp = { | ||
| 773 | + // 'tid': selectTables.length > 0 | ||
| 774 | + // ? selectTables[0].id | ||
| 775 | + // : '', | ||
| 776 | + // 'tname': selectTables.length > 0 | ||
| 777 | + // ? selectTables[0].name | ||
| 778 | + // : '' | ||
| 779 | + // }; | ||
| 780 | + // Navigator.of(context).pop(temp); | ||
| 781 | + // } else { | ||
| 782 | + // if (widget.canChoose) { | ||
| 783 | + // if (widget.tableList.length > 0) { | ||
| 784 | + // String tid = ""; | ||
| 785 | + // for (TableList table in widget.tableList) { | ||
| 786 | + // tid += table.id + ","; | ||
| 787 | + // } | ||
| 788 | + // if (widget.tableList.length > 0) { | ||
| 789 | + // tid = tid.substring(0, tid.length - 1); | ||
| 790 | + // } | ||
| 791 | + | ||
| 792 | + // Map temp = { | ||
| 793 | + // 'object': widget.tableList, | ||
| 794 | + // 'tid': tid | ||
| 795 | + // }; | ||
| 796 | + // Navigator.of(context).pop(temp); | ||
| 797 | + // // } | ||
| 798 | + // } else { | ||
| 799 | + if (selectTables.length > 0) { | ||
| 800 | + String tid = ""; | ||
| 801 | + for (t.Table table in selectTables) { | ||
| 802 | + tid += table.id + ","; | ||
| 803 | + } | ||
| 804 | + if (selectTables.length > 0) { | ||
| 805 | + tid = tid.substring(0, tid.length - 1); | ||
| 806 | + } | ||
| 807 | + | ||
| 808 | + Map temp = { | ||
| 809 | + 'object': widget.tableList, | ||
| 810 | + 'tid': tid | ||
| 811 | + }; | ||
| 812 | + Navigator.of(context).pop(temp); | ||
| 813 | + } | ||
| 814 | + // } | ||
| 815 | + // } | ||
| 816 | + }, | ||
| 817 | + )), | ||
| 818 | + ]); | ||
| 819 | + } | ||
| 820 | + }), | ||
| 821 | + ), | ||
| 822 | + ], | ||
| 823 | + ), | ||
| 824 | + )); | ||
| 825 | + } | ||
| 826 | + | ||
| 827 | + tableToTableList(t.Table table) { | ||
| 828 | + TableList _tableList = TableList( | ||
| 829 | + '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''); | ||
| 830 | + _tableList.id = table.id; | ||
| 831 | + _tableList.rid = table.rid; | ||
| 832 | + _tableList.tid = table.tid; | ||
| 833 | + _tableList.name = table.name; | ||
| 834 | + _tableList.tablePnum = table.table_pnum; | ||
| 835 | + _tableList.sellerid = null; | ||
| 836 | + _tableList.qrcode = null; | ||
| 837 | + _tableList.mostPnum = table.most_pnum; | ||
| 838 | + _tableList.hot = null; | ||
| 839 | + _tableList.orderO = table.order_o; | ||
| 840 | + _tableList.status = table.status; | ||
| 841 | + _tableList.enable = table.enable; | ||
| 842 | + _tableList.spell = table.spell; | ||
| 843 | + _tableList.cdate = null; | ||
| 844 | + _tableList.rname = table.rname; | ||
| 845 | + _tableList.regionName = table.rname; | ||
| 846 | + _tableList.selected = true; | ||
| 847 | + return _tableList; | ||
| 848 | + } | ||
| 849 | +} |
| @@ -228,7 +228,7 @@ class _FeastPersonalPageState extends State<FeastPersonalPage> { | @@ -228,7 +228,7 @@ class _FeastPersonalPageState extends State<FeastPersonalPage> { | ||
| 228 | return ExceptionPage( | 228 | return ExceptionPage( |
| 229 | pageState: model.pageStatePersonnalHome, | 229 | pageState: model.pageStatePersonnalHome, |
| 230 | callback: () { | 230 | callback: () { |
| 231 | - _getSellerUserBySellerid(); | 231 | + _getData(); |
| 232 | }, | 232 | }, |
| 233 | emptyMsg: "暂时没有员工哦", | 233 | emptyMsg: "暂时没有员工哦", |
| 234 | emptyImg: "empty_search", | 234 | emptyImg: "empty_search", |
| @@ -30,7 +30,8 @@ class FeastModel extends ChangeNotifier { | @@ -30,7 +30,8 @@ class FeastModel extends ChangeNotifier { | ||
| 30 | PageState pageStatePersonnalHome = PageState.Loading; //员工管理 | 30 | PageState pageStatePersonnalHome = PageState.Loading; //员工管理 |
| 31 | List<String> selectPersonnalData = []; | 31 | List<String> selectPersonnalData = []; |
| 32 | bool checkValue = false; | 32 | bool checkValue = false; |
| 33 | - List<String> getPersonnalList = []; //宴会员工 | 33 | + List<String> getPersonnalList = []; //宴会员工uid |
| 34 | + List<FilterBtnModel> personnalList = []; //宴会员工数据----跟单人 | ||
| 34 | 35 | ||
| 35 | PageState pageStateType = PageState.Loading; //宴会类型 | 36 | PageState pageStateType = PageState.Loading; //宴会类型 |
| 36 | List<ClassifySunModel> classifyData = []; | 37 | List<ClassifySunModel> classifyData = []; |
| @@ -57,15 +58,16 @@ class FeastModel extends ChangeNotifier { | @@ -57,15 +58,16 @@ class FeastModel extends ChangeNotifier { | ||
| 57 | PageState pageStateFollowUp = PageState.Loading; //待跟进宴会 | 58 | PageState pageStateFollowUp = PageState.Loading; //待跟进宴会 |
| 58 | PageState pageStateDepositData = PageState.Loading; //定金数据 | 59 | PageState pageStateDepositData = PageState.Loading; //定金数据 |
| 59 | 60 | ||
| 61 | + String rid; //宴会id | ||
| 60 | 62 | ||
| 61 | /*** | 63 | /*** |
| 62 | * | 64 | * |
| 63 | * 新建宴会 | 65 | * 新建宴会 |
| 64 | */ | 66 | */ |
| 65 | 67 | ||
| 66 | - | ||
| 67 | - ///添加宴会员工 | ||
| 68 | - Future<dynamic> createBanquet(BuildContext context, Map<String, String> params, | 68 | + ///新建意向 |
| 69 | + Future<dynamic> createBanquet( | ||
| 70 | + BuildContext context, Map<String, String> params, | ||
| 69 | {isShowLoading = true}) async { | 71 | {isShowLoading = true}) async { |
| 70 | BaseResp<dynamic> baseResp = await DioUtil() | 72 | BaseResp<dynamic> baseResp = await DioUtil() |
| 71 | .request<dynamic>(context, Method.get, HttpUrl.create_banquet, | 73 | .request<dynamic>(context, Method.get, HttpUrl.create_banquet, |
| @@ -77,6 +79,35 @@ class FeastModel extends ChangeNotifier { | @@ -77,6 +79,35 @@ class FeastModel extends ChangeNotifier { | ||
| 77 | }); | 79 | }); |
| 78 | if (baseResp.code == Constant.status_success) { | 80 | if (baseResp.code == Constant.status_success) { |
| 79 | // if (baseResp.data == 1) { | 81 | // if (baseResp.data == 1) { |
| 82 | + rid = baseResp.data['id']; | ||
| 83 | + return true; | ||
| 84 | + // } else { | ||
| 85 | + // return false; | ||
| 86 | + // } | ||
| 87 | + } else { | ||
| 88 | + if (baseResp != null) { | ||
| 89 | + Utils.showToast(baseResp.msg ?? ""); | ||
| 90 | + } | ||
| 91 | + return false; | ||
| 92 | + } | ||
| 93 | + } | ||
| 94 | + | ||
| 95 | + ///设置选台信息 | ||
| 96 | + | ||
| 97 | + Future<dynamic> setBanquetInfo( | ||
| 98 | + BuildContext context, Map<String, String> params, | ||
| 99 | + {isShowLoading = true}) async { | ||
| 100 | + BaseResp<dynamic> baseResp = await DioUtil() | ||
| 101 | + .request<dynamic>(context, Method.get, HttpUrl.set_banquet_info, | ||
| 102 | + data: params, showLoading: isShowLoading) | ||
| 103 | + .catchError((error) { | ||
| 104 | + print(error.toString()); | ||
| 105 | + if (error is MyError) {} | ||
| 106 | + return false; | ||
| 107 | + }); | ||
| 108 | + if (baseResp.code == Constant.status_success) { | ||
| 109 | + // if (baseResp.data == 1) { | ||
| 110 | + // rid = baseResp.data['id']; | ||
| 80 | return true; | 111 | return true; |
| 81 | // } else { | 112 | // } else { |
| 82 | // return false; | 113 | // return false; |
| @@ -88,6 +119,8 @@ class FeastModel extends ChangeNotifier { | @@ -88,6 +119,8 @@ class FeastModel extends ChangeNotifier { | ||
| 88 | return false; | 119 | return false; |
| 89 | } | 120 | } |
| 90 | } | 121 | } |
| 122 | + | ||
| 123 | + | ||
| 91 | /*** | 124 | /*** |
| 92 | * | 125 | * |
| 93 | * 宴会员工 | 126 | * 宴会员工 |
| @@ -154,6 +187,15 @@ class FeastModel extends ChangeNotifier { | @@ -154,6 +187,15 @@ class FeastModel extends ChangeNotifier { | ||
| 154 | return model; | 187 | return model; |
| 155 | } | 188 | } |
| 156 | 189 | ||
| 190 | + FilterBtnModel returnModelStaff(GetStaffSunModel item) { | ||
| 191 | + FilterBtnModel model = FilterBtnModel(); | ||
| 192 | + model.id = item.userId; | ||
| 193 | + model.title = item.nickName ?? item.account; | ||
| 194 | + model.account = item.account; | ||
| 195 | + // model.phone = item.phone; | ||
| 196 | + return model; | ||
| 197 | + } | ||
| 198 | + | ||
| 157 | /// 获取店员列表 | 199 | /// 获取店员列表 |
| 158 | Future<bool> getAuthUserLists(BuildContext context, | 200 | Future<bool> getAuthUserLists(BuildContext context, |
| 159 | {showLoading = false}) async { | 201 | {showLoading = false}) async { |
| @@ -271,11 +313,14 @@ class FeastModel extends ChangeNotifier { | @@ -271,11 +313,14 @@ class FeastModel extends ChangeNotifier { | ||
| 271 | return false; | 313 | return false; |
| 272 | }); | 314 | }); |
| 273 | getPersonnalList = []; | 315 | getPersonnalList = []; |
| 316 | + personnalList = []; | ||
| 274 | GetStaffModel getStaffModel = GetStaffModel.fromJson(baseResp.responseData); | 317 | GetStaffModel getStaffModel = GetStaffModel.fromJson(baseResp.responseData); |
| 275 | if (getStaffModel.ret == Constant.status_success) { | 318 | if (getStaffModel.ret == Constant.status_success) { |
| 276 | List<GetStaffSunModel> data = getStaffModel.data; | 319 | List<GetStaffSunModel> data = getStaffModel.data; |
| 277 | data.forEach((element) { | 320 | data.forEach((element) { |
| 278 | getPersonnalList.add(element.userId); | 321 | getPersonnalList.add(element.userId); |
| 322 | + FilterBtnModel model = returnModelStaff(element); | ||
| 323 | + personnalList.add(model); | ||
| 279 | }); | 324 | }); |
| 280 | return true; | 325 | return true; |
| 281 | } else { | 326 | } else { |
| @@ -998,4 +998,15 @@ class NavigatorUtil { | @@ -998,4 +998,15 @@ class NavigatorUtil { | ||
| 998 | return _navigateTo(context, "${Routes.feast_deposit_data_page}", | 998 | return _navigateTo(context, "${Routes.feast_deposit_data_page}", |
| 999 | replace: replace); | 999 | replace: replace); |
| 1000 | } | 1000 | } |
| 1001 | + | ||
| 1002 | + ///宴会---不待餐---- 选择桌位——方硕新修改的选择桌位页面 | ||
| 1003 | + static Future goFeastSelectTablePage(BuildContext context, | ||
| 1004 | + {Map object, String tid = ''}) { | ||
| 1005 | + if (object != null) { | ||
| 1006 | + return _navigateTo(context, | ||
| 1007 | + "${Routes.feast_select_table_page}?tid=$tid&object=${FluroConvertUtils.object2string(object)}"); | ||
| 1008 | + } | ||
| 1009 | + // object = {'object': [], "tid": ''}; | ||
| 1010 | + return _navigateTo(context, "${Routes.feast_select_table_page}?tid=$tid"); | ||
| 1011 | + } | ||
| 1001 | } | 1012 | } |
| @@ -42,6 +42,7 @@ import 'package:one_key/pages/detail/edit_reserver_page.dart'; | @@ -42,6 +42,7 @@ import 'package:one_key/pages/detail/edit_reserver_page.dart'; | ||
| 42 | import 'package:one_key/pages/detail/notebook_detail_change_page.dart'; | 42 | import 'package:one_key/pages/detail/notebook_detail_change_page.dart'; |
| 43 | import 'package:one_key/pages/detail/notebook_detail_change_page_f.dart'; | 43 | import 'package:one_key/pages/detail/notebook_detail_change_page_f.dart'; |
| 44 | import 'package:one_key/pages/detail/select_tables_f_page.dart'; | 44 | import 'package:one_key/pages/detail/select_tables_f_page.dart'; |
| 45 | +import 'package:one_key/pages/feast/feast_select_table_page.dart'; | ||
| 45 | import 'package:one_key/pages/home/home_page.dart'; | 46 | import 'package:one_key/pages/home/home_page.dart'; |
| 46 | import 'package:one_key/pages/invicate/invitation_page.dart'; | 47 | import 'package:one_key/pages/invicate/invitation_page.dart'; |
| 47 | import 'package:one_key/pages/invicate/invitation_page_f_old.dart'; | 48 | import 'package:one_key/pages/invicate/invitation_page_f_old.dart'; |
| @@ -1588,3 +1589,24 @@ var feastDepositDataPageHandle = new Handler( | @@ -1588,3 +1589,24 @@ var feastDepositDataPageHandle = new Handler( | ||
| 1588 | return ChangeNotifierProvider<FeastModel>( | 1589 | return ChangeNotifierProvider<FeastModel>( |
| 1589 | create: (_) => FeastModel(), child: FeastDepositDataPage()); | 1590 | create: (_) => FeastModel(), child: FeastDepositDataPage()); |
| 1590 | }); | 1591 | }); |
| 1592 | + | ||
| 1593 | +///宴会---选择桌位 | ||
| 1594 | +var feastSelectTablePageHandle = new Handler( | ||
| 1595 | + handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { | ||
| 1596 | + String tid = params['tid'].first; | ||
| 1597 | + | ||
| 1598 | + List<TableList> res = []; | ||
| 1599 | + if (params.keys.contains('object')) { | ||
| 1600 | + Map object = FluroConvertUtils.string2map(params["object"].first); | ||
| 1601 | + List temp = object['object']; | ||
| 1602 | + | ||
| 1603 | + for (var item in temp) { | ||
| 1604 | + res.add(TableList.fromJson(item)); | ||
| 1605 | + } | ||
| 1606 | + } | ||
| 1607 | + | ||
| 1608 | + // return SelectTablePage(rid, dateTime, ddate_slot,canChoose: canChoose); | ||
| 1609 | + return ChangeNotifierProvider<ChooseTableModel>( | ||
| 1610 | + create: (_) => ChooseTableModel(), | ||
| 1611 | + child: FeastSelectTablePage(tableList: res, tid: tid)); | ||
| 1612 | +}); |
| @@ -147,6 +147,8 @@ class Routes { | @@ -147,6 +147,8 @@ class Routes { | ||
| 147 | static String feast_follow_up_page = "/feast_follow_up_page"; //宴会-----待跟进 | 147 | static String feast_follow_up_page = "/feast_follow_up_page"; //宴会-----待跟进 |
| 148 | static String feast_deposit_data_page = | 148 | static String feast_deposit_data_page = |
| 149 | "/feast_deposit_data_page"; //宴会-----定金数据 | 149 | "/feast_deposit_data_page"; //宴会-----定金数据 |
| 150 | + static String feast_select_table_page = | ||
| 151 | + "/feast_select_table_page"; //宴会-----新建宴会---选择桌位 | ||
| 150 | 152 | ||
| 151 | static void configureRoutes(FluroRouter router) { | 153 | static void configureRoutes(FluroRouter router) { |
| 152 | router.notFoundHandler = new Handler( | 154 | router.notFoundHandler = new Handler( |
| @@ -296,7 +298,8 @@ class Routes { | @@ -296,7 +298,8 @@ class Routes { | ||
| 296 | 298 | ||
| 297 | router.define(feast_follow_up_page, handler: feastFollowUpPageHandle); | 299 | router.define(feast_follow_up_page, handler: feastFollowUpPageHandle); |
| 298 | 300 | ||
| 299 | - router.define(feast_deposit_data_page, handler: feastDepositDataPageHandle); | 301 | + router.define(feast_deposit_data_page, handler: feastDepositDataPageHandle); |
| 302 | + router.define(feast_select_table_page, handler: feastSelectTablePageHandle); | ||
| 300 | 303 | ||
| 301 | } | 304 | } |
| 302 | } | 305 | } |
| 1 | +class ConvertNumberToChineseMoneyWords{ | ||
| 2 | + // 大写数字 | ||
| 3 | + static List<String> NUMBERS = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十",""]; | ||
| 4 | + | ||
| 5 | + static String toChinese(int index) { | ||
| 6 | + if(index > 100){ | ||
| 7 | + return index.toString(); | ||
| 8 | + } | ||
| 9 | + StringBuffer stringBuffer = StringBuffer(); | ||
| 10 | + if(index / 10 < 1){ | ||
| 11 | + return NUMBERS[index]; | ||
| 12 | + } | ||
| 13 | + int tenUnit = (index / 10).toInt(); | ||
| 14 | + int remainder = index % 10; | ||
| 15 | + if(remainder == 9){ | ||
| 16 | + tenUnit++; | ||
| 17 | + remainder = 10; | ||
| 18 | + } | ||
| 19 | + if(tenUnit == 1){ | ||
| 20 | + stringBuffer..write("十")..write(NUMBERS[remainder]); | ||
| 21 | + return stringBuffer.toString(); | ||
| 22 | + } | ||
| 23 | + stringBuffer..write(NUMBERS[tenUnit - 1])..write("十")..write(NUMBERS[remainder]); | ||
| 24 | + return stringBuffer.toString(); | ||
| 25 | + } | ||
| 26 | +} |
-
Please register or login to post a comment