动火、有限空间申请添加定位

master
hs 2026-07-29 10:14:52 +08:00
parent fca208248b
commit d98dc5a14b
14 changed files with 762 additions and 1062 deletions

File diff suppressed because one or more lines are too long

View File

@ -66,7 +66,7 @@ class ListItemFactory {
Flexible( Flexible(
fit: FlexFit.loose, fit: FlexFit.loose,
child: Text( child: Text(
_truncateText(rightText,17) , rightText,
style: TextStyle(fontSize: 13, color: Colors.grey), style: TextStyle(fontSize: 13, color: Colors.grey),
maxLines: 1, maxLines: 1,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,

View File

@ -5,6 +5,7 @@ import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:qhd_prevention/constants/app_enums.dart'; import 'package:qhd_prevention/constants/app_enums.dart';
import 'package:qhd_prevention/customWidget/BaiDuMap/map_webview_page.dart';
import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart'; import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart';
import 'package:qhd_prevention/customWidget/bottom_picker.dart'; import 'package:qhd_prevention/customWidget/bottom_picker.dart';
import 'package:qhd_prevention/customWidget/center_multi_picker.dart'; import 'package:qhd_prevention/customWidget/center_multi_picker.dart';
@ -25,7 +26,6 @@ import 'package:qhd_prevention/pages/home/Tap/special_work_apply_base_page.dart'
import 'package:qhd_prevention/services/SessionService.dart'; import 'package:qhd_prevention/services/SessionService.dart';
import 'package:qhd_prevention/tools/tools.dart'; import 'package:qhd_prevention/tools/tools.dart';
class HotWorkApplyPage extends SpecialWorkApplyBasePage { class HotWorkApplyPage extends SpecialWorkApplyBasePage {
const HotWorkApplyPage({ const HotWorkApplyPage({
super.key, super.key,
@ -60,6 +60,7 @@ class _HotWorkApplyPageState extends SpecialWorkApplyBaseState<HotWorkApplyPage>
"workLevel": "请选择动火等级", "workLevel": "请选择动火等级",
"workStartTime": "请选择作业开始时间", "workStartTime": "请选择作业开始时间",
"workEndTime": "请选择作业结束时间", "workEndTime": "请选择作业结束时间",
"longitude": "请定位位置",
"workContent": "请填写作业内容", "workContent": "请填写作业内容",
"workMonitor": "请填写动火监火人", "workMonitor": "请填写动火监火人",
"hotWorkLeaderConfirmUserName": "请选择动火负责人确认负责人", "hotWorkLeaderConfirmUserName": "请选择动火负责人确认负责人",
@ -269,6 +270,8 @@ class _HotWorkApplyPageState extends SpecialWorkApplyBaseState<HotWorkApplyPage>
text: pd['workEndTime'] ?? '', text: pd['workEndTime'] ?? '',
), ),
const Divider(), const Divider(),
_buildCustomLocationWidget(),
const Divider(),
// //
ItemListWidget.multiLineTitleTextField( ItemListWidget.multiLineTitleTextField(
label: '作业内容:', label: '作业内容:',
@ -323,6 +326,58 @@ class _HotWorkApplyPageState extends SpecialWorkApplyBaseState<HotWorkApplyPage>
); );
} }
Widget _buildCustomLocationWidget() {
return Container(
margin: const EdgeInsets.symmetric(horizontal: 5),
padding: const EdgeInsets.symmetric(horizontal: 5),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(2),
border: Border.all(color: Colors.grey.shade300, width: 1),
),
child: Column(
children: [
ItemListWidget.OneRowButtonTitleText(
horizontalnum: 10,
label: '地点坐标',
isRequired: true,
buttonText: '定位',
text: '',
onTap: () async {
final result = await pushPage(MapWebViewPage(), context);
if (result != null) {
setState(() {
pd['longitude'] = result['longitude'].toString();
pd['latitude'] = result['latitude'].toString();
});
}
},
),
const Divider(),
ItemListWidget.itemContainer(
ListItemFactory.createRowSpaceBetweenItem(
verticalPadding: 2,
isRequired: true,
leftText: '经度',
rightText: pd['longitude'] ?? '',
isRight: false,
),
),
const Divider(),
ItemListWidget.itemContainer(
ListItemFactory.createRowSpaceBetweenItem(
verticalPadding: 5,
isRequired: true,
leftText: '纬度',
rightText: pd['latitude'] ?? '',
isRight: false,
),
),
],
),
);
}
/// ///
Future<void> _chooseHotWorkWay() async { Future<void> _chooseHotWorkWay() async {
final items = dhworkWays.map((item) => item['dictLabel'] as String).toList(); final items = dhworkWays.map((item) => item['dictLabel'] as String).toList();

View File

@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:qhd_prevention/common/route_service.dart'; import 'package:qhd_prevention/common/route_service.dart';
import 'package:qhd_prevention/constants/app_enums.dart'; import 'package:qhd_prevention/constants/app_enums.dart';
import 'package:qhd_prevention/customWidget/BaiDuMap/map_webview_page.dart';
import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart'; import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart';
import 'package:qhd_prevention/customWidget/bottom_picker.dart'; import 'package:qhd_prevention/customWidget/bottom_picker.dart';
import 'package:qhd_prevention/customWidget/custom_button.dart'; import 'package:qhd_prevention/customWidget/custom_button.dart';
@ -62,6 +63,7 @@ class _SxkjApplyPageState extends SpecialWorkApplyBaseState<SxkjApplyPage> {
"applyTime": "请选择申请时间", "applyTime": "请选择申请时间",
"operationTypeName": "请选择作业类型", "operationTypeName": "请选择作业类型",
"limitedSpaceNameAndCode": "请选择有限空间名称及编号", "limitedSpaceNameAndCode": "请选择有限空间名称及编号",
"longitude": "请定位位置",
"workContent": "请输入作业内容", "workContent": "请输入作业内容",
"emergencyEquipment": "请输入应急装备", "emergencyEquipment": "请输入应急装备",
"workDepartment": "请选择作业单位", "workDepartment": "请选择作业单位",
@ -150,6 +152,58 @@ class _SxkjApplyPageState extends SpecialWorkApplyBaseState<SxkjApplyPage> {
}; };
} }
Widget _buildCustomLocationWidget() {
return Container(
margin: const EdgeInsets.symmetric(horizontal: 5),
padding: const EdgeInsets.symmetric(horizontal: 5),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(2),
border: Border.all(color: Colors.grey.shade300, width: 1),
),
child: Column(
children: [
ItemListWidget.OneRowButtonTitleText(
horizontalnum: 10,
label: '地点坐标',
isRequired: true,
buttonText: '定位',
text: '',
onTap: () async {
final result = await pushPage(MapWebViewPage(), context);
if (result != null) {
setState(() {
pd['longitude'] = result['longitude'].toString();
pd['latitude'] = result['latitude'].toString();
});
}
},
),
const Divider(),
ItemListWidget.itemContainer(
ListItemFactory.createRowSpaceBetweenItem(
verticalPadding: 2,
isRequired: true,
leftText: '经度',
rightText: pd['longitude'] ?? '',
isRight: false,
),
),
const Divider(),
ItemListWidget.itemContainer(
ListItemFactory.createRowSpaceBetweenItem(
verticalPadding: 5,
isRequired: true,
leftText: '纬度',
rightText: pd['latitude'] ?? '',
isRight: false,
),
),
],
),
);
}
@override @override
Widget buildFormContent() { Widget buildFormContent() {
final chooseLimitedSpace = (pd['chooseLimitedSpace'] as Map?) ?? {}; final chooseLimitedSpace = (pd['chooseLimitedSpace'] as Map?) ?? {};
@ -321,6 +375,8 @@ class _SxkjApplyPageState extends SpecialWorkApplyBaseState<SxkjApplyPage> {
text: chooseLimitedSpace['separateSafetyMeasures'] ?? '', text: chooseLimitedSpace['separateSafetyMeasures'] ?? '',
), ),
const Divider(), const Divider(),
_buildCustomLocationWidget(),
const Divider(),
// //
ItemListWidget.multiLineTitleTextField( ItemListWidget.multiLineTitleTextField(
label: '作业内容:', label: '作业内容:',

View File

@ -126,13 +126,13 @@ class _PersonSelectionPageState extends State<PersonSelectionPage> {
employeePersonUserName: name, employeePersonUserName: name,
group: firstLetter, group: firstLetter,
personCorpId: item['deptId']??'', personCorpId: item['corpId']??'',
personCorpName: item['deptName']??'', personCorpName: item['corpName']??'',
personDepartmentId: item['deptId']??'', personDepartmentId: item['deptId']??'',
personDepartmentName: item['deptName']??'', personDepartmentName: item['deptName']??'',
userFaceUrl: item['deptName']??'', userFaceUrl: item['userFaceUrl']??'',
userPhone: item['phone']??'', userPhone: item['phone']??'',
userCard: item['deptName']??'', userCard: item['userCard']??'',
); );

View File

@ -10,6 +10,7 @@ import 'package:qhd_prevention/customWidget/custom_button.dart';
import 'package:qhd_prevention/customWidget/toast_util.dart'; import 'package:qhd_prevention/customWidget/toast_util.dart';
import 'package:qhd_prevention/http/ApiService.dart'; import 'package:qhd_prevention/http/ApiService.dart';
import 'package:qhd_prevention/http/modules/key_tasks_api.dart'; import 'package:qhd_prevention/http/modules/key_tasks_api.dart';
import 'package:qhd_prevention/pages/WebViewInteractionPage.dart';
import 'package:qhd_prevention/pages/home/Study/study_tab_list_page.dart'; import 'package:qhd_prevention/pages/home/Study/study_tab_list_page.dart';
import 'package:qhd_prevention/pages/home/Tap/work_tab_list_page.dart'; import 'package:qhd_prevention/pages/home/Tap/work_tab_list_page.dart';
import 'package:qhd_prevention/pages/home/doorAndCar/doorCar_tab_page.dart'; import 'package:qhd_prevention/pages/home/doorAndCar/doorCar_tab_page.dart';
@ -110,6 +111,12 @@ class HomePageState extends RouteAwareState<HomePage>
{"icon": "assets/images/ico5.png", "title": "重点作业", "unreadCount": 0}, {"icon": "assets/images/ico5.png", "title": "重点作业", "unreadCount": 0},
{"icon": "assets/images/ico6.png", "title": "口门门禁", "unreadCount": 0}, {"icon": "assets/images/ico6.png", "title": "口门门禁", "unreadCount": 0},
{"icon": "assets/images/ico7.png", "title": "入港培训", "unreadCount": 0}, {"icon": "assets/images/ico7.png", "title": "入港培训", "unreadCount": 0},
{
"icon": "assets/icon-apps/home_yanruan.png",
"title": "设备管理",
"isHandle": true,
"unreadCount": 0,
},
]; ];
// AppBar // AppBar
@ -211,7 +218,13 @@ class HomePageState extends RouteAwareState<HomePage>
for (int i = 0; i < buttonInfos.length; i++) { for (int i = 0; i < buttonInfos.length; i++) {
final title = buttonInfos[i]['title'] as String; final title = buttonInfos[i]['title'] as String;
final perm = _titleToPerm[title]; final perm = _titleToPerm[title];
if (perm == null || perm.isEmpty) continue; if (perm == null || perm.isEmpty) {
if (buttonInfos[i]['isHandle'] == true && title == '设备管理') {
newVisibility[i] =
SessionService.instance.userData?.nineCompanyFlag == true;
}
continue;
}
try { try {
newVisibility[i] = routeService.hasPerm(perm); newVisibility[i] = routeService.hasPerm(perm);
} catch (e) { } catch (e) {
@ -766,6 +779,14 @@ class HomePageState extends RouteAwareState<HomePage>
case "隐患治理": case "隐患治理":
await pushPage(HiddenDangerTabPage(), context); await pushPage(HiddenDangerTabPage(), context);
break; break;
case "设备管理":
await pushPage(
WebViewMediaBridgePage(
userId: SessionService.instance.accountId ?? '',
),
context,
);
break;
default: default:
ToastUtil.showNormal(context, '功能开发中...'); ToastUtil.showNormal(context, '功能开发中...');
break; break;

View File

@ -164,6 +164,7 @@ class _KeyTasksConfirmDetailPageState extends State<KeyTasksConfirmDetailPage> {
horizontalnum: 10, horizontalnum: 10,
label: '安全管理协议', label: '安全管理协议',
buttonText: '新增', buttonText: '新增',
isEdit: widget.type == 2,
text: '', text: '',
onTap: () async { onTap: () async {
final List<SelectedFile> picked = await DocumentPicker.showPickerModal( final List<SelectedFile> picked = await DocumentPicker.showPickerModal(
@ -224,6 +225,7 @@ class _KeyTasksConfirmDetailPageState extends State<KeyTasksConfirmDetailPage> {
}, },
), ),
), ),
if (widget.type == 2)
CustomButton( CustomButton(
text: '删除', text: '删除',
height: 30, height: 30,

View File

@ -63,7 +63,7 @@ class _KeyTasksPunishmentFilterPageState extends State<KeyTasksPunishmentFilterP
_inspectionSiteController.text = searchData['hiddenDesc']; _inspectionSiteController.text = searchData['hiddenDesc'];
_initiatorInspectionController.text = searchData['xgfCorpinfoName']; _initiatorInspectionController.text = searchData['xgfCorpinfoName'];
_inspectorController.text = searchData['projectName']; _inspectorController.text = searchData['projectName'];
_punishmentReasonController.text = searchData['projectName']; _punishmentReasonController.text = searchData['penaltyDesc'];
}); });
} }
@ -113,7 +113,7 @@ class _KeyTasksPunishmentFilterPageState extends State<KeyTasksPunishmentFilterP
controller: _punishmentReasonController, controller: _punishmentReasonController,
hintText: '请输入处罚原因', hintText: '请输入处罚原因',
onChanged: (value) { onChanged: (value) {
searchData['projectName'] = value; searchData['penaltyDesc'] = value;
}, },
), ),
@ -440,7 +440,10 @@ class _KeyTasksPunishmentFilterPageState extends State<KeyTasksPunishmentFilterP
_initiatorInspectionController.clear(); _initiatorInspectionController.clear();
_inspectorController.clear(); _inspectorController.clear();
_punishmentReasonController.clear(); _punishmentReasonController.clear();
searchData['hiddenDesc'] = '';
searchData['xgfCorpinfoName'] = '';
searchData['projectName'] = '';
searchData['penaltyDesc'] = '';
// searchData['hiddenDesc']=''; // searchData['hiddenDesc']='';
// searchData['source']=''; // searchData['source']='';
// searchData['sourceName']=''; // searchData['sourceName']='';

View File

@ -18,11 +18,8 @@ import 'package:qhd_prevention/tools/h_colors.dart';
import 'package:qhd_prevention/tools/tools.dart'; import 'package:qhd_prevention/tools/tools.dart';
import 'dart:async'; import 'dart:async';
class KeyTasksPunishmentList extends StatefulWidget { class KeyTasksPunishmentList extends StatefulWidget {
const KeyTasksPunishmentList( {super.key}); const KeyTasksPunishmentList({super.key});
@override @override
State<KeyTasksPunishmentList> createState() => _KeyTasksPunishmentListState(); State<KeyTasksPunishmentList> createState() => _KeyTasksPunishmentListState();
@ -30,6 +27,7 @@ class KeyTasksPunishmentList extends StatefulWidget {
class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> { class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
int _page = 1; int _page = 1;
// String searchKey = ""; // String searchKey = "";
int _totalPage = 1; int _totalPage = 1;
@ -54,17 +52,15 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
_searchController.addListener(_onSearchChanged); _searchController.addListener(_onSearchChanged);
_distinguishData(); _distinguishData();
} }
Future<void> _distinguishData() async { Future<void> _distinguishData() async {
buttonTextTwo = '反馈';
buttonTextTwo = '反馈'; title = "处罚反馈";
title = "处罚反馈"; final parentPerm = 'dashboard:Key-assignment:Hidden-hazard-record';
final parentPerm = 'dashboard:Key-assignment:Hidden-hazard-record'; final targetPerm = '';
final targetPerm = ''; final menuPath = await RouteService.getMenuPath(parentPerm, targetPerm);
final menuPath = await RouteService.getMenuPath(parentPerm, targetPerm); keyTasksPunishmentData['menuPath'] = menuPath;
keyTasksPunishmentData['menuPath']=menuPath;
_getListData(false); _getListData(false);
} }
@ -83,7 +79,7 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
final double screenWidth = MediaQuery.of(context).size.width; final double screenWidth = MediaQuery.of(context).size.width;
return Scaffold( return Scaffold(
appBar: MyAppbar(title:title), appBar: MyAppbar(title: title),
body: SafeArea( body: SafeArea(
child: NotificationListener<ScrollNotification>( child: NotificationListener<ScrollNotification>(
@ -98,47 +94,46 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
Widget _vcDetailWidget() { Widget _vcDetailWidget() {
return Column( return Column(
children: [ children: [
RangeFilterBar(
RangeFilterBar( initial: RangeOption.none,
initial: RangeOption.none, mode: RangeFilterBarMode.dayWeekMonth,
mode: RangeFilterBarMode.dayWeekMonth, onRangeChanged: (range) {
onRangeChanged: (range) { switch (range) {
switch (range) { case RangeOption.oneDay:
case RangeOption.oneDay: keyTasksPunishmentData['hiddenCreateTimeStart'] = DateFormat(
keyTasksPunishmentData['hiddenCreateTimeStart'] = DateFormat('yyyy-MM-dd HH:mm:ss') 'yyyy-MM-dd HH:mm:ss',
.format(DateTime.now().subtract(const Duration(days: 1))); ).format(DateTime.now().subtract(const Duration(days: 1)));
break; break;
case RangeOption.oneWeek: case RangeOption.oneWeek:
keyTasksPunishmentData['hiddenCreateTimeStart'] = DateFormat('yyyy-MM-dd HH:mm:ss') keyTasksPunishmentData['hiddenCreateTimeStart'] = DateFormat(
.format(DateTime.now().subtract(const Duration(days: 7))); 'yyyy-MM-dd HH:mm:ss',
break; ).format(DateTime.now().subtract(const Duration(days: 7)));
case RangeOption.oneMonth: break;
keyTasksPunishmentData['hiddenCreateTimeStart'] = DateFormat('yyyy-MM-dd HH:mm:ss') case RangeOption.oneMonth:
.format(DateTime.now().subtract(const Duration(days: 30))); keyTasksPunishmentData['hiddenCreateTimeStart'] = DateFormat(
break; 'yyyy-MM-dd HH:mm:ss',
case RangeOption.threeMonths: ).format(DateTime.now().subtract(const Duration(days: 30)));
break; break;
case RangeOption.none: case RangeOption.threeMonths:
break; break;
} case RangeOption.none:
break;
}
_performSearch();
},
onFilterPressed: () async {
//
// String searchData='';
final searchData = await pushPage(
KeyTasksPunishmentFilterPage(searchData: keyTasksPunishmentData),
context,
);
if (searchData != null) {
keyTasksPunishmentData = searchData;
_performSearch(); _performSearch();
}, }
onFilterPressed: () async { },
// ),
// String searchData='';
final searchData= await pushPage(
KeyTasksPunishmentFilterPage(
searchData: keyTasksPunishmentData,
),
context,
);
if(searchData!=null){
keyTasksPunishmentData=searchData;
_performSearch();
}
},
),
Container(height: 5, color: h_backGroundColor()), Container(height: 5, color: h_backGroundColor()),
Expanded( Expanded(
@ -157,6 +152,17 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
); );
} }
//
String _getPunishmentStatus(Map data) {
// data['feedbackStatus']
int status = int.parse('${data['feedbackStatus']}');
if (status > 0) {
return '已反馈';
} else {
return '待反馈';
}
}
Widget _fxitemCell(pageData) { Widget _fxitemCell(pageData) {
// 使GestureDetector // 使GestureDetector
return GestureDetector( return GestureDetector(
@ -224,7 +230,6 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
SizedBox(height: 16), SizedBox(height: 16),
Padding( Padding(
padding: EdgeInsets.only(left: 10, right: 10), padding: EdgeInsets.only(left: 10, right: 10),
child: Row( child: Row(
@ -234,7 +239,7 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
// //
Expanded( Expanded(
child: Text( child: Text(
'被处罚单位: ${pageData['xgfCorpinfoName']??''}', '被处罚单位: ${pageData['xgfCorpinfoName'] ?? ''}',
style: TextStyle(fontSize: 14, color: Colors.black87), style: TextStyle(fontSize: 14, color: Colors.black87),
), ),
), ),
@ -253,7 +258,7 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
// - 使 Expanded // - 使 Expanded
Expanded( Expanded(
child: Text( child: Text(
'被处罚人:${pageData['feedbackUserName'] ?? ''}', '被处罚人:${pageData['penalizedUserName'] ?? ''}',
style: TextStyle(fontSize: 14, color: Colors.black87), style: TextStyle(fontSize: 14, color: Colors.black87),
maxLines: 1, maxLines: 1,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
@ -281,8 +286,8 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
children: [ children: [
// //
Expanded( Expanded(
child: child: Text(
Text('处罚原因: ${pageData['penaltyDesc'] ?? ''}', '处罚原因: ${pageData['penaltyDesc'] ?? ''}',
style: TextStyle(fontSize: 14, color: Colors.black87), style: TextStyle(fontSize: 14, color: Colors.black87),
), ),
), ),
@ -298,8 +303,8 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
children: [ children: [
// //
Expanded( Expanded(
child: child: Text(
Text('下发人: ${pageData['findUserName'] ?? ''}', '下发人: ${pageData['findUserName'] ?? ''}',
style: TextStyle(fontSize: 14, color: Colors.black87), style: TextStyle(fontSize: 14, color: Colors.black87),
), ),
), ),
@ -315,8 +320,8 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
children: [ children: [
// //
Expanded( Expanded(
child: child: Text(
Text('处罚反馈状态: ${pageData['feedbackStatus'] ?? ''}', '处罚反馈状态: ${_getPunishmentStatus(pageData)}',
style: TextStyle(fontSize: 14, color: Colors.black87), style: TextStyle(fontSize: 14, color: Colors.black87),
), ),
), ),
@ -332,8 +337,7 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
children: [ children: [
// //
Expanded( Expanded(
child: child: Text(
Text(
'重点作业名称: ${pageData['projectName'] ?? ''}', '重点作业名称: ${pageData['projectName'] ?? ''}',
style: TextStyle(fontSize: 14, color: Colors.black87), style: TextStyle(fontSize: 14, color: Colors.black87),
), ),
@ -352,52 +356,23 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
), ),
), ),
SizedBox(height: 8), SizedBox(height: 8),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
// //
Expanded(
child: CustomButton(
height: 35,
onPressed: () async {
// print('查看: ${pageData['title']}');
await pushPage(
KeyTasksHiddenDangerDetail(
2,
pageData['hiddenTableId']??'',
pageData['hiddenId']??'',
pageData['foreignKey']??'',
false,
),
context,
);
_page = 1;
_getListData(false);
},
backgroundColor: h_backGroundColor(),
textStyle: const TextStyle(color: Colors.black),
buttonStyle: ButtonStyleType.secondary,
text: buttonTextOne,
),
),
SizedBox(width: 10), // 使widthheight
Expanded( Expanded(
child: CustomButton( child: CustomButton(
height: 35, height: 35,
onPressed: () async { onPressed: () async {
await pushPage( // print('查看: ${pageData['title']}');
await pushPage(
KeyTasksHiddenDangerDetail( KeyTasksHiddenDangerDetail(
3, 2,
pageData['hiddenTableId']??'', pageData['hiddenTableId'] ?? '',
pageData['hiddenId']??'', pageData['hiddenId'] ?? '',
pageData['foreignKey']??'', pageData['foreignKey'] ?? '',
itemData:pageData,
false, false,
), ),
context, context,
@ -405,13 +380,39 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
_page = 1; _page = 1;
_getListData(false); _getListData(false);
}, },
backgroundColor: h_AppBarColor(), backgroundColor: h_backGroundColor(),
textStyle: const TextStyle(color: Colors.white), textStyle: const TextStyle(color: Colors.black),
buttonStyle: ButtonStyleType.primary, buttonStyle: ButtonStyleType.secondary,
text: buttonTextTwo, text: buttonTextOne,
), ),
), ),
SizedBox(width: 10), // 使widthheight
if (int.parse('${pageData['feedbackStatus']}') < 1)
Expanded(
child: CustomButton(
height: 35,
onPressed: () async {
await pushPage(
KeyTasksHiddenDangerDetail(
3,
pageData['hiddenTableId'] ?? '',
pageData['hiddenId'] ?? '',
pageData['foreignKey'] ?? '',
itemData: pageData,
false,
),
context,
);
_page = 1;
_getListData(false);
},
backgroundColor: h_AppBarColor(),
textStyle: const TextStyle(color: Colors.white),
buttonStyle: ButtonStyleType.primary,
text: buttonTextTwo,
),
),
], ],
), ),
@ -452,17 +453,17 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
}); });
} }
Future<void> _getListData(bool loadMore) async { Future<void> _getListData(bool loadMore) async {
try { try {
if (_isLoading) return; if (_isLoading) return;
_isLoading = true; _isLoading = true;
keyTasksPunishmentData['pageIndex']=_page; keyTasksPunishmentData['pageIndex'] = _page;
// keyTasksPunishmentData['hiddenDesc']=searchKey; // keyTasksPunishmentData['hiddenDesc']=searchKey;
LoadingDialogHelper.show(); LoadingDialogHelper.show();
final Map<String, dynamic> result = await KeyTasksApi.getHiddenDangerPenalty(keyTasksPunishmentData); final Map<String, dynamic> result =
await KeyTasksApi.getHiddenDangerPenalty(keyTasksPunishmentData);
LoadingDialogHelper.hide(); LoadingDialogHelper.hide();
if (result['success']) { if (result['success']) {
@ -504,7 +505,7 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
return "隐患来源:安全环保检查(监管端)"; return "隐患来源:安全环保检查(监管端)";
} else if (3 == type) { } else if (3 == type) {
return "隐患来源:安全环保检查(企业端)"; return "隐患来源:安全环保检查(企业端)";
} else { } else {
return "隐患来源:"; return "隐患来源:";
} }
} }
@ -528,15 +529,15 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
String _getState(final item) { String _getState(final item) {
//1,,2:,3:,4: //1,,2:,3:,4:
int type = item["state"]; int type = item["state"];
if(1==type){ if (1 == type) {
return "未整改"; return "未整改";
}else if(2==type){ } else if (2 == type) {
return "已整改"; return "已整改";
}else if(3==type){ } else if (3 == type) {
return "已验收"; return "已验收";
}else if(4==type){ } else if (4 == type) {
return "验收打回"; return "验收打回";
}else{ } else {
return ""; return "";
} }
} }
@ -560,8 +561,7 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
return input; return input;
} }
Map<String, dynamic> keyTasksPunishmentData = {
Map<String, dynamic> keyTasksPunishmentData={
"needTotalCount": true, "needTotalCount": true,
"pageSize": 20, "pageSize": 20,
"orderBy": "", "orderBy": "",
@ -575,8 +575,6 @@ class _KeyTasksPunishmentListState extends State<KeyTasksPunishmentList> {
"orderDirection": "", "orderDirection": "",
"findUserName": "", "findUserName": "",
"projectName": "", "projectName": "",
"hiddenCreateTimeEnd": "" "hiddenCreateTimeEnd": "",
}; };
} }

View File

@ -340,7 +340,6 @@ class _KeyTasksCheckListPageState extends State<KeyTasksCheckListPage> {
Future<void> _fetchData() async { Future<void> _fetchData() async {
if (isLoading) return; if (isLoading) return;
setState(() => isLoading = true); setState(() => isLoading = true);
try { try {
keyTasksInspectionListData['pageIndex']=currentPage; keyTasksInspectionListData['pageIndex']=currentPage;
keyTasksInspectionListData['place']=searchKey; keyTasksInspectionListData['place']=searchKey;
@ -359,6 +358,7 @@ class _KeyTasksCheckListPageState extends State<KeyTasksCheckListPage> {
isLoading = false; isLoading = false;
}); });
} }
} catch (e) { } catch (e) {
debugPrint('Error fetching data: $e'); debugPrint('Error fetching data: $e');
setState(() => isLoading = false); setState(() => isLoading = false);

View File

@ -75,6 +75,7 @@ class UserData {
final String? mappingPostName; final String? mappingPostName;
final String? mappingDeptName; final String? mappingDeptName;
final dynamic employmentFlag; final dynamic employmentFlag;
final bool nineCompanyFlag;
UserData({ UserData({
this.id, this.id,
@ -128,6 +129,7 @@ class UserData {
this.mappingPostName, this.mappingPostName,
this.mappingDeptName, this.mappingDeptName,
this.employmentFlag, this.employmentFlag,
this.nineCompanyFlag = false,
}); });
factory UserData.fromJson(Map<String, dynamic> json) { factory UserData.fromJson(Map<String, dynamic> json) {
@ -183,6 +185,10 @@ class UserData {
mappingPostName: json['mappingPostName'] as String?, mappingPostName: json['mappingPostName'] as String?,
mappingDeptName: json['mappingDeptName'] as String?, mappingDeptName: json['mappingDeptName'] as String?,
employmentFlag: json['employmentFlag'], employmentFlag: json['employmentFlag'],
nineCompanyFlag:
json['nineCompanyFlag'] is bool
? json['nineCompanyFlag'] as bool
: false,
); );
} }
@ -239,6 +245,7 @@ class UserData {
'mappingPostName': mappingPostName, 'mappingPostName': mappingPostName,
'mappingDeptName': mappingDeptName, 'mappingDeptName': mappingDeptName,
'employmentFlag': employmentFlag, 'employmentFlag': employmentFlag,
'nineCompanyFlag': nineCompanyFlag,
}; };
} }
} }
@ -425,4 +432,4 @@ class SessionService {
// await SessionService.instance.saveToPrefs(); // await SessionService.instance.saveToPrefs();
// //
// //
// await SessionService.instance.loadFromPrefs(); // await SessionService.instance.loadFromPrefs();

View File

@ -93,10 +93,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
source: hosted source: hosted
version: "1.4.0" version: "1.4.1"
checked_yaml: checked_yaml:
dependency: transitive dependency: transitive
description: description:
@ -721,26 +721,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
source: hosted source: hosted
version: "0.12.17" version: "0.12.19"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
source: hosted source: hosted
version: "0.11.1" version: "0.13.0"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349"
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
source: hosted source: hosted
version: "1.16.0" version: "1.18.0"
mime: mime:
dependency: transitive dependency: transitive
description: description:
@ -1174,10 +1174,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e"
url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"
source: hosted source: hosted
version: "0.7.6" version: "0.7.11"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
@ -1467,5 +1467,5 @@ packages:
source: hosted source: hosted
version: "3.1.3" version: "3.1.3"
sdks: sdks:
dart: ">=3.9.0 <4.0.0" dart: ">=3.10.0-0 <4.0.0"
flutter: ">=3.35.6" flutter: ">=3.35.6"

View File

@ -186,7 +186,7 @@ flutter:
# - family: Schyler # - family: Schyler
# fonts: # fonts:
# - asset: fonts/Schyler-Regular.ttf # - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf # - asset: fonts/Schyler-Italic.ttf8846
# style: italic # style: italic
# - family: Trajan Pro # - family: Trajan Pro
# fonts: # fonts: