Commit 2fd41bd6 authored by 张宏's avatar 张宏

1

parent daa14c60
......@@ -17,7 +17,7 @@ class AlertDetailRepository {
Future<ResponseModel<Map<String, dynamic>>> handleAlert({required int alertId}) {
return DioRequest.instance.post<Map<String, dynamic>>(
'/app/alert/handle',
data: {'alertId': alertId},
data: {'alertId': alertId,'handleResult':'1.检查输入电压是否正常;2.确认设备是否正常运行;3.若异常,请联系电工。'},
);
}
}
\ No newline at end of file
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:smart_hotel_app/repositories/alert_detail_repository.dart';
import 'package:smart_hotel_app/routes/app_router.gr.dart';
import 'package:smart_hotel_app/services/alert_detail_service.dart';
class VoltageOperateBlock extends StatelessWidget {
final int alertId;
......@@ -11,6 +13,7 @@ class VoltageOperateBlock extends StatelessWidget {
final String normalVoltage;
final String voltageWaitTime;
final String voltageAlarmLevel;
final AlertDetailService? alertDetailService;
const VoltageOperateBlock({
super.key,
......@@ -21,6 +24,7 @@ class VoltageOperateBlock extends StatelessWidget {
required this.normalVoltage,
required this.voltageWaitTime,
required this.voltageAlarmLevel,
this.alertDetailService,
});
@override
......@@ -111,7 +115,7 @@ class VoltageOperateBlock extends StatelessWidget {
children: [
Expanded(
child: GestureDetector(
onTap: () {},
onTap: () => _showHandleDialog(context),
child: Container(
height: 88.h,
decoration: BoxDecoration(
......@@ -161,4 +165,128 @@ class VoltageOperateBlock extends StatelessWidget {
),
);
}
void _showHandleDialog(BuildContext context) {
showDialog(
context: context,
barrierDismissible: true,
builder: (dialogContext) {
return Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16.r),
),
child: Container(
padding: EdgeInsets.all(24.w),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16.r),
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'电压波动告警',
style: TextStyle(
fontSize: 30.sp,
fontWeight: FontWeight.bold,
color: Colors.black,
),
),
GestureDetector(
onTap: () => Navigator.of(dialogContext).pop(),
child: Icon(
Icons.close,
color: const Color.fromRGBO(100, 116, 139, 1.0),
size: 32.sp,
),
),
],
),
SizedBox(height: 16.h),
Container(
width: double.infinity,
padding: EdgeInsets.symmetric(
horizontal: 20.w,
vertical: 20.h,
),
decoration: BoxDecoration(
color: const Color.fromRGBO(242, 243, 245, 1),
borderRadius: BorderRadius.circular(12.r),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'解决办法:',
style: TextStyle(
fontSize: 26.sp,
fontWeight: FontWeight.bold,
color: Colors.black,
),
),
SizedBox(height: 12.h),
Text(
'1.检查输入电压是否正常;\n2.确认设备是否正常运行;\n3.若异常,请联系电工。',
style: TextStyle(
fontSize: 26.sp,
color: const Color.fromRGBO(100, 116, 139, 1.0),
height: 1.5,
),
),
],
),
),
SizedBox(height: 20.h),
GestureDetector(
onTap: () {
Navigator.of(dialogContext).pop();
_handleAlert(context);
},
child: Container(
width: double.infinity,
height: 72.h,
decoration: BoxDecoration(
color: const Color.fromRGBO(66, 165, 245, 1.0),
borderRadius: BorderRadius.circular(12.r),
),
child: Center(
child: Text(
'确认',
style: TextStyle(
fontSize: 28.sp,
color: Colors.white,
),
),
),
),
),
],
),
),
);
},
);
}
Future<void> _handleAlert(BuildContext context) async {
try {
final service = alertDetailService ??
AlertDetailService(repository: AlertDetailRepository());
await service.handleAlert(alertId: alertId);
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('操作成功')),
);
}
} catch (e) {
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('操作失败: $e')),
);
}
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment