Showing
16 changed files
with
350 additions
and
107 deletions
| @@ -30,6 +30,8 @@ import 'package:one_key/widgets/v_empty_view.dart'; | @@ -30,6 +30,8 @@ import 'package:one_key/widgets/v_empty_view.dart'; | ||
| 30 | import 'package:provider/provider.dart'; | 30 | import 'package:provider/provider.dart'; |
| 31 | import 'dart:convert' as convert; | 31 | import 'dart:convert' as convert; |
| 32 | 32 | ||
| 33 | +import '../../models/get_board_model.dart'; | ||
| 34 | + | ||
| 33 | class SelectTableFPage extends StatefulWidget { | 35 | class SelectTableFPage extends StatefulWidget { |
| 34 | final String rid; //预订id | 36 | final String rid; //预订id |
| 35 | final DateTime dateTime; //日期 | 37 | final DateTime dateTime; //日期 |
| @@ -68,6 +70,7 @@ class SelectTableFPageState extends State<SelectTableFPage> { | @@ -68,6 +70,7 @@ class SelectTableFPageState extends State<SelectTableFPage> { | ||
| 68 | bool isSelected = true; //全部按钮 | 70 | bool isSelected = true; //全部按钮 |
| 69 | int _selectNumber; | 71 | int _selectNumber; |
| 70 | Map dailyMap = {}; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟 | 72 | Map dailyMap = {}; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟 |
| 73 | + List<Notebook> noteBooks; | ||
| 71 | 74 | ||
| 72 | @override | 75 | @override |
| 73 | void initState() { | 76 | void initState() { |
| @@ -208,6 +211,61 @@ class SelectTableFPageState extends State<SelectTableFPage> { | @@ -208,6 +211,61 @@ class SelectTableFPageState extends State<SelectTableFPage> { | ||
| 208 | // } | 211 | // } |
| 209 | } | 212 | } |
| 210 | 213 | ||
| 214 | + //获取预订(原来普通预订和宴会预订) | ||
| 215 | + _getReserveListAndFeastData(context, params, showloading) async { | ||
| 216 | + UserModel userModel = Provider.of<UserModel>(context, listen: false); | ||
| 217 | + String timeStrStart = widget.dateTime.year.toString() + | ||
| 218 | + "-" + | ||
| 219 | + Utils.addZeroNumber(widget.dateTime.month) + | ||
| 220 | + "-" + | ||
| 221 | + Utils.addZeroNumber(widget.dateTime.day) + | ||
| 222 | + " 00:00:00"; | ||
| 223 | + String timeStrEnd = widget.dateTime.year.toString() + | ||
| 224 | + "-" + | ||
| 225 | + Utils.addZeroNumber(widget.dateTime.month) + | ||
| 226 | + "-" + | ||
| 227 | + Utils.addZeroNumber(widget.dateTime.day) + | ||
| 228 | + " 23:59:59"; | ||
| 229 | + String start = | ||
| 230 | + (DateUtil.getDateMsByTimeStr(timeStrStart) / 1000).floor().toString(); | ||
| 231 | + String end = | ||
| 232 | + (DateUtil.getDateMsByTimeStr(timeStrEnd) / 1000).floor().toString(); | ||
| 233 | + | ||
| 234 | + Map<String, String> banquetmap = { | ||
| 235 | + 'sid': userModel.user.sellerid, | ||
| 236 | + 'rdate': '${start}', | ||
| 237 | + 'edate': '${end}', | ||
| 238 | + 'ddate_interval': widget.ddate_slot | ||
| 239 | + }; | ||
| 240 | + return await Future.wait<bool>([ | ||
| 241 | + _getOldReserve(context, params, showloading), | ||
| 242 | + _chooseTableModel.getBanquetByDate(context, banquetmap, | ||
| 243 | + showLoading: showloading) | ||
| 244 | + ]).then((results) { | ||
| 245 | + if (results[0] && results[1]) { | ||
| 246 | + //成功 | ||
| 247 | + return true; | ||
| 248 | + } else { | ||
| 249 | + if (!results[0]) { | ||
| 250 | + // Utils.showToast(''); | ||
| 251 | + } else { | ||
| 252 | + // Utils.showToast(''); | ||
| 253 | + } | ||
| 254 | + return false; | ||
| 255 | + } | ||
| 256 | + }).catchError((e) { | ||
| 257 | + print(e); | ||
| 258 | + return false; | ||
| 259 | + }); | ||
| 260 | + } | ||
| 261 | + | ||
| 262 | + Future<bool> _getOldReserve(context, params, showloading) async { | ||
| 263 | + NoteBookModel model = new NoteBookModel(); | ||
| 264 | + noteBooks = | ||
| 265 | + await model.getReserveList(context, params, needLoading: showloading); | ||
| 266 | + return true; | ||
| 267 | + } | ||
| 268 | + | ||
| 211 | //获取已预订列表 | 269 | //获取已预订列表 |
| 212 | _getReserveList(String sid, {needLoading = true}) async { | 270 | _getReserveList(String sid, {needLoading = true}) async { |
| 213 | NoteBookModel model = new NoteBookModel(); | 271 | NoteBookModel model = new NoteBookModel(); |
| @@ -220,20 +278,104 @@ class SelectTableFPageState extends State<SelectTableFPage> { | @@ -220,20 +278,104 @@ class SelectTableFPageState extends State<SelectTableFPage> { | ||
| 220 | "keywords": "", | 278 | "keywords": "", |
| 221 | "sort": "1" | 279 | "sort": "1" |
| 222 | }; | 280 | }; |
| 223 | - List<Notebook> noteBooks = | ||
| 224 | - await model.getReserveList(context, params, needLoading: needLoading); | ||
| 225 | - for (Notebook notebook in noteBooks) { | ||
| 226 | - if (notebook.tid.isEmpty) continue; | ||
| 227 | - if (notebook.status == "1" || | ||
| 228 | - notebook.status == "2" || | ||
| 229 | - notebook.status == "5") { | ||
| 230 | - //已预订,用餐中,已安排 | ||
| 231 | - List<String> tids = notebook.tid.split(","); | ||
| 232 | - for (String tid in tids) { | ||
| 233 | - tableMap["$tid"] = notebook; | 281 | + // List<Notebook> noteBooks = |
| 282 | + // await model.getReserveList(context, params, needLoading: needLoading); | ||
| 283 | + bool success = | ||
| 284 | + await _getReserveListAndFeastData(context, params, needLoading); | ||
| 285 | + if (success) { | ||
| 286 | + List<FeastBoardModel> banquetByDateDataTemp = []; //转换为桌子id为key,data为value | ||
| 287 | + _chooseTableModel.banquetByDateData.forEach((element) { | ||
| 288 | + _chooseTableModel.tablesAll.forEach((table) { | ||
| 289 | + if (table.name == element.title) { | ||
| 290 | + FeastBoardModel feastBoardModel = FeastBoardModel(); | ||
| 291 | + feastBoardModel.title = table.id; | ||
| 292 | + feastBoardModel.data = element.data; | ||
| 293 | + banquetByDateDataTemp.add(feastBoardModel); | ||
| 294 | + } | ||
| 295 | + }); | ||
| 296 | + }); | ||
| 297 | + // banquetByDateData.map((e) => null) | ||
| 298 | + String banquetKey = ''; | ||
| 299 | + if (widget.ddate_slot == '1') { | ||
| 300 | + banquetKey = '早餐'; | ||
| 301 | + } else if (widget.ddate_slot == '2') { | ||
| 302 | + banquetKey = '午餐'; | ||
| 303 | + } else if (widget.ddate_slot == '3') { | ||
| 304 | + banquetKey = '晚餐'; | ||
| 305 | + } | ||
| 306 | + banquetByDateDataTemp.forEach((element) { | ||
| 307 | + FeastBoardSunModel feastBoardSunModel = element.data[banquetKey][0]; | ||
| 308 | + Notebook notebook = Notebook(); | ||
| 309 | + notebook.tid = element.title; | ||
| 310 | + notebook.status = '10'; //宴会类型 | ||
| 311 | + notebook.className = feastBoardSunModel.className; | ||
| 312 | + notebook.id = feastBoardSunModel.rid; | ||
| 313 | + notebook.rname = feastBoardSunModel.rname; | ||
| 314 | + notebook.nick_name = | ||
| 315 | + feastBoardSunModel.nickName ?? feastBoardSunModel.account; | ||
| 316 | + noteBooks.add(notebook); | ||
| 317 | + }); | ||
| 318 | + for (Notebook notebook in noteBooks) { | ||
| 319 | + if (notebook.tid.isEmpty) continue; | ||
| 320 | + if (notebook.status == "1" || | ||
| 321 | + notebook.status == "2" || | ||
| 322 | + notebook.status == "5" || | ||
| 323 | + notebook.status == "10") { | ||
| 324 | + //已预订,用餐中,已安排 | ||
| 325 | + List<String> tids = notebook.tid.split(","); | ||
| 326 | + for (String tid in tids) { | ||
| 327 | + tableMap["$tid"] = notebook; | ||
| 328 | + } | ||
| 234 | } | 329 | } |
| 235 | } | 330 | } |
| 331 | + | ||
| 332 | + // List<Notebook> noteBooks = | ||
| 333 | + // await newGetReserveList(context, params, showLoading: showloading); | ||
| 334 | + // List<t.Table> tempSelectTables = []; | ||
| 335 | + // tempSelectTables.addAll(selectTables); | ||
| 336 | + // String msg = ''; | ||
| 337 | + // for (Notebook notebook in noteBooks) { | ||
| 338 | + // if (notebook.tid.isEmpty) continue; | ||
| 339 | + | ||
| 340 | + // //已预订,用餐中,已安排 | ||
| 341 | + // List<String> tids = notebook.tid.split(","); | ||
| 342 | + // for (String tid in tids) { | ||
| 343 | + // if (notebook.status == "1" || | ||
| 344 | + // notebook.status == "2" || | ||
| 345 | + // notebook.status == "5" || | ||
| 346 | + // notebook.status == "10") { | ||
| 347 | + // tableMap["$tid"] = notebook; | ||
| 348 | + | ||
| 349 | + // ///预订按钮点击的时候提醒已经被预订的桌子 | ||
| 350 | + // /// | ||
| 351 | + // if (showMsg && selectTables.length > 0) { | ||
| 352 | + // for (t.Table item in selectTables) { | ||
| 353 | + // if (item.id == tid) { | ||
| 354 | + // msg += '${item.name},'; | ||
| 355 | + // tempSelectTables.remove(item); | ||
| 356 | + // } | ||
| 357 | + // } | ||
| 358 | + // } | ||
| 359 | + // } | ||
| 360 | + // } | ||
| 361 | + // } | ||
| 362 | + // if (showMsg && msg != '' && selectTables.length > 0) { | ||
| 363 | + // if (msg.endsWith(',')) { | ||
| 364 | + // msg = msg.substring(0, msg.length - 1); | ||
| 365 | + // } | ||
| 366 | + // selectTables = tempSelectTables; | ||
| 367 | + // Utils.showToast('${msg}已被预订,请选择其他桌位!'); | ||
| 368 | + // print(tableMap); | ||
| 369 | + // initData(needKeep: needKeep); | ||
| 370 | + // // notifyListeners(); | ||
| 371 | + // return false; | ||
| 372 | + // } | ||
| 373 | + | ||
| 374 | + // print(tableMap); | ||
| 375 | + // initData(needKeep: needKeep); | ||
| 376 | + // return true; | ||
| 236 | } | 377 | } |
| 378 | + | ||
| 237 | print(tableMap); | 379 | print(tableMap); |
| 238 | if (needLoading) { | 380 | if (needLoading) { |
| 239 | initData(); | 381 | initData(); |
| @@ -268,6 +410,7 @@ class SelectTableFPageState extends State<SelectTableFPage> { | @@ -268,6 +410,7 @@ class SelectTableFPageState extends State<SelectTableFPage> { | ||
| 268 | table.pnum = notebook.actual_pnum; | 410 | table.pnum = notebook.actual_pnum; |
| 269 | table.nickName = notebook.nick_name; | 411 | table.nickName = notebook.nick_name; |
| 270 | table.noteName = notebook.note_name; | 412 | table.noteName = notebook.note_name; |
| 413 | + table.label = notebook.className; | ||
| 271 | //(不能移除自己定的桌子) | 414 | //(不能移除自己定的桌子) |
| 272 | String idNow = ''; | 415 | String idNow = ''; |
| 273 | if (tableMap.containsKey('${table.id}')) { | 416 | if (tableMap.containsKey('${table.id}')) { |
| @@ -484,8 +627,9 @@ class SelectTableFPageState extends State<SelectTableFPage> { | @@ -484,8 +627,9 @@ class SelectTableFPageState extends State<SelectTableFPage> { | ||
| 484 | shouldRebuild: (pre, next) => true, | 627 | shouldRebuild: (pre, next) => true, |
| 485 | selector: (context, model) => data[index], | 628 | selector: (context, model) => data[index], |
| 486 | builder: (context, table, _) { | 629 | builder: (context, table, _) { |
| 487 | - return FTableItem(table, canSelected: true, | ||
| 488 | - onSelected: (t.Table table) { | 630 | + return FTableItem(table, |
| 631 | + canSelected: true, | ||
| 632 | + selectTables: selectTables, onSelected: (t.Table table) { | ||
| 489 | if (widget.fromPage == 'tablePhoto') { | 633 | if (widget.fromPage == 'tablePhoto') { |
| 490 | for (String item in areaTableMap.keys) { | 634 | for (String item in areaTableMap.keys) { |
| 491 | for (t.Table item in areaTableMap[item]) { | 635 | for (t.Table item in areaTableMap[item]) { |
| @@ -503,15 +647,11 @@ class SelectTableFPageState extends State<SelectTableFPage> { | @@ -503,15 +647,11 @@ class SelectTableFPageState extends State<SelectTableFPage> { | ||
| 503 | } else { | 647 | } else { |
| 504 | if ((table as t.Table).selected) { | 648 | if ((table as t.Table).selected) { |
| 505 | selectTables.add(table); | 649 | selectTables.add(table); |
| 506 | - | ||
| 507 | selectNum++; | 650 | selectNum++; |
| 508 | - | ||
| 509 | widget.tableList.add(tableToTableList(table)); | 651 | widget.tableList.add(tableToTableList(table)); |
| 510 | } else { | 652 | } else { |
| 511 | widget.tableList.removeWhere((t) => t.id == table.id); | 653 | widget.tableList.removeWhere((t) => t.id == table.id); |
| 512 | - | ||
| 513 | selectNum--; | 654 | selectNum--; |
| 514 | - | ||
| 515 | selectTables.removeWhere((t) => t.id == table.id); | 655 | selectTables.removeWhere((t) => t.id == table.id); |
| 516 | } | 656 | } |
| 517 | setState(() {}); | 657 | setState(() {}); |
| @@ -718,7 +858,7 @@ class SelectTableFPageState extends State<SelectTableFPage> { | @@ -718,7 +858,7 @@ class SelectTableFPageState extends State<SelectTableFPage> { | ||
| 718 | model.tablesShow = | 858 | model.tablesShow = |
| 719 | _chooseTableModel.tablesCanNote; | 859 | _chooseTableModel.tablesCanNote; |
| 720 | } else { | 860 | } else { |
| 721 | - model.areaTableMapShow = model.areaTableMap; | 861 | + model.areaTableMapShow = areaTableMap; |
| 722 | model.tablesShow = model.tablesAll; | 862 | model.tablesShow = model.tablesAll; |
| 723 | } | 863 | } |
| 724 | }); | 864 | }); |
| @@ -598,7 +598,7 @@ class _FeastBoardPageState extends State<FeastBoardPage> { | @@ -598,7 +598,7 @@ class _FeastBoardPageState extends State<FeastBoardPage> { | ||
| 598 | Expanded( | 598 | Expanded( |
| 599 | child: _callButton( | 599 | child: _callButton( |
| 600 | onPress: () async { | 600 | onPress: () async { |
| 601 | - NavigatorUtil.goFeastCreatePage(context); | 601 | + NavigatorUtil.goFeastCreatePage(context,isCreate: true); |
| 602 | }, | 602 | }, |
| 603 | content: '创建宴会', | 603 | content: '创建宴会', |
| 604 | hasLeftBorder: true, | 604 | hasLeftBorder: true, |
| @@ -45,7 +45,9 @@ import '../../widgets/special_text/my_extended_text_selection_controls.dart'; | @@ -45,7 +45,9 @@ import '../../widgets/special_text/my_extended_text_selection_controls.dart'; | ||
| 45 | 45 | ||
| 46 | class FeastCreatePage extends StatefulWidget { | 46 | class FeastCreatePage extends StatefulWidget { |
| 47 | final GetBanquetByIdNewSunModel banquetDetail; | 47 | final GetBanquetByIdNewSunModel banquetDetail; |
| 48 | - FeastCreatePage({Key key, this.banquetDetail}) : super(key: key); | 48 | + final bool isCreate; |
| 49 | + FeastCreatePage({Key key, this.banquetDetail, this.isCreate = false}) | ||
| 50 | + : super(key: key); | ||
| 49 | 51 | ||
| 50 | @override | 52 | @override |
| 51 | _FeastCreatePageState createState() => _FeastCreatePageState(); | 53 | _FeastCreatePageState createState() => _FeastCreatePageState(); |
| @@ -4618,7 +4620,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | @@ -4618,7 +4620,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> { | ||
| 4618 | child: Scaffold( | 4620 | child: Scaffold( |
| 4619 | backgroundColor: MyColours.color_ffffff, | 4621 | backgroundColor: MyColours.color_ffffff, |
| 4620 | appBar: SystemAppBar( | 4622 | appBar: SystemAppBar( |
| 4621 | - '新建宴会', | 4623 | + widget.isCreate ? '新建宴会' : '编辑宴会', |
| 4622 | needWhite: true, | 4624 | needWhite: true, |
| 4623 | bgColor: MyColours.color_438E93, | 4625 | bgColor: MyColours.color_438E93, |
| 4624 | titleColor: MyColours.color_F6F6F6, | 4626 | titleColor: MyColours.color_F6F6F6, |
| @@ -22,7 +22,8 @@ import '../../widgets/v_empty_view.dart'; | @@ -22,7 +22,8 @@ import '../../widgets/v_empty_view.dart'; | ||
| 22 | 22 | ||
| 23 | class FeastDetailPage extends StatefulWidget { | 23 | class FeastDetailPage extends StatefulWidget { |
| 24 | final String rid; | 24 | final String rid; |
| 25 | - FeastDetailPage({Key key, this.rid}) : super(key: key); | 25 | + final bool canEdit; |
| 26 | + FeastDetailPage({Key key, this.rid, this.canEdit = true}) : super(key: key); | ||
| 26 | 27 | ||
| 27 | @override | 28 | @override |
| 28 | _FeastDetailPageState createState() => _FeastDetailPageState(); | 29 | _FeastDetailPageState createState() => _FeastDetailPageState(); |
| @@ -50,6 +51,9 @@ class _FeastDetailPageState extends State<FeastDetailPage> { | @@ -50,6 +51,9 @@ class _FeastDetailPageState extends State<FeastDetailPage> { | ||
| 50 | void dispose() { | 51 | void dispose() { |
| 51 | super.dispose(); | 52 | super.dispose(); |
| 52 | bus.off('feast_detail_page'); | 53 | bus.off('feast_detail_page'); |
| 54 | + if (!widget.canEdit) { | ||
| 55 | + Utils.changeStatusColor(color: MyColours.color_ffffff); | ||
| 56 | + } | ||
| 53 | } | 57 | } |
| 54 | 58 | ||
| 55 | ///获取宴会详情 | 59 | ///获取宴会详情 |
| @@ -717,7 +721,7 @@ class _FeastDetailPageState extends State<FeastDetailPage> { | @@ -717,7 +721,7 @@ class _FeastDetailPageState extends State<FeastDetailPage> { | ||
| 717 | ), | 721 | ), |
| 718 | Spacer(), | 722 | Spacer(), |
| 719 | Text( | 723 | Text( |
| 720 | - '${feastModel.banquetDetail.contractInfo.contractFinalPrice} 元', | 724 | + '${feastModel.banquetDetail.contractInfo.contractFinalPrice ?? ''} 元', |
| 721 | style: TextStyle( | 725 | style: TextStyle( |
| 722 | color: MyColours.color_515151, | 726 | color: MyColours.color_515151, |
| 723 | fontWeight: FontWeight.bold, | 727 | fontWeight: FontWeight.bold, |
| @@ -1292,49 +1296,51 @@ class _FeastDetailPageState extends State<FeastDetailPage> { | @@ -1292,49 +1296,51 @@ class _FeastDetailPageState extends State<FeastDetailPage> { | ||
| 1292 | invoiceWidget() | 1296 | invoiceWidget() |
| 1293 | ]))), | 1297 | ]))), |
| 1294 | ), | 1298 | ), |
| 1295 | - Row( | ||
| 1296 | - children: [ | ||
| 1297 | - Expanded( | ||
| 1298 | - child: _callButton( | ||
| 1299 | - onPress: () { | ||
| 1300 | - _showCancelWidget(context); | ||
| 1301 | - }, | ||
| 1302 | - content: '丢单', | ||
| 1303 | - hasLeftBorder: true, | ||
| 1304 | - textColor: MyColours.color_E34D59, | ||
| 1305 | - isSelect: false)), | ||
| 1306 | - Expanded( | ||
| 1307 | - child: _callButton( | ||
| 1308 | - onPress: () async { | ||
| 1309 | - NavigatorUtil.goFeastCreatePage(context, | ||
| 1310 | - banquetDetail: { | ||
| 1311 | - 'object': feastModel.banquetDetailMap | ||
| 1312 | - }); | ||
| 1313 | - // selectMenu = '签约'; | ||
| 1314 | - // menuSet.add('定金'); | ||
| 1315 | - // menuSet.add('签约'); | ||
| 1316 | - // setState(() {}); | ||
| 1317 | - // for (UploadImgModel item in _uploadImageProvider | ||
| 1318 | - // .feastRemarkContractImageList) { | ||
| 1319 | - // if (item.process < 1) { | ||
| 1320 | - // Utils.showToast('正在上传图片,请稍等'); | ||
| 1321 | - // return false; | ||
| 1322 | - // } | ||
| 1323 | - // } | ||
| 1324 | - // for (UploadImgModel item in _uploadImageProvider | ||
| 1325 | - // .feastRemarkInvoiceImageList) { | ||
| 1326 | - // if (item.process < 1) { | ||
| 1327 | - // Utils.showToast('正在上传图片,请稍等'); | ||
| 1328 | - // return false; | ||
| 1329 | - // } | ||
| 1330 | - // } | ||
| 1331 | - // _setData(); | ||
| 1332 | - }, | ||
| 1333 | - content: '编辑宴会', | ||
| 1334 | - hasLeftBorder: true, | ||
| 1335 | - isSelect: true)) | ||
| 1336 | - ], | ||
| 1337 | - ) | 1299 | + widget.canEdit |
| 1300 | + ? Row( | ||
| 1301 | + children: [ | ||
| 1302 | + Expanded( | ||
| 1303 | + child: _callButton( | ||
| 1304 | + onPress: () { | ||
| 1305 | + _showCancelWidget(context); | ||
| 1306 | + }, | ||
| 1307 | + content: '丢单', | ||
| 1308 | + hasLeftBorder: true, | ||
| 1309 | + textColor: MyColours.color_E34D59, | ||
| 1310 | + isSelect: false)), | ||
| 1311 | + Expanded( | ||
| 1312 | + child: _callButton( | ||
| 1313 | + onPress: () async { | ||
| 1314 | + NavigatorUtil.goFeastCreatePage(context, | ||
| 1315 | + banquetDetail: { | ||
| 1316 | + 'object': feastModel.banquetDetailMap | ||
| 1317 | + }); | ||
| 1318 | + // selectMenu = '签约'; | ||
| 1319 | + // menuSet.add('定金'); | ||
| 1320 | + // menuSet.add('签约'); | ||
| 1321 | + // setState(() {}); | ||
| 1322 | + // for (UploadImgModel item in _uploadImageProvider | ||
| 1323 | + // .feastRemarkContractImageList) { | ||
| 1324 | + // if (item.process < 1) { | ||
| 1325 | + // Utils.showToast('正在上传图片,请稍等'); | ||
| 1326 | + // return false; | ||
| 1327 | + // } | ||
| 1328 | + // } | ||
| 1329 | + // for (UploadImgModel item in _uploadImageProvider | ||
| 1330 | + // .feastRemarkInvoiceImageList) { | ||
| 1331 | + // if (item.process < 1) { | ||
| 1332 | + // Utils.showToast('正在上传图片,请稍等'); | ||
| 1333 | + // return false; | ||
| 1334 | + // } | ||
| 1335 | + // } | ||
| 1336 | + // _setData(); | ||
| 1337 | + }, | ||
| 1338 | + content: '编辑宴会', | ||
| 1339 | + hasLeftBorder: true, | ||
| 1340 | + isSelect: true)) | ||
| 1341 | + ], | ||
| 1342 | + ) | ||
| 1343 | + : SizedBox() | ||
| 1338 | ], | 1344 | ], |
| 1339 | ); | 1345 | ); |
| 1340 | } | 1346 | } |
| @@ -849,7 +849,12 @@ class _FeastFollowUpPageState extends State<FeastFollowUpPage> { | @@ -849,7 +849,12 @@ class _FeastFollowUpPageState extends State<FeastFollowUpPage> { | ||
| 849 | itemBuilder: (BuildContext context, int index) { | 849 | itemBuilder: (BuildContext context, int index) { |
| 850 | GetBanquetBeFollowSunModel data = | 850 | GetBanquetBeFollowSunModel data = |
| 851 | feastModel.beFollowData[index]; | 851 | feastModel.beFollowData[index]; |
| 852 | - return buildFeastTypeItem(data); | 852 | + return InkWell( |
| 853 | + onTap: () { | ||
| 854 | + //点击进入宴会详情 | ||
| 855 | + NavigatorUtil.goFeastDetailPage(context, data.id); | ||
| 856 | + }, | ||
| 857 | + child: buildFeastTypeItem(data)); | ||
| 853 | // '剑南春52度500ml', '1150元/份 不可议价' | 858 | // '剑南春52度500ml', '1150元/份 不可议价' |
| 854 | }); | 859 | }); |
| 855 | } | 860 | } |
| @@ -871,7 +876,7 @@ class _FeastFollowUpPageState extends State<FeastFollowUpPage> { | @@ -871,7 +876,7 @@ class _FeastFollowUpPageState extends State<FeastFollowUpPage> { | ||
| 871 | Expanded( | 876 | Expanded( |
| 872 | child: _callButton( | 877 | child: _callButton( |
| 873 | onPress: () { | 878 | onPress: () { |
| 874 | - NavigatorUtil.goFeastCreatePage(context); | 879 | + NavigatorUtil.goFeastCreatePage(context,isCreate: true); |
| 875 | }, | 880 | }, |
| 876 | content: '创建宴会', | 881 | content: '创建宴会', |
| 877 | hasLeftBorder: true, | 882 | hasLeftBorder: true, |
| @@ -123,7 +123,7 @@ class _FeastPageState extends State<FeastPage> { | @@ -123,7 +123,7 @@ class _FeastPageState extends State<FeastPage> { | ||
| 123 | NavigatorUtil.goFeastBoardPage(context); | 123 | NavigatorUtil.goFeastBoardPage(context); |
| 124 | }), | 124 | }), |
| 125 | upAndDown('y_new', '新建宴会', onTap: () { | 125 | upAndDown('y_new', '新建宴会', onTap: () { |
| 126 | - NavigatorUtil.goFeastCreatePage(context); | 126 | + NavigatorUtil.goFeastCreatePage(context, isCreate: true); |
| 127 | }), | 127 | }), |
| 128 | InkWell( | 128 | InkWell( |
| 129 | onTap: () { | 129 | onTap: () { |
| @@ -477,8 +477,9 @@ class FeastSelectTablePageState extends State<FeastSelectTablePage> { | @@ -477,8 +477,9 @@ class FeastSelectTablePageState extends State<FeastSelectTablePage> { | ||
| 477 | shouldRebuild: (pre, next) => true, | 477 | shouldRebuild: (pre, next) => true, |
| 478 | selector: (context, model) => data[index], | 478 | selector: (context, model) => data[index], |
| 479 | builder: (context, table, _) { | 479 | builder: (context, table, _) { |
| 480 | - return FTableItem(table, canSelected: true, | ||
| 481 | - onSelected: (t.Table table) { | 480 | + return FTableItem(table, |
| 481 | + canSelected: true, | ||
| 482 | + selectTables: selectTables, onSelected: (t.Table table) { | ||
| 482 | // if (widget.fromPage == 'tablePhoto') { | 483 | // if (widget.fromPage == 'tablePhoto') { |
| 483 | // for (String item in areaTableMap.keys) { | 484 | // for (String item in areaTableMap.keys) { |
| 484 | // for (t.Table item in areaTableMap[item]) { | 485 | // for (t.Table item in areaTableMap[item]) { |
| @@ -145,7 +145,7 @@ class MyTableManagerHomePageState extends State<MyTableManagerHomePage> { | @@ -145,7 +145,7 @@ class MyTableManagerHomePageState extends State<MyTableManagerHomePage> { | ||
| 145 | Map<String, String> params = { | 145 | Map<String, String> params = { |
| 146 | 'tid': table.id, | 146 | 'tid': table.id, |
| 147 | 'is_merge': isMerge, | 147 | 'is_merge': isMerge, |
| 148 | - 'tids':tids | 148 | + 'tids': tids |
| 149 | // 'tids': isMerge == '0' ? '' : tids | 149 | // 'tids': isMerge == '0' ? '' : tids |
| 150 | }; | 150 | }; |
| 151 | 151 | ||
| @@ -167,7 +167,7 @@ class MyTableManagerHomePageState extends State<MyTableManagerHomePage> { | @@ -167,7 +167,7 @@ class MyTableManagerHomePageState extends State<MyTableManagerHomePage> { | ||
| 167 | } else { | 167 | } else { |
| 168 | if (results[0]) { | 168 | if (results[0]) { |
| 169 | //修改桌位信息成功 | 169 | //修改桌位信息成功 |
| 170 | - await tableManagerModel.refreshTable(context); | 170 | + await tableManagerModel.refreshTable(context, needLoading: true); |
| 171 | } else { | 171 | } else { |
| 172 | //修改桌位信息失败 | 172 | //修改桌位信息失败 |
| 173 | } | 173 | } |
| @@ -395,13 +395,22 @@ class TableManagerPageState extends State<TableManagerPage> { | @@ -395,13 +395,22 @@ class TableManagerPageState extends State<TableManagerPage> { | ||
| 395 | shouldRebuild: (pre, next) => true, | 395 | shouldRebuild: (pre, next) => true, |
| 396 | selector: (context, model) => data[index], | 396 | selector: (context, model) => data[index], |
| 397 | builder: (context, table, _) { | 397 | builder: (context, table, _) { |
| 398 | - return FTableItem(table, canSelected: true, onSelected: (table) { | 398 | + return FTableItem(table, |
| 399 | + canSelected: true, | ||
| 400 | + selectTables: tableManagerModel.selectTables, | ||
| 401 | + onSelected: (table) { | ||
| 399 | if (table.signStr == '已预订') { | 402 | if (table.signStr == '已预订') { |
| 400 | - //进入订座详情页面 | ||
| 401 | - NavigatorUtil.goNotebookDetailPage( | ||
| 402 | - context, | ||
| 403 | - tableManagerModel.tableMap[table.id].id, | ||
| 404 | - tableManagerModel.tableMap[table.id].uid); | 403 | + if (table.sign == '10') { |
| 404 | + //宴会订单 | ||
| 405 | + NavigatorUtil.goFeastDetailPage(context, table.notebookId, | ||
| 406 | + canEdit: false); | ||
| 407 | + } else { | ||
| 408 | + //进入订座详情页面 | ||
| 409 | + NavigatorUtil.goNotebookDetailPage( | ||
| 410 | + context, | ||
| 411 | + tableManagerModel.tableMap[table.id].id, | ||
| 412 | + tableManagerModel.tableMap[table.id].uid); | ||
| 413 | + } | ||
| 405 | } else { | 414 | } else { |
| 406 | setState(() { | 415 | setState(() { |
| 407 | if ((table as t.Table).selected) { | 416 | if ((table as t.Table).selected) { |
| @@ -12,13 +12,15 @@ import 'package:one_key/provider/user_model.dart'; | @@ -12,13 +12,15 @@ import 'package:one_key/provider/user_model.dart'; | ||
| 12 | import 'package:one_key/utils/utils.dart'; | 12 | import 'package:one_key/utils/utils.dart'; |
| 13 | import 'package:provider/provider.dart'; | 13 | import 'package:provider/provider.dart'; |
| 14 | 14 | ||
| 15 | +import '../models/get_board_model.dart'; | ||
| 16 | + | ||
| 15 | class ChooseTableModel with ChangeNotifier { | 17 | class ChooseTableModel with ChangeNotifier { |
| 16 | PageState pageState = PageState.Loading; | 18 | PageState pageState = PageState.Loading; |
| 17 | List<TableOuter> tableOuterList = []; //区域-桌位列表 | 19 | List<TableOuter> tableOuterList = []; //区域-桌位列表 |
| 18 | 20 | ||
| 19 | bool swichState = false; //仅看空座 | 21 | bool swichState = false; //仅看空座 |
| 20 | 22 | ||
| 21 | - Map<String, List<t.Table>> areaTableMap = {}; //区域-桌位Map 已预订和空桌子 | 23 | + // Map<String, List<t.Table>> areaTableMap = {}; //区域-桌位Map 已预订和空桌子 |
| 22 | Map<String, List<t.Table>> areaTableMapCanNote = | 24 | Map<String, List<t.Table>> areaTableMapCanNote = |
| 23 | {}; //区域-桌位Map 筛选出已经预订的桌子,剩余空桌子 | 25 | {}; //区域-桌位Map 筛选出已经预订的桌子,剩余空桌子 |
| 24 | 26 | ||
| @@ -29,6 +31,44 @@ class ChooseTableModel with ChangeNotifier { | @@ -29,6 +31,44 @@ class ChooseTableModel with ChangeNotifier { | ||
| 29 | List<t.Table> tablesCanNote = []; //全部桌子(空桌子) | 31 | List<t.Table> tablesCanNote = []; //全部桌子(空桌子) |
| 30 | List<t.Table> tablesShow = []; //页面展示 | 32 | List<t.Table> tablesShow = []; //页面展示 |
| 31 | 33 | ||
| 34 | + List<FeastBoardModel> banquetByDateData = []; //宴会看板数据/宴会预订的数据 | ||
| 35 | + | ||
| 36 | + | ||
| 37 | + //指定日期、时段宴会预定 | ||
| 38 | + | ||
| 39 | + Future<bool> getBanquetByDate( | ||
| 40 | + BuildContext context, Map<String, String> params, | ||
| 41 | + {showLoading = false}) async { | ||
| 42 | + BaseResp<dynamic> baseResp = await DioUtil() | ||
| 43 | + .request<dynamic>(context, Method.get, HttpUrl.get_banquet_by_date, | ||
| 44 | + data: params, showLoading: showLoading) | ||
| 45 | + .catchError((error) { | ||
| 46 | + print(error.toString()); | ||
| 47 | + if (error is MyError) {} | ||
| 48 | + return false; | ||
| 49 | + }); | ||
| 50 | + if (baseResp == null) return false; | ||
| 51 | + if (baseResp.code == Constant.status_success) { | ||
| 52 | + if (baseResp.data is List) { | ||
| 53 | + banquetByDateData = []; | ||
| 54 | + notifyListeners(); | ||
| 55 | + return true; | ||
| 56 | + } | ||
| 57 | + banquetByDateData = []; | ||
| 58 | + baseResp.data.forEach((key, value) { | ||
| 59 | + FeastBoardModel boardModel = FeastBoardModel(); | ||
| 60 | + boardModel.title = key; | ||
| 61 | + boardModel.data = FeastBoardModel.fromJson(value).data; | ||
| 62 | + banquetByDateData.add(boardModel); | ||
| 63 | + }); | ||
| 64 | + notifyListeners(); | ||
| 65 | + return true; | ||
| 66 | + } else { | ||
| 67 | + Utils.showToast(baseResp.msg ?? ""); | ||
| 68 | + } | ||
| 69 | + return false; | ||
| 70 | + } | ||
| 71 | + | ||
| 32 | //获取桌位数据 | 72 | //获取桌位数据 |
| 33 | Future<List<TableOuter>> getTableList( | 73 | Future<List<TableOuter>> getTableList( |
| 34 | BuildContext context, Map<String, String> params, | 74 | BuildContext context, Map<String, String> params, |
| @@ -488,7 +488,7 @@ class MyTableManageHomeModel with ChangeNotifier { | @@ -488,7 +488,7 @@ class MyTableManageHomeModel with ChangeNotifier { | ||
| 488 | if (baseResp.code == Constant.status_success) { | 488 | if (baseResp.code == Constant.status_success) { |
| 489 | if (baseResp.responseData['data'] != null) { | 489 | if (baseResp.responseData['data'] != null) { |
| 490 | // && | 490 | // && |
| 491 | - // baseResp.responseData['data'] == 1 | 491 | + // baseResp.responseData['data'] == 1 |
| 492 | return true; | 492 | return true; |
| 493 | } else { | 493 | } else { |
| 494 | Utils.showToast(baseResp.msg ?? '合并桌位失败!'); | 494 | Utils.showToast(baseResp.msg ?? '合并桌位失败!'); |
| @@ -575,8 +575,8 @@ class MyTableManageHomeModel with ChangeNotifier { | @@ -575,8 +575,8 @@ class MyTableManageHomeModel with ChangeNotifier { | ||
| 575 | return false; | 575 | return false; |
| 576 | } | 576 | } |
| 577 | 577 | ||
| 578 | - refreshTable(context) async { | ||
| 579 | - List temp = await getTableList(context, needLoading: false); | 578 | + refreshTable(context, {needLoading = false}) async { |
| 579 | + List temp = await getTableList(context, needLoading: needLoading); | ||
| 580 | // if (temp.length > 0) { | 580 | // if (temp.length > 0) { |
| 581 | // getReserveList(context, needLoading: false, needKeep: true); | 581 | // getReserveList(context, needLoading: false, needKeep: true); |
| 582 | // } else { | 582 | // } else { |
| @@ -10,6 +10,8 @@ import 'package:one_key/provider/user_model.dart'; | @@ -10,6 +10,8 @@ import 'package:one_key/provider/user_model.dart'; | ||
| 10 | import 'package:one_key/utils/utils.dart'; | 10 | import 'package:one_key/utils/utils.dart'; |
| 11 | import 'package:provider/provider.dart'; | 11 | import 'package:provider/provider.dart'; |
| 12 | 12 | ||
| 13 | +import '../models/get_board_model.dart'; | ||
| 14 | + | ||
| 13 | class NoteBookModel extends ChangeNotifier { | 15 | class NoteBookModel extends ChangeNotifier { |
| 14 | List<Notebook> notebooks = []; //订单列表 | 16 | List<Notebook> notebooks = []; //订单列表 |
| 15 | 17 | ||
| @@ -18,6 +20,7 @@ class NoteBookModel extends ChangeNotifier { | @@ -18,6 +20,7 @@ class NoteBookModel extends ChangeNotifier { | ||
| 18 | String totalnight = ""; //一天统计 | 20 | String totalnight = ""; //一天统计 |
| 19 | 21 | ||
| 20 | PageState pageState = PageState.Loading; | 22 | PageState pageState = PageState.Loading; |
| 23 | + | ||
| 21 | 24 | ||
| 22 | //获取已预订订单 | 25 | //获取已预订订单 |
| 23 | Future<List<Notebook>> getReserveList( | 26 | Future<List<Notebook>> getReserveList( |
| @@ -858,14 +858,15 @@ class NavigatorUtil { | @@ -858,14 +858,15 @@ class NavigatorUtil { | ||
| 858 | 858 | ||
| 859 | ///宴会----新建宴会 | 859 | ///宴会----新建宴会 |
| 860 | static Future<dynamic> goFeastCreatePage(BuildContext context, | 860 | static Future<dynamic> goFeastCreatePage(BuildContext context, |
| 861 | - {replace = false, bool onlyShow = false, Map banquetDetail}) { | 861 | + {replace = false, bool isCreate = false, Map banquetDetail}) { |
| 862 | if (banquetDetail != null) { | 862 | if (banquetDetail != null) { |
| 863 | return _navigateTo(context, | 863 | return _navigateTo(context, |
| 864 | - "${Routes.feast_create_page}?banquetDetail=${FluroConvertUtils.object2string(banquetDetail)}", | 864 | + "${Routes.feast_create_page}?isCreate=$isCreate&banquetDetail=${FluroConvertUtils.object2string(banquetDetail)}", |
| 865 | replace: replace); | 865 | replace: replace); |
| 866 | } | 866 | } |
| 867 | 867 | ||
| 868 | - return _navigateTo(context, "${Routes.feast_create_page}", | 868 | + return _navigateTo( |
| 869 | + context, "${Routes.feast_create_page}?isCreate=$isCreate", | ||
| 869 | replace: replace); | 870 | replace: replace); |
| 870 | } | 871 | } |
| 871 | 872 | ||
| @@ -1082,12 +1083,10 @@ class NavigatorUtil { | @@ -1082,12 +1083,10 @@ class NavigatorUtil { | ||
| 1082 | } | 1083 | } |
| 1083 | 1084 | ||
| 1084 | ///宴会--详情 | 1085 | ///宴会--详情 |
| 1085 | - static Future<dynamic> goFeastDetailPage( | ||
| 1086 | - BuildContext context, | ||
| 1087 | - String rid, { | ||
| 1088 | - replace = false, | ||
| 1089 | - }) { | ||
| 1090 | - return _navigateTo(context, "${Routes.feast_detail_page}?rid=$rid", | 1086 | + static Future<dynamic> goFeastDetailPage(BuildContext context, String rid, |
| 1087 | + {replace = false, bool canEdit = true}) { | ||
| 1088 | + return _navigateTo( | ||
| 1089 | + context, "${Routes.feast_detail_page}?rid=$rid&canEdit=$canEdit", | ||
| 1091 | replace: replace); | 1090 | replace: replace); |
| 1092 | } | 1091 | } |
| 1093 | 1092 |
| @@ -1374,6 +1374,8 @@ var feastCreatePageHandle = new Handler( | @@ -1374,6 +1374,8 @@ var feastCreatePageHandle = new Handler( | ||
| 1374 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { | 1374 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { |
| 1375 | // String uids = params["uids"].first; | 1375 | // String uids = params["uids"].first; |
| 1376 | 1376 | ||
| 1377 | + bool isCreate = FluroConvertUtils.string2bool(params["isCreate"].first); | ||
| 1378 | + | ||
| 1377 | GetBanquetByIdNewSunModel banquetDetail; | 1379 | GetBanquetByIdNewSunModel banquetDetail; |
| 1378 | if (params.keys.contains('banquetDetail')) { | 1380 | if (params.keys.contains('banquetDetail')) { |
| 1379 | Map object = FluroConvertUtils.string2map(params["banquetDetail"].first); | 1381 | Map object = FluroConvertUtils.string2map(params["banquetDetail"].first); |
| @@ -1391,7 +1393,7 @@ var feastCreatePageHandle = new Handler( | @@ -1391,7 +1393,7 @@ var feastCreatePageHandle = new Handler( | ||
| 1391 | } | 1393 | } |
| 1392 | return ChangeNotifierProvider<FeastModel>( | 1394 | return ChangeNotifierProvider<FeastModel>( |
| 1393 | create: (_) => FeastModel(), | 1395 | create: (_) => FeastModel(), |
| 1394 | - child: FeastCreatePage(banquetDetail: banquetDetail)); | 1396 | + child: FeastCreatePage(banquetDetail: banquetDetail,isCreate:isCreate)); |
| 1395 | }); | 1397 | }); |
| 1396 | 1398 | ||
| 1397 | ///宴会----添加定金 | 1399 | ///宴会----添加定金 |
| @@ -1764,11 +1766,11 @@ var feastDetailPageHandle = new Handler( | @@ -1764,11 +1766,11 @@ var feastDetailPageHandle = new Handler( | ||
| 1764 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { | 1766 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { |
| 1765 | String rid = params["rid"].first; | 1767 | String rid = params["rid"].first; |
| 1766 | 1768 | ||
| 1769 | + bool canEdit = FluroConvertUtils.string2bool(params["canEdit"].first); | ||
| 1770 | + | ||
| 1767 | return ChangeNotifierProvider<FeastModel>( | 1771 | return ChangeNotifierProvider<FeastModel>( |
| 1768 | create: (_) => FeastModel(), | 1772 | create: (_) => FeastModel(), |
| 1769 | - child: FeastDetailPage( | ||
| 1770 | - rid: rid, | ||
| 1771 | - )); | 1773 | + child: FeastDetailPage(rid: rid, canEdit: canEdit)); |
| 1772 | }); | 1774 | }); |
| 1773 | 1775 | ||
| 1774 | ///宴会----发票详情 | 1776 | ///宴会----发票详情 |
| @@ -1788,7 +1790,7 @@ var feastInvoiceDetailPageHandle = new Handler( | @@ -1788,7 +1790,7 @@ var feastInvoiceDetailPageHandle = new Handler( | ||
| 1788 | var mergeTableSelectPageHandle = new Handler( | 1790 | var mergeTableSelectPageHandle = new Handler( |
| 1789 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { | 1791 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { |
| 1790 | String fromPage = params["fromPage"].first; | 1792 | String fromPage = params["fromPage"].first; |
| 1791 | - String tids = params["tids"].first; | 1793 | + String tids = params["tids"].first; |
| 1792 | 1794 | ||
| 1793 | String tableidNow = params["tableidNow"].first; | 1795 | String tableidNow = params["tableidNow"].first; |
| 1794 | bool canChoose = params["canChoose"].first == "true" ? true : false; | 1796 | bool canChoose = params["canChoose"].first == "true" ? true : false; |
| @@ -1808,5 +1810,5 @@ var mergeTableSelectPageHandle = new Handler( | @@ -1808,5 +1810,5 @@ var mergeTableSelectPageHandle = new Handler( | ||
| 1808 | tableList: res, | 1810 | tableList: res, |
| 1809 | canChoose: canChoose, | 1811 | canChoose: canChoose, |
| 1810 | fromPage: fromPage, | 1812 | fromPage: fromPage, |
| 1811 | - tids:tids)); | 1813 | + tids: tids)); |
| 1812 | }); | 1814 | }); |
| @@ -19,6 +19,7 @@ class FTableItem extends StatefulWidget { | @@ -19,6 +19,7 @@ class FTableItem extends StatefulWidget { | ||
| 19 | 19 | ||
| 20 | final int height; //高度 | 20 | final int height; //高度 |
| 21 | final bool need; | 21 | final bool need; |
| 22 | + final List<t.Table> selectTables; | ||
| 22 | 23 | ||
| 23 | FTableItem(this.table, | 24 | FTableItem(this.table, |
| 24 | {this.onSelected, | 25 | {this.onSelected, |
| @@ -27,7 +28,8 @@ class FTableItem extends StatefulWidget { | @@ -27,7 +28,8 @@ class FTableItem extends StatefulWidget { | ||
| 27 | this.fromPage = 'new', | 28 | this.fromPage = 'new', |
| 28 | this.rid, | 29 | this.rid, |
| 29 | this.tableMap, | 30 | this.tableMap, |
| 30 | - this.need = true}); | 31 | + this.need = true, |
| 32 | + this.selectTables}); | ||
| 31 | 33 | ||
| 32 | @override | 34 | @override |
| 33 | State<StatefulWidget> createState() { | 35 | State<StatefulWidget> createState() { |
| @@ -37,6 +39,23 @@ class FTableItem extends StatefulWidget { | @@ -37,6 +39,23 @@ class FTableItem extends StatefulWidget { | ||
| 37 | } | 39 | } |
| 38 | 40 | ||
| 39 | class FTableItemState extends State<FTableItem> { | 41 | class FTableItemState extends State<FTableItem> { |
| 42 | + // 判断两数组是否有相同元素, true: 存在相同 false:没相同 | ||
| 43 | + haveSame(List arr, List otherArr) { | ||
| 44 | + if (arr == null || otherArr == null) { | ||
| 45 | + return false; | ||
| 46 | + } | ||
| 47 | + // 合并数组 | ||
| 48 | + | ||
| 49 | + arr.addAll(otherArr); | ||
| 50 | + | ||
| 51 | + // 合并数组并去重 | ||
| 52 | + Set setArr = new Set(); //用set进行去重 | ||
| 53 | + setArr.addAll(arr); //把数组塞进set里 | ||
| 54 | + List newList = setArr.toList(); | ||
| 55 | + | ||
| 56 | + return arr.length != newList.length; | ||
| 57 | + } | ||
| 58 | + | ||
| 40 | @override | 59 | @override |
| 41 | Widget build(BuildContext context) { | 60 | Widget build(BuildContext context) { |
| 42 | t.Table table = widget.table; | 61 | t.Table table = widget.table; |
| @@ -58,11 +77,28 @@ class FTableItemState extends State<FTableItem> { | @@ -58,11 +77,28 @@ class FTableItemState extends State<FTableItem> { | ||
| 58 | isSelf = true; | 77 | isSelf = true; |
| 59 | } | 78 | } |
| 60 | } | 79 | } |
| 80 | + List selectTids = []; //被选中的桌子ids | ||
| 81 | + if (widget.selectTables != null) { | ||
| 82 | + widget.selectTables.forEach((element) { | ||
| 83 | + selectTids.add(element.id); | ||
| 84 | + }); | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | + bool islock = (table.isLock == '1' && | ||
| 88 | + widget.tableMap.containsKey(table.lockTid)) || | ||
| 89 | + (table.isMerge == '1' && | ||
| 90 | + haveSame(widget.tableMap.keys.toList(), table.tids.split(','))) || | ||
| 91 | + (table.isLock == '1' && selectTids.contains(table.lockTid)) || | ||
| 92 | + (table.isMerge == '1' && | ||
| 93 | + haveSame( | ||
| 94 | + selectTids, | ||
| 95 | + table.tids.split( | ||
| 96 | + ','))); //真正上锁*******被合并桌子上锁:合并的桌子被预订&&islock == '1' || 合并桌子上锁:被合并的桌子被预订&&ismerge == '1' | ||
| 61 | 97 | ||
| 62 | return GestureDetector( | 98 | return GestureDetector( |
| 63 | onTap: () { | 99 | onTap: () { |
| 64 | if (widget.canSelected && widget.fromPage == 'change') { | 100 | if (widget.canSelected && widget.fromPage == 'change') { |
| 65 | - if (table.isLock == '1' && signStr != '已预订') { | 101 | + if (islock && signStr != '已预订') { |
| 66 | return; | 102 | return; |
| 67 | } | 103 | } |
| 68 | //从变更页面进来 canChoose = true | 104 | //从变更页面进来 canChoose = true |
| @@ -94,7 +130,7 @@ class FTableItemState extends State<FTableItem> { | @@ -94,7 +130,7 @@ class FTableItemState extends State<FTableItem> { | ||
| 94 | } else if (widget.fromPage == 'new' && | 130 | } else if (widget.fromPage == 'new' && |
| 95 | widget.canSelected && | 131 | widget.canSelected && |
| 96 | signStr.isEmpty) { | 132 | signStr.isEmpty) { |
| 97 | - if (table.isLock == '1' && signStr != '已预订') { | 133 | + if (islock && signStr != '已预订') { |
| 98 | return; | 134 | return; |
| 99 | } | 135 | } |
| 100 | //从安排桌位进来 | 136 | //从安排桌位进来 |
| @@ -104,7 +140,7 @@ class FTableItemState extends State<FTableItem> { | @@ -104,7 +140,7 @@ class FTableItemState extends State<FTableItem> { | ||
| 104 | widget.onSelected(table); | 140 | widget.onSelected(table); |
| 105 | } else if (widget.fromPage == 'table_manage' || | 141 | } else if (widget.fromPage == 'table_manage' || |
| 106 | widget.fromPage == 'room_manage') { | 142 | widget.fromPage == 'room_manage') { |
| 107 | - if (table.isLock == '1' && signStr != '已预订') { | 143 | + if (islock && signStr != '已预订') { |
| 108 | return; | 144 | return; |
| 109 | } | 145 | } |
| 110 | setState(() { | 146 | setState(() { |
| @@ -125,9 +161,7 @@ class FTableItemState extends State<FTableItem> { | @@ -125,9 +161,7 @@ class FTableItemState extends State<FTableItem> { | ||
| 125 | widget.onSelected(table); | 161 | widget.onSelected(table); |
| 126 | } | 162 | } |
| 127 | }, | 163 | }, |
| 128 | - child: table.isLock == '1' && | ||
| 129 | - signStr != '已预订' && | ||
| 130 | - widget.fromPage != 'tablePhoto' | 164 | + child: islock && signStr != '已预订' && widget.fromPage != 'tablePhoto' |
| 131 | ? Stack( | 165 | ? Stack( |
| 132 | children: [ | 166 | children: [ |
| 133 | Container( | 167 | Container( |
| @@ -61,7 +61,8 @@ class MergeTableItemState extends State<MergeTableItem> { | @@ -61,7 +61,8 @@ class MergeTableItemState extends State<MergeTableItem> { | ||
| 61 | bool locked = false; | 61 | bool locked = false; |
| 62 | List<String> tids = []; | 62 | List<String> tids = []; |
| 63 | 63 | ||
| 64 | - if (table.isLock == '1' && !widget.tids.split(',').contains(table.id)) { | 64 | + if ((table.isLock == '1' && !widget.tids.split(',').contains(table.id)) || |
| 65 | + table.isMerge == '1') { | ||
| 65 | locked = true; | 66 | locked = true; |
| 66 | } | 67 | } |
| 67 | 68 | ||
| @@ -103,7 +104,8 @@ class MergeTableItemState extends State<MergeTableItem> { | @@ -103,7 +104,8 @@ class MergeTableItemState extends State<MergeTableItem> { | ||
| 103 | }); | 104 | }); |
| 104 | widget.onSelected(table); | 105 | widget.onSelected(table); |
| 105 | } else if (widget.fromPage == 'table_manage' || | 106 | } else if (widget.fromPage == 'table_manage' || |
| 106 | - widget.fromPage == 'room_manage') { | 107 | + widget.fromPage == 'room_manage' || |
| 108 | + widget.fromPage == 'merge_table') { | ||
| 107 | if (!locked) { | 109 | if (!locked) { |
| 108 | setState(() { | 110 | setState(() { |
| 109 | table.selected = !(table.selected ?? false); | 111 | table.selected = !(table.selected ?? false); |
-
Please register or login to post a comment