2026.6.26 口门门禁bug

master
xufei 2026-06-26 10:12:22 +08:00
parent ada70a1713
commit b9845c7459
2 changed files with 197 additions and 33 deletions

View File

@ -123,6 +123,9 @@ class _DoorareaCarAddPageState extends State<DoorareaCarAddPage> {
addData['auditPersonUserId']=''; addData['auditPersonUserId']='';
addData['auditPersonUserName']=''; addData['auditPersonUserName']='';
addData['closedAreaId']='';//id
addData['closedAreaName']='';//
}); });
}, },
), ),
@ -530,10 +533,13 @@ class _DoorareaCarAddPageState extends State<DoorareaCarAddPage> {
if (raw['success'] ) { if (raw['success'] ) {
List<dynamic> newList = raw['data'] ?? []; List<dynamic> newList = raw['data'] ?? [];
for(int i=0;i<newList.length;i++){ // for(int i=0;i<newList.length;i++){
newList[i]["dataId"] = newList[i]["id"]; // newList[i]["dataId"] = newList[i]["id"];
newList[i]["dataName"] = newList[i]["closedAreaName"]; // newList[i]["dataName"] = newList[i]["closedAreaName"];
} // }
//
List<dynamic> treeData = _buildTree(newList);
showModalBottomSheet( showModalBottomSheet(
context: context, context: context,
@ -542,12 +548,17 @@ class _DoorareaCarAddPageState extends State<DoorareaCarAddPage> {
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
builder: builder:
(ctx) => DepartmentPickerThree( (ctx) => DepartmentPickerThree(
listdata: newList, listdata: treeData,
onSelected: (id, name,pdId) async { onSelected: (id, name,pdId) async {
setState(() { setState(() {
addData['closedAreaId']=id;//id addData['closedAreaId']=id;//id
addData['closedAreaName']=name;// addData['closedAreaName']=name;//
addData['auditPersonDepartmentId']= '';
addData['auditPersonDepartmentName']= '';
addData['auditPersonUserId']='';
addData['auditPersonUserName']='';
}); });
}, },
), ),
@ -566,6 +577,65 @@ class _DoorareaCarAddPageState extends State<DoorareaCarAddPage> {
} }
} }
///
List<dynamic> _buildTree(List<dynamic> data) {
if (data.isEmpty) return [];
// id -> node
Map<String, dynamic> nodeMap = {};
//
for (var item in data) {
String id = item['id']?.toString() ?? '';
item['children'] = [];
item['dataId'] = id;
item['dataName'] = item['closedAreaName'] ?? '';
nodeMap[id] = item;
}
List<dynamic> rootNodes = [];
//
for (var item in data) {
String parentId = item['parentId']?.toString() ?? '0';
if (parentId == '0' || parentId.isEmpty) {
//
rootNodes.add(item);
} else if (nodeMap.containsKey(parentId)) {
// children
nodeMap[parentId]['children'].add(item);
} else {
//
rootNodes.add(item);
}
}
//
_sortTree(rootNodes);
return rootNodes;
}
/// id
void _sortTree(List<dynamic> nodes) {
for (var node in nodes) {
if (node['children'] != null && node['children'] is List) {
List children = node['children'];
if (children.isNotEmpty) {
// id
children.sort((a, b) {
String idA = a['id']?.toString() ?? '';
String idB = b['id']?.toString() ?? '';
return idA.compareTo(idB);
});
//
_sortTree(children);
}
}
}
}
Future<void> _getApproverList() async { Future<void> _getApproverList() async {
try { try {
@ -708,6 +778,18 @@ class _DoorareaCarAddPageState extends State<DoorareaCarAddPage> {
addData['portAreaId'] = extraData?['dictValue'];//id addData['portAreaId'] = extraData?['dictValue'];//id
addData['portAreaName'] = name;// addData['portAreaName'] = name;//
addData['jurisdictionalCorpId']= '';
addData['jurisdictionalCorpName']= '';
addData['auditPersonCorpId']= '';
addData['auditPersonCorpName']= '';
addData['auditPersonDepartmentId']= '';
addData['auditPersonDepartmentName']= '';
addData['auditPersonUserId']='';
addData['auditPersonUserName']='';
addData['closedAreaId']='';//id
addData['closedAreaName']='';//
}); });
}, },
), ),

View File

@ -121,6 +121,9 @@ class _DoorareaPersonApplyPageState extends State<DoorareaPersonApplyPage> {
addData['auditPersonUserId']=''; addData['auditPersonUserId']='';
addData['auditPersonUserName']=''; addData['auditPersonUserName']='';
addData['closedAreaId']='';//id
addData['closedAreaName']='';//
}); });
}, },
), ),
@ -574,6 +577,18 @@ class _DoorareaPersonApplyPageState extends State<DoorareaPersonApplyPage> {
addData['portAreaId'] = extraData?['dictValue'];//id addData['portAreaId'] = extraData?['dictValue'];//id
addData['portAreaName'] = name;// addData['portAreaName'] = name;//
addData['jurisdictionalCorpId']= '';
addData['jurisdictionalCorpName']= '';
addData['auditPersonCorpId']= '';
addData['auditPersonCorpName']= '';
addData['auditPersonDepartmentId']= '';
addData['auditPersonDepartmentName']= '';
addData['auditPersonUserId']='';
addData['auditPersonUserName']='';
addData['closedAreaId']='';//id
addData['closedAreaName']='';//
}); });
}, },
), ),
@ -589,36 +604,44 @@ class _DoorareaPersonApplyPageState extends State<DoorareaPersonApplyPage> {
final raw = await DoorAndCarApi.getEnclosedAreaById(addData['jurisdictionalCorpId']); final raw = await DoorAndCarApi.getEnclosedAreaById(addData['jurisdictionalCorpId']);
LoadingDialogHelper.hide(); LoadingDialogHelper.hide();
if (raw['success'] ) { if (raw['success'] ) {
List<dynamic> newList = raw['data'] ?? []; List<dynamic> newList = raw['data'] ?? [];
for(int i=0;i<newList.length;i++){ // for(int i=0;i<newList.length;i++){
newList[i]["dataId"] = newList[i]["id"]; // newList[i]["dataId"] = newList[i]["id"];
newList[i]["dataName"] = newList[i]["closedAreaName"]; // newList[i]["dataName"] = newList[i]["closedAreaName"];
// }
//
List<dynamic> treeData = _buildTree(newList);
showModalBottomSheet(
context: context,
isScrollControlled: true,
barrierColor: Colors.black54,
backgroundColor: Colors.transparent,
builder:
(ctx) => DepartmentPickerThree(
listdata: treeData,
onSelected: (id, name,pdId) async {
setState(() {
addData['closedAreaId']=id;//id
addData['closedAreaName']=name;//
addData['auditPersonDepartmentId']= '';
addData['auditPersonDepartmentName']= '';
addData['auditPersonUserId']='';
addData['auditPersonUserName']='';
});
},
),
);
}else{
ToastUtil.showNormal(context, "获取列表失败");
LoadingDialogHelper.hide();
// _showMessage('反馈提交失败');
// return "";
} }
showModalBottomSheet(
context: context,
isScrollControlled: true,
barrierColor: Colors.black54,
backgroundColor: Colors.transparent,
builder:
(ctx) => DepartmentPickerThree(
listdata: newList,
onSelected: (id, name,pdId) async {
setState(() {
addData['closedAreaId']=id;//id
addData['closedAreaName']=name;//
});
},
),
);
}else{
ToastUtil.showNormal(context, "获取列表失败");
LoadingDialogHelper.hide();
// _showMessage('反馈提交失败');
// return "";
}
} catch (e) { } catch (e) {
// Toast // Toast
print('加载首页数据失败:$e'); print('加载首页数据失败:$e');
@ -627,6 +650,65 @@ class _DoorareaPersonApplyPageState extends State<DoorareaPersonApplyPage> {
} }
} }
///
List<dynamic> _buildTree(List<dynamic> data) {
if (data.isEmpty) return [];
// id -> node
Map<String, dynamic> nodeMap = {};
//
for (var item in data) {
String id = item['id']?.toString() ?? '';
item['children'] = [];
item['dataId'] = id;
item['dataName'] = item['closedAreaName'] ?? '';
nodeMap[id] = item;
}
List<dynamic> rootNodes = [];
//
for (var item in data) {
String parentId = item['parentId']?.toString() ?? '0';
if (parentId == '0' || parentId.isEmpty) {
//
rootNodes.add(item);
} else if (nodeMap.containsKey(parentId)) {
// children
nodeMap[parentId]['children'].add(item);
} else {
//
rootNodes.add(item);
}
}
//
_sortTree(rootNodes);
return rootNodes;
}
/// id
void _sortTree(List<dynamic> nodes) {
for (var node in nodes) {
if (node['children'] != null && node['children'] is List) {
List children = node['children'];
if (children.isNotEmpty) {
// id
children.sort((a, b) {
String idA = a['id']?.toString() ?? '';
String idB = b['id']?.toString() ?? '';
return idA.compareTo(idB);
});
//
_sortTree(children);
}
}
}
}
Future<void> _getApproverList() async { Future<void> _getApproverList() async {
try { try {