/// <summary> /// 组织机构数据 /// </summary> /// <param name="ParameterValueStr"></param> /// <returns></returns> public JsonResult OrganizationData() { return(ExecuteFunctionRun(() => { AbstractPortalTreeHandler handler = new OrganizationHandler(this); PortalTreeNode companyNode = new PortalTreeNode(); var myCompany = Engine.Organization.Company; companyNode.ObjectID = myCompany.ObjectID; companyNode.Code = myCompany.UnitID; companyNode.Text = myCompany.Name; companyNode.Icon = "fa fa-building-o"; companyNode.IsLeaf = false; object treeObj = handler.CreatePortalTree(companyNode.ObjectID, companyNode.Code); companyNode.CreateChildren(treeObj); return Json(new object[] { companyNode }, JsonRequestBehavior.AllowGet); }, string.Empty)); }
/// <summary> /// 将FunctionNode转为PortalTree展示给客户端用 /// </summary> /// <param name="functionID"></param> /// <param name="nodes"></param> /// <returns></returns> protected List <PortalTreeNode> ConvertToPortalTree(string functionID, FunctionNode[] nodes) { List <PortalTreeNode> treeNodeList = new List <PortalTreeNode>(); if (nodes == null) { return(treeNodeList); } //排序 //nodes = nodes.OrderBy(p => p.NodeType).ThenBy(p => p.SortKey).ToArray(); nodes = nodes.OrderBy(p => p.SortKey).ToArray(); foreach (FunctionNode node in nodes) { string showUrl = GetShowPageUrl(functionID, node); string toolBarCode = GetToolbarCode(node); //string IconUrl = GetIconUrl(node); string IconUrl = node.IconCss; List <PortalTreeNode> children = GetChildren(node); switch (node.Code) { case FunctionNode.Category_ServiceMoniter_Code: //后台根节点,默认展开第一级 PortalTreeNode adminRooNode = new PortalTreeNode() { ObjectID = node.ObjectID, Code = node.Code, Text = getGlobalDisplayName(node), //Icon = this.PortalRoot + "/" + node.IconUrl, Icon = IconUrl, ShowPageUrl = node.Url, IsLeaf = true, ParentID = functionID, NodeType = node.NodeType }; adminRooNode.CreateChildren(this.CreatePortalTree(node.ObjectID, node.Code)); treeNodeList.Add(adminRooNode); break; case FunctionNode.Organization_Data_Code: //组织机构 treeNodeList.Add(BuildCompanyNode(node, toolBarCode)); break; default: #region 纠正叶子节点 //有子菜单、业务规则、流程模型、业务服务,都不是叶子节点 FunctionNode[] ChildrenNodes = controller.UserValidator.GetFunctionsByParentCode(node.Code); bool isLeaf = ChildrenNodes == null || ChildrenNodes.Length == 0; if (isLeaf) { isLeaf = children == null; if (isLeaf) { isLeaf = string.IsNullOrWhiteSpace(toolBarCode); //如果有工具栏,基本上都是有子菜单的 if (isLeaf) { isLeaf = !(node.Code == FunctionNode.BizRule_ListRuleTable_Code || node.Code == FunctionNode.Category_ProcessModel_Code || node.Code == FunctionNode.BizBus_BizService_Code || node.Code == FunctionNode.ProcessModel_BizMasterData_Code); } } } #endregion treeNodeList.Add(new PortalTreeNode() { ObjectID = node.ObjectID, Code = node.Code, Text = getGlobalDisplayName(node), //Icon = ((IconUrl != null && IconUrl.StartsWith("data:image")) ? IconUrl : (this.PortalRoot + "/" + IconUrl)), Icon = node.IconCss, ShowPageUrl = showUrl, LoadDataUrl = isLeaf ? string.Empty : GetLoadDataUrl(node.ObjectID, node.Code, node.NodeType, node.OwnSchemaCode), IsLeaf = isLeaf, ParentID = functionID, ToolBarCode = toolBarCode, children = children, IsLock = (node.IsLocked == true ? true : false), IsLockedByCurrentUser = (node.IsLocked == true && node.LockedBy == controller.UserValidator.UserID), NodeType = node.NodeType, OwnSchemaCode = node.OwnSchemaCode }); break; } } return(treeNodeList); }