route_handles.dart 5.84 KB
import 'dart:convert';

import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:one_key/models/notebook.dart';
import 'package:one_key/models/notebook_detail.dart';
import 'package:one_key/models/table_list.dart';
import 'package:one_key/pages/detail/notebook_detail_change_page.dart';
import 'package:one_key/pages/home/home_page.dart';
import 'package:one_key/pages/invicate/invitation_page.dart';
import 'package:one_key/pages/login/login_page.dart';
import 'package:one_key/pages/detail/handle_online_page.dart';
import 'package:one_key/pages/detail/notebook_detail_page.dart';
import 'package:one_key/pages/login/web_page.dart';
import 'package:one_key/pages/my/book_time_set.dart';
import 'package:one_key/pages/my/receive_orders_time_set.dart';
import 'package:one_key/pages/sms/sms_page.dart';
import 'package:one_key/pages/table/select_table_page.dart';
import 'package:one_key/pages/webview/webview_page.dart';
import 'package:one_key/provider/book_set_time_model.dart';
import 'package:one_key/provider/choose_table_model.dart';
import 'package:one_key/provider/notebook_detail_change_model.dart';
import 'package:one_key/provider/notebook_detail_model.dart';
import 'package:one_key/utils/fluro_convert_utils.dart';
import 'package:provider/provider.dart';

// 登录页
var loginHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  return LoginPage();
});

// 跳转到主页
var homeHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  String initialIndex = params["initialIndex"].first;
  return HomePage(
    initialIndex: int.parse(initialIndex),
  );
});

// 跳转预订详情页
var reserveDetailHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  String rid = params['rid'].first;
  String mid = params['mid'].first;
  bool fromNotify = FluroConvertUtils.string2bool(params["fromNotify"].first);
  return ChangeNotifierProvider<NotebookDetailModel>(
      create: (_) => NotebookDetailModel(),
      child: NotebookDetailPage(
        rid,
        mid: mid,
        fromNotify: fromNotify,
      ));
});

// 跳转到处理在线预订
var handleOnlineHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  String rid = params['rid'].first;
  String mid = params["mid"].first;
  bool fromNotify = FluroConvertUtils.string2bool(params["fromNotify"].first);
  return ChangeNotifierProvider<NotebookDetailModel>(
      create: (_) => NotebookDetailModel(),
      child: HandleOnlinePage(rid, mid, fromNotify: fromNotify));
  // return HandleOnlinePage(rid, mid,fromNotify: fromNotify);
});

// 跳转到选择桌位
var handleSelectTableHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  String rid = params['rid'].first;
  DateTime dateTime =
      DateTime.fromMillisecondsSinceEpoch(int.parse(params["dateTime"].first));
  String ddate_slot = params["ddate_slot"].first;
  bool canChoose = params["canChoose"].first == "true" ? true : false;
  List<TableList> res = [];
  if (params.keys.contains('object')) {
    Map object = FluroConvertUtils.string2map(params["object"].first);
    List temp = object['object'];

    for (var item in temp) {
      res.add(TableList.fromJson(item));
    }
  }

  // return SelectTablePage(rid, dateTime, ddate_slot,canChoose: canChoose);
  return ChangeNotifierProvider<ChooseTableModel>(
      create: (_) => ChooseTableModel(),
      child: SelectTablePage(rid, dateTime, ddate_slot,
          canChoose: canChoose, tableList: res));
});

// 跳转到邀请函页面
var handleInvicationHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  String rid = params["rid"].first;
  String tableInfo =
      FluroConvertUtils.fluroCnParamsDecode(params["tableInfo"].first);
  String ddate = params["ddate"].first;
  String ddateStr =
      FluroConvertUtils.fluroCnParamsDecode(params["ddateStr"].first);
  String phone = params["phone"].first;
  return InvicationPage(rid, tableInfo, ddate, ddateStr, phone);
});

// 发短信
var handleSmsHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  String rid = params["rid"].first;
  return SmsPage(rid);
});

// 浏览网页
var handleWebviewHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  return WebViewPage();
});

// 协议
var webPageHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  String _title = params["title"].first;
  String _url = params["url"].first;
  return WebPage(title: _title, url: _url);
});

// 跳转到变更预订
var handleChangeDetailHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  // String rid=params['rid'].first;
  // NotebookDetail detailEntity = params["detailEntity"].first;
  NotebookDetail detailEntity = NotebookDetail.fromJson(json
      .decode(FluroConvertUtils.fluroCnParamsDecode(params["detail"].first)));
  String rid = params['rid'].first;
  return ChangeNotifierProvider<NotebookDetailChangeModel>(
      create: (_) => NotebookDetailChangeModel(detailEntity),
      child: NoteBookChangePage(detailEntity: detailEntity, rid: rid));
});

// 跳转可订时段管理页面
var handleBookTimeSetHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  return ChangeNotifierProvider<BookSetTimeModel>(
      create: (_) => BookSetTimeModel(), child: BookTimeSetPage());
});

// 跳转接单时间管理
var handleReceiveOrdersTimeSetHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
  return ChangeNotifierProvider<BookSetTimeModel>(
      create: (_) => BookSetTimeModel(), child: ReceiveOrdersTimeSetPage());
});