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['auditPersonUserName']='';
addData['closedAreaId']='';//id
addData['closedAreaName']='';//
});
},
),
@ -530,10 +533,13 @@ class _DoorareaCarAddPageState extends State<DoorareaCarAddPage> {
if (raw['success'] ) {
List<dynamic> newList = raw['data'] ?? [];
for(int i=0;i<newList.length;i++){
newList[i]["dataId"] = newList[i]["id"];
newList[i]["dataName"] = newList[i]["closedAreaName"];
}
// for(int i=0;i<newList.length;i++){
// newList[i]["dataId"] = newList[i]["id"];
// newList[i]["dataName"] = newList[i]["closedAreaName"];
// }
//
List<dynamic> treeData = _buildTree(newList);
showModalBottomSheet(
context: context,
@ -542,12 +548,17 @@ class _DoorareaCarAddPageState extends State<DoorareaCarAddPage> {
backgroundColor: Colors.transparent,
builder:
(ctx) => DepartmentPickerThree(
listdata: newList,
listdata: treeData,
onSelected: (id, name,pdId) async {
setState(() {
addData['closedAreaId']=id;//id
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 {
try {
@ -708,6 +778,18 @@ class _DoorareaCarAddPageState extends State<DoorareaCarAddPage> {
addData['portAreaId'] = extraData?['dictValue'];//id
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['auditPersonUserName']='';
addData['closedAreaId']='';//id
addData['closedAreaName']='';//
});
},
),
@ -574,6 +577,18 @@ class _DoorareaPersonApplyPageState extends State<DoorareaPersonApplyPage> {
addData['portAreaId'] = extraData?['dictValue'];//id
addData['portAreaName'] = name;//
addData['jurisdictionalCorpId']= '';
addData['jurisdictionalCorpName']= '';
addData['auditPersonCorpId']= '';
addData['auditPersonCorpName']= '';
addData['auditPersonDepartmentId']= '';
addData['auditPersonDepartmentName']= '';
addData['auditPersonUserId']='';
addData['auditPersonUserName']='';
addData['closedAreaId']='';//id
addData['closedAreaName']='';//
});
},
),
@ -591,10 +606,13 @@ class _DoorareaPersonApplyPageState extends State<DoorareaPersonApplyPage> {
if (raw['success'] ) {
List<dynamic> newList = raw['data'] ?? [];
for(int i=0;i<newList.length;i++){
newList[i]["dataId"] = newList[i]["id"];
newList[i]["dataName"] = newList[i]["closedAreaName"];
}
// for(int i=0;i<newList.length;i++){
// newList[i]["dataId"] = newList[i]["id"];
// newList[i]["dataName"] = newList[i]["closedAreaName"];
// }
//
List<dynamic> treeData = _buildTree(newList);
showModalBottomSheet(
context: context,
@ -603,12 +621,17 @@ class _DoorareaPersonApplyPageState extends State<DoorareaPersonApplyPage> {
backgroundColor: Colors.transparent,
builder:
(ctx) => DepartmentPickerThree(
listdata: newList,
listdata: treeData,
onSelected: (id, name,pdId) async {
setState(() {
addData['closedAreaId']=id;//id
addData['closedAreaName']=name;//
addData['auditPersonDepartmentId']= '';
addData['auditPersonDepartmentName']= '';
addData['auditPersonUserId']='';
addData['auditPersonUserName']='';
});
},
),
@ -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 {
try {