diff --git a/lib/features/auth/server/server_auth.dart b/lib/features/auth/server/server_auth.dart index 415d18c..2b2bc96 100644 --- a/lib/features/auth/server/server_auth.dart +++ b/lib/features/auth/server/server_auth.dart @@ -30,15 +30,20 @@ class AuthServer { /// 获取赛事列表 /// [path] 赛事目录 + /// [nasIpAddr] NAS IP,由调用方传入,避免在 authProvider 内部再 read(authProvider)。 static Future getRecordList( - Ref ref, - String path, - ) async { + Ref ref, { + required String path, + required String nasIpAddr, + }) async { try { + if (nasIpAddr.isEmpty) { + throw const FormatException('无法获取NAS IP地址'); + } final apiClient = ref.read(apiClientProvider); // NAS /api/files 直接返回 {path, items},不是业务网关的 {code,message,data} 包装。 final data = await apiClient.get( - 'http://sheling.local:9001/${AuthApi.getRecordList.path}', + 'http://$nasIpAddr:9001/${AuthApi.getRecordList.path}', queryParameters: {'path': path}, wrapResponse: false, parser: (json) { diff --git a/lib/features/auth/view_model_auth/view_model_auth.dart b/lib/features/auth/view_model_auth/view_model_auth.dart index b223f6f..0bf0840 100644 --- a/lib/features/auth/view_model_auth/view_model_auth.dart +++ b/lib/features/auth/view_model_auth/view_model_auth.dart @@ -71,7 +71,13 @@ class AuthViewModel extends StateNotifier { /// 获取赛事列表 Future getRecordList(String eventName) async { if (eventName.isEmpty) return false; - final data = await AuthServer.getRecordList(_ref, eventName); + final nasIpAddr = state.jwtDecodedData?.nasIpAddr?.trim() ?? ''; + if (nasIpAddr.isEmpty) return false; + final data = await AuthServer.getRecordList( + _ref, + path: eventName, + nasIpAddr: nasIpAddr, + ); if (data == null) return false; if (data.items == null) return false; state = state.copyWith(recordList: data.items); @@ -81,7 +87,13 @@ class AuthViewModel extends StateNotifier { /// 获取指定目录的录像列表(不更新 state,用于目录下钻) Future?> fetchRecordList(String path) async { if (path.isEmpty) return null; - final data = await AuthServer.getRecordList(_ref, path); + final nasIpAddr = state.jwtDecodedData?.nasIpAddr?.trim() ?? ''; + if (nasIpAddr.isEmpty) return null; + final data = await AuthServer.getRecordList( + _ref, + path: path, + nasIpAddr: nasIpAddr, + ); return data?.items; }