Merge remote-tracking branch 'origin/main'
commit
a2f1e1fdef
|
@ -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¤tPage=$page',
|
||||||
|
method: Method.post,
|
||||||
|
data: {
|
||||||
|
"CORPINFO_ID": SessionService.instance.corpinfoId,
|
||||||
|
"USER_ID": SessionService.instance.loginUserId,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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);
|
||||||
});
|
});
|
||||||
|
|
|
@ -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('关闭详情'); // 触发回调
|
||||||
|
|
|
@ -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('关闭详情'); // 触发回调
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
|
324
pubspec.lock
324
pubspec.lock
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue