fix: 任务卡片移入对话流 + 综合信息卡片分组修复

- 新增 taskCard 消息类型,作为对话第一条消息
- 今日任务卡片从独立区域移至聊天流内
- AgentWelcomeCard 从 metadata 读 agent 不再全局共享
- 切换胶囊不会影响已发过的卡片
This commit is contained in:
MingNian
2026-06-03 20:19:15 +08:00
parent 15f9a122ca
commit ea7226c805
3 changed files with 87 additions and 7 deletions

View File

@@ -5,7 +5,7 @@ import 'auth_provider.dart';
import 'data_providers.dart';
import '../utils/sse_handler.dart';
enum MessageType { text, dataConfirm, medicationConfirm, dietAnalysis, reportAnalysis, quickOptions, agentWelcome }
enum MessageType { text, dataConfirm, medicationConfirm, dietAnalysis, reportAnalysis, quickOptions, agentWelcome, taskCard }
class ChatMessage {
final String id;
@@ -115,7 +115,22 @@ class ChatNotifier extends Notifier<ChatState> {
StreamSubscription<Map<String, dynamic>>? _subscription;
@override
ChatState build() => const ChatState();
ChatState build() {
// 首次加载时插入今日任务卡片作为第一条消息
Future.microtask(() => insertTaskCard());
return const ChatState();
}
void insertTaskCard() {
if (state.messages.any((m) => m.type == MessageType.taskCard)) return;
state = state.copyWith(messages: [ChatMessage(
id: 'task_card',
role: 'assistant',
content: '',
createdAt: DateTime.now(),
type: MessageType.taskCard,
), ...state.messages]);
}
void setAgent(ActiveAgent a) {
_subscription?.cancel();