controller.dart 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import 'dart:ui';
  2. import 'package:electronic_assistant/base/base_controller.dart';
  3. import 'package:electronic_assistant/data/repositories/account_repository.dart';
  4. import 'package:electronic_assistant/resource/assets.gen.dart';
  5. import 'package:electronic_assistant/resource/colors.gen.dart';
  6. import 'package:electronic_assistant/resource/string.gen.dart';
  7. import 'package:electronic_assistant/utils/expand.dart';
  8. import 'package:flutter/cupertino.dart';
  9. import 'package:flutter/material.dart';
  10. import 'package:get/get.dart';
  11. import '../../router/app_pages.dart';
  12. class MainController extends BaseController {
  13. final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
  14. final List<TabBean> tabBeans = [
  15. TabBean(
  16. StringName.mainTabHome,
  17. Assets.images.mainTabHomeUnSelect.path,
  18. Assets.images.mainTabHomeSelected.path,
  19. "#969696".toColor(),
  20. ColorName.primaryTextColor),
  21. TabBean(
  22. StringName.mainTabFile,
  23. Assets.images.mainTabFileUnSelect.path,
  24. Assets.images.mainTabFileSelected.path,
  25. "#969696".toColor(),
  26. ColorName.primaryTextColor),
  27. ];
  28. final _currentIndex = 0.obs;
  29. int get currentIndex => _currentIndex.value;
  30. void changeIndex(int index) {
  31. _currentIndex.value = index;
  32. }
  33. void updateIndex(int index) {
  34. _currentIndex.value = index;
  35. }
  36. void updateIndexByPageName(String pageName) {
  37. for (var value in tabBeans) {
  38. if (value.title == pageName) {
  39. _currentIndex.value = tabBeans.indexOf(value);
  40. break;
  41. }
  42. }
  43. }
  44. void openDrawer() {
  45. scaffoldKey.currentState?.openDrawer();
  46. }
  47. void closeDrawer() {
  48. scaffoldKey.currentState?.closeDrawer();
  49. }
  50. void onChatClick() {
  51. if (accountRepository.isLogin.value) {
  52. Get.toNamed(RoutePath.chat);
  53. } else {
  54. Get.toNamed(RoutePath.login);
  55. }
  56. }
  57. }
  58. class TabBean {
  59. final String title;
  60. final String normalIcon;
  61. final String selectedIcon;
  62. final Color txtNormalColor;
  63. final Color txtSelectedColor;
  64. TabBean(this.title, this.normalIcon, this.selectedIcon, this.txtNormalColor,
  65. this.txtSelectedColor);
  66. }