lift_router.dart 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import 'dart:convert' as convert;
  2. import 'package:fluro/fluro.dart';
  3. import 'package:liftmanager/internal/lift/model/lift_item.dart';
  4. import 'package:liftmanager/internal/lift/page/lift_brand_page.dart';
  5. import 'package:liftmanager/internal/lift/page/lift_create_page.dart';
  6. import 'package:liftmanager/internal/lift/page/lift_detail_page.dart';
  7. import 'package:liftmanager/internal/lift/page/lift_list_page.dart';
  8. import 'package:liftmanager/internal/lift/page/lift_map_page.dart';
  9. import 'package:liftmanager/routers/router_init.dart';
  10. class LiftRouter implements IRouterProvider{
  11. static String liftListPage = "/lift/list";
  12. static String liftCreatePage = "/lift/create";
  13. static String liftDetailPage = "/lift/detail";
  14. static String liftBrandPage = "/lift/brand";
  15. static String liftMapPage = "/lift/map";
  16. @override
  17. void initRouter(FluroRouter router) {
  18. router.define(liftListPage, handler: Handler(handlerFunc: (_,params){
  19. String id = params['id']?.first;
  20. return LiftListPage(id);
  21. }));
  22. router.define(liftDetailPage, handler: Handler(handlerFunc: (_,params){
  23. String projectId = params['project_id']?.first;
  24. String id = params['id']?.first;
  25. return LiftDetailPage(projectId,id);
  26. }));
  27. router.define(liftCreatePage, handler: Handler(handlerFunc: (_,params){
  28. var item = params['item']?.first;
  29. String id = params['id']?.first;
  30. if(item == null){
  31. return LiftCreatePage(id);
  32. }
  33. LiftItem model = LiftItem.fromJsonMap(convert.jsonDecode(item));
  34. return LiftCreatePage(id,item: model,);
  35. }));
  36. router.define(liftBrandPage, handler: Handler(handlerFunc: (_,params){
  37. return LiftBrandPage();
  38. }));
  39. router.define(liftMapPage, handler: Handler(handlerFunc: (_,params){
  40. String type = params["type"].first;
  41. String coordinate = params["coordinate"].first;
  42. if(type == "look"){
  43. return LiftMapPage(type: MapPageType.Look,coordinate: coordinate);
  44. }
  45. return LiftMapPage();
  46. }));
  47. }
  48. }