From ce53e938641159f4fedbc7b9fc6127973bab7b94 Mon Sep 17 00:00:00 2001 From: zyc <1439655764@qq.com> Date: Fri, 13 Feb 2026 16:15:25 +0800 Subject: [PATCH] fix bug --- .../lib/pages/profile/settings_page.dart | 26 ++++++++++++++++--- airhub_app/restart.sh | 14 ++++++++++ 2 files changed, 36 insertions(+), 4 deletions(-) create mode 100755 airhub_app/restart.sh diff --git a/airhub_app/lib/pages/profile/settings_page.dart b/airhub_app/lib/pages/profile/settings_page.dart index 6aa576a..89aaf8d 100644 --- a/airhub_app/lib/pages/profile/settings_page.dart +++ b/airhub_app/lib/pages/profile/settings_page.dart @@ -10,6 +10,7 @@ import 'package:airhub_app/pages/product_selection_page.dart'; import 'package:airhub_app/widgets/glass_dialog.dart'; import 'package:airhub_app/features/auth/presentation/controllers/auth_controller.dart'; import 'package:airhub_app/features/system/data/datasources/system_remote_data_source.dart'; +import 'package:airhub_app/features/device/presentation/controllers/device_controller.dart'; class SettingsPage extends ConsumerStatefulWidget { const SettingsPage({super.key}); @@ -23,6 +24,8 @@ class _SettingsPageState extends ConsumerState { @override Widget build(BuildContext context) { + // watch 保持 provider 存活,确保硬件信息可用 + ref.watch(deviceControllerProvider); return Scaffold( backgroundColor: Colors.transparent, body: Stack( @@ -81,10 +84,7 @@ class _SettingsPageState extends ConsumerState { _buildItem( '💻', '硬件信息', - onTap: () => _showMessage( - '硬件信息', - '设备型号: Airhub_5G\n固件版本: 2.1.3', - ), + onTap: _showHardwareInfo, ), _buildItem( '📄', @@ -294,6 +294,24 @@ class _SettingsPageState extends ConsumerState { ); } + void _showHardwareInfo() { + final devicesAsync = ref.read(deviceControllerProvider); + final devices = devicesAsync.value ?? []; + final firstDevice = devices.isNotEmpty ? devices.first : null; + + final deviceModel = firstDevice?.device.deviceTypeInfo?.name ?? '未知'; + final sn = firstDevice?.device.sn ?? '未知'; + final firmwareVersion = firstDevice?.device.firmwareVersion; + final fwDisplay = (firmwareVersion != null && firmwareVersion.isNotEmpty) + ? firmwareVersion + : '等待设备上报'; + + _showMessage( + '硬件信息', + '设备型号: $deviceModel\nSN码: $sn\n固件版本: $fwDisplay', + ); + } + Future _checkUpdate() async { try { final ds = ref.read(systemRemoteDataSourceProvider); diff --git a/airhub_app/restart.sh b/airhub_app/restart.sh new file mode 100755 index 0000000..0c395bf --- /dev/null +++ b/airhub_app/restart.sh @@ -0,0 +1,14 @@ +#!/bin/bash +# 重新编译并启动 Flutter Web (localhost:8080) + +# 杀掉占用 8080 端口的进程 +PID=$(lsof -ti:8080 2>/dev/null) +if [ -n "$PID" ]; then + echo "正在停止旧进程 (PID: $PID)..." + kill $PID 2>/dev/null + sleep 1 +fi + +echo "正在编译并启动 Flutter Web..." +cd "$(dirname "$0")" +flutter run -d web-server --web-port=8080 --no-pub