Commit aee8db919c8ba7813d3415ce84f01fc2995b768b
1 parent
c88ef98a
订座详情页修改金额和人数键盘上方自定义 完成 按钮 方法里没有让输入框失去焦点,导致获得焦点方法重复执行
Showing
2 changed files
with
323 additions
and
134 deletions
| @@ -87,7 +87,8 @@ class NotebookDetailPageSim extends StatefulWidget { | @@ -87,7 +87,8 @@ class NotebookDetailPageSim extends StatefulWidget { | ||
| 87 | } | 87 | } |
| 88 | } | 88 | } |
| 89 | 89 | ||
| 90 | -class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | 90 | +class NotebookDetailPageSimState extends State<NotebookDetailPageSim> |
| 91 | + with WidgetsBindingObserver { | ||
| 91 | NotebookDetailModel? detailModel; | 92 | NotebookDetailModel? detailModel; |
| 92 | 93 | ||
| 93 | late NotebookDetail detailEntity; | 94 | late NotebookDetail detailEntity; |
| @@ -142,6 +143,10 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | @@ -142,6 +143,10 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | ||
| 142 | 143 | ||
| 143 | List<UploadImgModel> remarkImgs = []; | 144 | List<UploadImgModel> remarkImgs = []; |
| 144 | 145 | ||
| 146 | + OverlayEntry? overlayEntry; | ||
| 147 | + // bool hasAuthority = true; // | ||
| 148 | + bool isback = false; | ||
| 149 | + | ||
| 145 | @override | 150 | @override |
| 146 | void initState() { | 151 | void initState() { |
| 147 | // TODO: implement initState | 152 | // TODO: implement initState |
| @@ -192,6 +197,35 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | @@ -192,6 +197,35 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | ||
| 192 | } | 197 | } |
| 193 | _cancelState(() {}); | 198 | _cancelState(() {}); |
| 194 | }); | 199 | }); |
| 200 | + WidgetsBinding.instance.addObserver(this); | ||
| 201 | + // if (Platform.isIOS) { | ||
| 202 | + pnumF.addListener(() async { | ||
| 203 | + if (pnumF.hasFocus) { | ||
| 204 | + showOverlay(context); | ||
| 205 | + } else { | ||
| 206 | + //人数 | ||
| 207 | + bool sucess = await detailModel! | ||
| 208 | + .upReserveInfo(context, widget.rid, actualPum: pnumC.text); | ||
| 209 | + | ||
| 210 | + if (sucess) { | ||
| 211 | + bus.emit("refresh_book_list"); //刷新已预订列表 | ||
| 212 | + | ||
| 213 | + EventBus().emit("refresh_tablemanager"); //刷新桌位 | ||
| 214 | + await _getReserveDetail(isShowLoading: false, showCicle: true); | ||
| 215 | + } | ||
| 216 | + | ||
| 217 | + removeOverlay(); | ||
| 218 | + } | ||
| 219 | + }); | ||
| 220 | + priceF.addListener(() { | ||
| 221 | + if (priceF.hasFocus) { | ||
| 222 | + showOverlay(context); | ||
| 223 | + } else { | ||
| 224 | + // 失去焦点时候的操作 | ||
| 225 | + | ||
| 226 | + _updateMoney(); | ||
| 227 | + } | ||
| 228 | + }); | ||
| 195 | 229 | ||
| 196 | _depositNode.addListener(() { | 230 | _depositNode.addListener(() { |
| 197 | if (_depositNode.hasFocus) { | 231 | if (_depositNode.hasFocus) { |
| @@ -212,7 +246,7 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | @@ -212,7 +246,7 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | ||
| 212 | _cancelState(() {}); | 246 | _cancelState(() {}); |
| 213 | }); | 247 | }); |
| 214 | bus.on("refresh_detail", (args) { | 248 | bus.on("refresh_detail", (args) { |
| 215 | - _getReserveDetail(); | 249 | + _getReserveDetail(isShowLoading: false, showCicle: true); |
| 216 | }); | 250 | }); |
| 217 | bus.on("refresh_detail_deposit", (args) { | 251 | bus.on("refresh_detail_deposit", (args) { |
| 218 | _getReserveDepositByRid(); //刷新订金数据 | 252 | _getReserveDepositByRid(); //刷新订金数据 |
| @@ -226,6 +260,123 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | @@ -226,6 +260,123 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | ||
| 226 | }); | 260 | }); |
| 227 | } | 261 | } |
| 228 | 262 | ||
| 263 | + showOverlay(BuildContext? context) { | ||
| 264 | + if (overlayEntry != null) return; | ||
| 265 | + | ||
| 266 | + OverlayState overlayState = Overlay.of(context!); | ||
| 267 | + overlayEntry = OverlayEntry(builder: (context) { | ||
| 268 | + return Positioned( | ||
| 269 | + bottom: MediaQuery.of(context).viewInsets.bottom, | ||
| 270 | + right: 0.0, | ||
| 271 | + left: 0.0, | ||
| 272 | + child: InputDoneView( | ||
| 273 | + callback: () { | ||
| 274 | + removeOverlay(); | ||
| 275 | + if (pnumF.hasFocus) { | ||
| 276 | + pnumF.unfocus(); | ||
| 277 | + } | ||
| 278 | + if (priceF.hasFocus) { | ||
| 279 | + priceF.unfocus(); | ||
| 280 | + } | ||
| 281 | + | ||
| 282 | + // _updateMoney(); | ||
| 283 | + }, | ||
| 284 | + )); | ||
| 285 | + }); | ||
| 286 | + | ||
| 287 | + overlayState.insert(overlayEntry!); | ||
| 288 | + } | ||
| 289 | + | ||
| 290 | + removeOverlay() { | ||
| 291 | + if (overlayEntry != null) { | ||
| 292 | + overlayEntry!.remove(); | ||
| 293 | + overlayEntry = null; | ||
| 294 | + // 当前是安卓系统并且在焦点聚焦的情况下 | ||
| 295 | + // if ( widget.focusNode!.hasFocus) { | ||
| 296 | + // if (isKeyboardActived) { | ||
| 297 | + // isKeyboardActived = false; | ||
| 298 | + // // 使输入框失去焦点 | ||
| 299 | + // if (pnumF.hasFocus) { | ||
| 300 | + // pnumF.unfocus(); | ||
| 301 | + // } | ||
| 302 | + // // 使输入框失去焦点 | ||
| 303 | + // if (priceF.hasFocus) { | ||
| 304 | + // priceF.unfocus(); | ||
| 305 | + // } | ||
| 306 | + | ||
| 307 | + // // return; | ||
| 308 | + // } | ||
| 309 | + } | ||
| 310 | + } | ||
| 311 | + | ||
| 312 | + @override | ||
| 313 | + void didChangeMetrics() { | ||
| 314 | + super.didChangeMetrics(); | ||
| 315 | + WidgetsBinding.instance.addPostFrameCallback((_) { | ||
| 316 | + if (mounted) { | ||
| 317 | + print( | ||
| 318 | + 'MediaQuery.of(context).viewInsets.bottom ${MediaQuery.of(context).viewInsets.bottom}'); | ||
| 319 | + if (MediaQuery.of(context).viewInsets.bottom > 0) { | ||
| 320 | + //关闭键盘 | ||
| 321 | + showOverlay(context); | ||
| 322 | + } else { | ||
| 323 | + //显示键盘 | ||
| 324 | + | ||
| 325 | + removeOverlay(); | ||
| 326 | + | ||
| 327 | + // (pnumF.hasFocus || priceF.hasFocus) | ||
| 328 | + } | ||
| 329 | + } | ||
| 330 | + }); | ||
| 331 | + } | ||
| 332 | + | ||
| 333 | + /// 修改金额 | ||
| 334 | + _updateMoney() async { | ||
| 335 | + if (detailModel!.prestrTF == null || detailModel!.prestrTF == "") { | ||
| 336 | + if (detailModel!.numController.text.trim().length > 0) { | ||
| 337 | + //修改之前无内容,不弹框 | ||
| 338 | + detailModel!.prestrTF = detailModel!.numController.text; | ||
| 339 | + await detailModel!.upReserveInfo(context, widget.rid, | ||
| 340 | + conAmount: detailModel!.prestrTF); | ||
| 341 | + | ||
| 342 | + if (isback) { | ||
| 343 | + Navigator.of(context).pop(); | ||
| 344 | + } else { | ||
| 345 | + bus.emit("refresh_detail"); | ||
| 346 | + } | ||
| 347 | + } | ||
| 348 | + } else { | ||
| 349 | + //修改之前有内容,则弹框 | ||
| 350 | + DialogUtil.cupertinoAlertDialog(context, | ||
| 351 | + title: "是否修改", | ||
| 352 | + content: "金额已修改,是否保存为新修改的金额", | ||
| 353 | + lTitle: "不保存", | ||
| 354 | + rTitle: "确认修改", lCallback: () { | ||
| 355 | + print("取消"); | ||
| 356 | + | ||
| 357 | + if (isback) { | ||
| 358 | + Navigator.of(context).pop(); | ||
| 359 | + } else { | ||
| 360 | + detailModel!.numController.text = | ||
| 361 | + detailModel!.prestrTF == null ? "" : detailModel!.prestrTF!; | ||
| 362 | + detailModel!.strTF = detailModel!.numController.text; | ||
| 363 | + } | ||
| 364 | + }, rCallback: () async { | ||
| 365 | + print("确定"); | ||
| 366 | + detailModel!.prestrTF = detailModel!.numController.text; | ||
| 367 | + await detailModel!.upReserveInfo(context, widget.rid, | ||
| 368 | + conAmount: detailModel!.prestrTF); | ||
| 369 | + | ||
| 370 | + if (isback) { | ||
| 371 | + Navigator.of(context).pop(); | ||
| 372 | + } else { | ||
| 373 | + bus.emit("refresh_detail"); | ||
| 374 | + } | ||
| 375 | + }); | ||
| 376 | + } | ||
| 377 | + removeOverlay(); | ||
| 378 | + } | ||
| 379 | + | ||
| 229 | ///获取七牛云token | 380 | ///获取七牛云token |
| 230 | /// | 381 | /// |
| 231 | _getQiniuInfo() async { | 382 | _getQiniuInfo() async { |
| @@ -348,7 +499,7 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | @@ -348,7 +499,7 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | ||
| 348 | // if (beginMinute == 15) { | 499 | // if (beginMinute == 15) { |
| 349 | // beginMinute = 30; | 500 | // beginMinute = 30; |
| 350 | // } else | 501 | // } else |
| 351 | - if (beginMinute == 45) { | 502 | + if (beginMinute == 45) { |
| 352 | beginHour++; | 503 | beginHour++; |
| 353 | beginMinute = 0; | 504 | beginMinute = 0; |
| 354 | } | 505 | } |
| @@ -543,15 +694,15 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | @@ -543,15 +694,15 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | ||
| 543 | // detailModel.selectIndex = detailEntity.actual_pum != null | 694 | // detailModel.selectIndex = detailEntity.actual_pum != null |
| 544 | // ? personNumList.indexOf(detailEntity.actual_pum) | 695 | // ? personNumList.indexOf(detailEntity.actual_pum) |
| 545 | // : null; | 696 | // : null; |
| 546 | - pnumC.text = detailEntity.actual_pum??''; | 697 | + pnumC.text = detailEntity.actual_pum ?? ''; |
| 547 | if (detailEntity.con_amount != null) { | 698 | if (detailEntity.con_amount != null) { |
| 548 | detailModel!.prestrTF = detailEntity.con_amount; | 699 | detailModel!.prestrTF = detailEntity.con_amount; |
| 549 | - detailModel!.numController.text = detailEntity.con_amount??""; | 700 | + detailModel!.numController.text = detailEntity.con_amount ?? ""; |
| 550 | } | 701 | } |
| 551 | if (detailEntity.con_amount != null) { | 702 | if (detailEntity.con_amount != null) { |
| 552 | detailModel!.prestrTF = detailEntity.con_amount; | 703 | detailModel!.prestrTF = detailEntity.con_amount; |
| 553 | detailModel!.strTF = detailEntity.con_amount; | 704 | detailModel!.strTF = detailEntity.con_amount; |
| 554 | - detailModel!.numController.text = detailEntity.con_amount??""; | 705 | + detailModel!.numController.text = detailEntity.con_amount ?? ""; |
| 555 | } | 706 | } |
| 556 | 707 | ||
| 557 | // cusmanText = detailEntity.cusman.isEmpty ? "请选择" : detailEntity.cusman; | 708 | // cusmanText = detailEntity.cusman.isEmpty ? "请选择" : detailEntity.cusman; |
| @@ -1587,7 +1738,7 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | @@ -1587,7 +1738,7 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | ||
| 1587 | if (contact != null) { | 1738 | if (contact != null) { |
| 1588 | setState(() { | 1739 | setState(() { |
| 1589 | String? fullName = | 1740 | String? fullName = |
| 1590 | - contact.fullName?.replaceAll(new RegExp(r"\s+\b|\b\s"), "")??''; | 1741 | + contact.fullName?.replaceAll(new RegExp(r"\s+\b|\b\s"), "") ?? ''; |
| 1591 | // String? phone = | 1742 | // String? phone = |
| 1592 | // contact.phoneNumbers![0].replaceAll(new RegExp(r"\s+\b|\b\s"), ""); | 1743 | // contact.phoneNumbers![0].replaceAll(new RegExp(r"\s+\b|\b\s"), ""); |
| 1593 | // if (fullName.compareTo(phone) == 0) { | 1744 | // if (fullName.compareTo(phone) == 0) { |
| @@ -1596,7 +1747,8 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | @@ -1596,7 +1747,8 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | ||
| 1596 | // fullName = contact.fullName!; | 1747 | // fullName = contact.fullName!; |
| 1597 | // } | 1748 | // } |
| 1598 | detailModel!.phoneController.text = | 1749 | detailModel!.phoneController.text = |
| 1599 | - contact.selectedPhoneNumber?.replaceAll(new RegExp(r"\s+"), "") ?? ''; | 1750 | + contact.selectedPhoneNumber?.replaceAll(new RegExp(r"\s+"), "") ?? |
| 1751 | + ''; | ||
| 1600 | nameStr = fullName; | 1752 | nameStr = fullName; |
| 1601 | // _homeEnterModel.nameController.text = fullName + _nameSuffix(); | 1753 | // _homeEnterModel.nameController.text = fullName + _nameSuffix(); |
| 1602 | _addNameSuffix(fullName, _nameSuffix()); | 1754 | _addNameSuffix(fullName, _nameSuffix()); |
| @@ -1628,7 +1780,7 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | @@ -1628,7 +1780,7 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | ||
| 1628 | detailModel!.nameController.text.endsWith(suffix!)) { | 1780 | detailModel!.nameController.text.endsWith(suffix!)) { |
| 1629 | return; | 1781 | return; |
| 1630 | } | 1782 | } |
| 1631 | - detailModel!.nameController.text = (name??"") + (suffix??""); | 1783 | + detailModel!.nameController.text = (name ?? "") + (suffix ?? ""); |
| 1632 | } | 1784 | } |
| 1633 | 1785 | ||
| 1634 | //姓名后缀 | 1786 | //姓名后缀 |
| @@ -2367,7 +2519,12 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | @@ -2367,7 +2519,12 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | ||
| 2367 | if (widget.fromNotify) { | 2519 | if (widget.fromNotify) { |
| 2368 | NavigatorUtil.goHomePageSim(context, initialIndex: 0); | 2520 | NavigatorUtil.goHomePageSim(context, initialIndex: 0); |
| 2369 | } else { | 2521 | } else { |
| 2370 | - Navigator.of(context).pop(); | 2522 | + if (priceF.hasFocus) { |
| 2523 | + isback = true; | ||
| 2524 | + priceF.unfocus(); | ||
| 2525 | + } else { | ||
| 2526 | + Navigator.of(context).pop(); | ||
| 2527 | + } | ||
| 2371 | } | 2528 | } |
| 2372 | }, | 2529 | }, |
| 2373 | ), | 2530 | ), |
| @@ -2642,24 +2799,24 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | @@ -2642,24 +2799,24 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | ||
| 2642 | focusNode: pnumF, | 2799 | focusNode: pnumF, |
| 2643 | uid: widget.uid, | 2800 | uid: widget.uid, |
| 2644 | callback: () async { | 2801 | callback: () async { |
| 2645 | - bool sucess = | ||
| 2646 | - await detailModel! | ||
| 2647 | - .upReserveInfo( | ||
| 2648 | - context, | ||
| 2649 | - widget.rid, | ||
| 2650 | - actualPum: | ||
| 2651 | - pnumC | ||
| 2652 | - .text); | ||
| 2653 | - | ||
| 2654 | - if (sucess) { | ||
| 2655 | - bus.emit( | ||
| 2656 | - "refresh_book_list"); //刷新已预订列表 | ||
| 2657 | - | ||
| 2658 | - EventBus().emit( | ||
| 2659 | - "refresh_tablemanager"); //刷新桌位 | ||
| 2660 | - await _getReserveDetail( | ||
| 2661 | - showCicle: false); | ||
| 2662 | - } | 2802 | + // bool sucess = |
| 2803 | + // await detailModel! | ||
| 2804 | + // .upReserveInfo( | ||
| 2805 | + // context, | ||
| 2806 | + // widget.rid, | ||
| 2807 | + // actualPum: | ||
| 2808 | + // pnumC | ||
| 2809 | + // .text); | ||
| 2810 | + | ||
| 2811 | + // if (sucess) { | ||
| 2812 | + // bus.emit( | ||
| 2813 | + // "refresh_book_list"); //刷新已预订列表 | ||
| 2814 | + | ||
| 2815 | + // EventBus().emit( | ||
| 2816 | + // "refresh_tablemanager"); //刷新桌位 | ||
| 2817 | + // await _getReserveDetail( | ||
| 2818 | + // showCicle: false); | ||
| 2819 | + // } | ||
| 2663 | })), | 2820 | })), |
| 2664 | HEmptyView(60), | 2821 | HEmptyView(60), |
| 2665 | Expanded( | 2822 | Expanded( |
| @@ -5034,6 +5191,11 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | @@ -5034,6 +5191,11 @@ class NotebookDetailPageSimState extends State<NotebookDetailPageSim> { | ||
| 5034 | NavigatorUtil.goHomePageSim(context, initialIndex: 0); | 5191 | NavigatorUtil.goHomePageSim(context, initialIndex: 0); |
| 5035 | return true; | 5192 | return true; |
| 5036 | } | 5193 | } |
| 5194 | + if (priceF.hasFocus) { | ||
| 5195 | + isback = true; | ||
| 5196 | + priceF.unfocus(); | ||
| 5197 | + return false; | ||
| 5198 | + } | ||
| 5037 | Navigator.of(context).pop(); | 5199 | Navigator.of(context).pop(); |
| 5038 | return true; | 5200 | return true; |
| 5039 | }, | 5201 | }, |
| @@ -5151,6 +5313,7 @@ class TitleAndBtn extends StatelessWidget { | @@ -5151,6 +5313,7 @@ class TitleAndBtn extends StatelessWidget { | ||
| 5151 | } | 5313 | } |
| 5152 | 5314 | ||
| 5153 | class TitleAndTextfield extends StatefulWidget { | 5315 | class TitleAndTextfield extends StatefulWidget { |
| 5316 | + final BuildContext? context; | ||
| 5154 | final String? title; | 5317 | final String? title; |
| 5155 | final String? bookNum; | 5318 | final String? bookNum; |
| 5156 | final List<String>? pnumlist; | 5319 | final List<String>? pnumlist; |
| @@ -5165,6 +5328,7 @@ class TitleAndTextfield extends StatefulWidget { | @@ -5165,6 +5328,7 @@ class TitleAndTextfield extends StatefulWidget { | ||
| 5165 | 5328 | ||
| 5166 | const TitleAndTextfield( | 5329 | const TitleAndTextfield( |
| 5167 | {Key? key, | 5330 | {Key? key, |
| 5331 | + this.context, | ||
| 5168 | this.title, | 5332 | this.title, |
| 5169 | this.bookNum, | 5333 | this.bookNum, |
| 5170 | this.pnumlist, | 5334 | this.pnumlist, |
| @@ -5181,11 +5345,15 @@ class TitleAndTextfield extends StatefulWidget { | @@ -5181,11 +5345,15 @@ class TitleAndTextfield extends StatefulWidget { | ||
| 5181 | _TitleAndTextfieldState createState() => _TitleAndTextfieldState(); | 5345 | _TitleAndTextfieldState createState() => _TitleAndTextfieldState(); |
| 5182 | } | 5346 | } |
| 5183 | 5347 | ||
| 5184 | -class _TitleAndTextfieldState extends State<TitleAndTextfield> | ||
| 5185 | - with WidgetsBindingObserver { | 5348 | +class _TitleAndTextfieldState extends State<TitleAndTextfield> { |
| 5349 | + // with WidgetsBindingObserver { | ||
| 5186 | // FocusNode numberFocusNode = new FocusNode(); | 5350 | // FocusNode numberFocusNode = new FocusNode(); |
| 5187 | - OverlayEntry? overlayEntry; | ||
| 5188 | - // bool hasAuthority = true; // | 5351 | + // OverlayEntry? overlayEntry; |
| 5352 | + // // bool hasAuthority = true; // | ||
| 5353 | + | ||
| 5354 | + // // 当前键盘是否是激活状态 | ||
| 5355 | + // bool isKeyboardActived = false; | ||
| 5356 | + | ||
| 5189 | @override | 5357 | @override |
| 5190 | void initState() { | 5358 | void initState() { |
| 5191 | super.initState(); | 5359 | super.initState(); |
| @@ -5203,73 +5371,90 @@ class _TitleAndTextfieldState extends State<TitleAndTextfield> | @@ -5203,73 +5371,90 @@ class _TitleAndTextfieldState extends State<TitleAndTextfield> | ||
| 5203 | // hasAuthority = false; | 5371 | // hasAuthority = false; |
| 5204 | // } | 5372 | // } |
| 5205 | 5373 | ||
| 5206 | - WidgetsBinding.instance.addObserver(this); | ||
| 5207 | - // if (Platform.isIOS) { | ||
| 5208 | - widget.focusNode!.addListener(() { | ||
| 5209 | - if (widget.focusNode!.hasFocus && mounted) { | ||
| 5210 | - showOverlay(context); | ||
| 5211 | - } else { | ||
| 5212 | - if (widget.isPrice) { | ||
| 5213 | - _updateMoney(); | ||
| 5214 | - } else { | ||
| 5215 | - //人数 | ||
| 5216 | - widget.callback!(); | ||
| 5217 | - } | ||
| 5218 | - | ||
| 5219 | - removeOverlay(); | ||
| 5220 | - } | ||
| 5221 | - }); | 5374 | + // WidgetsBinding.instance.addObserver(this); |
| 5375 | + // // if (Platform.isIOS) { | ||
| 5376 | + // widget.focusNode!.addListener(() { | ||
| 5377 | + // if (widget.focusNode!.hasFocus) { | ||
| 5378 | + // showOverlay(widget.context); | ||
| 5379 | + // } else { | ||
| 5380 | + // // 失去焦点时候的操作 | ||
| 5381 | + // isKeyboardActived = false; | ||
| 5382 | + // if (widget.isPrice) { | ||
| 5383 | + // _updateMoney(); | ||
| 5384 | + // } else { | ||
| 5385 | + // //人数 | ||
| 5386 | + // widget.callback!(); | ||
| 5387 | + // } | ||
| 5388 | + | ||
| 5389 | + // removeOverlay(); | ||
| 5390 | + // } | ||
| 5391 | + // }); | ||
| 5222 | // } | 5392 | // } |
| 5223 | } | 5393 | } |
| 5224 | 5394 | ||
| 5225 | - @override | ||
| 5226 | - void dispose() { | ||
| 5227 | - removeOverlay(); | ||
| 5228 | - super.dispose(); | ||
| 5229 | - WidgetsBinding.instance.removeObserver(this); | ||
| 5230 | - } | 5395 | + // @override |
| 5396 | + // void dispose() { | ||
| 5397 | + // removeOverlay(); | ||
| 5398 | + // super.dispose(); | ||
| 5399 | + // WidgetsBinding.instance.removeObserver(this); | ||
| 5400 | + // } | ||
| 5231 | 5401 | ||
| 5232 | - showOverlay(BuildContext context) { | ||
| 5233 | - if (overlayEntry != null) return; | ||
| 5234 | - OverlayState overlayState = Overlay.of(context); | ||
| 5235 | - overlayEntry = OverlayEntry(builder: (context) { | ||
| 5236 | - return Positioned( | ||
| 5237 | - bottom: MediaQuery.of(context).viewInsets.bottom, | ||
| 5238 | - right: 0.0, | ||
| 5239 | - left: 0.0, | ||
| 5240 | - child: InputDoneView( | ||
| 5241 | - callback: () { | ||
| 5242 | - removeOverlay(); | ||
| 5243 | - // _updateMoney(); | ||
| 5244 | - }, | ||
| 5245 | - )); | ||
| 5246 | - }); | 5402 | + // showOverlay(BuildContext? context) { |
| 5403 | + // if (overlayEntry != null) return; | ||
| 5247 | 5404 | ||
| 5248 | - overlayState.insert(overlayEntry!); | ||
| 5249 | - } | 5405 | + // isKeyboardActived = true; |
| 5250 | 5406 | ||
| 5251 | - removeOverlay() { | ||
| 5252 | - if (overlayEntry != null) { | ||
| 5253 | - overlayEntry!.remove(); | ||
| 5254 | - overlayEntry = null; | ||
| 5255 | - } | ||
| 5256 | - } | 5407 | + // OverlayState overlayState = Overlay.of(context!); |
| 5408 | + // overlayEntry = OverlayEntry(builder: (context) { | ||
| 5409 | + // return Positioned( | ||
| 5410 | + // bottom: MediaQuery.of(context).viewInsets.bottom, | ||
| 5411 | + // right: 0.0, | ||
| 5412 | + // left: 0.0, | ||
| 5413 | + // child: InputDoneView( | ||
| 5414 | + // callback: () { | ||
| 5415 | + // removeOverlay(); | ||
| 5416 | + | ||
| 5417 | + // // _updateMoney(); | ||
| 5418 | + // }, | ||
| 5419 | + // )); | ||
| 5420 | + // }); | ||
| 5421 | + | ||
| 5422 | + // overlayState.insert(overlayEntry!); | ||
| 5423 | + // } | ||
| 5424 | + | ||
| 5425 | + // removeOverlay() { | ||
| 5426 | + // if (overlayEntry != null) { | ||
| 5427 | + // overlayEntry!.remove(); | ||
| 5428 | + // overlayEntry = null; | ||
| 5429 | + // // 当前是安卓系统并且在焦点聚焦的情况下 | ||
| 5430 | + // // if ( widget.focusNode!.hasFocus) { | ||
| 5431 | + // if (isKeyboardActived) { | ||
| 5432 | + // isKeyboardActived = false; | ||
| 5433 | + // // 使输入框失去焦点 | ||
| 5434 | + // widget.focusNode!.unfocus(); | ||
| 5435 | + // // return; | ||
| 5436 | + // } | ||
| 5437 | + // } | ||
| 5438 | + // } | ||
| 5257 | 5439 | ||
| 5258 | // @override | 5440 | // @override |
| 5259 | - void didChangeMetrics() { | ||
| 5260 | - super.didChangeMetrics(); | ||
| 5261 | - WidgetsBinding.instance.addPostFrameCallback((_) { | ||
| 5262 | - if (mounted) { | ||
| 5263 | - if (MediaQuery.of(context).viewInsets.bottom == 0) { | ||
| 5264 | - //关闭键盘 | ||
| 5265 | - removeOverlay(); | ||
| 5266 | - } else { | ||
| 5267 | - //显示键盘 | ||
| 5268 | - showOverlay(context); | ||
| 5269 | - } | ||
| 5270 | - } | ||
| 5271 | - }); | ||
| 5272 | - } | 5441 | + // void didChangeMetrics() { |
| 5442 | + // super.didChangeMetrics(); | ||
| 5443 | + // WidgetsBinding.instance.addPostFrameCallback((_) { | ||
| 5444 | + // if (mounted) { | ||
| 5445 | + // print( | ||
| 5446 | + // 'MediaQuery.of(context).viewInsets.bottom ${MediaQuery.of(context).viewInsets.bottom}'); | ||
| 5447 | + // if (MediaQuery.of(context).viewInsets.bottom == 0) { | ||
| 5448 | + // //关闭键盘 | ||
| 5449 | + // removeOverlay(); | ||
| 5450 | + // } else { | ||
| 5451 | + // //显示键盘 | ||
| 5452 | + | ||
| 5453 | + // showOverlay(context); | ||
| 5454 | + // } | ||
| 5455 | + // } | ||
| 5456 | + // }); | ||
| 5457 | + // } | ||
| 5273 | 5458 | ||
| 5274 | handlePostFrame(_) { | 5459 | handlePostFrame(_) { |
| 5275 | // if (_scrollController.hasClients) { | 5460 | // if (_scrollController.hasClients) { |
| @@ -5291,40 +5476,40 @@ class _TitleAndTextfieldState extends State<TitleAndTextfield> | @@ -5291,40 +5476,40 @@ class _TitleAndTextfieldState extends State<TitleAndTextfield> | ||
| 5291 | // } | 5476 | // } |
| 5292 | } | 5477 | } |
| 5293 | 5478 | ||
| 5294 | - /// 修改金额 | ||
| 5295 | - _updateMoney() async { | ||
| 5296 | - removeOverlay(); | ||
| 5297 | - if (widget.detailModel!.prestrTF == null || | ||
| 5298 | - widget.detailModel!.prestrTF == "") { | ||
| 5299 | - if (widget.detailModel!.numController.text.trim().length > 0) { | ||
| 5300 | - //修改之前无内容,不弹框 | ||
| 5301 | - widget.detailModel!.prestrTF = widget.detailModel!.numController.text; | ||
| 5302 | - await widget.detailModel!.upReserveInfo(context, widget.rid, | ||
| 5303 | - conAmount: widget.detailModel!.prestrTF); | ||
| 5304 | - bus.emit("refresh_detail"); | ||
| 5305 | - } | ||
| 5306 | - } else { | ||
| 5307 | - //修改之前有内容,则弹框 | ||
| 5308 | - DialogUtil.cupertinoAlertDialog(context, | ||
| 5309 | - title: "是否修改", | ||
| 5310 | - content: "金额已修改,是否保存为新修改的金额", | ||
| 5311 | - lTitle: "不保存", | ||
| 5312 | - rTitle: "确认修改", lCallback: () { | ||
| 5313 | - print("取消"); | ||
| 5314 | - widget.detailModel!.numController.text = | ||
| 5315 | - widget.detailModel!.prestrTF == null | ||
| 5316 | - ? "" | ||
| 5317 | - : widget.detailModel!.prestrTF!; | ||
| 5318 | - widget.detailModel!.strTF = widget.detailModel!.numController.text; | ||
| 5319 | - }, rCallback: () async { | ||
| 5320 | - print("确定"); | ||
| 5321 | - widget.detailModel!.prestrTF = widget.detailModel!.numController.text; | ||
| 5322 | - await widget.detailModel!.upReserveInfo(context, widget.rid, | ||
| 5323 | - conAmount: widget.detailModel!.prestrTF); | ||
| 5324 | - bus.emit("refresh_detail"); | ||
| 5325 | - }); | ||
| 5326 | - } | ||
| 5327 | - } | 5479 | + // /// 修改金额 |
| 5480 | + // _updateMoney() async { | ||
| 5481 | + // removeOverlay(); | ||
| 5482 | + // if (widget.detailModel!.prestrTF == null || | ||
| 5483 | + // widget.detailModel!.prestrTF == "") { | ||
| 5484 | + // if (widget.detailModel!.numController.text.trim().length > 0) { | ||
| 5485 | + // //修改之前无内容,不弹框 | ||
| 5486 | + // widget.detailModel!.prestrTF = widget.detailModel!.numController.text; | ||
| 5487 | + // await widget.detailModel!.upReserveInfo(context, widget.rid, | ||
| 5488 | + // conAmount: widget.detailModel!.prestrTF); | ||
| 5489 | + // bus.emit("refresh_detail"); | ||
| 5490 | + // } | ||
| 5491 | + // } else { | ||
| 5492 | + // //修改之前有内容,则弹框 | ||
| 5493 | + // DialogUtil.cupertinoAlertDialog(context, | ||
| 5494 | + // title: "是否修改", | ||
| 5495 | + // content: "金额已修改,是否保存为新修改的金额", | ||
| 5496 | + // lTitle: "不保存", | ||
| 5497 | + // rTitle: "确认修改", lCallback: () { | ||
| 5498 | + // print("取消"); | ||
| 5499 | + // widget.detailModel!.numController.text = | ||
| 5500 | + // widget.detailModel!.prestrTF == null | ||
| 5501 | + // ? "" | ||
| 5502 | + // : widget.detailModel!.prestrTF!; | ||
| 5503 | + // widget.detailModel!.strTF = widget.detailModel!.numController.text; | ||
| 5504 | + // }, rCallback: () async { | ||
| 5505 | + // print("确定"); | ||
| 5506 | + // widget.detailModel!.prestrTF = widget.detailModel!.numController.text; | ||
| 5507 | + // await widget.detailModel!.upReserveInfo(context, widget.rid, | ||
| 5508 | + // conAmount: widget.detailModel!.prestrTF); | ||
| 5509 | + // bus.emit("refresh_detail"); | ||
| 5510 | + // }); | ||
| 5511 | + // } | ||
| 5512 | + // } | ||
| 5328 | 5513 | ||
| 5329 | @override | 5514 | @override |
| 5330 | Widget build(BuildContext context) { | 5515 | Widget build(BuildContext context) { |
| @@ -183,13 +183,13 @@ class TableManagerModel with ChangeNotifier { | @@ -183,13 +183,13 @@ class TableManagerModel with ChangeNotifier { | ||
| 183 | night = | 183 | night = |
| 184 | userModel.user!.night!.isEmpty ? "00:00-00:00" : userModel.user!.night; | 184 | userModel.user!.night!.isEmpty ? "00:00-00:00" : userModel.user!.night; |
| 185 | userModel.user!.morning!.isEmpty | 185 | userModel.user!.morning!.isEmpty |
| 186 | - ? dailyMap.putIfAbsent("morning", () => "") | 186 | + ? dailyMap.putIfAbsent("morning", () => []) |
| 187 | : dailyMap.putIfAbsent("morning", () => _getHourAndMinute(morning!, 1)); | 187 | : dailyMap.putIfAbsent("morning", () => _getHourAndMinute(morning!, 1)); |
| 188 | userModel.user!.noon!.isEmpty | 188 | userModel.user!.noon!.isEmpty |
| 189 | - ? dailyMap.putIfAbsent("noon", () => "") | 189 | + ? dailyMap.putIfAbsent("noon", () => []) |
| 190 | : dailyMap.putIfAbsent("noon", () => _getHourAndMinute(noon!, 2)); | 190 | : dailyMap.putIfAbsent("noon", () => _getHourAndMinute(noon!, 2)); |
| 191 | userModel.user!.night!.isEmpty | 191 | userModel.user!.night!.isEmpty |
| 192 | - ? dailyMap.putIfAbsent("night", () => "") | 192 | + ? dailyMap.putIfAbsent("night", () => []) |
| 193 | : dailyMap.putIfAbsent("night", () => _getHourAndMinute(night!, 3)); | 193 | : dailyMap.putIfAbsent("night", () => _getHourAndMinute(night!, 3)); |
| 194 | if (dateTime.isBefore(DateTime.parse(dateTime.year.toString() + | 194 | if (dateTime.isBefore(DateTime.parse(dateTime.year.toString() + |
| 195 | "-" + | 195 | "-" + |
| @@ -239,7 +239,13 @@ class TableManagerModel with ChangeNotifier { | @@ -239,7 +239,13 @@ class TableManagerModel with ChangeNotifier { | ||
| 239 | currTimeIndex = 3; | 239 | currTimeIndex = 3; |
| 240 | } else { | 240 | } else { |
| 241 | //过了晚市 | 241 | //过了晚市 |
| 242 | - currTimeIndex = 3; | 242 | + if (morning != '00:00-00:00') { |
| 243 | + currTimeIndex = 1; | ||
| 244 | + } else if (noon != '00:00-00:00') { | ||
| 245 | + currTimeIndex = 2; | ||
| 246 | + } else if (night != '00:00-00:00') { | ||
| 247 | + currTimeIndex = 3; | ||
| 248 | + } | ||
| 243 | } | 249 | } |
| 244 | selectDateStr = returnDayDateStr(dateTime); | 250 | selectDateStr = returnDayDateStr(dateTime); |
| 245 | selectWeekAndLunarCalendar = returnWeekAndLunarCalendar(dateTime, context); | 251 | selectWeekAndLunarCalendar = returnWeekAndLunarCalendar(dateTime, context); |
| @@ -793,7 +799,7 @@ class TableManagerModel with ChangeNotifier { | @@ -793,7 +799,7 @@ class TableManagerModel with ChangeNotifier { | ||
| 793 | 'edate': '${end}', | 799 | 'edate': '${end}', |
| 794 | // 'ddate_interval': currTimeIndex.toString() | 800 | // 'ddate_interval': currTimeIndex.toString() |
| 795 | }; | 801 | }; |
| 796 | - (bool, bool) result = await ( | 802 | + (bool, bool) result = await ( |
| 797 | _getOldReserve(context, params, showloading, selfDismiss: selfDismiss), | 803 | _getOldReserve(context, params, showloading, selfDismiss: selfDismiss), |
| 798 | getBanquetByDate(context, banquetmap, | 804 | getBanquetByDate(context, banquetmap, |
| 799 | showLoading: showloading, selfDismiss: selfDismiss) | 805 | showLoading: showloading, selfDismiss: selfDismiss) |
| @@ -801,10 +807,9 @@ class TableManagerModel with ChangeNotifier { | @@ -801,10 +807,9 @@ class TableManagerModel with ChangeNotifier { | ||
| 801 | 807 | ||
| 802 | if (result.$1 && result.$2) { | 808 | if (result.$1 && result.$2) { |
| 803 | return true; | 809 | return true; |
| 804 | - }else{ | 810 | + } else { |
| 805 | return false; | 811 | return false; |
| 806 | } | 812 | } |
| 807 | - | ||
| 808 | } | 813 | } |
| 809 | 814 | ||
| 810 | Future<bool> _getOldReserve(context, params, showloading, | 815 | Future<bool> _getOldReserve(context, params, showloading, |
| @@ -1379,8 +1384,7 @@ class TableManagerModel with ChangeNotifier { | @@ -1379,8 +1384,7 @@ class TableManagerModel with ChangeNotifier { | ||
| 1379 | } | 1384 | } |
| 1380 | 1385 | ||
| 1381 | //获取区域数据 | 1386 | //获取区域数据 |
| 1382 | - Future<List<AreaSunModel>?> getRegionBySellerid( | ||
| 1383 | - BuildContext context) async { | 1387 | + Future<List<AreaSunModel>?> getRegionBySellerid(BuildContext context) async { |
| 1384 | Map<String, String?> params = { | 1388 | Map<String, String?> params = { |
| 1385 | "sellerid": Provider.of<UserModel>(context, listen: false).user!.sellerid | 1389 | "sellerid": Provider.of<UserModel>(context, listen: false).user!.sellerid |
| 1386 | }; | 1390 | }; |
-
Please register or login to post a comment