This commit is contained in:
wyf
2025-05-23 18:17:04 +08:00
parent c650bad8b1
commit acfb262812
17 changed files with 673 additions and 485 deletions

View File

@@ -404,7 +404,8 @@ class _DeviceDataComponentWidgetState extends State<DeviceDataComponentWidget> {
void _showRenameDialog() {
personController.currentPersonId.value = widget.device['_id'];
personController.name.value = "";
showConfirmDialog(
String text = "确定".tr;
showSingleConfirmDialog(
context,
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.rpx, 41.rpx, 0.rpx, 0),
@@ -476,6 +477,7 @@ class _DeviceDataComponentWidgetState extends State<DeviceDataComponentWidget> {
onCancel: () {
print('用户点击了取消');
},
confirmText: text,
);
}

View File

@@ -96,193 +96,23 @@ class _DeviceDetailPageState extends State<DeviceDetailPage> {
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
50.rpx, 0.rpx, 0.rpx, 0.rpx),
child: Row(
0.rpx, 92.rpx, 0.rpx, 0.rpx),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Container(
width: MediaQuery.sizeOf(context).width * 0.267,
height: MediaQuery.sizeOf(context).width * 0.267,
constraints: BoxConstraints(
minWidth: 200.rpx,
minHeight: 200.rpx,
),
decoration: BoxDecoration(),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.设备名称'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.MAC'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.型号'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.版本'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.网络状态'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.故障状态'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.更新状态'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.更新时间'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc4,
),
),
),
),
]
.divide(SizedBox(height: 34.rpx))
.addToStart(SizedBox(height: 92.rpx))
.addToEnd(SizedBox(height: 97.rpx)),
),
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: MediaQuery.sizeOf(context).width * 0.267,
height: MediaQuery.sizeOf(context).width * 0.267,
constraints: BoxConstraints(
minWidth: 200.rpx,
minHeight: 200.rpx,
),
decoration: BoxDecoration(
color: Colors.transparent,
),
child: (widget.device['code']
?.toString()
.isNotEmpty ??
Container(
width: MediaQuery.sizeOf(context).width * 0.267,
height: MediaQuery.sizeOf(context).width * 0.267,
constraints: BoxConstraints(
minWidth: 200.rpx,
minHeight: 200.rpx,
),
decoration: BoxDecoration(
color: Colors.transparent,
),
child:
(widget.device['code']?.toString().isNotEmpty ??
false)
? QrImageView(
data: widget.device['code'].toString(),
@@ -290,182 +120,439 @@ class _DeviceDetailPageState extends State<DeviceDetailPage> {
size: 200.0.rpx,
)
: Image.asset(
"assets/img/errorImg.jpeg",
"assets/img/errorImg.png",
fit: BoxFit.cover,
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
(widget.device['code'] ?? '')
.toString()
.isNotEmpty
? widget.device['code'].toString()
: '未知数据'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'${widget.device['person']?['name'] ?? '未命名'.tr}',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'${widget.device['mac'] ?? '-'.tr}',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'-',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'-',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'${widget.device['status']['status'] == 1 ? '在线'.tr : '离线'.tr}',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'${widget.device['status']['failure'] == 1 ? '有故障'.tr : '无故障'.tr}',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'${widget.device['status']['upgrade'] == 1 ? '有更新'.tr : '无更新'.tr}',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment: AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'${widget.device['status']?['updateTime'] == null ? '-'.tr : MyUtils.timestampToDateString(widget.device['status']?['updateTime'])}',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc3,
),
),
),
),
]
.divide(SizedBox(height: 34.rpx))
.addToStart(SizedBox(height: 92.rpx))
.addToEnd(SizedBox(height: 97.rpx)),
),
].divide(SizedBox(width: 34.rpx)),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Text(
(widget.device['code'] ?? '').toString().isNotEmpty
? widget.device['code'].toString()
: '未知数据'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController.currentColor.sc3,
),
),
),
Row(
mainAxisSize: MainAxisSize.min,
children: [
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
// Container(
// width:
// MediaQuery.sizeOf(context).width * 0.267,
// height:
// MediaQuery.sizeOf(context).width * 0.267,
// constraints: BoxConstraints(
// minWidth: 200.rpx,
// minHeight: 200.rpx,
// ),
// decoration: BoxDecoration(),
// ),
// Container(
// height: 50.rpx,
// decoration: BoxDecoration(),
// ),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.设备名称'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.MAC'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.型号'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.版本'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.网络状态'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.故障状态'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.更新状态'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc4,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'设备详情.更新时间'.tr,
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc4,
),
),
),
),
]
.divide(SizedBox(height: 34.rpx))
.addToStart(SizedBox(height: 92.rpx))
.addToEnd(SizedBox(height: 97.rpx)),
),
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Container(
// width:
// MediaQuery.sizeOf(context).width * 0.267,
// height:
// MediaQuery.sizeOf(context).width * 0.267,
// constraints: BoxConstraints(
// minWidth: 200.rpx,
// minHeight: 200.rpx,
// ),
// decoration: BoxDecoration(
// color: Colors.transparent,
// ),
// child: (widget.device['code']
// ?.toString()
// .isNotEmpty ??
// false)
// ? QrImageView(
// data:
// widget.device['code'].toString(),
// version: QrVersions.auto,
// size: 200.0.rpx,
// )
// : Image.asset(
// "assets/img/errorImg.jpeg",
// fit: BoxFit.cover,
// ),
// ),
// Container(
// height: 50.rpx,
// decoration: BoxDecoration(),
// child: Align(
// alignment:
// AlignmentDirectional(-1.rpx, 0.rpx),
// child: Text(
// (widget.device['code'] ?? '')
// .toString()
// .isNotEmpty
// ? widget.device['code'].toString()
// : '未知数据'.tr,
// style: FlutterFlowTheme.of(context)
// .bodyMedium
// .override(
// fontFamily: 'Inter',
// fontSize: 26.rpx,
// letterSpacing: 0.rpx,
// color: themeController
// .currentColor.sc3,
// ),
// ),
// ),
// ),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'${widget.device['person']?['name'] ?? '未命名'.tr}',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'${widget.device['mac'] ?? '-'.tr}',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'-',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'-',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'${widget.device['status']['status'] == 1 ? '在线'.tr : '离线'.tr}',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'${widget.device['status']['failure'] == 1 ? '有故障'.tr : '无故障'.tr}',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'${widget.device['status']['upgrade'] == 1 ? '有更新'.tr : '无更新'.tr}',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc3,
),
),
),
),
Container(
height: 50.rpx,
decoration: BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(-1.rpx, 0.rpx),
child: Text(
'${widget.device['status']?['updateTime'] == null ? '-'.tr : MyUtils.timestampToDateString(widget.device['status']?['updateTime'])}',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
fontSize: 26.rpx,
letterSpacing: 0.rpx,
color: themeController
.currentColor.sc3,
),
),
),
),
]
.divide(SizedBox(height: 34.rpx))
.addToStart(SizedBox(height: 92.rpx))
.addToEnd(SizedBox(height: 97.rpx)),
),
].divide(SizedBox(width: 34.rpx)),
),
],
),
),
),