import 'package:carousel_slider/carousel_controller.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:starwork_flutter/base/app_permission.dart'; import 'package:starwork_flutter/base/base_controller.dart'; import 'package:starwork_flutter/views/main/main_controller.dart'; class HomeController extends BaseController { final mainController = Get.find(); final isOpenNotificationPermission = false.obs; // 页面加载状态 final isLoading = true.obs; var carouselCurrentIndex = 0.obs; // 渐变颜色列表 final List gradientColors = [ const Color(0xFFBFCBEF), const Color(0xFFECBE9B), ]; // 当前渐变颜色 var currentGradientColor = const Color(0xFFBFCBEF).obs; @override void onInit() async { super.onInit(); // 模拟初始化加载 await _initializeData(); // 监听轮播图切换,更新渐变颜色 carouselCurrentIndex.listen((index) { updateGradientColor(index); }); } // 初始化数据 Future _initializeData() async { // 模拟加载延迟(2秒) await Future.delayed(const Duration(seconds: 2)); // 检查通知权限 isOpenNotificationPermission.value = await AppPermission.checkPermission( permission: Permission.notification, ); // 加载完成,隐藏骨架屏 isLoading.value = false; } // 根据轮播图索引更新渐变颜色 void updateGradientColor(int index) { if (index < gradientColors.length) { currentGradientColor.value = gradientColors[index]; } else { // 如果索引超出颜色数量,使用模运算轮环 currentGradientColor.value = gradientColors[index % gradientColors.length]; } } // 首页刷新方法 Future refreshHome() async { // 显示加载状态(可选) // isLoading.value = true; // 模拟网络请求延迟 await Future.delayed(const Duration(seconds: 1)); // 这里可以添加实际的刷新逻辑,比如: // 1. 重新获取轮播图数据 // 2. 刷新统计数据 // 3. 更新功能列表 // 4. 刷新考勤图表数据 // 5. 更新门禁列表 // 重新检查通知权限 isOpenNotificationPermission.value = await AppPermission.checkPermission( permission: Permission.notification, ); // 隐藏加载状态 // isLoading.value = false; print('首页数据刷新完成'); } }