pick static method
Implementation
static Future<List<Members>?> pick(BuildContext context, Node node,
{List<Members>? select}) async {
var approver = node.data?.businessData?.approver;
// var recentApprover = node.data?.businessData?.recentApprover;
/// 优先使用最近审批人
// if (recentApprover?.isNotEmpty == true) {
// var page = FlowMemberPicker(
// selectUserList: select,
// allowEmpty: true,
// originalList: recentApprover,
// );
// return await forwardPage(context, page);
// }
/// 选人表达式
if (node.isCandidate) {
var selectList = select
?.map((e) => CandidateEntity(
userId: e.id,
parentId: e.parentId,
name: e.name,
roleKey: e.roleKey,
isDept: 0,
))
.toList();
var value = node.candidateExp;
// 移除label字样
// input?.removeWhere(
// (key, value) => (key is String && key.endsWith("Label")));
var page = _CandidatePicker(
selectUserList: selectList,
expressionValues: value,
);
List<CandidateEntity>? result = await forwardPage(context, page);
return result
?.map((e) => Members(
id: e.userId,
name: e.name,
parentId: e.parentId,
type: FlowMembersType.user,
roleKey: e.roleKey,
))
.toList();
}
///自带的审批人
var members = approver?.members;
var page = FlowMemberPicker(
selectUserList: select,
allowEmpty: true,
originalList: members,
);
return await forwardPage(context, page);
}