fix: 管理员系统 + 注册流程重构 + UI改版 + 全链路修复
- 新增管理员角色(手机号12345678910),管理员可增删医生、查看患者 - 注册页重构:去掉角色选择+审核码,改为选医生+填姓名 - 医生端点按DoctorId过滤患者,Patient↔Doctor关系建立 - Doctor/DoctorProfile/User实体新增关联字段 - JSON循环引用修复(IgnoreCycles) - /api/doctors改为公开接口 - 登录闪屏修复+原生Android启动页 - 输入框全局白底+灰框 - 蓝牙重连同步修复 - Web端(doctor_web+health_app/web)全部删除 - 全局UI改版:白底企业风,新配色和组件系统 - 新品牌图标和启动图
This commit is contained in:
@@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:shadcn_ui/shadcn_ui.dart';
|
||||
import 'core/app_colors.dart';
|
||||
import 'core/app_router.dart';
|
||||
import 'core/app_theme.dart';
|
||||
import 'core/navigation_provider.dart';
|
||||
@@ -23,17 +22,12 @@ class HealthApp extends ConsumerWidget {
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
GlobalCupertinoLocalizations.delegate,
|
||||
],
|
||||
supportedLocales: const [
|
||||
Locale('zh', 'CN'),
|
||||
Locale('zh'),
|
||||
],
|
||||
supportedLocales: const [Locale('zh', 'CN'), Locale('zh')],
|
||||
locale: const Locale('zh'),
|
||||
home: const _RootNavigator(),
|
||||
// 注入 ShadTheme,让所有页面都能用 shadcn 组件
|
||||
builder: (context, child) => ShadTheme(
|
||||
data: AppTheme.shadTheme,
|
||||
child: child!,
|
||||
),
|
||||
builder: (context, child) =>
|
||||
ShadTheme(data: AppTheme.shadTheme, child: child!),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -48,24 +42,17 @@ class _RootNavigator extends ConsumerWidget {
|
||||
final current = stack.last;
|
||||
final authState = ref.watch(authProvider);
|
||||
|
||||
// 启动时正在检查登录状态 → 显示闪屏
|
||||
if (authState.isLoading && current.name == 'login') {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
body: Center(
|
||||
child: Column(mainAxisSize: MainAxisSize.min, children: [
|
||||
Icon(Icons.favorite, size: 48, color: AppColors.primary),
|
||||
const SizedBox(height: 16),
|
||||
Text('健康管家', style: TextStyle(fontSize: 22, fontWeight: FontWeight.w700, color: AppColors.textPrimary)),
|
||||
]),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// 登录后根据角色分流
|
||||
// 登录后自动跳转(在下一帧完成,无闪烁)
|
||||
if (authState.isLoggedIn && current.name == 'login') {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
goRoute(ref, authState.user?.role == 'Doctor' ? 'doctorHome' : 'home');
|
||||
final role = authState.user?.role ?? 'User';
|
||||
if (role == 'Admin') {
|
||||
goRoute(ref, 'adminHome');
|
||||
} else if (role == 'Doctor') {
|
||||
goRoute(ref, 'doctorHome');
|
||||
} else {
|
||||
goRoute(ref, 'home');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user