Compare commits
	
		
			No commits in common. "main" and "v2.2.1-60" have entirely different histories. 
		
	
	
		
							
								
								
									
										15
									
								
								.metadata
								
								
								
								
							
							
						
						
									
										15
									
								
								.metadata
								
								
								
								
							|  | @ -4,7 +4,7 @@ | ||||||
| # This file should be version controlled and should not be manually edited. | # This file should be version controlled and should not be manually edited. | ||||||
| 
 | 
 | ||||||
| version: | version: | ||||||
|   revision: "d7b523b356d15fb81e7d340bbe52b47f93937323" |   revision: "35c388afb57ef061d06a39b537336c87e0e3d1b1" | ||||||
|   channel: "stable" |   channel: "stable" | ||||||
| 
 | 
 | ||||||
| project_type: app | project_type: app | ||||||
|  | @ -13,11 +13,14 @@ project_type: app | ||||||
| migration: | migration: | ||||||
|   platforms: |   platforms: | ||||||
|     - platform: root |     - platform: root | ||||||
|       create_revision: d7b523b356d15fb81e7d340bbe52b47f93937323 |       create_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1 | ||||||
|       base_revision: d7b523b356d15fb81e7d340bbe52b47f93937323 |       base_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1 | ||||||
|     - platform: web |     - platform: android | ||||||
|       create_revision: d7b523b356d15fb81e7d340bbe52b47f93937323 |       create_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1 | ||||||
|       base_revision: d7b523b356d15fb81e7d340bbe52b47f93937323 |       base_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1 | ||||||
|  |     - platform: ios | ||||||
|  |       create_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1 | ||||||
|  |       base_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1 | ||||||
| 
 | 
 | ||||||
|   # User provided section |   # User provided section | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -493,7 +493,7 @@ | ||||||
| 				CODE_SIGN_IDENTITY = "Apple Development"; | 				CODE_SIGN_IDENTITY = "Apple Development"; | ||||||
| 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | ||||||
| 				CODE_SIGN_STYLE = Manual; | 				CODE_SIGN_STYLE = Manual; | ||||||
| 				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | 				CURRENT_PROJECT_VERSION = 59; | ||||||
| 				DEVELOPMENT_TEAM = ""; | 				DEVELOPMENT_TEAM = ""; | ||||||
| 				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8AKCJ9LW7D; | 				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8AKCJ9LW7D; | ||||||
| 				ENABLE_BITCODE = NO; | 				ENABLE_BITCODE = NO; | ||||||
|  | @ -503,6 +503,7 @@ | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 					"@executable_path/Frameworks", | 					"@executable_path/Frameworks", | ||||||
| 				); | 				); | ||||||
|  | 				MARKETING_VERSION = 2.2.0; | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = uni.UNI85F7A17; | 				PRODUCT_BUNDLE_IDENTIFIER = uni.UNI85F7A17; | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||||
| 				PROVISIONING_PROFILE_SPECIFIER = ""; | 				PROVISIONING_PROFILE_SPECIFIER = ""; | ||||||
|  | @ -687,7 +688,7 @@ | ||||||
| 				CODE_SIGN_IDENTITY = "Apple Development"; | 				CODE_SIGN_IDENTITY = "Apple Development"; | ||||||
| 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | ||||||
| 				CODE_SIGN_STYLE = Manual; | 				CODE_SIGN_STYLE = Manual; | ||||||
| 				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | 				CURRENT_PROJECT_VERSION = 59; | ||||||
| 				DEVELOPMENT_TEAM = ""; | 				DEVELOPMENT_TEAM = ""; | ||||||
| 				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8AKCJ9LW7D; | 				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8AKCJ9LW7D; | ||||||
| 				ENABLE_BITCODE = NO; | 				ENABLE_BITCODE = NO; | ||||||
|  | @ -697,6 +698,7 @@ | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 					"@executable_path/Frameworks", | 					"@executable_path/Frameworks", | ||||||
| 				); | 				); | ||||||
|  | 				MARKETING_VERSION = 2.2.0; | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = uni.UNI85F7A17; | 				PRODUCT_BUNDLE_IDENTIFIER = uni.UNI85F7A17; | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||||
| 				PROVISIONING_PROFILE_SPECIFIER = ""; | 				PROVISIONING_PROFILE_SPECIFIER = ""; | ||||||
|  | @ -718,7 +720,7 @@ | ||||||
| 				CODE_SIGN_IDENTITY = "Apple Development"; | 				CODE_SIGN_IDENTITY = "Apple Development"; | ||||||
| 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | ||||||
| 				CODE_SIGN_STYLE = Manual; | 				CODE_SIGN_STYLE = Manual; | ||||||
| 				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | 				CURRENT_PROJECT_VERSION = 59; | ||||||
| 				DEVELOPMENT_TEAM = ""; | 				DEVELOPMENT_TEAM = ""; | ||||||
| 				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8AKCJ9LW7D; | 				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8AKCJ9LW7D; | ||||||
| 				ENABLE_BITCODE = NO; | 				ENABLE_BITCODE = NO; | ||||||
|  | @ -728,6 +730,7 @@ | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 					"@executable_path/Frameworks", | 					"@executable_path/Frameworks", | ||||||
| 				); | 				); | ||||||
|  | 				MARKETING_VERSION = 2.2.0; | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = uni.UNI85F7A17; | 				PRODUCT_BUNDLE_IDENTIFIER = uni.UNI85F7A17; | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||||
| 				PROVISIONING_PROFILE_SPECIFIER = ""; | 				PROVISIONING_PROFILE_SPECIFIER = ""; | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ | ||||||
| 	<string>智守安全</string> | 	<string>智守安全</string> | ||||||
| 	<key>CFBundleExecutable</key> | 	<key>CFBundleExecutable</key> | ||||||
| 	<string>$(EXECUTABLE_NAME)</string> | 	<string>$(EXECUTABLE_NAME)</string> | ||||||
| 	<key>CFBundleIdentifier</key>ƒ | 	<key>CFBundleIdentifier</key> | ||||||
| 	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> | 	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> | ||||||
| 	<key>CFBundleInfoDictionaryVersion</key> | 	<key>CFBundleInfoDictionaryVersion</key> | ||||||
| 	<string>6.0</string> | 	<string>6.0</string> | ||||||
|  | @ -85,7 +85,6 @@ | ||||||
| 	<key>com.apple.developer.nfc.readersession.formats</key> | 	<key>com.apple.developer.nfc.readersession.formats</key> | ||||||
| 	<array> | 	<array> | ||||||
| 		<string>TAG</string> | 		<string>TAG</string> | ||||||
| 		<string>NDEF</string> |  | ||||||
| 	</array> | 	</array> | ||||||
| </dict> | </dict> | ||||||
| </plist> | </plist> | ||||||
|  |  | ||||||
|  | @ -118,55 +118,11 @@ class _DepartmentPickerHiddenTypeState | ||||||
| 
 | 
 | ||||||
|   void _onSearchChanged() { |   void _onSearchChanged() { | ||||||
|     final q = _searchController.text.toLowerCase().trim(); |     final q = _searchController.text.toLowerCase().trim(); | ||||||
|     // setState(() { |  | ||||||
|     //   filtered = q.isEmpty ? original : _filterCategories(original, q); |  | ||||||
|     // }); |  | ||||||
| 
 |  | ||||||
|     //新加搜索展开子项 |  | ||||||
|     setState(() { |     setState(() { | ||||||
|       if (q.isEmpty) { |       filtered = q.isEmpty ? original : _filterCategories(original, q); | ||||||
|         filtered = original; |  | ||||||
|         expandedSet.clear(); // 清空展开状态 |  | ||||||
|       } else { |  | ||||||
|         filtered = _filterCategories(original, q); |  | ||||||
|         // 搜索时自动展开所有过滤后的节点 |  | ||||||
|         _expandAllMatchingNodes(filtered); |  | ||||||
|       } |  | ||||||
|     }); |     }); | ||||||
| 
 |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|   // 递归展开所有匹配的节点及其父节点 |  | ||||||
|   void _expandAllMatchingNodes(List<Category> categories) { |  | ||||||
|     for (var category in categories) { |  | ||||||
|       // 展开当前节点 |  | ||||||
|       expandedSet.add(category.id); |  | ||||||
| 
 |  | ||||||
|       // 递归展开子节点 |  | ||||||
|       if (category.children.isNotEmpty) { |  | ||||||
|         _expandAllMatchingNodes(category.children); |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       // 展开所有父节点直到根节点 |  | ||||||
|       _expandParentNodes(category.id); |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   // 展开指定节点的所有父节点 |  | ||||||
|   void _expandParentNodes(String id) { |  | ||||||
|     var currentId = id; |  | ||||||
|     var parent = parentMap[currentId]; |  | ||||||
| 
 |  | ||||||
|     while (parent != null) { |  | ||||||
|       expandedSet.add(parent.id); |  | ||||||
|       currentId = parent.id; |  | ||||||
|       parent = parentMap[currentId]; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|   List<Category> _filterCategories(List<Category> list, String q) { |   List<Category> _filterCategories(List<Category> list, String q) { | ||||||
|     final res = <Category>[]; |     final res = <Category>[]; | ||||||
|     for (var cat in list) { |     for (var cat in list) { | ||||||
|  |  | ||||||
|  | @ -1,3 +1,4 @@ | ||||||
|  | import 'dart:ffi'; | ||||||
| 
 | 
 | ||||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||||
| import 'package:dotted_border/dotted_border.dart'; | import 'package:dotted_border/dotted_border.dart'; | ||||||
|  |  | ||||||
|  | @ -24,8 +24,8 @@ class ApiService { | ||||||
|   // static const String baseFacePath = "http://192.168.0.25:38199"; //王轩服务器 |   // static const String baseFacePath = "http://192.168.0.25:38199"; //王轩服务器 | ||||||
| 
 | 
 | ||||||
|   /// 登录及其他管理后台接口 |   /// 登录及其他管理后台接口 | ||||||
|   // static const String basePath = "https://qaaqwh.qhdsafety.com/integrated_whb"; |   static const String basePath = "https://qaaqwh.qhdsafety.com/integrated_whb"; | ||||||
|   static const String basePath = "http://192.168.20.240:8500/integrated_whb";//测试服务器 |   // static const String basePath = "http://192.168.20.240:8500/integrated_whb";//测试服务器 | ||||||
|   // static const String basePath = "http://192.168.0.25:28199";//王轩服务器 |   // static const String basePath = "http://192.168.0.25:28199";//王轩服务器 | ||||||
|   // static const String basePath = "http://192.168.0.45:28199";//长久服务器 |   // static const String basePath = "http://192.168.0.45:28199";//长久服务器 | ||||||
| 
 | 
 | ||||||
|  | @ -2052,7 +2052,6 @@ U6Hzm1ninpWeE+awIDAQAB | ||||||
|       String correctiveDepartment, |       String correctiveDepartment, | ||||||
|       String isIndex, |       String isIndex, | ||||||
|       String keyWord, |       String keyWord, | ||||||
|       String laiYuanId, |  | ||||||
|       ) { |       ) { | ||||||
|     return HttpManager().request( |     return HttpManager().request( | ||||||
|       basePath, |       basePath, | ||||||
|  | @ -2064,7 +2063,7 @@ U6Hzm1ninpWeE+awIDAQAB | ||||||
|         "ENDTIME": endDate.isEmpty?"":"$endDate 23:59:59", |         "ENDTIME": endDate.isEmpty?"":"$endDate 23:59:59", | ||||||
|         "HIDDENLEVEL": level, |         "HIDDENLEVEL": level, | ||||||
|         "HIDDEN_RISKSTANDARD": riskStandard, |         "HIDDEN_RISKSTANDARD": riskStandard, | ||||||
|         // "SOURCE": laiYuanId, |         // "SOURCE": riskStandard, | ||||||
|         "STATE": state, |         "STATE": state, | ||||||
|         "DEPARTMENT_ID": departmentId, |         "DEPARTMENT_ID": departmentId, | ||||||
|         "RECTIFICATIONDEPT": correctiveDepartment, |         "RECTIFICATIONDEPT": correctiveDepartment, | ||||||
|  |  | ||||||
|  | @ -4,7 +4,6 @@ import 'package:qhd_prevention/http/ApiService.dart'; | ||||||
| import 'package:qhd_prevention/pages/app/Danger_paicha/check_record_page.dart'; | import 'package:qhd_prevention/pages/app/Danger_paicha/check_record_page.dart'; | ||||||
| import 'package:qhd_prevention/pages/app/Danger_paicha/quick_report_page.dart'; | import 'package:qhd_prevention/pages/app/Danger_paicha/quick_report_page.dart'; | ||||||
| import 'package:qhd_prevention/pages/app/danger_wait_list_page.dart'; | import 'package:qhd_prevention/pages/app/danger_wait_list_page.dart'; | ||||||
| import 'package:qhd_prevention/pages/app/gy_alarm/gy_alarm_page.dart'; |  | ||||||
| import 'package:qhd_prevention/pages/badge_manager.dart'; | import 'package:qhd_prevention/pages/badge_manager.dart'; | ||||||
| import 'package:qhd_prevention/pages/home/work/risk_list_page.dart'; | import 'package:qhd_prevention/pages/home/work/risk_list_page.dart'; | ||||||
| 
 | 
 | ||||||
|  | @ -26,8 +25,7 @@ enum AppItem { | ||||||
|   specialRecord,     // 专项检查中的隐患记录 |   specialRecord,     // 专项检查中的隐患记录 | ||||||
|   supervisionRectification, // 监管帮扶中的隐患整改 |   supervisionRectification, // 监管帮扶中的隐患整改 | ||||||
|   supervisionRecord, // 监管帮扶中的隐患记录 |   supervisionRecord, // 监管帮扶中的隐患记录 | ||||||
|   aiAlarm, // 检测预警-AI预警 |   aiAlarm, // 监管帮扶中的隐患记录 | ||||||
|   gyAlarm // 检测预警-工艺报警优化 |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| class ApplicationPage extends StatefulWidget { | class ApplicationPage extends StatefulWidget { | ||||||
|  | @ -126,10 +124,6 @@ class _ApplicationPageState extends State<ApplicationPage> { | ||||||
|       case AppItem.aiAlarm: |       case AppItem.aiAlarm: | ||||||
|       // ai |       // ai | ||||||
|         pushPage(AiAlarmPage(), context); |         pushPage(AiAlarmPage(), context); | ||||||
|         break; |  | ||||||
|       case AppItem.gyAlarm: |  | ||||||
|         pushPage(GyAlarmPage(), context); |  | ||||||
| 
 |  | ||||||
|         break; |         break; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  | @ -170,12 +164,11 @@ class _ApplicationPageState extends State<ApplicationPage> { | ||||||
|           {'item': AppItem.acceptedRisk, 'icon': 'assets/icon-apps/icon-zl-1.png', 'title': '已验收隐患', 'num': 0}, |           {'item': AppItem.acceptedRisk, 'icon': 'assets/icon-apps/icon-zl-1.png', 'title': '已验收隐患', 'num': 0}, | ||||||
|         ], |         ], | ||||||
|       }, |       }, | ||||||
|  | 
 | ||||||
|       { |       { | ||||||
|         'title': '监测预警', |         'title': '监测预警', | ||||||
|         'list': [ |         'list': [ | ||||||
|           {'item': AppItem.aiAlarm, 'icon': 'assets/icon-apps/icon-pc-1.png', 'title': 'AI报警', 'num': 0}, |           {'item': AppItem.aiAlarm, 'icon': 'assets/icon-apps/icon-pc-1.png', 'title': 'AI报警', 'num': 0}, | ||||||
|           {'item': AppItem.gyAlarm, 'icon': 'assets/icon-apps/icon-pc-1.png', 'title': '工艺报警优化', 'num': 0}, |  | ||||||
| 
 |  | ||||||
|         ], |         ], | ||||||
|       }, |       }, | ||||||
|     ]; |     ]; | ||||||
|  |  | ||||||
|  | @ -76,20 +76,20 @@ class _DangerWaitListPageState extends State<DangerWaitListPage> { | ||||||
|   void getListData(int type,bool addList,String keyWord){ |   void getListData(int type,bool addList,String keyWord){ | ||||||
|     switch(widget.appItem  ){ |     switch(widget.appItem  ){ | ||||||
|       case 1://隐患记录 |       case 1://隐患记录 | ||||||
|         _getDangerRecord(-1,_page,"","","","","","","","",keyWord,addList,""); |         _getDangerRecord(-1,_page,"","","","","","","","",keyWord,addList); | ||||||
|         // _getListTree(); |         // _getListTree(); | ||||||
|         break; |         break; | ||||||
|       case 2://待整改隐患 |       case 2://待整改隐患 | ||||||
|         _getDangerRecord(2,_page,"","","","","","","","",keyWord,addList,""); |         _getDangerRecord(2,_page,"","","","","","","","",keyWord,addList); | ||||||
|         break; |         break; | ||||||
|       case 3://超期未整改 |       case 3://超期未整改 | ||||||
|         _getDangerRecord(5,_page,"","","","","-1","","","",keyWord,addList,""); |         _getDangerRecord(5,_page,"","","","","-1","","","",keyWord,addList); | ||||||
|         break; |         break; | ||||||
|       case 4://隐患验收 |       case 4://隐患验收 | ||||||
|         _getDangerRecord(3,_page,"","","","","","3","","",keyWord,addList,""); |         _getDangerRecord(3,_page,"","","","","","3","","",keyWord,addList); | ||||||
|         break; |         break; | ||||||
|       case 5://已验收隐患 |       case 5://已验收隐患 | ||||||
|         _getDangerRecord(4,_page,"","","","","","4","","1",keyWord,addList,""); |         _getDangerRecord(4,_page,"","","","","","4","","1",keyWord,addList); | ||||||
|         break; |         break; | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
|  | @ -133,11 +133,11 @@ class _DangerWaitListPageState extends State<DangerWaitListPage> { | ||||||
|           child:  DangerWaitDrawer( |           child:  DangerWaitDrawer( | ||||||
|              "", |              "", | ||||||
|                 onClose: (String selectedCategoryId,String selectedDepartmentId,String investigationMethodOption, |                 onClose: (String selectedCategoryId,String selectedDepartmentId,String investigationMethodOption, | ||||||
|                     String hazardLevelOption,String dangerStatusOption,String startDate,String endDate,String laiYuanId) { |                     String hazardLevelOption,String dangerStatusOption,String startDate,String endDate) { | ||||||
| 
 | 
 | ||||||
|                   _page=1; |                   _page=1; | ||||||
|                   _getDangerRecord(-1,_page,startDate,endDate,hazardLevelOption,investigationMethodOption, |                   _getDangerRecord(-1,_page,startDate,endDate,hazardLevelOption,investigationMethodOption, | ||||||
|                       dangerStatusOption,selectedCategoryId,selectedDepartmentId,"",searchKey,false,laiYuanId); |                       dangerStatusOption,selectedCategoryId,selectedDepartmentId,"",searchKey,false); | ||||||
| 
 | 
 | ||||||
|               }, |               }, | ||||||
|           ), |           ), | ||||||
|  | @ -365,7 +365,7 @@ class _DangerWaitListPageState extends State<DangerWaitListPage> { | ||||||
|   Future<void> _getDangerRecord(int type, int currentPage, |   Future<void> _getDangerRecord(int type, int currentPage, | ||||||
|       String startDate,String endDate,String level,String riskStandard,String state, |       String startDate,String endDate,String level,String riskStandard,String state, | ||||||
|       String departmentId,String correctiveDepartment, |       String departmentId,String correctiveDepartment, | ||||||
|         String isIndex,String keyWord,bool loadMore,String laiYuanId) async { |         String isIndex,String keyWord,bool loadMore) async { | ||||||
|     try { |     try { | ||||||
|       if (_isLoading) return; |       if (_isLoading) return; | ||||||
|       _isLoading = true; |       _isLoading = true; | ||||||
|  | @ -373,7 +373,7 @@ class _DangerWaitListPageState extends State<DangerWaitListPage> { | ||||||
|       LoadingDialogHelper.show(); |       LoadingDialogHelper.show(); | ||||||
|       final result = await ApiService.getHiddenTreatmentList( type,  currentPage, |       final result = await ApiService.getHiddenTreatmentList( type,  currentPage, | ||||||
|            startDate, endDate, level, riskStandard, state, |            startDate, endDate, level, riskStandard, state, | ||||||
|            departmentId, correctiveDepartment, isIndex, keyWord,laiYuanId); |            departmentId, correctiveDepartment, isIndex, keyWord); | ||||||
|       LoadingDialogHelper.hide(); |       LoadingDialogHelper.hide(); | ||||||
|       if (result['result'] == 'success') { |       if (result['result'] == 'success') { | ||||||
| 
 | 
 | ||||||
|  | @ -468,10 +468,8 @@ class _DangerWaitListPageState extends State<DangerWaitListPage> { | ||||||
|       return "隐患来源:标准排查"; |       return "隐患来源:标准排查"; | ||||||
|     }else if("4"==type){ |     }else if("4"==type){ | ||||||
|       return "隐患来源:专项检查"; |       return "隐患来源:专项检查"; | ||||||
|     }else if("5"==type){ |  | ||||||
|       return "隐患来源:安全检查"; |  | ||||||
|     }else{ |     }else{ | ||||||
|       return "隐患来源:NFC设备巡检"; |       return "隐患来源:安全检查"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | @ -1,130 +0,0 @@ | ||||||
| import 'package:flutter/material.dart'; |  | ||||||
| import 'package:qhd_prevention/customWidget/ItemWidgetFactory.dart'; |  | ||||||
| import 'package:qhd_prevention/customWidget/toast_util.dart'; |  | ||||||
| import 'package:qhd_prevention/http/ApiService.dart'; |  | ||||||
| import 'package:qhd_prevention/pages/KeyProjects/Danger/danger_list_page.dart'; |  | ||||||
| import 'package:qhd_prevention/pages/KeyProjects/KeyProject/keyProject_list_page.dart'; |  | ||||||
| import 'package:qhd_prevention/pages/KeyProjects/SafeCheck/safeCheck_list_page.dart'; |  | ||||||
| import 'package:qhd_prevention/pages/home/SafeCheck/CheckPersonSign/safeCheck_sign_list_page.dart'; |  | ||||||
| import 'package:qhd_prevention/pages/home/SafeCheck/CheckPersonSure/check_person_list_page.dart'; |  | ||||||
| import 'package:qhd_prevention/pages/home/SafeCheck/DangeCheck/safeCheck_danger_list_page.dart'; |  | ||||||
| import 'package:qhd_prevention/pages/home/SafeCheck/Record/defend_record_list_page.dart'; |  | ||||||
| import 'package:qhd_prevention/pages/home/SafeCheck/Start/safeCheck_start_list_page.dart'; |  | ||||||
| import 'package:qhd_prevention/pages/home/tap/tabList/work_tab_icon_grid.dart'; |  | ||||||
| import 'package:qhd_prevention/pages/my_appbar.dart'; |  | ||||||
| import 'package:qhd_prevention/tools/tools.dart'; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class GyAlarmPage extends StatefulWidget { |  | ||||||
|   const GyAlarmPage({super.key}); |  | ||||||
| 
 |  | ||||||
|   @override |  | ||||||
|   State<GyAlarmPage> createState() => _GyAlarmPageState(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| class _GyAlarmPageState extends State<GyAlarmPage> { |  | ||||||
|   late List<Map<String, dynamic>> buttonInfos = [ |  | ||||||
|     { |  | ||||||
|       "icon": "assets/icon-apps/icon-yxkj-1.png", |  | ||||||
|       "title": "已检查", |  | ||||||
|       "unreadCount": '0', |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "icon": "assets/icon-apps/icon-yxkj-4.png", |  | ||||||
|       "title": "未检查", |  | ||||||
|       "unreadCount": '0', |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "icon": "assets/icon-apps/icon-yxkj-2.png", |  | ||||||
|       "title": "已完成", |  | ||||||
|       "unreadCount":'0', |  | ||||||
|     }, |  | ||||||
| 
 |  | ||||||
|   ]; |  | ||||||
| 
 |  | ||||||
|   @override |  | ||||||
|   void initState() { |  | ||||||
|     super.initState(); |  | ||||||
|     // _getData(); |  | ||||||
|   } |  | ||||||
|   // Future<void> _getData() async { |  | ||||||
|   //   final data = await ApiService.getSafeCheckCount(); |  | ||||||
|   //   setState(() { |  | ||||||
|   //     final checkedCount = data['checkedCount']['checkedCount'] ?? ''; |  | ||||||
|   //     final repulseAndCheckCount = data['repulseAndCheckCount']['repulseAndCheckCount'] ?? ''; |  | ||||||
|   //     final confirmCount = data['confirmCount']['confirmCount'] ?? ''; |  | ||||||
|   //     final repulseCount = data['repulseCount']['repulseCount'] ?? ''; |  | ||||||
|   // |  | ||||||
|   //     buttonInfos = [ |  | ||||||
|   //       { |  | ||||||
|   //         "icon": "assets/icon-apps/icon-yxkj-1.png", |  | ||||||
|   //         "title": "安全检查\n发起", |  | ||||||
|   //         "unreadCount": repulseCount, |  | ||||||
|   //       }, |  | ||||||
|   //       { |  | ||||||
|   //         "icon": "assets/icon-apps/icon-yxkj-4.png", |  | ||||||
|   //         "title": "检查人\n确认", |  | ||||||
|   //         "unreadCount": confirmCount, |  | ||||||
|   //       }, |  | ||||||
|   //       { |  | ||||||
|   //         "icon": "assets/icon-apps/icon-yxkj-2.png", |  | ||||||
|   //         "title": "被检查人\n签字/申辩", |  | ||||||
|   //         "unreadCount":checkedCount, |  | ||||||
|   //       }, |  | ||||||
|   //       { |  | ||||||
|   //         "icon": "assets/icon-apps/icon-yxkj-2.png", |  | ||||||
|   //         "title": "隐患指派\n及验收", |  | ||||||
|   //         "unreadCount":repulseAndCheckCount, |  | ||||||
|   //       }, |  | ||||||
|   //       { |  | ||||||
|   //         "icon": "assets/icon-apps/icon-yxkj-2.png", |  | ||||||
|   //         "title": "申辩记录", |  | ||||||
|   //         "unreadCount":'0', |  | ||||||
|   //       }, |  | ||||||
|   // |  | ||||||
|   //     ]; |  | ||||||
|   //   }); |  | ||||||
|   // } |  | ||||||
|   void _handleItemPressed(int index) async { |  | ||||||
|     // 根据索引执行不同的导航逻辑 |  | ||||||
|     String title = ''; |  | ||||||
|     switch (index) { |  | ||||||
|       case 0: { |  | ||||||
|         title = '安全检查发起'; |  | ||||||
|         // await pushPage(SafecheckStartListPage(flow: title), context); |  | ||||||
|       } break; |  | ||||||
|       case 1: { |  | ||||||
|         title = '安全检查核实'; |  | ||||||
|         // await pushPage(CheckPersonListPage(flow: title), context); |  | ||||||
| 
 |  | ||||||
|       } break; |  | ||||||
|       case 2: { |  | ||||||
|         title = '安全检查确认'; |  | ||||||
|         // await pushPage(SafecheckSignListPage(flow: title), context); |  | ||||||
| 
 |  | ||||||
|       } break; |  | ||||||
|       default: |  | ||||||
|         print("按钮 $index 被点击"); |  | ||||||
|     } |  | ||||||
|     ToastUtil.showNormal(context, '开发中'); |  | ||||||
|     // _getData(); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   @override |  | ||||||
|   Widget build(BuildContext context) { |  | ||||||
|     return Scaffold( |  | ||||||
|       appBar: MyAppbar(title: '工艺报警优化'), |  | ||||||
|       body: SafeArea( |  | ||||||
|           child: Column( |  | ||||||
|             children: [ |  | ||||||
|               ListItemFactory.createBuildSimpleSection('工艺报警优化'), |  | ||||||
|               WorkTabIconGrid( |  | ||||||
|                 buttonInfos: buttonInfos, |  | ||||||
|                 onItemPressed: _handleItemPressed, |  | ||||||
|               ), |  | ||||||
|             ], |  | ||||||
|           ) |  | ||||||
|       ), |  | ||||||
|     ); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  | @ -690,8 +690,8 @@ class _HiddenDangerAcceptancePageState extends State<HiddenDangerAcceptancePage> | ||||||
|   String _getSourceText(String? source) { |   String _getSourceText(String? source) { | ||||||
|     switch (source) { |     switch (source) { | ||||||
|       case '1': return '隐患快报'; |       case '1': return '隐患快报'; | ||||||
|       case '2': return '隐患排查'; |       case '2': return '隐患排查清单检查'; | ||||||
|       case '3': return '标准排查'; |       case '3': return '标准排查清单检查'; | ||||||
|       case '4': return '专项检查'; |       case '4': return '专项检查'; | ||||||
|       case '5': return '安全检查'; |       case '5': return '安全检查'; | ||||||
|       case '6': return 'NFC设备巡检'; |       case '6': return 'NFC设备巡检'; | ||||||
|  |  | ||||||
|  | @ -496,8 +496,8 @@ class _HiddenRecordDetailPageState extends State<HiddenRecordDetailPage> { | ||||||
| 
 | 
 | ||||||
|     switch (source) { |     switch (source) { | ||||||
|       case '1': return '隐患快报'; |       case '1': return '隐患快报'; | ||||||
|       case '2': return '隐患排查'; |       case '2': return '隐患排查清单检查'; | ||||||
|       case '3': return '标准排查'; |       case '3': return '标准排查清单检查'; | ||||||
|       case '4': return '专项检查'; |       case '4': return '专项检查'; | ||||||
|       case '5': return '安全检查'; |       case '5': return '安全检查'; | ||||||
|       case '6': return 'NFC设备巡检'; |       case '6': return 'NFC设备巡检'; | ||||||
|  |  | ||||||
|  | @ -787,8 +787,8 @@ class _PendingRectificationDetailPageState extends State<PendingRectificationDet | ||||||
|   String _getSourceText(String? source) { |   String _getSourceText(String? source) { | ||||||
|     switch (source) { |     switch (source) { | ||||||
|       case '1': return '隐患快报'; |       case '1': return '隐患快报'; | ||||||
|       case '2': return '隐患排查'; |       case '2': return '隐患排查清单检查'; | ||||||
|       case '3': return '标准排查'; |       case '3': return '标准排查清单检查'; | ||||||
|       case '4': return '专项检查'; |       case '4': return '专项检查'; | ||||||
|       case '5': return '安全检查'; |       case '5': return '安全检查'; | ||||||
|       case '6': return 'NFC设备巡检'; |       case '6': return 'NFC设备巡检'; | ||||||
|  |  | ||||||
|  | @ -1,12 +1,15 @@ | ||||||
| import 'dart:convert'; | import 'dart:convert'; | ||||||
|  | import 'dart:ffi'; | ||||||
| 
 | 
 | ||||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||||
| import 'package:qhd_prevention/customWidget/bottom_picker.dart'; | import 'package:qhd_prevention/customWidget/bottom_picker.dart'; | ||||||
| import 'package:qhd_prevention/customWidget/custom_alert_dialog.dart'; | import 'package:qhd_prevention/customWidget/custom_alert_dialog.dart'; | ||||||
| import 'package:qhd_prevention/customWidget/custom_button.dart'; | import 'package:qhd_prevention/customWidget/custom_button.dart'; | ||||||
|  | import 'package:qhd_prevention/customWidget/department_person_picker.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/pages/home/tap/item_list_widget.dart'; | import 'package:qhd_prevention/pages/home/tap/item_list_widget.dart'; | ||||||
|  | import 'package:qhd_prevention/pages/home/work_alert.dart'; | ||||||
| import 'package:qhd_prevention/pages/my_appbar.dart'; | import 'package:qhd_prevention/pages/my_appbar.dart'; | ||||||
| import 'package:qhd_prevention/services/nfc_service.dart'; | import 'package:qhd_prevention/services/nfc_service.dart'; | ||||||
| import 'package:qhd_prevention/tools/tools.dart'; | import 'package:qhd_prevention/tools/tools.dart'; | ||||||
|  |  | ||||||
|  | @ -247,16 +247,13 @@ class _SafetyCommitmentDhListState extends State<SafetyCommitmentDhList> { | ||||||
|                 ), |                 ), | ||||||
|               ), |               ), | ||||||
|               const SizedBox(height: 8), |               const SizedBox(height: 8), | ||||||
|                    Text('承诺时间: ${item['START_TIME']??""}-${item['END_TIME']??""}'), |               Row( | ||||||
|               const SizedBox(height: 5), |                 mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||||||
|  |                 children: [ | ||||||
|  |                   Text('承诺时间: ${item['SIGN_TIME']??""}'), | ||||||
|                   Text('承诺人: ${item['SIGN_USER_NAME']??""}'), |                   Text('承诺人: ${item['SIGN_USER_NAME']??""}'), | ||||||
|               // Row( |                 ], | ||||||
|               //   mainAxisAlignment: MainAxisAlignment.spaceBetween, |               ), | ||||||
|               //   children: [ |  | ||||||
|               //     Text('承诺时间: ${item['SIGN_TIME']??""}'), |  | ||||||
|               //     Text('承诺人: ${item['SIGN_USER_NAME']??""}'), |  | ||||||
|               //   ], |  | ||||||
|               // ), |  | ||||||
|             ], |             ], | ||||||
|           ), |           ), | ||||||
|         ), |         ), | ||||||
|  |  | ||||||
|  | @ -42,14 +42,12 @@ class HomePage extends StatefulWidget { | ||||||
| class HomePageState extends State<HomePage> { | class HomePageState extends State<HomePage> { | ||||||
|   int _eight_work_count = 0; |   int _eight_work_count = 0; | ||||||
|   int _safetyEnvironmentalInspection = 0; |   int _safetyEnvironmentalInspection = 0; | ||||||
| 
 |  | ||||||
|   void startScan() { |   void startScan() { | ||||||
|     Navigator.push( |     Navigator.push( | ||||||
|       context, |       context, | ||||||
|       MaterialPageRoute(builder: (_) => ScanPage(totalList: totalList)), |       MaterialPageRoute(builder: (_) => ScanPage(totalList: totalList)), | ||||||
|     ); |     ); | ||||||
|   } |   } | ||||||
| 
 |  | ||||||
|   // 缓存 key |   // 缓存 key | ||||||
|   static const String _hiddenCacheKey = 'hidden_roll_cache'; |   static const String _hiddenCacheKey = 'hidden_roll_cache'; | ||||||
| 
 | 
 | ||||||
|  | @ -69,9 +67,7 @@ class HomePageState extends State<HomePage> { | ||||||
|         return ''; |         return ''; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 |  | ||||||
|   List totalList = []; |   List totalList = []; | ||||||
| 
 |  | ||||||
|   /// 按钮信息 |   /// 按钮信息 | ||||||
|   List<Map<String, dynamic>> buttonInfos = [ |   List<Map<String, dynamic>> buttonInfos = [ | ||||||
|     { |     { | ||||||
|  | @ -121,7 +117,7 @@ class HomePageState extends State<HomePage> { | ||||||
|       "title": "安全例会", |       "title": "安全例会", | ||||||
|       "unreadCount": 0, |       "unreadCount": 0, | ||||||
|     }, |     }, | ||||||
|     {"icon": "assets/icon-apps/home-xj.png", "title": "燃气巡检", "unreadCount": 0}, |     // {"icon": "assets/icon-apps/home-xj.png", "title": "燃气巡检", "unreadCount": 0}, | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   /// 我的工作 |   /// 我的工作 | ||||||
|  | @ -190,12 +186,14 @@ class HomePageState extends State<HomePage> { | ||||||
|     // 使用初始化加载:先恢复缓存(若存在则直接显示),然后再发起网络请求(成功则覆盖缓存) |     // 使用初始化加载:先恢复缓存(若存在则直接显示),然后再发起网络请求(成功则覆盖缓存) | ||||||
|     BadgeManager().initAllModules(); |     BadgeManager().initAllModules(); | ||||||
|     _initialLoad(); |     _initialLoad(); | ||||||
|  | 
 | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /// 首次加载:先恢复缓存(如果有),然后在后台去刷新(只有当无缓存时才显示 loading) |   /// 首次加载:先恢复缓存(如果有),然后在后台去刷新(只有当无缓存时才显示 loading) | ||||||
|   Future<void> _initialLoad() async { |   Future<void> _initialLoad() async { | ||||||
|     final result = await AuthService.checkUpdate(); |     final result = await AuthService.checkUpdate(); | ||||||
|     try { |     try{ | ||||||
|  | 
 | ||||||
|       if (FormUtils.hasValue(result, 'pd')) { |       if (FormUtils.hasValue(result, 'pd')) { | ||||||
|         Map pd = result['pd']; |         Map pd = result['pd']; | ||||||
|         final versionInfo = await getAppVersion(); |         final versionInfo = await getAppVersion(); | ||||||
|  | @ -203,28 +201,28 @@ class HomePageState extends State<HomePage> { | ||||||
|         if (versionInfo.versionName != pd['VERSION']) { |         if (versionInfo.versionName != pd['VERSION']) { | ||||||
|           //有更新 提示更新 |           //有更新 提示更新 | ||||||
|           final ok = await CustomAlertDialog.showConfirm( |           final ok = await CustomAlertDialog.showConfirm( | ||||||
|             context, |               context, | ||||||
|             barrierDismissible: false, |               barrierDismissible:false, | ||||||
|             title: '更新通知', |               title: '更新通知', | ||||||
|             content: |               content: isWifi ? '发现新版本,是否更新?为了更好的体验,请更新到最新版本。' : '发现新版本,检查到您当前使用的是移动网络,是否更新?更新时请注意流量消耗。为了更好的体验,请更新到最新版本。', | ||||||
|                 isWifi |               cancelText: pd['ISUPDATE'] == '1' ? '' : '稍后更新', | ||||||
|                     ? '发现新版本,是否更新?为了更好的体验,请更新到最新版本。' |               confirmText: '立即更新' | ||||||
|                     : '发现新版本,检查到您当前使用的是移动网络,是否更新?更新时请注意流量消耗。为了更好的体验,请更新到最新版本。', |  | ||||||
|             cancelText: pd['ISUPDATE'] == '1' ? '' : '稍后更新', |  | ||||||
|             confirmText: '立即更新', |  | ||||||
|           ); |           ); | ||||||
|           if (ok) { |           if (ok) { | ||||||
|             if (Platform.isIOS) { |             if (Platform.isIOS) { | ||||||
|               openAppStore(); |               openAppStore(); | ||||||
|             } else { |             }else{ | ||||||
|               final apkUrl = pd['FILEURL'] ?? ''; |               final apkUrl = pd['FILEURL'] ?? ''; | ||||||
|               await showUpdateConfirm(context, apkUrl: apkUrl); |               await showUpdateConfirm(context, apkUrl: apkUrl); | ||||||
|             } |             } | ||||||
|  | 
 | ||||||
|           } |           } | ||||||
|           return; |           return; | ||||||
|         } |         } | ||||||
|  | 
 | ||||||
|       } |       } | ||||||
|     } catch (_) {} |     }catch(_){} | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|     final corppromiseData = await ApiService.checkSafeCorppromise(); |     final corppromiseData = await ApiService.checkSafeCorppromise(); | ||||||
|     if (corppromiseData['ISSIGN'] == 1) { |     if (corppromiseData['ISSIGN'] == 1) { | ||||||
|  | @ -234,6 +232,7 @@ class HomePageState extends State<HomePage> { | ||||||
|         title: '温馨提示', |         title: '温馨提示', | ||||||
|         content: '有未签署的安全承诺,点击确认前往签署', |         content: '有未签署的安全承诺,点击确认前往签署', | ||||||
|         force: true, |         force: true, | ||||||
|  | 
 | ||||||
|       ); |       ); | ||||||
|       if (confirmed) { |       if (confirmed) { | ||||||
|         Navigator.pushReplacement( |         Navigator.pushReplacement( | ||||||
|  | @ -244,11 +243,10 @@ class HomePageState extends State<HomePage> { | ||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     _loadHiddenCache(); |      _loadHiddenCache(); | ||||||
|     // 拉取其他数据 + 隐患列表(当 hiddenList 为空时显示 loading,否则不显示) |     // 拉取其他数据 + 隐患列表(当 hiddenList 为空时显示 loading,否则不显示) | ||||||
|     _fetchData(); |     _fetchData(); | ||||||
|     _fetchHiddenList(showLoading: hiddenList.isEmpty); |    _fetchHiddenList(showLoading: hiddenList.isEmpty); | ||||||
| 
 |  | ||||||
|     /// 清单列表 |     /// 清单列表 | ||||||
|     final data = await ApiService.getListData(); |     final data = await ApiService.getListData(); | ||||||
|     if (data['result'] == 'success') { |     if (data['result'] == 'success') { | ||||||
|  | @ -580,6 +578,7 @@ class HomePageState extends State<HomePage> { | ||||||
|                       pushPage(HomeNfcListPage(), context); |                       pushPage(HomeNfcListPage(), context); | ||||||
|                       break; |                       break; | ||||||
|                   } |                   } | ||||||
|  | 
 | ||||||
|                 }, |                 }, | ||||||
|               ); |               ); | ||||||
|             }).toList(), |             }).toList(), | ||||||
|  | @ -720,9 +719,9 @@ class HomePageState extends State<HomePage> { | ||||||
|       onTap: () async { |       onTap: () async { | ||||||
|         if (index == 1) { |         if (index == 1) { | ||||||
|           LoadingDialogHelper.show(); |           LoadingDialogHelper.show(); | ||||||
|           bool isRest = await _getIsRest(); |           bool isRest= await _getIsRest(); | ||||||
|           LoadingDialogHelper.hide(); |           LoadingDialogHelper.hide(); | ||||||
|           if (isRest) { |           if(isRest){ | ||||||
|             ToastUtil.showNormal(context, "您已经处于离岗状态中"); |             ToastUtil.showNormal(context, "您已经处于离岗状态中"); | ||||||
|             return; |             return; | ||||||
|           } |           } | ||||||
|  | @ -776,16 +775,17 @@ class HomePageState extends State<HomePage> { | ||||||
|     ); |     ); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   Future<bool> _getIsRest() async { | 
 | ||||||
|  |   Future<bool> _getIsRest( )async { | ||||||
|     try { |     try { | ||||||
|       final raw = await ApiService.getIsRest(); |       final raw = await ApiService.getIsRest(); | ||||||
|       if (raw['result'] == 'success') { |       if (raw['result'] == 'success') { | ||||||
|         if (raw['ISREST'] == "1") { |         if(  raw['ISREST']=="1"){ | ||||||
|           return true; |           return true; | ||||||
|         } else { |         }else{ | ||||||
|           return false; |           return false; | ||||||
|         } |         } | ||||||
|       } else { |       }else{ | ||||||
|         return false; |         return false; | ||||||
|       } |       } | ||||||
|     } catch (e) { |     } catch (e) { | ||||||
|  | @ -794,4 +794,5 @@ class HomePageState extends State<HomePage> { | ||||||
|       return false; |       return false; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1623,7 +1623,7 @@ class ConfirmWithSignWidget extends StatelessWidget { | ||||||
|     this.isShowTime = true, |     this.isShowTime = true, | ||||||
|   }) : super(key: key); |   }) : super(key: key); | ||||||
| 
 | 
 | ||||||
|   // 允许外部传入 null({}但构建内部会降级为 ,避免空异常) |   // 允许外部传入 null(但构建内部会降级为 {},避免空异常) | ||||||
|   final Map<String, dynamic>? signs; |   final Map<String, dynamic>? signs; | ||||||
|   final Map<String, dynamic>? pd; |   final Map<String, dynamic>? pd; | ||||||
|   final String baseImgPath; |   final String baseImgPath; | ||||||
|  |  | ||||||
|  | @ -322,7 +322,7 @@ spacing: 12, | ||||||
|                         if (picked != null) { |                         if (picked != null) { | ||||||
|                           setState(() { |                           setState(() { | ||||||
|                             endTime = DateFormat( |                             endTime = DateFormat( | ||||||
|                               'yyyy-MM-dd HH:mm:ss', |                               'yyyy-MM-dd HH:mm', | ||||||
|                             ).format(picked); |                             ).format(picked); | ||||||
|                           }); |                           }); | ||||||
|                         } |                         } | ||||||
|  |  | ||||||
|  | @ -261,7 +261,7 @@ if (reasonText.isEmpty) { | ||||||
|   @override |   @override | ||||||
|   Widget build(BuildContext context) { |   Widget build(BuildContext context) { | ||||||
|     return Scaffold( |     return Scaffold( | ||||||
|       appBar: MyAppbar(title: '吊装作业人意见'), |       appBar: MyAppbar(title: '作业人意见'), | ||||||
|       body: SafeArea( |       body: SafeArea( | ||||||
|         child: SingleChildScrollView( |         child: SingleChildScrollView( | ||||||
|           padding: EdgeInsets.all(12), |           padding: EdgeInsets.all(12), | ||||||
|  | @ -285,7 +285,7 @@ if (reasonText.isEmpty) { | ||||||
|                         Row( |                         Row( | ||||||
|                           mainAxisAlignment: MainAxisAlignment.spaceBetween, |                           mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||||||
|                           children: [ |                           children: [ | ||||||
|                             ListItemFactory.headerTitle('吊装作业人'), |                             ListItemFactory.headerTitle('作业人'), | ||||||
|                             CustomButton( |                             CustomButton( | ||||||
|                               text: '新增手写签字', |                               text: '新增手写签字', | ||||||
|                               height: 36, |                               height: 36, | ||||||
|  |  | ||||||
|  | @ -31,10 +31,6 @@ class DangerWaitBean { | ||||||
|   final String itemNameOne; |   final String itemNameOne; | ||||||
|   final String itemNameTwo; |   final String itemNameTwo; | ||||||
| 
 | 
 | ||||||
|   final String laiYuanId; |  | ||||||
|   final String laiYuanName; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|   DangerWaitBean({ |   DangerWaitBean({ | ||||||
|     required this.selectedCategoryId, |     required this.selectedCategoryId, | ||||||
|     required this.selectedDepartmentId, |     required this.selectedDepartmentId, | ||||||
|  | @ -47,8 +43,7 @@ class DangerWaitBean { | ||||||
|     required this.endTime, |     required this.endTime, | ||||||
|     required this.itemNameOne, |     required this.itemNameOne, | ||||||
|     required this.itemNameTwo, |     required this.itemNameTwo, | ||||||
|     required this.laiYuanId, | 
 | ||||||
|     required this.laiYuanName, |  | ||||||
| 
 | 
 | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|  | @ -59,7 +54,6 @@ class DangerWaitBean { | ||||||
| 
 | 
 | ||||||
|       String startTime,String endTime, |       String startTime,String endTime, | ||||||
|       String itemNameOne,String itemNameTwo, |       String itemNameOne,String itemNameTwo, | ||||||
|       String laiYuanId,String laiYuanName, |  | ||||||
|       ) { |       ) { | ||||||
|     return DangerWaitBean( |     return DangerWaitBean( | ||||||
|       selectedCategoryId:selectedCategoryId, |       selectedCategoryId:selectedCategoryId, | ||||||
|  | @ -73,8 +67,6 @@ class DangerWaitBean { | ||||||
|       endTime:endTime, |       endTime:endTime, | ||||||
|       itemNameOne:itemNameOne, |       itemNameOne:itemNameOne, | ||||||
|       itemNameTwo:itemNameTwo, |       itemNameTwo:itemNameTwo, | ||||||
|       laiYuanId:laiYuanId, |  | ||||||
|       laiYuanName:laiYuanName, |  | ||||||
| 
 | 
 | ||||||
|     ); |     ); | ||||||
|   } |   } | ||||||
|  | @ -84,7 +76,7 @@ class DangerWaitBean { | ||||||
|     "investigationMethodOption":investigationMethodOption,"investigationMethodId":investigationMethodId, |     "investigationMethodOption":investigationMethodOption,"investigationMethodId":investigationMethodId, | ||||||
|     "hazardLevelOption":hazardLevelOption,"dangerStatusOption":dangerStatusOption, |     "hazardLevelOption":hazardLevelOption,"dangerStatusOption":dangerStatusOption, | ||||||
|     "startTime":startTime,"endTime":endTime, |     "startTime":startTime,"endTime":endTime, | ||||||
|     "itemNameOne":itemNameOne,"itemNameTwo":itemNameTwo,"laiYuanId":laiYuanId,"laiYuanName":laiYuanName,}; |     "itemNameOne":itemNameOne,"itemNameTwo":itemNameTwo,}; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | @ -93,7 +85,7 @@ class DangerWaitBean { | ||||||
| class DangerWaitDrawer extends StatefulWidget { | class DangerWaitDrawer extends StatefulWidget { | ||||||
|   const DangerWaitDrawer(this.treeJson,  {super.key,required this.onClose}); |   const DangerWaitDrawer(this.treeJson,  {super.key,required this.onClose}); | ||||||
| 
 | 
 | ||||||
|   final Function(String,String,String,String,String,String,String,String) onClose; // 回调函数 |   final Function(String,String,String,String,String,String,String) onClose; // 回调函数 | ||||||
|   final String treeJson; |   final String treeJson; | ||||||
|   // final DangerWaitBean waitBean; |   // final DangerWaitBean waitBean; | ||||||
| 
 | 
 | ||||||
|  | @ -131,12 +123,6 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> { | ||||||
|   String itemNameOne="请选择"; |   String itemNameOne="请选择"; | ||||||
|   String itemNameTwo="请选择"; |   String itemNameTwo="请选择"; | ||||||
| 
 | 
 | ||||||
|   //隐患来源: |  | ||||||
|   List<WaitListBean> laiYuanList =[]; |  | ||||||
| 
 |  | ||||||
|   String laiYuanId=""; |  | ||||||
|   String laiYuanName="请选择"; |  | ||||||
| 
 |  | ||||||
|   // 转换为List<Map<String, dynamic>> |   // 转换为List<Map<String, dynamic>> | ||||||
|   late List<Map<String, dynamic>> departmentList ; |   late List<Map<String, dynamic>> departmentList ; | ||||||
| 
 | 
 | ||||||
|  | @ -145,7 +131,6 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> { | ||||||
|   final List<String> investigationMethod = ["风险排查隐患", "隐患排查隐患"]; |   final List<String> investigationMethod = ["风险排查隐患", "隐患排查隐患"]; | ||||||
|   final List<String> hazardLevel = ["    一般风险    ", "    重大风险    "]; |   final List<String> hazardLevel = ["    一般风险    ", "    重大风险    "]; | ||||||
|   final List<String> dangerStatus = ["未整改", "已整改", "已验收", "已过期"]; |   final List<String> dangerStatus = ["未整改", "已整改", "已验收", "已过期"]; | ||||||
|   final List<String> laiYuanStatus = ["隐患快报", "隐患排查", "标准排查", "专项检查", "安全检查", "NFC设备巡检"]; |  | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   void initState() { |   void initState() { | ||||||
|  | @ -177,8 +162,6 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> { | ||||||
|           } |           } | ||||||
|           itemNameOne= dangerWaitBean["itemNameOne"]; |           itemNameOne= dangerWaitBean["itemNameOne"]; | ||||||
|           itemNameTwo= dangerWaitBean["itemNameTwo"]; |           itemNameTwo= dangerWaitBean["itemNameTwo"]; | ||||||
|           laiYuanId= dangerWaitBean["laiYuanId"]; |  | ||||||
|           laiYuanName= dangerWaitBean["laiYuanName"]; |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -186,16 +169,6 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> { | ||||||
|         print("解析失败: $e"); |         print("解析失败: $e"); | ||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|       //隐患来源数据处理 |  | ||||||
|       // setState(() { |  | ||||||
|       //   for(int i=0;i<laiYuanStatus.length;i++){ |  | ||||||
|       //     WaitListBean waitListBean=WaitListBean(id: "${i+1}", name: laiYuanStatus[i], parentId: ""); |  | ||||||
|       //     laiYuanList.add(waitListBean); |  | ||||||
|       //   } |  | ||||||
|       // }); |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|       // // 解析JSON字符串 |       // // 解析JSON字符串 | ||||||
|       // jsonList = json.decode(widget.treeJson); |       // jsonList = json.decode(widget.treeJson); | ||||||
|       // departmentList = List<Map<String, dynamic>>.from(jsonList); |       // departmentList = List<Map<String, dynamic>>.from(jsonList); | ||||||
|  | @ -288,27 +261,6 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> { | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // 隐患来源显示分类选择器 |  | ||||||
|     void showCategoryPickerTwo() { |  | ||||||
|       showModalBottomSheet( |  | ||||||
|         context: context, |  | ||||||
|         isScrollControlled: true, |  | ||||||
|         barrierColor: Colors.black54, |  | ||||||
|         backgroundColor: Colors.transparent, |  | ||||||
|         builder: (ctx) => WaitListPicker( |  | ||||||
|           data: laiYuanList, |  | ||||||
|           onSelected: (item) { |  | ||||||
|             setState(() { |  | ||||||
|                laiYuanId=item!.id; |  | ||||||
|                laiYuanName=item!.name; |  | ||||||
|               setResult(); |  | ||||||
|             }); |  | ||||||
|           }, |  | ||||||
|         ), |  | ||||||
|       ); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|     return SafeArea( |     return SafeArea( | ||||||
|       child: |       child: | ||||||
|         SingleChildScrollView( // 添加这一行 |         SingleChildScrollView( // 添加这一行 | ||||||
|  | @ -362,18 +314,6 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> { | ||||||
|               // }, |               // }, | ||||||
|             ), |             ), | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|             // const SizedBox(height: 6), |  | ||||||
|             // // 管控部门 |  | ||||||
|             // _buildDropdownBox( |  | ||||||
|             //     "隐患来源", |  | ||||||
|             //     display: laiYuanName ?? '请选择', |  | ||||||
|             //     onTap: () { |  | ||||||
|             //       showCategoryPickerTwo(); |  | ||||||
|             //     } |  | ||||||
|             // ), |  | ||||||
| 
 |  | ||||||
|             const SizedBox(height: 12), |             const SizedBox(height: 12), | ||||||
|             const Text( |             const Text( | ||||||
|               "排查方式", |               "排查方式", | ||||||
|  | @ -395,8 +335,6 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> { | ||||||
|                 itemCount: investigationMethod.length, |                 itemCount: investigationMethod.length, | ||||||
|                 itemBuilder: _itemGridviewItem |                 itemBuilder: _itemGridviewItem | ||||||
|             ), |             ), | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|             // Row( |             // Row( | ||||||
|             //   mainAxisAlignment: MainAxisAlignment.spaceBetween, |             //   mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||||||
|             //   children: List.generate(investigationMethod.length, (idx) { |             //   children: List.generate(investigationMethod.length, (idx) { | ||||||
|  | @ -570,9 +508,6 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> { | ||||||
|                         itemNameOne="请选择"; |                         itemNameOne="请选择"; | ||||||
|                         itemNameTwo="请选择"; |                         itemNameTwo="请选择"; | ||||||
| 
 | 
 | ||||||
|                         laiYuanId=""; |  | ||||||
|                         laiYuanName="请选择"; |  | ||||||
| 
 |  | ||||||
|                         setResult(); |                         setResult(); | ||||||
|                         // widget.onClose("","","","","","",""); |                         // widget.onClose("","","","","","",""); | ||||||
| 
 | 
 | ||||||
|  | @ -763,9 +698,7 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> { | ||||||
|         _selectedCategoryId ?? "", _selectedDepartmentId?? "", |         _selectedCategoryId ?? "", _selectedDepartmentId?? "", | ||||||
|         _investigationMethodOption,investigationMethodId, |         _investigationMethodOption,investigationMethodId, | ||||||
|         _hazardLevelOption, _dangerStatusOption, |         _hazardLevelOption, _dangerStatusOption, | ||||||
|         startTime, endTime,itemNameOne, itemNameTwo,laiYuanId,laiYuanName); |         startTime, endTime,itemNameOne, itemNameTwo); | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
|     String jsonString = jsonEncode(waitBean.toJson()); |     String jsonString = jsonEncode(waitBean.toJson()); | ||||||
|     SessionService.instance.setDangerWaitInfo(jsonString); |     SessionService.instance.setDangerWaitInfo(jsonString); | ||||||
|  | @ -778,7 +711,6 @@ class DangerWaitDrawerState extends State<DangerWaitDrawer> { | ||||||
|       _dangerStatusOption!=-1?dangerStatusId[_dangerStatusOption]:"", |       _dangerStatusOption!=-1?dangerStatusId[_dangerStatusOption]:"", | ||||||
|       _startDate!=null?startTime:"", |       _startDate!=null?startTime:"", | ||||||
|       _endDate!=null?endTime:"", |       _endDate!=null?endTime:"", | ||||||
|       laiYuanId?? "" |  | ||||||
|     ); // 触发回调 |     ); // 触发回调 | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -53,7 +53,7 @@ class _MineDutyDetailPage extends State<MineDutyDetailPage> { | ||||||
| 
 | 
 | ||||||
|             // 申请人信息 |             // 申请人信息 | ||||||
|             if (widget.item["REVIEW_STATUS"] != '2') |             if (widget.item["REVIEW_STATUS"] != '2') | ||||||
|               _buildInfoRowTwo("审批人:",  "${FormUtils.hasValue(widget.item, "REVIEW_USER_NAME") ? widget.item["REVIEW_USER_NAME"] : "无"}${FormUtils.hasValue(widget.item, "REVIEW_USER_DEPARTMENTNAME") ? "[${widget.item["REVIEW_USER_DEPARTMENTNAME"]}]": ""}",), |               _buildInfoRowTwo("审批人:",  "${FormUtils.hasValue(widget.item, "REVIEW_USER_NAME") ? widget.item["REVIEW_USER_NAME"] : "unfind"}[${FormUtils.hasValue(widget.item, "REVIEW_USER_DEPARTMENTNAME") ? widget.item["REVIEW_USER_DEPARTMENTNAME"] : "unfind"}]",), | ||||||
|               // Container( |               // Container( | ||||||
|               //   padding: const EdgeInsets.symmetric( |               //   padding: const EdgeInsets.symmetric( | ||||||
|               //     horizontal: 5, |               //     horizontal: 5, | ||||||
|  |  | ||||||
|  | @ -1,3 +1,5 @@ | ||||||
|  | import 'dart:ffi'; | ||||||
|  | 
 | ||||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||||
| 
 | 
 | ||||||
| import 'h_colors.dart'; | import 'h_colors.dart'; | ||||||
|  |  | ||||||
|  | @ -1,3 +1,4 @@ | ||||||
|  | import 'dart:ffi'; | ||||||
| import 'dart:ui'; | import 'dart:ui'; | ||||||
| 
 | 
 | ||||||
| import 'package:flutter_baidu_mapapi_base/flutter_baidu_mapapi_base.dart'; | import 'package:flutter_baidu_mapapi_base/flutter_baidu_mapapi_base.dart'; | ||||||
|  |  | ||||||
|  | @ -1,33 +0,0 @@ | ||||||
| // lib/utils/platform_utils.dart |  | ||||||
| import 'package:flutter/foundation.dart' show kIsWeb, defaultTargetPlatform, TargetPlatform; |  | ||||||
| 
 |  | ||||||
| /// 简单的跨平台判断工具,避免在 web 上引用 dart:io |  | ||||||
| class PlatformUtils { |  | ||||||
|   /// 是否在浏览器 |  | ||||||
|   static bool get isWeb => kIsWeb; |  | ||||||
| 
 |  | ||||||
|   /// 是否为 iOS(注意:在 web 上会返回 false) |  | ||||||
|   static bool get isIOS => !kIsWeb && defaultTargetPlatform == TargetPlatform.iOS; |  | ||||||
| 
 |  | ||||||
|   /// 是否为 Android(在 web 上会返回 false) |  | ||||||
|   static bool get isAndroid => !kIsWeb && defaultTargetPlatform == TargetPlatform.android; |  | ||||||
| 
 |  | ||||||
|   /// 返回一个简单的操作系统标识字符串(web 会返回 'web') |  | ||||||
|   static String get operatingSystem { |  | ||||||
|     if (kIsWeb) return 'web'; |  | ||||||
|     switch (defaultTargetPlatform) { |  | ||||||
|       case TargetPlatform.android: |  | ||||||
|         return 'android'; |  | ||||||
|       case TargetPlatform.iOS: |  | ||||||
|         return 'ios'; |  | ||||||
|       case TargetPlatform.macOS: |  | ||||||
|         return 'macos'; |  | ||||||
|       case TargetPlatform.linux: |  | ||||||
|         return 'linux'; |  | ||||||
|       case TargetPlatform.windows: |  | ||||||
|         return 'windows'; |  | ||||||
|       case TargetPlatform.fuchsia: |  | ||||||
|         return 'fuchsia'; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
		Loading…
	
		Reference in New Issue