feat: AI 意图路由/草稿存储 + Prompts 模块化 + UI 视觉统一 + AI 同意门 + 资源更新
后端: - 新增 ai_intent_router 意图路由 - 新增 AiEntryDraft 草稿存储 + EF 迁移 - 新增 Prompts 模块化(global/modules/rag/router) - AI Agent handlers 扩展 前端: - 新增 AI 同意门 (ai_consent_gate/provider/details_page) - HealthMetricVisuals 视觉统一 - 设备扫描/管理页面优化 - agent 插图替换 + 趋势指标图标 配置: - DeepSeek 模型改 deepseek-v4-flash - .gitignore 加 artifacts/audit - build.gradle.kts 签名配置调整
This commit is contained in:
@@ -384,7 +384,18 @@ class _HomePageState extends ConsumerState<HomePage>
|
||||
) => (label: label, visual: visual);
|
||||
|
||||
final module = switch (agent) {
|
||||
ActiveAgent.health => fromModule('记数据', AppModuleVisuals.health),
|
||||
ActiveAgent.health => (
|
||||
label: '记数据',
|
||||
visual: AppModuleVisual(
|
||||
module: AppModule.health,
|
||||
label: AppModuleVisuals.health.label,
|
||||
icon: AppModuleVisuals.healthOverviewIcon,
|
||||
color: AppModuleVisuals.health.color,
|
||||
lightColor: AppModuleVisuals.health.lightColor,
|
||||
borderColor: AppModuleVisuals.health.borderColor,
|
||||
gradient: AppModuleVisuals.health.gradient,
|
||||
),
|
||||
),
|
||||
ActiveAgent.diet => fromModule('拍饮食', AppModuleVisuals.diet),
|
||||
ActiveAgent.medication => fromModule('药管家', AppModuleVisuals.medication),
|
||||
ActiveAgent.report => fromModule('报告', AppModuleVisuals.report),
|
||||
@@ -427,9 +438,9 @@ class _HomePageState extends ConsumerState<HomePage>
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
const SizedBox(height: 8),
|
||||
const SizedBox(height: 4),
|
||||
_buildAgentBar(),
|
||||
const SizedBox(height: 12),
|
||||
const SizedBox(height: 5),
|
||||
if (_pickedImagePath != null) _buildImagePreview(),
|
||||
_buildInputBar(),
|
||||
],
|
||||
@@ -479,13 +490,13 @@ class _HomePageState extends ConsumerState<HomePage>
|
||||
chatProvider.select((state) => state.isStreaming),
|
||||
);
|
||||
return Padding(
|
||||
padding: const EdgeInsets.fromLTRB(12, 0, 12, 10),
|
||||
padding: const EdgeInsets.fromLTRB(12, 0, 12, 6),
|
||||
child: Container(
|
||||
padding: EdgeInsets.fromLTRB(
|
||||
6,
|
||||
elderMode ? 7 : 5,
|
||||
elderMode ? 5 : 3,
|
||||
6,
|
||||
elderMode ? 7 : 5,
|
||||
elderMode ? 5 : 3,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
@@ -529,7 +540,7 @@ class _HomePageState extends ConsumerState<HomePage>
|
||||
isDense: true,
|
||||
contentPadding: EdgeInsets.symmetric(
|
||||
horizontal: 4,
|
||||
vertical: elderMode ? 15 : 12,
|
||||
vertical: elderMode ? 12 : 9,
|
||||
),
|
||||
border: InputBorder.none,
|
||||
enabledBorder: InputBorder.none,
|
||||
@@ -960,7 +971,7 @@ class _VoiceHoldSurface extends StatelessWidget {
|
||||
return Container(
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 4,
|
||||
vertical: elderMode ? 14 : 11,
|
||||
vertical: elderMode ? 12 : 9,
|
||||
),
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user