feat: 三端抽屉重构 + 配色系统更新 + 后台管理页精调 + 键盘抬起组件

## 抽屉重构
- admin_drawer / doctor_drawer / health_drawer 三端抽屉全部重做
- drawer_shell 增强

## 配色系统
- app_colors / app_module_visuals / app_theme 更新
- app.dart 启动流程调整

## 后台管理页
- admin_doctors_page 大幅重构(+251)
- admin_home / doctor_dashboard / doctor_reports / doctor_home / doctor_followups / doctor_settings 精调

## 患者端
- home_page / chat_messages_view / medication_list / notification_center / remaining_pages / exercise_plan / device / diet / consultation 微调

## 新增
- keyboard_lift.dart: 键盘抬起处理组件
- AGENTS.md: agent 指引文档

## 其他
- api_client IP 适配
- app_future_view 增强
- data_providers 调整
- secondary_page_visuals_test 更新
This commit is contained in:
MingNian
2026-07-19 19:11:30 +08:00
parent ae94ced2d5
commit 0d4fd88ce7
35 changed files with 1022 additions and 644 deletions

View File

@@ -9,7 +9,7 @@ const String baseUrl = String.fromEnvironment(
'API_BASE_URL',
defaultValue: kReleaseMode
? 'https://erpapi.datalumina.cn/xiaomai'
: 'http://10.4.159.130:5000',
: 'http://10.4.165.54:5000',
);
class ApiException implements Exception {

View File

@@ -26,9 +26,9 @@ class AppColors {
static const Color medication = Color(0xFF00B8D9);
static const Color medicationLight = Color(0xFFEAFBFF);
static const Color medicationBorder = Color(0xFFB8F0FA);
static const Color exercise = Color(0xFF566FD4);
static const Color exerciseLight = Color(0xFFF1F3FD);
static const Color exerciseBorder = Color(0xFFD7DCF6);
static const Color exercise = Color(0xFF7C3AED);
static const Color exerciseLight = Color(0xFFF3E8FF);
static const Color exerciseBorder = Color(0xFFDDD6FE);
static const Color report = Color(0xFF6366F1);
static const Color reportLight = Color(0xFFEFFBFF);
static const Color reportBorder = Color(0xFFBAE6FD);
@@ -168,7 +168,7 @@ class AppColors {
static const LinearGradient healthGradient = LinearGradient(
begin: Alignment.centerLeft,
end: Alignment.centerRight,
colors: [Color(0xFF2FAE9B), Color(0xFF63BFAE)],
colors: [Color(0xFF43E97B), Color(0xFF38F9D7)],
);
static const LinearGradient medicationGradient = LinearGradient(
@@ -180,7 +180,7 @@ class AppColors {
static const LinearGradient exerciseGradient = LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [Color(0xFF5B7CDE), Color(0xFF7569D9)],
colors: [Color(0xFFC4B5FD), Color(0xFF7C3AED)],
);
static const LinearGradient reportGradient = LinearGradient(

View File

@@ -95,7 +95,7 @@ class AppModuleVisuals {
static const diet = AppModuleVisual(
module: AppModule.diet,
label: '饮食',
icon: LucideIcons.utensils,
icon: LucideIcons.salad,
color: AppColors.diet,
lightColor: AppColors.dietLight,
borderColor: AppColors.dietBorder,

View File

@@ -548,6 +548,7 @@ class GradientScaffold extends StatelessWidget {
final Widget? drawer;
final Widget? bottomNavigationBar;
final bool extendBody;
final bool resizeToAvoidBottomInset;
const GradientScaffold({
super.key,
@@ -557,6 +558,7 @@ class GradientScaffold extends StatelessWidget {
this.drawer,
this.bottomNavigationBar,
this.extendBody = false,
this.resizeToAvoidBottomInset = true,
});
@override
@@ -572,6 +574,7 @@ class GradientScaffold extends StatelessWidget {
drawer: drawer,
bottomNavigationBar: bottomNavigationBar,
extendBody: extendBody,
resizeToAvoidBottomInset: resizeToAvoidBottomInset,
);
}