蓝牙绑定设备+场站切换支持高清图层的一对一显示+设备实时状态的部分显示
This commit is contained in:
@@ -19,6 +19,9 @@ class DeviceItemWidget extends StatelessWidget {
|
||||
return GestureDetector(
|
||||
onTap: onTap,
|
||||
child: Container(
|
||||
// 🔥 卡片外边距:与 RobotItemCard 保持一致。
|
||||
// 外层 ListView 只有 bottom padding,缺了这里卡片就会通栏贴边、左右圆角被裁掉。
|
||||
margin: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0),
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
decoration: BoxDecoration(
|
||||
color: context.appColors.cardBackground,
|
||||
@@ -81,24 +84,32 @@ class DeviceItemWidget extends StatelessWidget {
|
||||
IconData icon;
|
||||
Color color;
|
||||
|
||||
// 🔥 同一个 type 字段有两套取值体系:英文 code(inverter)与中文名(逆变器)。
|
||||
// 类型 tab 用英文 code 过滤,所以到达这里的设备大多是英文 code;
|
||||
// 两套写法都认,否则全部落到 default 的通用设备图标。
|
||||
switch (type) {
|
||||
case '机器人':
|
||||
case 'robot':
|
||||
icon = Icons.smart_toy;
|
||||
color = const Color(0xFF165DFF);
|
||||
break;
|
||||
case '逆变器':
|
||||
case 'inverter':
|
||||
icon = Icons.power;
|
||||
color = const Color(0xFF165DFF);
|
||||
break;
|
||||
case '汇流箱':
|
||||
case 'combiner_box':
|
||||
icon = Icons.electrical_services;
|
||||
color = const Color(0xFF722ED1);
|
||||
break;
|
||||
case '组件':
|
||||
case 'module':
|
||||
icon = Icons.solar_power;
|
||||
color = const Color(0xFF13C2C2);
|
||||
break;
|
||||
case '监控':
|
||||
case 'monitor':
|
||||
icon = Icons.videocam;
|
||||
color = const Color(0xFFEB2F96);
|
||||
break;
|
||||
@@ -153,7 +164,9 @@ class DeviceItemWidget extends StatelessWidget {
|
||||
Widget _buildDeviceData(BuildContext context, DeviceEntity device) {
|
||||
final dataItems = <Widget>[];
|
||||
|
||||
if (device.type == 'inverter') {
|
||||
// 🔥 与 _buildDeviceIcon 同理:英文 code 与中文名都认,
|
||||
// 否则匹配不上会落到 else 显示 "-- 数据"。
|
||||
if (device.type == 'inverter' || device.type == '逆变器') {
|
||||
dataItems.add(
|
||||
_buildDataItem(
|
||||
context,
|
||||
@@ -169,7 +182,7 @@ class DeviceItemWidget extends StatelessWidget {
|
||||
'${AppLocalizations.of(context).translate('device_list_v2.today_energy')}',
|
||||
),
|
||||
);
|
||||
} else if (device.type == 'combiner_box') {
|
||||
} else if (device.type == 'combiner_box' || device.type == '汇流箱') {
|
||||
if (device.current != null) {
|
||||
dataItems.add(
|
||||
_buildDataItem(
|
||||
@@ -189,7 +202,7 @@ class DeviceItemWidget extends StatelessWidget {
|
||||
),
|
||||
);
|
||||
}
|
||||
} else if (device.type == 'module') {
|
||||
} else if (device.type == 'module' || device.type == '组件') {
|
||||
dataItems.add(
|
||||
_buildDataItem(
|
||||
context,
|
||||
|
||||
Reference in New Issue
Block a user