Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
laki_icu_app
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张宏
laki_icu_app
Commits
4ffa57f5
Commit
4ffa57f5
authored
Jun 22, 2026
by
张宏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
44444444-ui
parent
29eea2f6
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
693 additions
and
197 deletions
+693
-197
Dart_Packages.xml
.idea/libraries/Dart_Packages.xml
+250
-18
Flutter_Plugins.xml
.idea/libraries/Flutter_Plugins.xml
+7
-0
alert_box_bg_2.png
lib/assets/monitoring/alert_box_bg_2.png
+0
-0
box_border.png
lib/assets/monitoring/box_border.png
+0
-0
monitoring_bo.dart
lib/models/bo/monitoring_bo.dart
+21
-5
monitoring_mock_data.dart
lib/repositories/mock/monitoring_mock_data.dart
+14
-5
patient_info_card.dart
lib/views/home/index/widgets/patient_info_card.dart
+4
-4
monitoring_index_view.dart
lib/views/monitoring/index/monitoring_index_view.dart
+4
-4
monitoring_alert_card.dart
...views/monitoring/index/widgets/monitoring_alert_card.dart
+106
-54
monitoring_metric_card.dart
...iews/monitoring/index/widgets/monitoring_metric_card.dart
+26
-14
monitoring_pet_info_card.dart
...ws/monitoring/index/widgets/monitoring_pet_info_card.dart
+253
-85
monitoring_video_card.dart
...views/monitoring/index/widgets/monitoring_video_card.dart
+4
-4
video_player_widget.dart
lib/views/monitoring/index/widgets/video_player_widget.dart
+4
-4
No files found.
.idea/libraries/Dart_Packages.xml
View file @
4ffa57f5
...
...
@@ -6,6 +6,7 @@
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-67.0.0/lib"
/>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-93.0.0/lib"
/>
</list>
</value>
</entry>
...
...
@@ -13,6 +14,7 @@
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/analyzer-6.4.1/lib"
/>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/analyzer-10.0.1/lib"
/>
</list>
</value>
</entry>
...
...
@@ -124,7 +126,7 @@
<entry
key=
"characters"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/characters-1.4.
0
/lib"
/>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/characters-1.4.
1
/lib"
/>
</list>
</value>
</entry>
...
...
@@ -135,6 +137,13 @@
</list>
</value>
</entry>
<entry
key=
"cli_config"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/cli_config-0.2.0/lib"
/>
</list>
</value>
</entry>
<entry
key=
"cli_util"
>
<value>
<list>
...
...
@@ -177,6 +186,13 @@
</list>
</value>
</entry>
<entry
key=
"coverage"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/coverage-1.15.1/lib"
/>
</list>
</value>
</entry>
<entry
key=
"cross_file"
>
<value>
<list>
...
...
@@ -205,6 +221,13 @@
</list>
</value>
</entry>
<entry
key=
"dart_webrtc"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/dart_webrtc-1.8.1/lib"
/>
</list>
</value>
</entry>
<entry
key=
"device_info_plus"
>
<value>
<list>
...
...
@@ -223,6 +246,7 @@
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/dio-5.9.2/lib"
/>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/dio-5.9.1/lib"
/>
</list>
</value>
</entry>
...
...
@@ -247,6 +271,13 @@
</list>
</value>
</entry>
<entry
key=
"fast_gbk"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/fast_gbk-1.0.0/lib"
/>
</list>
</value>
</entry>
<entry
key=
"ffi"
>
<value>
<list>
...
...
@@ -278,7 +309,7 @@
<entry
key=
"flutter"
>
<value>
<list>
<option
value=
"$
PROJECT_DIR$/../../../../Flutter/flutter
/packages/flutter/lib"
/>
<option
value=
"$
USER_HOME$/fvm/versions/3.41.9
/packages/flutter/lib"
/>
</list>
</value>
</entry>
...
...
@@ -289,6 +320,55 @@
</list>
</value>
</entry>
<entry
key=
"flutter_easyloading"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_easyloading-3.0.5/lib"
/>
</list>
</value>
</entry>
<entry
key=
"flutter_image_compress"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress-2.4.0/lib"
/>
</list>
</value>
</entry>
<entry
key=
"flutter_image_compress_common"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_common-1.0.6/lib"
/>
</list>
</value>
</entry>
<entry
key=
"flutter_image_compress_macos"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_macos-1.0.3/lib"
/>
</list>
</value>
</entry>
<entry
key=
"flutter_image_compress_ohos"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_ohos-0.0.3/lib"
/>
</list>
</value>
</entry>
<entry
key=
"flutter_image_compress_platform_interface"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_platform_interface-1.0.5/lib"
/>
</list>
</value>
</entry>
<entry
key=
"flutter_image_compress_web"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_web-0.1.5/lib"
/>
</list>
</value>
</entry>
<entry
key=
"flutter_launcher_icons"
>
<value>
<list>
...
...
@@ -306,7 +386,7 @@
<entry
key=
"flutter_localizations"
>
<value>
<list>
<option
value=
"$
PROJECT_DIR$/../../../../Flutter/flutter
/packages/flutter_localizations/lib"
/>
<option
value=
"$
USER_HOME$/fvm/versions/3.41.9
/packages/flutter_localizations/lib"
/>
</list>
</value>
</entry>
...
...
@@ -359,6 +439,13 @@
</list>
</value>
</entry>
<entry
key=
"flutter_spinkit"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_spinkit-5.2.2/lib"
/>
</list>
</value>
</entry>
<entry
key=
"flutter_staggered_grid_view"
>
<value>
<list>
...
...
@@ -376,7 +463,7 @@
<entry
key=
"flutter_test"
>
<value>
<list>
<option
value=
"$
PROJECT_DIR$/../../../../Flutter/flutter
/packages/flutter_test/lib"
/>
<option
value=
"$
USER_HOME$/fvm/versions/3.41.9
/packages/flutter_test/lib"
/>
</list>
</value>
</entry>
...
...
@@ -418,7 +505,7 @@
<entry
key=
"flutter_web_plugins"
>
<value>
<list>
<option
value=
"$
PROJECT_DIR$/../../../../Flutter/flutter
/packages/flutter_web_plugins/lib"
/>
<option
value=
"$
USER_HOME$/fvm/versions/3.41.9
/packages/flutter_web_plugins/lib"
/>
</list>
</value>
</entry>
...
...
@@ -436,6 +523,13 @@
</list>
</value>
</entry>
<entry
key=
"get"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/get-4.7.3/lib"
/>
</list>
</value>
</entry>
<entry
key=
"glob"
>
<value>
<list>
...
...
@@ -478,6 +572,13 @@
</list>
</value>
</entry>
<entry
key=
"import_sorter"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/import_sorter-4.6.0/lib"
/>
</list>
</value>
</entry>
<entry
key=
"infinite_scroll_pagination"
>
<value>
<list>
...
...
@@ -517,6 +618,7 @@
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/js-0.6.7/lib"
/>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/js-0.7.2/lib"
/>
</list>
</value>
</entry>
...
...
@@ -552,6 +654,7 @@
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/lints-2.1.1/lib"
/>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/lints-4.0.0/lib"
/>
</list>
</value>
</entry>
...
...
@@ -566,6 +669,7 @@
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/logger-2.7.0/lib"
/>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/logger-2.5.0/lib"
/>
</list>
</value>
</entry>
...
...
@@ -576,17 +680,24 @@
</list>
</value>
</entry>
<entry
key=
"marionette_flutter"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/marionette_flutter-0.5.0/lib"
/>
</list>
</value>
</entry>
<entry
key=
"matcher"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/matcher-0.12.1
7
/lib"
/>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/matcher-0.12.1
9
/lib"
/>
</list>
</value>
</entry>
<entry
key=
"material_color_utilities"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/material_color_utilities-0.1
1.1
/lib"
/>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/material_color_utilities-0.1
3.0
/lib"
/>
</list>
</value>
</entry>
...
...
@@ -611,6 +722,13 @@
</list>
</value>
</entry>
<entry
key=
"node_preamble"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/node_preamble-2.0.2/lib"
/>
</list>
</value>
</entry>
<entry
key=
"objective_c"
>
<value>
<list>
...
...
@@ -674,6 +792,13 @@
</list>
</value>
</entry>
<entry
key=
"pedantic"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/pedantic-1.11.1/lib"
/>
</list>
</value>
</entry>
<entry
key=
"permission_handler"
>
<value>
<list>
...
...
@@ -849,17 +974,32 @@
</list>
</value>
</entry>
<entry
key=
"shelf_packages_handler"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2/lib"
/>
</list>
</value>
</entry>
<entry
key=
"shelf_static"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/shelf_static-1.1.3/lib"
/>
</list>
</value>
</entry>
<entry
key=
"shelf_web_socket"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/shelf_web_socket-2.0.1/lib"
/>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0/lib"
/>
</list>
</value>
</entry>
<entry
key=
"sky_engine"
>
<value>
<list>
<option
value=
"$
PROJECT_DIR$/../../../../Flutter/flutter
/bin/cache/pkg/sky_engine/lib"
/>
<option
value=
"$
USER_HOME$/fvm/versions/3.41.9
/bin/cache/pkg/sky_engine/lib"
/>
</list>
</value>
</entry>
...
...
@@ -877,6 +1017,20 @@
</list>
</value>
</entry>
<entry
key=
"source_map_stack_trace"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2/lib"
/>
</list>
</value>
</entry>
<entry
key=
"source_maps"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/source_maps-0.10.13/lib"
/>
</list>
</value>
</entry>
<entry
key=
"source_span"
>
<value>
<list>
...
...
@@ -912,6 +1066,14 @@
</list>
</value>
</entry>
<entry
key=
"synchronized"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/synchronized-3.4.0/lib"
/>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/synchronized-3.4.0+1/lib"
/>
</list>
</value>
</entry>
<entry
key=
"term_glyph"
>
<value>
<list>
...
...
@@ -919,10 +1081,24 @@
</list>
</value>
</entry>
<entry
key=
"test"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/test-1.30.0/lib"
/>
</list>
</value>
</entry>
<entry
key=
"test_api"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/test_api-0.7.7/lib"
/>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/test_api-0.7.10/lib"
/>
</list>
</value>
</entry>
<entry
key=
"test_core"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/test_core-0.6.16/lib"
/>
</list>
</value>
</entry>
...
...
@@ -933,6 +1109,13 @@
</list>
</value>
</entry>
<entry
key=
"tint"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/tint-2.0.1/lib"
/>
</list>
</value>
</entry>
<entry
key=
"touch_indicator"
>
<value>
<list>
...
...
@@ -1073,6 +1256,20 @@
</list>
</value>
</entry>
<entry
key=
"webkit_inspection_protocol"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1/lib"
/>
</list>
</value>
</entry>
<entry
key=
"webrtc_interface"
>
<value>
<list>
<option
value=
"$USER_HOME$/.pub-cache/hosted/pub.dev/webrtc_interface-1.5.1/lib"
/>
</list>
</value>
</entry>
<entry
key=
"win32"
>
<value>
<list>
...
...
@@ -1112,6 +1309,8 @@
</properties>
<CLASSES>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-67.0.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-93.0.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/analyzer-10.0.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/analyzer-6.4.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/archive-4.0.9/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/args-2.7.0/lib"
/>
...
...
@@ -1128,29 +1327,41 @@
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/build_runner_core-7.3.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/built_collection-5.1.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/built_value-8.12.6/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/characters-1.4.
0
/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/characters-1.4.
1
/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/checked_yaml-2.0.4/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/cli_config-0.2.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/cli_util-0.4.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/clock-1.1.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/code_assets-1.2.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/code_builder-4.11.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/collection-1.19.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/convert-3.1.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/coverage-1.15.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/cross_file-0.3.5+2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/crypto-3.0.7/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.9/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/dart_style-2.3.6/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/dart_webrtc-1.8.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/device_info_plus-12.4.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/device_info_plus_platform_interface-7.0.3/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/dio-5.9.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/dio-5.9.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/dio_web_adapter-2.1.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/equatable-2.0.8/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/fake_async-1.3.3/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/fast_gbk-1.0.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/ffi-2.2.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/file-7.0.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/fixnum-1.1.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/fl_chart-0.71.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_bloc-8.1.6/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_easyloading-3.0.5/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress-2.4.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_common-1.0.6/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_macos-1.0.3/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_ohos-0.0.3/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_platform_interface-1.0.5/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_web-0.1.5/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_launcher_icons-0.13.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_lints-2.0.3/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3/lib"
/>
...
...
@@ -1160,6 +1371,7 @@
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_spinkit-5.2.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_staggered_grid_view-0.7.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_switch-0.3.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_ume_kit_console_plus-5.0.0/lib"
/>
...
...
@@ -1169,31 +1381,38 @@
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_usbcamera-0.0.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/fluttertoast-9.0.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/get-4.7.3/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/glob-2.1.3/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/graphs-2.3.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/hooks-2.0.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/http_parser-4.1.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/image-4.8.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/import_sorter-4.6.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/infinite_scroll_pagination-5.1.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/intl-0.20.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/io-1.0.5/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/jni-1.0.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/jni_flutter-1.0.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/js-0.6.7/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/js-0.7.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/json_annotation-4.12.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/leak_tracker-11.0.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.10/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/lints-2.1.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/lints-4.0.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/loading_animation_widget-1.3.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/logger-2.5.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/logger-2.7.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/logging-1.3.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/matcher-0.12.17/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/marionette_flutter-0.5.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/matcher-0.12.19/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/material_color_utilities-0.13.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/meta-1.17.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/mime-2.0.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/nested-1.0.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/node_preamble-2.0.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/objective_c-9.4.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/package_config-2.2.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/path-1.9.1/lib"
/>
...
...
@@ -1203,6 +1422,7 @@
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.3/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/pedantic-1.11.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/permission_handler-11.4.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/permission_handler_android-12.1.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.10/lib"
/>
...
...
@@ -1228,17 +1448,27 @@
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.3/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/shelf-1.4.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/shelf_static-1.1.3/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/shelf_web_socket-2.0.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/sliver_tools-0.2.12/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/source_gen-1.5.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/source_maps-0.10.13/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/source_span-1.10.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/stack_trace-1.12.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/stream_channel-2.1.4/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/stream_transform-2.1.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/string_scanner-1.4.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/synchronized-3.4.0+1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/synchronized-3.4.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/term_glyph-1.2.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/test_api-0.7.7/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/test-1.30.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/test_api-0.7.10/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/test_core-0.6.16/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/timing-1.0.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/tint-2.0.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/touch_indicator-2.0.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/tuple-2.0.2/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/typed_data-1.4.0/lib"
/>
...
...
@@ -1259,16 +1489,18 @@
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/web-1.1.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/web_socket-1.0.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.3/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/webrtc_interface-1.5.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/win32-5.15.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/win32_registry-2.1.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/xml-6.6.1/lib"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/yaml-3.1.3/lib"
/>
<root
url=
"file://$
PROJECT_DIR$/../../../../Flutter/flutter
/bin/cache/pkg/sky_engine/lib"
/>
<root
url=
"file://$
PROJECT_DIR$/../../../../Flutter/flutter
/packages/flutter/lib"
/>
<root
url=
"file://$
PROJECT_DIR$/../../../../Flutter/flutter
/packages/flutter_localizations/lib"
/>
<root
url=
"file://$
PROJECT_DIR$/../../../../Flutter/flutter
/packages/flutter_test/lib"
/>
<root
url=
"file://$
PROJECT_DIR$/../../../../Flutter/flutter
/packages/flutter_web_plugins/lib"
/>
<root
url=
"file://$
USER_HOME$/fvm/versions/3.41.9
/bin/cache/pkg/sky_engine/lib"
/>
<root
url=
"file://$
USER_HOME$/fvm/versions/3.41.9
/packages/flutter/lib"
/>
<root
url=
"file://$
USER_HOME$/fvm/versions/3.41.9
/packages/flutter_localizations/lib"
/>
<root
url=
"file://$
USER_HOME$/fvm/versions/3.41.9
/packages/flutter_test/lib"
/>
<root
url=
"file://$
USER_HOME$/fvm/versions/3.41.9
/packages/flutter_web_plugins/lib"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Flutter_Plugins.xml
View file @
4ffa57f5
...
...
@@ -31,6 +31,13 @@
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/permission_handler_html-0.1.3+5"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.6"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_macos-1.0.3"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress-2.4.0"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_ohos-0.0.3"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_common-1.0.6"
/>
<root
url=
"file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_image_compress_web-0.1.5"
/>
<root
url=
"file://$PROJECT_DIR$/plugins/vsdk"
/>
<root
url=
"file://$PROJECT_DIR$/plugins/flutter_webrtc"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
lib/assets/monitoring/alert_box_bg_2.png
View replaced file @
29eea2f6
View file @
4ffa57f5
1.86 MB
|
W:
|
H:
2.19 MB
|
W:
|
H:
2-up
Swipe
Onion skin
lib/assets/monitoring/box_border.png
0 → 100644
View file @
4ffa57f5
346 KB
lib/models/bo/monitoring_bo.dart
View file @
4ffa57f5
...
...
@@ -52,8 +52,8 @@ class PatientInfoBO extends Equatable {
/// 患者名称
final
String
name
;
///
家长信息
final
String
owner
;
///
宠物类型(猫/狗等)
final
String
type
;
/// 联系电话
final
String
phone
;
...
...
@@ -67,28 +67,44 @@ class PatientInfoBO extends Equatable {
/// 患者头像地址
final
String
avatarUrl
;
/// 宠物病因
final
String
disease
;
/// 入住时间
final
String
checkInDate
;
/// 护理等级
final
String
careLevel
;
const
PatientInfoBO
({
required
this
.
name
,
required
this
.
owner
,
required
this
.
type
,
required
this
.
phone
,
required
this
.
breed
,
required
this
.
doctor
,
required
this
.
disease
,
required
this
.
checkInDate
,
required
this
.
careLevel
,
this
.
avatarUrl
=
''
,
});
factory
PatientInfoBO
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
return
PatientInfoBO
(
name:
json
[
'name'
]
as
String
?
??
''
,
owner:
json
[
'owner
'
]
as
String
?
??
''
,
type:
json
[
'type
'
]
as
String
?
??
''
,
phone:
json
[
'phone'
]
as
String
?
??
''
,
breed:
json
[
'breed'
]
as
String
?
??
''
,
doctor:
json
[
'doctor'
]
as
String
?
??
''
,
disease:
json
[
'disease'
]
as
String
?
??
''
,
checkInDate:
json
[
'checkInDate'
]
as
String
?
??
''
,
careLevel:
json
[
'careLevel'
]
as
String
?
??
''
,
avatarUrl:
json
[
'avatarUrl'
]
as
String
?
??
''
,
);
}
@override
List
<
Object
?>
get
props
=>
[
name
,
owner
,
phone
,
breed
,
doctor
,
avatarUrl
];
List
<
Object
?>
get
props
=>
[
name
,
type
,
phone
,
breed
,
doctor
,
disease
,
checkInDate
,
careLevel
,
avatarUrl
];
}
/// 用途:首页监护舱告警信息展示数据
...
...
lib/repositories/mock/monitoring_mock_data.dart
View file @
4ffa57f5
...
...
@@ -50,11 +50,14 @@ class MonitoringMockData {
static
PatientInfoBO
getMockPatientInfo
()
{
return
const
PatientInfoBO
(
name:
'妮蔻 Niko'
,
owner:
'家长:王女士'
,
phone:
'联系电话:15845310589'
,
breed:
'品种:长毛三花'
,
doctor:
'医生:程医生'
,
name:
'妮蔻'
,
type:
'猫'
,
phone:
'130-1111-3333'
,
breed:
'长毛三花'
,
doctor:
'张医生'
,
disease:
'胃炎'
,
checkInDate:
'2025-6-15'
,
careLevel:
'特级'
,
avatarUrl:
''
,
);
}
...
...
@@ -67,6 +70,12 @@ class MonitoringMockData {
time:
'2026-05-04 16:22:49'
,
status:
'待处理'
,
),
AlertInfoBO
(
title:
'温度异常'
,
description:
'温度高于阈值26℃,当前温度29℃,请立即检查温度传感器,字…'
,
time:
'2026-05-04 16:22:49'
,
status:
'已处理'
,
),
];
}
...
...
lib/views/home/index/widgets/patient_info_card.dart
View file @
4ffa57f5
...
...
@@ -63,13 +63,13 @@ class PatientInfoCard extends StatelessWidget {
),
),
SizedBox
(
height:
8
.
h
),
_buildInfoText
(
patientInfo
.
owner
),
_buildInfoText
(
'类型:
${patientInfo.type}
'
),
SizedBox
(
height:
4
.
h
),
_buildInfoText
(
patientInfo
.
phone
),
_buildInfoText
(
'电话:
${patientInfo.phone}
'
),
SizedBox
(
height:
4
.
h
),
_buildInfoText
(
patientInfo
.
breed
),
_buildInfoText
(
'品种:
${patientInfo.breed}
'
),
SizedBox
(
height:
4
.
h
),
_buildInfoText
(
patientInfo
.
doctor
),
_buildInfoText
(
'医生:
${patientInfo.doctor}
'
),
],
),
),
...
...
lib/views/monitoring/index/monitoring_index_view.dart
View file @
4ffa57f5
...
...
@@ -95,7 +95,7 @@ class _MonitoringIndexContentState extends State<MonitoringIndexContent> {
Container
(
height:
topHeight
.
clamp
(
80.0
,
104.0
),
decoration:
BoxDecoration
(
border:
BoxBorder
.
all
(
width:
1
.
w
,
color:
Colors
.
red
)
//
border: BoxBorder.all(width: 1.w,color: Colors.red)
),
child:
const
MonitoringTopStatusBar
(),
),
...
...
@@ -103,7 +103,7 @@ class _MonitoringIndexContentState extends State<MonitoringIndexContent> {
child:
Container
(
padding:
EdgeInsets
.
zero
,
decoration:
BoxDecoration
(
border:
BoxBorder
.
all
(
width:
1
.
w
,
color:
Colors
.
red
)
//
border: BoxBorder.all(width: 1.w,color: Colors.red)
),
child:
_buildMainArea
(
state
,
gap
),
),
...
...
@@ -111,7 +111,7 @@ class _MonitoringIndexContentState extends State<MonitoringIndexContent> {
Container
(
height:
bottomHeight
.
clamp
(
92.0
,
134.0
),
decoration:
BoxDecoration
(
border:
BoxBorder
.
all
(
width:
1
.
w
,
color:
Colors
.
red
)
//
border: BoxBorder.all(width: 1.w,color: Colors.red)
),
child:
MonitoringBottomMenu
(
menuItems:
state
.
menuItems
),
),
...
...
@@ -190,7 +190,7 @@ class _MonitoringIndexContentState extends State<MonitoringIndexContent> {
child:
Container
(
padding:
EdgeInsets
.
zero
,
decoration:
BoxDecoration
(
border:
BoxBorder
.
all
(
width:
1
.
w
,
color:
Colors
.
red
)
//
border: BoxBorder.all(width: 1.w,color: Colors.red)
),
// padding: EdgeInsets.only(
// right: metric == displayMetrics.last ? 0 : gap,
...
...
lib/views/monitoring/index/widgets/monitoring_alert_card.dart
View file @
4ffa57f5
...
...
@@ -2,8 +2,6 @@ import 'package:flutter/material.dart';
import
'package:flutter_screenutil/flutter_screenutil.dart'
;
import
'package:laki_icu_app/models/bo/monitoring_bo.dart'
;
import
'monitoring_panel.dart'
;
class
MonitoringAlertCard
extends
StatelessWidget
{
final
List
<
AlertInfoBO
>
alerts
;
...
...
@@ -14,43 +12,38 @@ class MonitoringAlertCard extends StatelessWidget {
@override
Widget
build
(
BuildContext
context
)
{
final
hasPending
=
alerts
.
any
((
item
)
=>
item
.
status
.
contains
(
'待处理'
));
return
Container
(
padding:
EdgeInsets
.
zero
,
padding:
EdgeInsets
.
symmetric
(
horizontal:
32
.
w
,
vertical:
20
.
h
)
,
decoration:
BoxDecoration
(
image:
DecorationImage
(
image:
AssetImage
(
'lib/assets/monitoring/alert_box_bg_2.png'
),
image:
AssetImage
(
hasPending
?
'lib/assets/monitoring/alert_box_bg_2.png'
:
'lib/assets/monitoring/alert_box_bg_1.png'
,
),
fit:
BoxFit
.
fill
,
),
border:
Border
.
all
(
color:
Colors
.
red
,
width:
1
.
w
)
),
// backgroundAsset: alerts.any((item) => item.status.contains('待处理'))
// ? 'lib/assets/monitoring/alert_box_bg_2.png'
// : 'lib/assets/monitoring/alert_box_bg_1.png',
// padding: EdgeInsets.symmetric(horizontal: 24.w),
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
Container
(
width:
double
.
infinity
,
height:
100
.
h
,
decoration:
BoxDecoration
(
border:
Border
.
all
(
color:
Colors
.
red
,
width:
1
.
w
)
children:
[
Text
(
'告警信息'
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
20
.
sp
,
fontWeight:
FontWeight
.
bold
,
),
),
SizedBox
(
height:
12
.
h
),
Expanded
(
child:
_buildEmpty
()
//
alerts.isEmpty ? _buildEmpty() : _buildList(),
child:
alerts
.
isEmpty
?
_buildEmpty
()
:
_buildList
(),
),
],
),
);
}
Widget
_buildEmpty
()
{
return
Center
(
...
...
@@ -63,44 +56,103 @@ class MonitoringAlertCard extends StatelessWidget {
Widget
_buildList
()
{
return
ListView
.
separated
(
padding:
EdgeInsets
.
zero
,
padding:
EdgeInsets
.
symmetric
(
vertical:
6
.
h
)
,
itemCount:
alerts
.
length
,
separatorBuilder:
(
_
,
__
)
=>
SizedBox
(
height:
1
2
.
h
),
separatorBuilder:
(
_
,
__
)
=>
SizedBox
(
height:
1
6
.
h
),
itemBuilder:
(
context
,
index
)
{
final
item
=
alerts
[
index
];
final
pending
=
item
.
status
.
contains
(
'待处理'
);
return
Container
(
height:
170
.
h
,
padding:
EdgeInsets
.
symmetric
(
horizontal:
16
.
w
,
vertical:
14
.
h
),
decoration:
BoxDecoration
(
border:
Border
.
all
(
width:
1
.
w
,
color:
Colors
.
red
)
// color: pending ? const Color(0x24FFB800) : const Color(0x1820E5FF),
// borderRadius: BorderRadius.circular(14.r),
// border: Border.all(
// color:
// pending ? const Color(0x99FFB800) : const Color(0x6639D8FF),
// width: 1,
// ),
),
child:
Column
(
children:
[
Text
(
item
.
title
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
20
.
sp
,
fontWeight:
FontWeight
.
bold
),
),
return
_buildAlertItem
(
item
,
pending
);
},
);
}
Widget
_buildAlertItem
(
AlertInfoBO
item
,
bool
pending
)
{
return
IntrinsicHeight
(
child:
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
_buildIconBlock
(
pending
),
SizedBox
(
width:
20
.
w
),
Expanded
(
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
[
Text
(
item
.
title
,
style:
TextStyle
(
color:
pending
?
const
Color
(
0xFFF26522
)
:
const
Color
(
0xFFFFC14A
),
fontSize:
16
.
sp
,
fontWeight:
FontWeight
.
bold
,
),
),
SizedBox
(
height:
10
.
h
),
Text
(
item
.
description
,
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
12
.
sp
,
),
),
// SizedBox(height: 10.h),
Text
(
item
.
time
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
12
.
sp
,
),
),
],
),
),
],
),
);
}
],
Widget
_buildIconBlock
(
bool
pending
)
{
return
Container
(
width:
100
.
w
,
height:
160
.
h
,
alignment:
Alignment
.
topLeft
,
child:
Stack
(
children:
[
Container
(
// width: 160.w,
// height: 160.h,
decoration:
BoxDecoration
(
color:
const
Color
(
0xFF2A2E3B
),
borderRadius:
BorderRadius
.
only
(
topLeft:
Radius
.
circular
(
18
.
r
),
topRight:
Radius
.
circular
(
18
.
r
),
bottomLeft:
Radius
.
circular
(
18
.
r
),
bottomRight:
Radius
.
circular
(
18
.
r
),
),
),
),
);
},
Container
(
padding:
EdgeInsets
.
symmetric
(
horizontal:
16
.
w
,
vertical:
6
.
h
),
decoration:
BoxDecoration
(
color:
pending
?
const
Color
(
0xFFFBB03B
)
:
const
Color
(
0xFF6FA8DC
),
borderRadius:
BorderRadius
.
only
(
topLeft:
Radius
.
circular
(
18
.
r
),
bottomRight:
Radius
.
circular
(
18
.
r
),
),
),
child:
Text
(
pending
?
'待处理'
:
'已处理'
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
12
.
sp
,
// fontWeight: FontWeight.bold,
),
),
),
],
),
);
}
}
lib/views/monitoring/index/widgets/monitoring_metric_card.dart
View file @
4ffa57f5
import
'package:flutter/material.dart'
;
import
'package:flutter_screenutil/flutter_screenutil.dart'
;
import
'package:flutter_switch/flutter_switch.dart'
;
import
'package:laki_icu_app/models/bo/monitoring_bo.dart'
;
import
'monitoring_panel.dart'
;
...
...
@@ -7,9 +8,17 @@ import 'monitoring_panel.dart';
class
MonitoringMetricCard
extends
StatelessWidget
{
final
MonitoringMetricBO
metric
;
/// 开关状态
final
bool
switchValue
;
/// 开关切换回调
final
ValueChanged
<
bool
>?
onSwitchToggle
;
const
MonitoringMetricCard
({
super
.
key
,
required
this
.
metric
,
this
.
switchValue
=
false
,
this
.
onSwitchToggle
,
});
@override
...
...
@@ -32,7 +41,7 @@ class MonitoringMetricCard extends StatelessWidget {
SizedBox
(
width:
20
.
w
),
Expanded
(
flex:
2
,
flex:
3
,
child:
Text
(
displayLabel
,
maxLines:
1
,
...
...
@@ -45,15 +54,18 @@ class MonitoringMetricCard extends StatelessWidget {
),
),
Expanded
(
flex:
1
,
child:
Text
(
"开关"
,
maxLines:
1
,
overflow:
TextOverflow
.
ellipsis
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
19
.
sp
,
fontWeight:
FontWeight
.
w600
,
flex:
2
,
child:
Align
(
alignment:
Alignment
.
topLeft
,
child:
FlutterSwitch
(
width:
30
.
w
,
height:
30
.
h
,
value:
switchValue
,
onToggle:
onSwitchToggle
??
(
_
)
{},
activeColor:
const
Color
(
0xFF75C1DD
),
inactiveColor:
Color
(
0xFF0A1B34
),
toggleSize:
12
.
w
,
padding:
2
.
w
,
),
),
),
...
...
@@ -95,10 +107,10 @@ class MonitoringMetricCard extends StatelessWidget {
width:
100
.
w
,
margin:
EdgeInsets
.
only
(
left:
20
.
w
),
decoration:
BoxDecoration
(
border:
Border
.
all
(
color:
Colors
.
red
,
width:
1
.
w
)
//
border: Border.all(
//
color: Colors.red,
//
width: 1.w
//
)
),
child:
Stack
(
clipBehavior:
Clip
.
none
,
...
...
lib/views/monitoring/index/widgets/monitoring_pet_info_card.dart
View file @
4ffa57f5
...
...
@@ -16,7 +16,7 @@ class MonitoringPetInfoCard extends StatelessWidget {
Widget
build
(
BuildContext
context
)
{
return
MonitoringPanel
(
backgroundAsset:
'lib/assets/monitoring/box_bg_460x905.png'
,
padding:
EdgeInsets
.
symmetric
(
horizontal:
2
4
.
w
,
vertical:
28
.
h
),
padding:
EdgeInsets
.
symmetric
(
horizontal:
2
8
.
w
,
vertical:
32
.
h
),
child:
patientInfo
==
null
?
_buildEmpty
()
:
_buildContent
(
patientInfo
!),
);
}
...
...
@@ -34,122 +34,290 @@ class MonitoringPetInfoCard extends StatelessWidget {
return
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
_buildTitle
(),
SizedBox
(
height:
28
.
h
),
Center
(
child:
_buildAvatar
()),
SizedBox
(
height:
20
.
h
),
Center
(
child:
Text
(
info
.
name
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
28
.
sp
,
fontWeight:
FontWeight
.
w700
,
),
_buildHeader
(
info
),
SizedBox
(
height:
24
.
h
),
_buildDivider
(),
SizedBox
(
height:
10
.
h
),
_buildInfoBlock
(
info
),
SizedBox
(
height:
10
.
h
),
_buildDivider
(),
SizedBox
(
height:
10
.
h
),
_buildCareLevelBlock
(
info
),
// const Spacer(),
_buildExitButton
(),
],
);
}
Widget
_buildHeader
(
PatientInfoBO
info
)
{
return
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
Container
(
width:
120
.
w
,
height:
120
.
w
,
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
20
.
r
),
border:
Border
.
all
(
color:
const
Color
(
0xFF5EE6FF
),
width:
3
.
w
),
boxShadow:
const
[
BoxShadow
(
color:
Color
(
0x6625BFFF
),
blurRadius:
20
,
spreadRadius:
2
,
),
],
color:
const
Color
(
0x261DA7FF
),
),
child:
ClipRRect
(
borderRadius:
BorderRadius
.
circular
(
17
.
r
),
child:
info
.
avatarUrl
.
isNotEmpty
?
Image
.
network
(
info
.
avatarUrl
,
fit:
BoxFit
.
cover
,
errorBuilder:
(
_
,
__
,
___
)
=>
Icon
(
Icons
.
pets
,
color:
const
Color
(
0xFFAAFAFF
),
size:
56
.
w
,
),
)
:
Icon
(
Icons
.
pets
,
color:
const
Color
(
0xFFAAFAFF
),
size:
56
.
w
,
),
),
),
SizedBox
(
width:
20
.
w
),
Expanded
(
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
Text
(
info
.
name
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
32
.
sp
,
fontWeight:
FontWeight
.
w700
,
height:
1.2
,
),
),
SizedBox
(
height:
16
.
h
),
_buildTypeRow
(
'类型'
,
info
.
type
),
SizedBox
(
height:
8
.
h
),
_buildTypeRow
(
'品种'
,
info
.
breed
),
],
),
),
SizedBox
(
height:
34
.
h
),
_buildInfoRow
(
Icons
.
person_outline
,
info
.
owner
),
_buildInfoRow
(
Icons
.
phone_outlined
,
info
.
phone
),
_buildInfoRow
(
Icons
.
pets_outlined
,
info
.
breed
),
_buildInfoRow
(
Icons
.
medical_services_outlined
,
info
.
doctor
),
const
Spacer
(),
_buildCareBlock
(),
],
);
}
Widget
_buildT
itle
(
)
{
Widget
_buildT
ypeRow
(
String
label
,
String
value
)
{
return
Row
(
children:
[
Container
(
width:
4
.
w
,
height:
22
.
h
,
decoration:
BoxDecoration
(
color:
const
Color
(
0xFF5EE6FF
)
,
borderRadius:
BorderRadius
.
circular
(
2
.
r
),
width:
8
.
w
,
height:
8
.
w
,
decoration:
const
BoxDecoration
(
shape:
BoxShape
.
circle
,
color:
Color
(
0xFF5EE6FF
),
),
),
SizedBox
(
width:
10
.
w
),
SizedBox
(
width:
8
.
w
),
Text
(
'
宠物基础信息
'
,
'
$label
:
$value
'
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
22
.
sp
,
fontWeight:
FontWeight
.
w600
,
color:
const
Color
(
0xFFB8E8FF
),
fontSize:
16
.
sp
,
),
),
],
);
}
Widget
_build
Avata
r
()
{
Widget
_build
Divide
r
()
{
return
Container
(
width:
112
.
w
,
height:
112
.
w
,
decoration:
BoxDecoration
(
shape:
BoxShape
.
circle
,
color:
const
Color
(
0x261DA7FF
),
border:
Border
.
all
(
color:
const
Color
(
0xFF69E8FF
),
width:
2
),
boxShadow:
const
[
BoxShadow
(
color:
Color
(
0x6625BFFF
),
blurRadius:
22
,
spreadRadius:
2
,
),
],
),
child:
Icon
(
Icons
.
pets
,
color:
const
Color
(
0xFFAAFAFF
),
size:
54
.
w
,
height:
1
.
h
,
decoration:
const
BoxDecoration
(
gradient:
LinearGradient
(
colors:
[
Colors
.
transparent
,
Color
(
0x405EE6FF
),
Color
(
0x805EE6FF
),
Color
(
0x405EE6FF
),
Colors
.
transparent
,
],
),
),
);
}
Widget
_buildInfoRow
(
IconData
icon
,
String
text
)
{
return
Padding
(
padding:
EdgeInsets
.
only
(
bottom:
18
.
h
),
child:
Row
(
children:
[
Icon
(
icon
,
color:
const
Color
(
0xFF77EFFF
),
size:
22
.
w
),
SizedBox
(
width:
12
.
w
),
Expanded
(
child:
Text
(
text
,
maxLines:
1
,
overflow:
TextOverflow
.
ellipsis
,
style:
TextStyle
(
color:
Colors
.
white70
,
fontSize:
18
.
sp
),
),
Widget
_buildInfoBlock
(
PatientInfoBO
info
)
{
return
Column
(
children:
[
_buildInfoItem
(
Icons
.
note_alt_outlined
,
'宠物病因'
,
info
.
disease
),
SizedBox
(
height:
14
.
h
),
_buildInfoItem
(
Icons
.
calendar_today_outlined
,
'入住时间'
,
info
.
checkInDate
),
SizedBox
(
height:
14
.
h
),
_buildInfoItem
(
Icons
.
medical_services_outlined
,
'责任医生'
,
info
.
doctor
),
SizedBox
(
height:
14
.
h
),
_buildInfoItem
(
Icons
.
phone_android_outlined
,
'家长电话'
,
info
.
phone
),
],
);
}
Widget
_buildInfoItem
(
IconData
icon
,
String
label
,
String
value
)
{
return
Row
(
children:
[
Icon
(
icon
,
color:
const
Color
(
0xFF5EE6FF
),
size:
22
.
w
),
SizedBox
(
width:
12
.
w
),
Text
(
'
$label
:'
,
style:
TextStyle
(
color:
const
Color
(
0xFFB8E8FF
),
fontSize:
16
.
sp
,
),
],
),
),
Text
(
value
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
16
.
sp
,
fontWeight:
FontWeight
.
w500
,
),
),
],
);
}
Widget
_buildCareLevelBlock
(
PatientInfoBO
info
)
{
return
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
Text
(
'护理等级'
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
18
.
sp
,
fontWeight:
FontWeight
.
w600
,
),
),
// SizedBox(height: 12.h),
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
[
Text
(
info
.
careLevel
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
52
.
sp
,
fontWeight:
FontWeight
.
w900
,
letterSpacing:
4
.
w
,
shadows:
const
[
Shadow
(
color:
Color
(
0x80FF5E5E
),
blurRadius:
12
,
),
],
),
),
const
Spacer
(),
Container
(
padding:
EdgeInsets
.
all
(
12
.
w
),
decoration:
const
BoxDecoration
(
shape:
BoxShape
.
circle
,
boxShadow:
[
BoxShadow
(
color:
Color
(
0x66FF5E5E
),
blurRadius:
18
,
spreadRadius:
4
,
),
],
),
child:
Icon
(
Icons
.
warning_amber_rounded
,
color:
Color
(
0xFFFF6B6B
),
size:
40
.
w
,
),
),
],
),
// SizedBox(height: 16.h),
_buildLevelBar
(),
],
);
}
Widget
_buildCareBlock
()
{
Widget
_buildLevelBar
()
{
const
segments
=
[
Color
(
0xFFFFFFFF
),
Color
(
0xFF00FF9D
),
Color
(
0xFFFFD66B
),
Color
(
0xFFFF9355
),
Color
(
0xFFFF5E5E
),
];
const
shadowColors
=
[
Color
(
0x99FFFFFF
),
Color
(
0x9900FF9D
),
Color
(
0x99FFD66B
),
Color
(
0x99FF9355
),
Color
(
0x99FF5E5E
),
];
return
Row
(
children:
segments
.
asMap
()
.
entries
.
map
((
entry
)
=>
Expanded
(
child:
Container
(
margin:
EdgeInsets
.
symmetric
(
horizontal:
2
.
w
),
height:
8
.
h
,
decoration:
BoxDecoration
(
color:
entry
.
value
,
borderRadius:
BorderRadius
.
circular
(
2
.
r
),
boxShadow:
[
BoxShadow
(
color:
shadowColors
[
entry
.
key
],
blurRadius:
6
,
),
],
),
),
))
.
toList
(),
);
}
Widget
_buildExitButton
()
{
return
Container
(
width:
double
.
infinity
,
padding:
EdgeInsets
.
symmetric
(
horizontal:
16
.
w
,
vertical:
16
.
h
),
decoration:
BoxDecoration
(
color:
const
Color
(
0x1A61D9FF
),
borderRadius:
BorderRadius
.
circular
(
14
.
r
),
border:
Border
.
all
(
color:
const
Color
(
0x665EE6FF
),
width:
1
),
height:
130
.
h
,
decoration:
const
BoxDecoration
(
image:
DecorationImage
(
image:
AssetImage
(
'lib/assets/monitoring/title_bg_spacewalk.png'
),
fit:
BoxFit
.
fill
,
),
),
child:
Row
(
children:
[
Icon
(
Icons
.
health_and_safety_outlined
,
color:
const
Color
(
0xFFFFD66B
),
size:
26
.
w
),
SizedBox
(
width:
12
.
w
),
Text
(
'护理等级:特级'
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
20
.
sp
,
fontWeight:
FontWeight
.
w600
,
child:
Center
(
child:
Row
(
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
[
Icon
(
Icons
.
chevron_left
,
color:
const
Color
(
0xFF77EFFF
),
size:
28
.
w
),
Icon
(
Icons
.
chevron_left
,
color:
const
Color
(
0xFF77EFFF
),
size:
28
.
w
),
SizedBox
(
width:
20
.
w
),
Text
(
'出舱'
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
22
.
sp
,
fontWeight:
FontWeight
.
w700
,
letterSpacing:
4
.
w
,
),
),
),
],
SizedBox
(
width:
20
.
w
),
Icon
(
Icons
.
chevron_right
,
color:
const
Color
(
0xFF77EFFF
),
size:
28
.
w
),
Icon
(
Icons
.
chevron_right
,
color:
const
Color
(
0xFF77EFFF
),
size:
28
.
w
),
],
),
),
);
}
...
...
lib/views/monitoring/index/widgets/monitoring_video_card.dart
View file @
4ffa57f5
...
...
@@ -11,10 +11,10 @@ class MonitoringVideoCard extends StatelessWidget {
return
Container
(
decoration:
BoxDecoration
(
image:
DecorationImage
(
image:
AssetImage
(
'lib/assets/monitoring/box_bg_674x509.png'
),
fit:
BoxFit
.
fill
),
border:
Border
.
all
(
color:
Colors
.
red
,
width:
1
.
w
)
//
border: Border.all(
//
color: Colors.red,
//
width: 1.w
//
)
),
child:
Stack
(
children:
[
...
...
lib/views/monitoring/index/widgets/video_player_widget.dart
View file @
4ffa57f5
...
...
@@ -66,13 +66,13 @@ class VideoPlayerWidget extends StatelessWidget {
Widget
build
(
BuildContext
context
)
{
return
ClipRRect
(
child:
Container
(
padding:
EdgeInsets
.
only
(
top:
15
.
h
,
bottom:
35
.
h
,
left:
1
8
.
w
,
right:
18
.
w
),
padding:
EdgeInsets
.
only
(
top:
15
.
h
,
bottom:
35
.
h
,
left:
1
0
.
w
,
right:
15
.
w
),
decoration:
BoxDecoration
(
image:
const
DecorationImage
(
image:
AssetImage
(
'lib/assets/monitoring/box_b
g_674x509
.png'
),
image:
const
DecorationImage
(
image:
AssetImage
(
'lib/assets/monitoring/box_b
order
.png'
),
fit:
BoxFit
.
fill
,
),
border:
Border
.
all
(
color:
Colors
.
red
,
width:
1
),
//
border: Border.all(color: Colors.red, width: 1),
),
child:
Stack
(
fit:
StackFit
.
expand
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment