import 'package:get/get.dart'; import 'package:flutter/material.dart'; /// 时间: 2026-04-01 /// 功能: 分类页面控制器,管理分类数据和状态 /// 介绍: 负责管理分类页面的标签切换、分类数据和导航逻辑 class CategoryController extends GetxController with GetSingleTickerProviderStateMixin { // Tab控制器 late TabController tabController; // 标签分类 final tabCategories = [ {'label': '场景分类', 'icon': Icons.category}, {'label': '朝代分类', 'icon': Icons.history}, ]; // 场景分类数据 final sceneData = { "节日": ["七夕节", "中秋节", "元宵节", "寒食节", "清明节", "端午节", "重阳节", "春节", "节日"], "季节": ["三月", "二月", "冬天", "夏天", "春天", "春季", "秋天"], "古籍": [ "三国志", "三国演义", "三字经", "中庸", "列子", "史记", "后汉书", "吕氏春秋", "商君书", "围炉夜话", "增广贤文", "墨子", "孙子兵法", "孟子", "小窗幽记", "尚书", "左传", "幼学琼林", "庄子", "战国策", "文心雕龙", "易传", "晋书", "汉书", "淮南子", "礼记", "管子", "红楼梦", "老子", "荀子", "菜根谭", "警世通言", "论语", "资治通鉴", "韩非子", "鬼谷子", "古籍", "格言联璧", ], "情感": ["伤感", "励志", "友情", "思乡", "思念", "感恩", "爱国", "爱情", "离别"], "景物": ["庐山", "泰山", "西湖", "长江", "黄河", "边塞", "田园", "山水", "夜景"], "天文气象": ["写云", "写雨", "写雪", "写风", "星星", "月亮", "流星"], "动植物": ["写鸟", "柳树", "桃花", "梅花", "竹子", "荷花", "菊花"], "语言文学": ["对联", "谚语", "一言", "读书", "哲理"], "其他": ["母亲", "老师", "户外", "礼物", "酒"], }; // 朝代分类数据 final dynastyData = { "主要朝代": ["唐代", "宋代", "元代", "明代", "清代"], "古代朝代": ["南北朝", "五代", "隋代"], "近现代": ["近现代", "用户投稿", "管理员测试"], "其他": ["暂无朝代"], }; @override void onInit() { super.onInit(); // 初始化Tab控制器 tabController = TabController(length: tabCategories.length, vsync: this); } @override void onClose() { // 释放Tab控制器 tabController.dispose(); super.onClose(); } // 获取当前分类类型 String getCurrentCategoryType() { return tabCategories[tabController.index]['label'] as String; } // 获取当前分类数据 Map> getCurrentCategoryData() { return tabController.index == 0 ? sceneData : dynastyData; } // 导航到分类详情页 void navigateToCategoryDetail(String label, String categoryType) { final searchType = categoryType == '朝代分类' ? 'alias' : 'keywords'; Get.toNamed( '/corrPage', arguments: {'label': label, 'searchType': searchType}, ); } }