173 lines
6.0 KiB
Dart
173 lines
6.0 KiB
Dart
import 'package:flutter/material.dart';
|
||
import 'package:qhd_prevention/tools/h_colors.dart';
|
||
import 'package:qhd_prevention/tools/tools.dart';
|
||
import 'package:qhd_prevention/pages/my_appbar.dart';
|
||
|
||
class DangerProjectPage extends StatefulWidget {
|
||
const DangerProjectPage({super.key});
|
||
|
||
@override
|
||
State<DangerProjectPage> createState() => _DangerProjectPageState();
|
||
}
|
||
|
||
class _DangerProjectPageState extends State<DangerProjectPage> {
|
||
// 单选按钮的值
|
||
String? _selectedValue;
|
||
|
||
// 单选按钮选项
|
||
final List<Map<String, dynamic>> _options = [
|
||
{
|
||
"value": "option1",
|
||
"label": "合格",
|
||
"icon": Icons.check_circle_rounded,
|
||
"color": Colors.green,
|
||
},
|
||
{
|
||
"value": "option2",
|
||
"label": "不合格",
|
||
"icon": Icons.check_circle_rounded,
|
||
"color": Colors.green,
|
||
},
|
||
{
|
||
"value": "option3",
|
||
"label": "不涉及",
|
||
"icon": Icons.check_circle_rounded,
|
||
"color": Colors.green,
|
||
},
|
||
];
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
final screenWidth = MediaQuery.of(context).size.width;
|
||
|
||
return Scaffold(
|
||
backgroundColor: h_backGroundColor(),
|
||
appBar: MyAppbar(title: "隐患排除项"),
|
||
body: SafeArea(
|
||
child: Padding(
|
||
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 10),
|
||
child: Column(
|
||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||
children: [
|
||
// 内容卡片
|
||
Card(
|
||
color: Colors.white,
|
||
child: Container(
|
||
padding: const EdgeInsets.all(16),
|
||
child: Column(
|
||
crossAxisAlignment: CrossAxisAlignment.start,
|
||
children: [
|
||
// 问题描述
|
||
Text(
|
||
"存在风险:1、罐体破损、变形、锈蚀等;2、附件安装不正确、不牢固;3、铭牌模糊无法识别;4、压力表不灵敏、不准确;5、报警装置故障失效;6、阀门锈蚀、泄露;7、洗眼器、防毒面具等应急设备缺失、过期。检查内容:1、定期检查獬体倩况,如发现破损、变形、锈蚀等情况及时进行维修;2、严格按照系统设计进行安装附件,确保附件安装牢固;3、及时清理铭牌上的异物,确保铭牌清晰可辨:4、定期检查压力表,确保压力表灵敏有效;5、定期检查报警装置,确保报警装置齐全有效;6、按时对阀门进行养护及定时检查紧固,及时更换阀门填料,操作时注意观察压帽是否随阀轴转动;7、定期检查应急设备,确保应急设备齐全有效",
|
||
style: TextStyle(
|
||
fontSize: 16,
|
||
color: Colors.grey[700],
|
||
height: 1.5,
|
||
),
|
||
),
|
||
|
||
// 单选按钮组
|
||
Row(
|
||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||
children:
|
||
_options.map((option) {
|
||
return _buildOptionButton(
|
||
context: context,
|
||
value: option['value'],
|
||
label: option['label'],
|
||
icon: option['icon'],
|
||
color: option['color'],
|
||
screenWidth: screenWidth,
|
||
);
|
||
}).toList(),
|
||
),
|
||
|
||
],
|
||
),
|
||
),
|
||
),
|
||
Spacer(),
|
||
// 下一步按钮
|
||
Container(
|
||
margin: const EdgeInsets.only(bottom: 20),
|
||
height: 50,
|
||
decoration: BoxDecoration(
|
||
color: _selectedValue != null ? Colors.green : Colors.grey,
|
||
borderRadius: BorderRadius.circular(10),
|
||
boxShadow: [
|
||
BoxShadow(
|
||
color: Colors.black12,
|
||
blurRadius: 6,
|
||
offset: Offset(0, 2),
|
||
),
|
||
],
|
||
),
|
||
child: TextButton(
|
||
onPressed: _selectedValue != null ? _submit : null,
|
||
child: Text(
|
||
"提交",
|
||
style: TextStyle(
|
||
color: Colors.white,
|
||
fontSize: 18,
|
||
fontWeight: FontWeight.bold,
|
||
),
|
||
),
|
||
),
|
||
),
|
||
],
|
||
),
|
||
),
|
||
),
|
||
);
|
||
}
|
||
|
||
// 构建单选按钮
|
||
Widget _buildOptionButton({
|
||
required BuildContext context,
|
||
required String value,
|
||
required String label,
|
||
required IconData icon,
|
||
required Color color,
|
||
required double screenWidth,
|
||
}) {
|
||
final isSelected = _selectedValue == value;
|
||
final buttonWidth = (screenWidth - 60) / 3 - 10; // 计算按钮宽度
|
||
|
||
return GestureDetector(
|
||
onTap: () {
|
||
setState(() {
|
||
_selectedValue = value;
|
||
});
|
||
},
|
||
child: Container(
|
||
width: buttonWidth,
|
||
padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 8),
|
||
|
||
child: Row(
|
||
mainAxisSize: MainAxisSize.min,
|
||
children: [
|
||
Icon(icon, color: isSelected ? color : Colors.grey, size: 30),
|
||
const SizedBox(width: 8),
|
||
Text(
|
||
label,
|
||
style: TextStyle(
|
||
fontSize: 14,
|
||
fontWeight: isSelected ? FontWeight.bold : FontWeight.normal,
|
||
color: isSelected ? color : Colors.grey[600],
|
||
),
|
||
),
|
||
],
|
||
),
|
||
),
|
||
);
|
||
}
|
||
|
||
void _submit() {
|
||
if (_selectedValue == null) return;
|
||
|
||
// 这里可以添加导航到下一页的代码
|
||
// Navigator.push(context, MaterialPageRoute(builder: (_) => NextPage()));
|
||
}
|
||
}
|