feat: 增强日历功能并集成 AgentScope 代理服务

This commit is contained in:
qzl
2026-03-11 15:28:29 +08:00
parent e55e445906
commit e20e7d2a02
85 changed files with 5175 additions and 885 deletions
@@ -8,6 +8,7 @@ import '../calendar_state_manager.dart';
import '../calendar_time_utils.dart';
import '../widgets/bottom_dock.dart';
import '../widgets/create_event_sheet.dart';
import '../../data/models/schedule_item_model.dart';
import '../../data/services/mock_calendar_service.dart';
class CalendarMonthScreen extends StatefulWidget {
@@ -24,6 +25,7 @@ class _CalendarMonthScreenState extends State<CalendarMonthScreen> {
late DateTime _currentMonth;
late DateTime _selectedDate;
Key _eventsKey = UniqueKey();
final Map<String, List<ScheduleItemModel>> _eventsByDay = {};
@override
void initState() {
@@ -37,6 +39,29 @@ class _CalendarMonthScreenState extends State<CalendarMonthScreen> {
final savedDate = _calendarManager.selectedDate;
_selectedDate = savedDate;
_currentMonth = DateTime(savedDate.year, savedDate.month, 1);
_loadMonthEvents();
}
Future<void> _loadMonthEvents() async {
final start = DateTime(_currentMonth.year, _currentMonth.month, 1);
final end = DateTime(
_currentMonth.year,
_currentMonth.month + 1,
0,
23,
59,
59,
);
final events = await sl<CalendarService>().getEventsForRange(start, end);
if (!mounted) {
return;
}
_eventsByDay.clear();
for (final event in events) {
final key = formatYmd(event.startAt);
_eventsByDay[key] = [...(_eventsByDay[key] ?? const []), event];
}
setState(() {});
}
@override
@@ -102,6 +127,7 @@ class _CalendarMonthScreenState extends State<CalendarMonthScreen> {
setState(() {
_eventsKey = UniqueKey();
});
_loadMonthEvents();
},
),
child: Container(
@@ -280,7 +306,7 @@ class _CalendarMonthScreenState extends State<CalendarMonthScreen> {
}
final date = weekFirstDate.add(Duration(days: index));
final events = CalendarService().getEventsForDay(date);
final events = _eventsByDay[formatYmd(date)] ?? const [];
final displayEvents = events.take(2).toList();
final remainingCount = events.length - 2;
@@ -391,6 +417,7 @@ class _CalendarMonthScreenState extends State<CalendarMonthScreen> {
1,
);
});
_loadMonthEvents();
},
children: List.generate(20, (index) {
return Center(child: Text('${2020 + index}'));
@@ -411,6 +438,7 @@ class _CalendarMonthScreenState extends State<CalendarMonthScreen> {
1,
);
});
_loadMonthEvents();
},
children: List.generate(12, (index) {
return Center(child: Text('${index + 1}'));