Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
smart_hotel_app
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张宏
smart_hotel_app
Commits
b899c212
Commit
b899c212
authored
Jun 11, 2026
by
张宏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
2eaabcd0
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
138 additions
and
11 deletions
+138
-11
index_view.dart
lib/views/home/index/index_view.dart
+1
-0
temperature_block.dart
lib/views/home/index/widget/temperature_block.dart
+135
-8
voltage_operate_block.dart
lib/views/home/index/widget/voltage_operate_block.dart
+2
-3
No files found.
lib/views/home/index/index_view.dart
View file @
b899c212
...
...
@@ -94,6 +94,7 @@ class _HomeViewState extends State<HomeView> with AutoRouteAwareStateMixin<HomeV
blocks
.
addAll
([
SizedBox
(
height:
20
.
h
),
TemperatureBlock
(
alertId:
alert
.
alertId
,
temperatureAlarmTitle:
alert
.
alertTitle
,
temperatureAlarmLocation:
location
,
currentTemperature:
alert
.
temperature
,
...
...
lib/views/home/index/widget/temperature_block.dart
View file @
b899c212
import
'package:auto_route/auto_route.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter_screenutil/flutter_screenutil.dart'
;
import
'package:smart_hotel_app/routes/app_router.gr.dart'
;
import
'package:smart_hotel_app/repositories/alert_detail_repository.dart'
;
import
'package:smart_hotel_app/services/alert_detail_service.dart'
;
class
TemperatureBlock
extends
StatelessWidget
{
final
int
alertId
;
final
String
temperatureAlarmTitle
;
final
String
temperatureAlarmLocation
;
final
String
currentTemperature
;
...
...
@@ -11,9 +12,11 @@ class TemperatureBlock extends StatelessWidget {
final
String
currentCurrent
;
final
String
waitTime
;
final
String
alarmLevel
;
final
AlertDetailService
?
alertDetailService
;
const
TemperatureBlock
({
super
.
key
,
required
this
.
alertId
,
required
this
.
temperatureAlarmTitle
,
required
this
.
temperatureAlarmLocation
,
required
this
.
currentTemperature
,
...
...
@@ -21,6 +24,7 @@ class TemperatureBlock extends StatelessWidget {
required
this
.
currentCurrent
,
required
this
.
waitTime
,
required
this
.
alarmLevel
,
this
.
alertDetailService
,
});
@override
...
...
@@ -78,10 +82,10 @@ class TemperatureBlock extends StatelessWidget {
),
),
Text
(
'置顶'
,
alarmLevel
,
style:
TextStyle
(
fontSize:
24
.
sp
,
color:
const
Color
.
fromRGBO
(
255
,
100
,
10
1
,
1.0
),
color:
alarmLevel
==
"置顶"
?
const
Color
.
fromRGBO
(
255
,
100
,
101
,
1.0
)
:
const
Color
.
fromRGBO
(
255
,
204
,
2
1
,
1.0
),
),
),
],
...
...
@@ -102,7 +106,7 @@ class TemperatureBlock extends StatelessWidget {
mainAxisSize:
MainAxisSize
.
min
,
children:
[
Text
(
'
$currentTemperature
°C
'
,
'
$currentTemperature
'
,
style:
TextStyle
(
fontSize:
40
.
sp
,
fontWeight:
FontWeight
.
bold
,
...
...
@@ -199,9 +203,7 @@ class TemperatureBlock extends StatelessWidget {
],
),
GestureDetector
(
onTap:
()
{
// context.pushRoute(const AbnormalDetailRoute());
},
onTap:
()
=>
_showHandleDialog
(
context
),
child:
Container
(
padding:
EdgeInsets
.
symmetric
(
horizontal:
32
.
w
,
vertical:
20
.
h
),
decoration:
BoxDecoration
(
...
...
@@ -223,4 +225,128 @@ class TemperatureBlock 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
(
temperatureAlarmTitle
,
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.检查设备是否通风良好;
\n
2.确认设备负载是否正常;
\n
3.若异常,请联系电工。'
,
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
lib/views/home/index/widget/voltage_operate_block.dart
View file @
b899c212
...
...
@@ -91,8 +91,7 @@ class VoltageOperateBlock extends StatelessWidget {
voltageAlarmLevel
,
style:
TextStyle
(
fontSize:
24
.
sp
,
fontWeight:
FontWeight
.
bold
,
color:
const
Color
.
fromRGBO
(
255
,
204
,
21
,
1.0
),
color:
voltageAlarmLevel
==
"置顶"
?
const
Color
.
fromRGBO
(
255
,
100
,
101
,
1.0
)
:
const
Color
.
fromRGBO
(
255
,
204
,
21
,
1.0
),
),
),
],
...
...
@@ -188,7 +187,7 @@ class VoltageOperateBlock extends StatelessWidget {
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
children:
[
Text
(
'电压波动告警'
,
voltageAlarmTitle
,
style:
TextStyle
(
fontSize:
30
.
sp
,
fontWeight:
FontWeight
.
bold
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment