已完成用户APP首期功能开发
交付用户端首期页面、配套接口、后台资源及测试文档。用户APP构建、静态分析和三个管理后台构建通过;完整测试仍有2项失败,后端模型注释检查未通过,详见交付记录。
This commit is contained in:
34
apps/user_app/lib/domain/models/device_group.dart
Normal file
34
apps/user_app/lib/domain/models/device_group.dart
Normal file
@@ -0,0 +1,34 @@
|
||||
// 功能:解析本人设备分组及其公开设备标识;版本:1.0.0。
|
||||
import 'client_models.dart';
|
||||
|
||||
/// 设备分组只表达用户自定义归类,不代表设备在线或可控制。
|
||||
class DeviceGroup {
|
||||
const DeviceGroup({
|
||||
required this.identity,
|
||||
required this.name,
|
||||
required this.sortNo,
|
||||
required this.deviceIdentities,
|
||||
});
|
||||
|
||||
final String identity;
|
||||
final String name;
|
||||
final int sortNo;
|
||||
final Set<String> deviceIdentities;
|
||||
|
||||
factory DeviceGroup.fromJson(Map<String, Object?> json) => DeviceGroup(
|
||||
identity: json['identity'] as String? ?? '',
|
||||
name: json['name'] as String? ?? '',
|
||||
sortNo: (json['sort_no'] as num?)?.toInt() ?? 0,
|
||||
deviceIdentities: {
|
||||
for (final value in json['device_identities'] as List? ?? const [])
|
||||
if (value is String && value.isNotEmpty) value,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/// 同一次页面刷新读取的设备与分组快照,避免两次渲染状态互相错配。
|
||||
class DeviceCatalog {
|
||||
const DeviceCatalog({required this.devices, required this.groups});
|
||||
final List<ClientRecord> devices;
|
||||
final List<DeviceGroup> groups;
|
||||
}
|
||||
Reference in New Issue
Block a user