my_areas_manage_page.dart 18.2 KB

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/models/area.dart';
import 'package:one_key/provider/my_table_manage_home_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/page_exception.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:provider/provider.dart';

import '../../../provider/table_manage_model.dart';

/*
****   区域管理
*/
class MyAreaManagePage extends StatefulWidget {
  MyAreaManagePage({Key? key}) : super(key: key);

  @override
  _MyAreaManagePageState createState() => _MyAreaManagePageState();
}

class _MyAreaManagePageState extends State<MyAreaManagePage> {
  late MyTableManageHomeModel tableManagerModel;
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) {
      tableManagerModel.initTime(context);

      // EventBus().on("refresh_tablemanager", (arg) {
      //   //订座-完成预订 刷新管理桌位
      //   tableManagerModel.getReserveList(context,
      //       needLoading: false, needKeep: true);
      //   print(tableManagerModel);
      // });
      // EventBus().on("refresh_tablePhoto", (arg) {
      //   ///刷新图片显示
      //   _refreshTablePhoto();
      // });
    });
  }

  @override
  Widget build(BuildContext context) {
    tableManagerModel =
        Provider.of<MyTableManageHomeModel>(context, listen: true);
    return Scaffold(
        resizeToAvoidBottomInset: false, //输入框抵住键盘
        appBar: SystemAppBar(
          "区域管理",
          showLeading: true,
          onTap: () {
            if (Navigator.canPop(context)) {
              Navigator.pop(context);
            }
          },
        ),
        backgroundColor: MyColours.color_ffffff,
        body: SafeArea(child:
            Consumer<MyTableManageHomeModel>(builder: (context, model, child) {
          return model.pageState != PageState.Success
              ? ExceptionPage(
                  pageState: model.pageState,
                  callback: () {
                    // if (tableManagerModel.tableOuterList.isEmpty) {
                    //   tableManagerModel.getTableList(context);
                    // } else {
                    //   tableManagerModel.getReserveList(context);
                    // }
                  },
                  emptyMsg: "暂时没有区域数据哦",
                  emptyImg: "table_manage_empty",
                  showMsg: "加载中,请稍候...",
                )
              : Padding(
                  padding: EdgeInsets.symmetric(
                      horizontal: ScreenUtil().setWidth(32),
                      vertical: ScreenUtil().setWidth(54)),
                  child: ReorderableListView(
                    children: <Widget>[
                      for (Area item in tableManagerModel.areas)
                        Container(
                          key: ValueKey(item),
                          padding: EdgeInsets.symmetric(
                              horizontal: ScreenUtil().setWidth(16),
                              vertical: ScreenUtil().setWidth(30)),
                          decoration: BoxDecoration(
                              border: Border(
                                  bottom: BorderSide(
                                      width: ScreenUtil().setWidth(2),
                                      color: MyColours.color_E7E7E7))),
                          child: Row(
                            mainAxisAlignment: MainAxisAlignment.spaceBetween,
                            children: [
                              Expanded(
                                  child: InkWell(
                                highlightColor: MyColours.color_ffffff,
                                onTap: () async {
                                  //修改区域弹框
                                  await DialogUtil
                                      .openTableManageCreateAreaDialog(context,
                                          title: '修改区域', content: item.name!,
                                          onTap: (value) async {
                                    print(value);
                                    //添加区域
                                    bool success = await tableManagerModel
                                        .setTableRegionById(
                                            context, value as String?, item.rid);
                                    print(success);
                                    if (success) {
                                      Utils.showToast('修改成功!');
                                      tableManagerModel.currentArea = value;

                                      // TableManagerModel tableManagerModel1 =
                                      //     Provider.of<TableManagerModel>(
                                      //         context,
                                      //         listen: false);
                                      // tableManagerModel1.getTableList(
                                      //   context,
                                      //   needLoading: false,
                                      // );

                                      await tableManagerModel
                                          .refreshTable(context);
                                      EventBus().emit("refresh_table_area");
                                      // await tableManagerModel
                                      //     .getTableList(context,
                                      //         needLoading: false);
                                      // tableManagerModel.initData();

                                      // setState(() {
                                      //   updateMenu();
                                      // });
                                      // _scrollToIndex(widget
                                      //     .tableManagerModel
                                      //     .areas
                                      //     .length);

                                    }
                                  });
                                },
                                child: Text(item.name!,
                                    style: TextStyle(
                                        color: MyColours.color_000000,
                                        fontSize: ScreenUtil().setSp(32))),
                              )),
                              InkWell(
                                  onTap: () {
                                    DialogUtil.cupertinoAlertDialog(context,
                                        title: "",
                                        content: "是否确定删除该区域",
                                        lTitle: "取消",
                                        rTitle: "确认删除",
                                        isBold: true,
                                        isBoldContent: true,
                                        rColor: MyColours.color_E34D59,
                                        lCallback: () {
                                      print("取消");
                                    }, rCallback: () async {
                                      bool success = await tableManagerModel
                                          .delTableRegion(context, item.rid);
                                      print(success);
                                      if (success) {
                                        Utils.showToast('删除成功!');
                                        // TableOuter tableOuter = TableOuter();
                                        // tableOuter.name = value;
                                        // tableOuter.list = [];
                                        // tableManagerModel.tableOuterList.add(tableOuter);
                                        // tableManagerModel.initData();
                                        // Timer(
                                        //     Duration(milliseconds: 500),
                                        //     () => _areaController.jumpTo(
                                        //         _areaController.position.maxScrollExtent));

                                        // await tableManagerModel
                                        //     .getTableList(context);
                                        // await tableManagerModel
                                        //     .initData();
                                        // TableManagerModel tableManagerModel =
                                        //     Provider.of<TableManagerModel>(context,
                                        //         listen: false);
                                        // tableManagerModel.getTableList(
                                        //   context,
                                        //   needLoading: false,
                                        // );

                                        await tableManagerModel
                                            .refreshTable(context);
                                        EventBus().emit("refresh_table_area");
                                      }
                                    });
                                  },
                                  child: Text('删除',
                                      style: TextStyle(
                                          color: MyColours.color_438E93,
                                          decoration: TextDecoration.underline,
                                          fontSize: ScreenUtil().setSp(32))))
                            ],
                          ),
                        )
                    ],
                    onReorder: (int oldIndex, int newIndex) async {
                      if (oldIndex < newIndex) {
                        newIndex -= 1;
                      }

                      var childold = tableManagerModel.areas[oldIndex];
                      Map<String, String?> params = {
                        'sid': Provider.of<UserModel>(context, listen: false)
                            .user!
                            .sellerid,
                        'regionid': childold.rid,
                        'order_o': tableManagerModel.areas[newIndex].orderId,
                        'sort': oldIndex < newIndex ? '2' : '1'
                      };
                      var child = tableManagerModel.areas.removeAt(oldIndex);
                      tableManagerModel.areas.insert(newIndex, child);
                      setState(() {});
                      await tableManagerModel.sortByRegion(context, params);
                      //刷新前一页数据
                      bus.emit('refresh_table_area');
                    },
                  ));

          // ListView.builder(
          //     padding: EdgeInsets.symmetric(
          //         horizontal: ScreenUtil().setWidth(32),
          //         vertical: ScreenUtil().setWidth(54)),
          //     itemCount: tableManagerModel.areas.length,
          //     shrinkWrap: true,
          //     // scrollDirection: Axis.horizontal,
          //     itemBuilder: (BuildContext contxt, int index) {
          //       return Container(
          //         padding: EdgeInsets.symmetric(
          //             horizontal: ScreenUtil().setWidth(16),
          //             vertical: ScreenUtil().setWidth(30)),
          //         decoration: BoxDecoration(
          //             border: Border(
          //                 bottom: BorderSide(
          //                     width: ScreenUtil().setWidth(2),
          //                     color: MyColours.color_E7E7E7))),
          //         child: Row(
          //           mainAxisAlignment: MainAxisAlignment.spaceBetween,
          //           children: [
          //             Expanded(
          //                 child: InkWell(
          //                     onTap: () async {
          //                       //修改区域弹框
          //                       await DialogUtil
          //                           .openTableManageCreateAreaDialog(
          //                               context,
          //                               title: '修改区域',
          //                               content: tableManagerModel
          //                                   .areas[index]
          //                                   .name, onTap: (value) async {
          //                         print(value);
          //                         //添加区域
          //                         bool success = await tableManagerModel
          //                             .setTableRegionById(
          //                                 context,
          //                                 value,
          //                                 tableManagerModel
          //                                     .areas[index].rid);
          //                         print(success);
          //                         if (success) {
          //                           Utils.showToast('修改成功!');
          //                           tableManagerModel.currentArea = value;

          //                           // TableManagerModel tableManagerModel1 =
          //                           //     Provider.of<TableManagerModel>(
          //                           //         context,
          //                           //         listen: false);
          //                           // tableManagerModel1.getTableList(
          //                           //   context,
          //                           //   needLoading: false,
          //                           // );

          //                           await tableManagerModel
          //                               .refreshTable(context);
          //                           EventBus().emit("refresh_table_area");
          //                           // await tableManagerModel
          //                           //     .getTableList(context,
          //                           //         needLoading: false);
          //                           // tableManagerModel.initData();

          //                           // setState(() {
          //                           //   updateMenu();
          //                           // });
          //                           // _scrollToIndex(widget
          //                           //     .tableManagerModel
          //                           //     .areas
          //                           //     .length);

          //                         }
          //                       });
          //                     },
          //                     child: Text(
          //                         tableManagerModel.areas[index].name,
          //                         style: TextStyle(
          //                             color: MyColours.color_000000,
          //                             fontSize: ScreenUtil().setSp(32))))),
          //             InkWell(
          //                 onTap: () {
          //                   DialogUtil.cupertinoAlertDialog(context,
          //                       title: "",
          //                       content: "是否确定删除该区域",
          //                       lTitle: "取消",
          //                       rTitle: "确认删除",
          //                       isBold: true,
          //                       isBoldContent: true,
          //                       rColor: MyColours.color_E34D59,
          //                       lCallback: () {
          //                     print("取消");
          //                   }, rCallback: () async {
          //                     bool success =
          //                         await tableManagerModel.delTableRegion(
          //                             context,
          //                             tableManagerModel.areas[index].rid);
          //                     print(success);
          //                     if (success) {
          //                       Utils.showToast('删除成功!');
          //                       // TableOuter tableOuter = TableOuter();
          //                       // tableOuter.name = value;
          //                       // tableOuter.list = [];
          //                       // tableManagerModel.tableOuterList.add(tableOuter);
          //                       // tableManagerModel.initData();
          //                       // Timer(
          //                       //     Duration(milliseconds: 500),
          //                       //     () => _areaController.jumpTo(
          //                       //         _areaController.position.maxScrollExtent));

          //                       // await tableManagerModel
          //                       //     .getTableList(context);
          //                       // await tableManagerModel
          //                       //     .initData();
          //                       // TableManagerModel tableManagerModel =
          //                       //     Provider.of<TableManagerModel>(context,
          //                       //         listen: false);
          //                       // tableManagerModel.getTableList(
          //                       //   context,
          //                       //   needLoading: false,
          //                       // );

          //                       await tableManagerModel
          //                           .refreshTable(context);
          //                       EventBus().emit("refresh_table_area");
          //                     }
          //                   });
          //                 },
          //                 child: Text('删除',
          //                     style: TextStyle(
          //                         color: MyColours.color_438E93,
          //                         decoration: TextDecoration.underline,
          //                         fontSize: ScreenUtil().setSp(32))))
          //           ],
          //         ),
          //       );
          //     });
        })));
  }
}