Merge remote-tracking branch 'origin/main'

main
hs 2025-08-11 17:40:07 +08:00
commit a2f1e1fdef
8 changed files with 338 additions and 279 deletions

View File

@ -2266,7 +2266,7 @@ U6Hzm1ninpWeE+awIDAQAB
static Future<Map<String, dynamic>> getTemporaryStorageOfHiddenYinHuan(String id) { static Future<Map<String, dynamic>> getTemporaryStorageOfHiddenYinHuan(String id) {
return HttpManager().request( return HttpManager().request(
basePath, basePath,
'/app/customHidden/goEdit', '/app/hidden/goEdit',
method: Method.post, method: Method.post,
data: { data: {
"HIDDEN_ID": id, "HIDDEN_ID": id,
@ -2323,5 +2323,20 @@ U6Hzm1ninpWeE+awIDAQAB
} }
///
static Future<Map<String, dynamic>> getSafetyMeetingList(int page,int selectedTab) {
return HttpManager().request(
basePath,
'/app/safetyMeeting/list?selectType=$selectedTab &showCount=10&currentPage=$page',
method: Method.post,
data: {
"CORPINFO_ID": SessionService.instance.corpinfoId,
"USER_ID": SessionService.instance.loginUserId,
},
);
}
} }

View File

@ -664,11 +664,12 @@ class _CheckInformationOneItemState extends State<CheckInformationOneItem> {
_addImgFiles(_zhengGaiImages[i],"4",hiddenId); _addImgFiles(_zhengGaiImages[i],"4",hiddenId);
} }
} }
LoadingDialogHelper.hide();
setState(() { setState(() {
ToastUtil.showNormal(context, "提交成功"); ToastUtil.showNormal(context, "提交成功");
Navigator.pop(context); Navigator.pop(context);
widget.onClose(hiddenId,_standardController.text.trim()); widget.onClose(hiddenId,_standardController.text.trim());
LoadingDialogHelper.hide();
}); });
} }
} catch (e) { } catch (e) {

View File

@ -693,11 +693,13 @@ class _CheckingInformationOnePageState extends State<CheckingInformationOnePage>
if(!departmentsAllInput){ if(!departmentsAllInput){
LoadingDialogHelper.hide();
ToastUtil.showNormal(context, "请添加验收部门负责人"); ToastUtil.showNormal(context, "请添加验收部门负责人");
return; return;
} }
if(departmentsSameMan){ if(departmentsSameMan){
LoadingDialogHelper.hide();
ToastUtil.showNormal(context, "不能选择重复的验收部门负责人"); ToastUtil.showNormal(context, "不能选择重复的验收部门负责人");
return; return;
} }
@ -720,6 +722,7 @@ class _CheckingInformationOnePageState extends State<CheckingInformationOnePage>
if (result['result'] == 'success') { if (result['result'] == 'success') {
setState(() { setState(() {
LoadingDialogHelper.hide();
Navigator.pop(context); Navigator.pop(context);
Navigator.pop(context); Navigator.pop(context);
}); });

View File

@ -585,6 +585,7 @@ class _HiddenDangerAcceptancePageState extends State<HiddenDangerAcceptancePage>
} }
setState(() { setState(() {
LoadingDialogHelper.hide();
ToastUtil.showNormal(context, "提交成功"); ToastUtil.showNormal(context, "提交成功");
Navigator.of(context).pop(); Navigator.of(context).pop();
widget.onClose('关闭详情'); // widget.onClose('关闭详情'); //

View File

@ -564,10 +564,8 @@ class _PendingRectificationDetailPageState extends State<PendingRectificationDet
} }
} }
setState(() {
LoadingDialogHelper.show();
});
LoadingDialogHelper.show();
List<DepartmentEntry> departments = dannerRepairKey.currentState!.departments; List<DepartmentEntry> departments = dannerRepairKey.currentState!.departments;
bool departmentsAllInput=true; bool departmentsAllInput=true;
bool departmentsSameMan=false; bool departmentsSameMan=false;
@ -585,17 +583,13 @@ class _PendingRectificationDetailPageState extends State<PendingRectificationDet
if(!departmentsAllInput){ if(!departmentsAllInput){
setState(() {
LoadingDialogHelper.hide(); LoadingDialogHelper.hide();
});
ToastUtil.showNormal(context, "请添加验收部门负责人"); ToastUtil.showNormal(context, "请添加验收部门负责人");
return; return;
} }
if(departmentsSameMan){ if(departmentsSameMan){
setState(() {
LoadingDialogHelper.hide(); LoadingDialogHelper.hide();
});
ToastUtil.showNormal(context, "不能选择重复的验收部门负责人"); ToastUtil.showNormal(context, "不能选择重复的验收部门负责人");
return; return;
} }
@ -629,6 +623,7 @@ class _PendingRectificationDetailPageState extends State<PendingRectificationDet
workTime, time, work, other, json); workTime, time, work, other, json);
if (result['result'] == 'success') { if (result['result'] == 'success') {
setState(() { setState(() {
LoadingDialogHelper.hide();
ToastUtil.showNormal(context, "提交成功"); ToastUtil.showNormal(context, "提交成功");
Navigator.of(context).pop(); Navigator.of(context).pop();
widget.onClose('关闭详情'); // widget.onClose('关闭详情'); //
@ -651,7 +646,7 @@ class _PendingRectificationDetailPageState extends State<PendingRectificationDet
final result = await ApiService.rectificationSubmission(pd["HIDDEN_ID"],buMenId,renYuanId); final result = await ApiService.rectificationSubmission(pd["HIDDEN_ID"],buMenId,renYuanId);
if (result['result'] == 'success') { if (result['result'] == 'success') {
setState(() { setState(() {
LoadingDialogHelper.hide();
ToastUtil.showNormal(context, "提交成功"); ToastUtil.showNormal(context, "提交成功");
Navigator.of(context).pop(); Navigator.of(context).pop();
widget.onClose('关闭详情'); // widget.onClose('关闭详情'); //

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:qhd_prevention/customWidget/search_bar_widget.dart'; import 'package:qhd_prevention/customWidget/search_bar_widget.dart';
import 'package:qhd_prevention/customWidget/toast_util.dart';
import 'dart:convert'; import 'dart:convert';
import 'dart:math' as math; import 'dart:math' as math;
@ -21,21 +22,18 @@ class _SafetyMeetingListPageState extends State<SafetyMeetingListPage>
with SingleTickerProviderStateMixin{ with SingleTickerProviderStateMixin{
final TextEditingController searchController = TextEditingController();
late List<dynamic> _list = [];
late TabController _tabController= TabController(length: 2, vsync: this); late TabController _tabController= TabController(length: 2, vsync: this);
int _selectedTab = 0; int _selectedTab = 0;
int pageNum = 1;
// int _page = 1;
final List<Map<String, dynamic>> _notifications = List.generate(10, (i) { String searchKey="";
bool read = i % 3 == 0; int _totalPage=1;
return { late List<dynamic> _list = [];
'title': '测试数据标题标题 ${i + 1}', bool _isLoading = false;
'time': '2025-06-${10 + i} 12:3${i}', bool _hasMore = true;
'read': read,
};
});
@override @override
void initState() { void initState() {
@ -54,53 +52,60 @@ class _SafetyMeetingListPageState extends State<SafetyMeetingListPage>
}); });
_getNotifList(""); _getSafetyMeetingList(false);
} }
void reRefreshData(){ void reRefreshData(){
pageNum=1; _page=1;
_list.clear(); _list.clear();
searchController.text="";
if(0==_selectedTab){
_getNotifList(""); _getSafetyMeetingList(false);
}else{
_getNotifEnterprise(""); }
Future<void> _getSafetyMeetingList(bool loadMore) async {
// LoadingDialogHelper.show();
try {
if (_isLoading) return;
_isLoading = true;
final result = await ApiService.getSafetyMeetingList(_page,_selectedTab );
if (result['result'] == 'success') {
_totalPage =result["page"]['totalPage'] ?? 1;
final List<dynamic> newList = result['varList'] ?? [];
// setState(() {
// _list.addAll(newList);
// });
setState(() {
if (loadMore) {
_list.addAll(newList);
} else {
_list = newList;
}
_hasMore = _page < _totalPage;
// if (_hasMore) _page++;
});
}else{
ToastUtil.showNormal(context, "加载数据失败");
// _showMessage('加载数据失败');
}
} catch (e) {
// Toast
print('加载数据失败:$e');
} finally {
// if (!loadMore) LoadingDialogHelper.hide();
_isLoading = false;
} }
} }
Future<void> _getNotifList(String keyWord) async {
// LoadingDialogHelper.show();
try {
final result = await ApiService.getNotifList("-1", pageNum.toString(),keyWord);
if (result['result'] == 'success') {
final List<dynamic> newList = result['varList'] ?? [];
setState(() {
_list.addAll(newList);
});
}
} catch (e) {
print('加载出错: $e');
} finally {
LoadingDialogHelper.hide();
}
}
Future<void> _getNotifEnterprise(String keyWord) async {
// LoadingDialogHelper.show();
try {
final result = await ApiService.getNotifEnterprise("-1", pageNum.toString(),keyWord);
if (result['result'] == 'success') {
final List<dynamic> newList = result['varList'] ?? [];
setState(() {
_list.addAll(newList);
});
}
} catch (e) {
print('加载出错: $e');
} finally {
LoadingDialogHelper.hide();
}
}
Future<void> _deleteNotif(String id) async { Future<void> _deleteNotif(String id) async {
// LoadingDialogHelper.show(); // LoadingDialogHelper.show();
@ -156,17 +161,21 @@ class _SafetyMeetingListPageState extends State<SafetyMeetingListPage>
// Search bar // Search bar
// List // List
Expanded( NotificationListener<ScrollNotification>(
child: onNotification: _onScroll,
_list.isEmpty child: Expanded(
? NoDataWidget.show() child:
: ListView.builder( _list.isEmpty
itemCount: _list.length, ? NoDataWidget.show()
itemBuilder: (context, index) { : ListView.builder(
return _itemCell(_list[index]); itemCount: _list.length,
}, itemBuilder: (context, index) {
), return _itemCell(_list[index]);
},
),
),
), ),
], ],
), ),
), ),
@ -272,6 +281,19 @@ class _SafetyMeetingListPageState extends State<SafetyMeetingListPage>
], ],
); );
} }
bool _onScroll(ScrollNotification n) {
if (n.metrics.pixels > n.metrics.maxScrollExtent - 100 &&
_hasMore && !_isLoading) {
_page++;
_getSafetyMeetingList(true);
}
return false;
}
} }

View File

@ -63,9 +63,7 @@ class _DangerProjectPageState extends State<DangerProjectPage> {
_getData(); _getData();
if(listDatesSelect.isNotEmpty){
}
} }
@ -90,35 +88,49 @@ class _DangerProjectPageState extends State<DangerProjectPage> {
final List<dynamic> newList = result['varList'] ?? []; final List<dynamic> newList = result['varList'] ?? [];
final List<dynamic> newListTwo = result['records'] ?? []; final List<dynamic> newListTwo = result['records'] ?? [];
setState(() { setState(() {
listDates.addAll(newList); listDates.addAll(newList);
if(newListTwo.isNotEmpty&&newListTwo[0]["LISTCHECKITEM_ID"]!=null){ if(newListTwo.isNotEmpty){
if( newListTwo[0]["LISTCHECKITEM_ID"]==listDates[0]["LISTCHECKITEM_ID"]){ listDatesSelect.addAll(newListTwo);
listDatesSelect.addAll(newListTwo);
}
} }
// listDatesTwo.addAll(newListTwo);option1 // listDatesTwo.addAll(newListTwo);option1
for(int i=0;i<listDates.length;i++){ for(int i=0;i<listDates.length;i++){
if(listDatesSelect.isNotEmpty){
switch(listDatesSelect[i]["ISNORMAL"] ){
case 0: for(int m=0;m<listDatesSelect.length;m++){
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "option1"; if(newListTwo.isNotEmpty&&newListTwo[m]["LISTCHECKITEM_ID"]!=null){
break; if( newListTwo[m]["LISTCHECKITEM_ID"]==listDates[i]["LISTCHECKITEM_ID"]){
case 1:
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "option2"; if(listDatesSelect.isNotEmpty){
break; switch(listDatesSelect[m]["ISNORMAL"] ){
case 2: case 0:
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "option3"; (listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "option1";
break; break;
case 1:
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "option2";
break;
case 2:
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "option3";
break;
}
}else {
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "";
}
if(listDatesSelect[m].containsKey("HIDDEN_ID")){
(listDates[i] as Map<String, dynamic>)["ids"] = listDatesSelect[m]["HIDDEN_ID"];
SessionService.instance.setUnqualifiedInspectionItemIDJson(listDatesSelect[m]["HIDDEN_ID"]);
}else{
(listDates[i] as Map<String, dynamic>)["ids"] = "";
}
}
}
} }
(listDates[i] as Map<String, dynamic>)["ids"] = listDatesSelect[i]["HIDDEN_ID"];
SessionService.instance.setUnqualifiedInspectionItemIDJson(listDatesSelect[i]["HIDDEN_ID"]);
}else {
(listDates[i] as Map<String, dynamic>)["ids"] = "";
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "";
}
} }
@ -145,37 +157,46 @@ class _DangerProjectPageState extends State<DangerProjectPage> {
setState(() { setState(() {
listDates.addAll(newList); listDates.addAll(newList);
if(newListTwo.isNotEmpty&&newListTwo[0]["CUSTOM_ID"]!=null){ if(newListTwo.isNotEmpty){
if( newListTwo[0]["CUSTOM_ID"]==listDates[0]["CUSTOM_ID"]){ listDatesSelect.addAll(newListTwo);
listDatesSelect.addAll(newListTwo);
}
} }
// listDatesTwo.addAll(newListTwo);
for(int i=0;i<listDates.length;i++){ for(int i=0;i<listDates.length;i++){
if(listDatesSelect.isNotEmpty){ for(int m=0;m<listDatesSelect.length;m++){
switch(listDatesSelect[i]["ISNORMAL"] ){ if(newListTwo.isNotEmpty&&newListTwo[m]["CUSTOM_ITEM_ID"]!=null){
case 0: if( newListTwo[m]["CUSTOM_ITEM_ID"]==listDates[i]["CUSTOM_ITEM_ID"]){
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "option1";
break;
case 1:
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "option2";
break;
case 2:
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "option3";
break;
if(listDatesSelect.isNotEmpty){
switch(listDatesSelect[m]["ISNORMAL"] ){
case 0:
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "option1";
break;
case 1:
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "option2";
break;
case 2:
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "option3";
break;
}
}else {
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "";
}
if(listDatesSelect[m].containsKey("HIDDEN_ID")){
(listDates[i] as Map<String, dynamic>)["ids"] = listDatesSelect[m]["HIDDEN_ID"];
SessionService.instance.setUnqualifiedInspectionItemIDJson(listDatesSelect[m]["HIDDEN_ID"]);
}else{
(listDates[i] as Map<String, dynamic>)["ids"] = "";
}
}
} }
(listDates[i] as Map<String, dynamic>)["ids"] = listDatesSelect[i]["HIDDEN_ID"];
SessionService.instance.setUnqualifiedInspectionItemIDJson(listDatesSelect[i]["HIDDEN_ID"]);
}else {
(listDates[i] as Map<String, dynamic>)["ids"] = "";
(listDates[i] as Map<String, dynamic>)["REFERENCE_BASIS"] = "";
} }
}
}
}); });
}else{ }else{
@ -420,10 +441,11 @@ class _DangerProjectPageState extends State<DangerProjectPage> {
), ),
],), ],),
if((value=="option1"&&item["REFERENCE_BASIS"]=="option1")|| if((value=="option1"&&item["REFERENCE_BASIS"]=="option1")||
(value=="option2"&&item["REFERENCE_BASIS"]=="option2"&&item["ids"].isNotEmpty)) (value=="option2"&&item["REFERENCE_BASIS"]=="option2"&&item.containsKey("ids")&&item["ids"].toString().isNotEmpty))
// //
GestureDetector( GestureDetector(
onTap: () { onTap: () {
// GestureDetector // GestureDetector
if (onImageTap != null) { if (onImageTap != null) {
onImageTap(); onImageTap();

File diff suppressed because it is too large Load Diff