public IEnumerable <TreeDataView> GetDominationDepartmentTree() { List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = "管辖部门", Data = new { isDept = 0 }, State = new NodeState { Opened = true }, Icon = "icon-folder blue ace-icon fa fa-sitemap", }; tree.Add(treeRoot); var param = new Dapper.DynamicParameters(new { _applicationContext.EmpUid }); var deptList = _dbContext.QueryWhere <OrgDept>("DeptManager=@EmpUid", param); string director = _configService.GetSysParamValue("org.permissions.director"); if (director.ToBool()) { deptList = deptList.Concat(_dbContext.QueryWhere <OrgDept>("Director=@EmpUid", param)); } foreach (var dept in deptList.Distinct(new FapModelEqualityComparer <OrgDept>())) { var childs = _platformDomain.OrgDeptSet.Where(d => d.DeptCode.StartsWith(dept.DeptCode, StringComparison.OrdinalIgnoreCase)) .Select(t => new TreeDataView { Id = t.Fid, Pid = (t.Fid == dept.Fid?"0":t.Pid), Text = t.DeptName, Data = new { isDept = 1 }, State = new NodeState { Opened = true }, Icon = "icon-folder blue ace-icon fa fa-folder-o " }); TreeViewHelper.MakeTree(treeRoot.Children, childs, treeRoot.Id); } return(tree); }
public List <TreeDataView> GetOrgJobGroupTree() { IEnumerable <OrgJobGroup> jobGroups = _dbContext.QueryAll <OrgJobGroup>(); List <TreeDataView> oriGroupList = jobGroups.Select(t => new TreeDataView { Id = t.Fid, Pid = "0", Data = new { group = "1" }, Text = t.Name, Icon = "icon-folder orange ace-icon fa fa-users" }).ToList <TreeDataView>(); IEnumerable <OrgJobGroupGrade> jobGroupGrades = _dbContext.QueryAll <OrgJobGroupGrade>(); List <TreeDataView> oriGroupGradeList = jobGroupGrades.Select(t => new TreeDataView { Id = t.Fid, Pid = t.JobGroup, Data = new { group = "0" }, Text = t.Name, Icon = "icon-folder orange ace-icon fa fa-users" }).ToList <TreeDataView>(); List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = "职族", Data = new { group = "3" }, State = new NodeState { Opened = true }, Icon = "icon-folder blue ace-icon fa fa-sitemap", }; tree.Add(treeRoot); TreeViewHelper.MakeTree(treeRoot.Children, oriGroupList.Union(oriGroupGradeList), treeRoot.Id); return(tree); }
public JsonResult GetBusinessType() { var businessTypes = _dbContext.Query <WfBusinessType>("select * from WfBusinessType"); var oriList = businessTypes.Select(t => new TreeDataView { Id = t.Fid.ToString(), Pid = t.Pid, Data = new { group = "1", typecode = t.TypeCode, typename = t.TypeName }, Text = t.TypeName, Icon = "icon-folder purple ace-icon fa fa-share-alt" }); List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = _multiLangService.GetOrAndMultiLangValue(Core.MultiLanguage.MultiLanguageOriginEnum.MultiLangTag, "business_category", "业务分类"), Data = new { group = "0" }, State = new NodeState { Opened = true }, Icon = "icon-folder blue ace-icon fa fa-sitemap", }; tree.Add(treeRoot); TreeViewHelper.MakeTree(treeRoot.Children, oriList, treeRoot.Id); return(Json(tree)); }
// POST: api/Common public JsonResult GetHistoryOrgDepts(string date) { _dbContext.HistoryDateTime = date; IEnumerable <OrgDept> powerDepts = _dbContext.QueryAll <OrgDept>(); _dbContext.HistoryDateTime = string.Empty; //将List<dynamic>转换成List<TreeDataView> List <TreeDataView> treeList = new List <TreeDataView>(); foreach (var data in powerDepts) { treeList.Add(new TreeDataView() { Id = data.Fid, Text = data.DeptName, Pid = data.Pid, Data = new { Code = data.DeptCode, selectable = !data.HasPartPower }, Icon = "icon-folder ace-icon fa fa-folder orange" }); } List <TreeDataView> tree = new List <TreeDataView>(); string parentID = "0"; string _rootText = ""; var pt = powerDepts.FirstOrDefault <OrgDept>(t => t.Pid == "0" || t.Pid.IsMissing() || t.Pid == "#" || t.Pid == "~"); if (pt != null) { parentID = pt.Fid; _rootText = pt.DeptName; } TreeDataView treeRoot = new TreeDataView() { Id = parentID, Text = _rootText, State = new NodeState { Opened = true }, Icon = "icon-folder purple ace-icon fa fa-sitemap", }; if (parentID == "0") { treeRoot.Data = new { Code = "", selectable = false }; } else { treeRoot.Data = new { Code = pt.DeptCode, selectable = !pt.HasPartPower }; } TreeViewHelper.MakeTree(treeRoot.Children, treeList, treeRoot.Id); tree.Add(treeRoot); return(JsonIgnoreNull(tree)); }
public IEnumerable <TreeDataView> GetAllDeptTree() { IEnumerable <OrgDept> powerDepts = _rbacService.GetDeptInfoAuthority(_applicationContext.CurrentRoleUid); IEnumerable <TreeDataView> treeList = powerDepts.Select(data => new TreeDataView() { Id = data.Fid, Text = data.DeptName, Pid = data.Pid, Data = new { Code = data.DeptCode, Ext1 = data.HasPartPower, Ext2 = "" }, Icon = data.HasPartPower ? "icon-folder ace-icon fa fa-folder grey" : "icon-folder ace-icon fa fa-folder orange" }); string _rootText = string.Empty; List <TreeDataView> tree = new List <TreeDataView>(); string parentID = "0"; var pt = powerDepts.FirstOrDefault <OrgDept>(t => t.Pid == "0" || t.Pid.IsMissing() || t.Pid == "#" || t.Pid == "~"); if (pt != null) { _rootText = pt.DeptName; parentID = pt.Fid; } else { _rootText = "无权限"; } TreeDataView treeRoot = new TreeDataView() { Id = parentID, Text = _rootText, State = new NodeState { Opened = true }, Icon = "icon-folder purple ace-icon fa fa-sitemap", }; if (parentID == "0") { treeRoot.Data = new { Code = "", Ext1 = false, Ext2 = "" }; } else { treeRoot.Data = new { Code = pt.DeptCode, Ext1 = pt.HasPartPower, Ext2 = "" }; } TreeViewHelper.MakeTree(treeRoot.Children, treeList, treeRoot.Id); tree.Add(treeRoot); return(tree); }
public IEnumerable <TreeDataView> GetModuleTree() { List <TreeDataView> moList = _platformDomain.ModuleSet.Select(t => new TreeDataView { Id = t.Fid.ToString(), Pid = t.Pid, Text = _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.Module, t.Fid), Icon = (t.Icon.IsMissing() ? "icon-folder green ace-icon fa fa-leaf" : "icon-folder green ace-icon " + t.Icon) }).ToList <TreeDataView>(); List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = _multiLangService.GetOrAndMultiLangValue(MultiLanguageOriginEnum.Page, "page_module_rootname", "系统模块"), State = new NodeState { Opened = true }, Icon = "icon-folder purple ace-icon fa fa-home bigger-160", }; tree.Add(treeRoot); TreeViewHelper.MakeTree(treeRoot.Children, moList, treeRoot.Id); return(tree); }
public IEnumerable <TreeDataView> GetUserGroupTree() { IEnumerable <FapUserGroup> userGroups = _rbacService.GetAllUserGroup(); List <TreeDataView> oriList = userGroups.Select(t => new TreeDataView { Id = t.Fid.ToString(), Pid = t.Pid.ToString(), Data = new { group = "1" }, Text = t.UserGroupName, Icon = "icon-folder orange ace-icon fa fa-users" }).ToList <TreeDataView>(); List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = "用户组", Data = new { group = "0" }, State = new NodeState { Opened = true }, Icon = "icon-folder blue ace-icon fa fa-sitemap", }; tree.Add(treeRoot); TreeViewHelper.MakeTree(treeRoot.Children, oriList, treeRoot.Id); return(tree); }
public JsonResult WorkflowProcessGroup() { IEnumerable <WfProcessGroup> processGroups = _dbContext.QueryAll <WfProcessGroup>(); List <TreeDataView> oriList = processGroups.Select(t => new TreeDataView { Id = t.Fid.ToString(), Pid = t.Pid.ToString(), Text = t.GroupName, Icon = "icon-folder orange ace-icon fa fa-users" }).ToList <TreeDataView>(); List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = _multiLangService.GetOrAndMultiLangValue(Core.MultiLanguage.MultiLanguageOriginEnum.MultiLangTag, "workflow_category", "流程分类"), State = new NodeState { Opened = true }, Icon = "icon-folder blue ace-icon fa fa-sitemap", }; tree.Add(treeRoot); TreeViewHelper.MakeTree(treeRoot.Children, oriList, treeRoot.Id); return(Json(tree)); }
public List <TreeDataView> GetOrgJobTree() { IEnumerable <OrgJob> jobGroups = _dbContext.QueryAll <OrgJob>(); List <TreeDataView> oriList = jobGroups.Select(t => new TreeDataView { Id = t.Fid, Pid = t.Pid, Data = new { group = "1", isfinal = t.IsFinal, fullname = t.FullName }, Text = t.JobName, Icon = "icon-folder orange ace-icon fa fa-users" }).ToList <TreeDataView>(); List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = "职位层级", Data = new { group = "0", isfinal = 0, fullname = "" }, State = new NodeState { Opened = true }, Icon = "icon-folder blue ace-icon fa fa-sitemap", }; tree.Add(treeRoot); TreeViewHelper.MakeTree(treeRoot.Children, oriList, treeRoot.Id); return(tree); }
public IEnumerable <TreeDataView> GetSchemeCategoryTree() { IEnumerable <dynamic> prmCategory = _dbContext.Query("select * from PerfProgramCategory"); List <TreeDataView> oriList = prmCategory.Select(t => new TreeDataView { Id = t.Fid.ToString(), Pid = t.Pid.ToString(), Data = new { group = "1" }, Text = t.Name, Icon = "icon-folder blue ace-icon fa fa-file-word-o" }).ToList <TreeDataView>(); List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = "方案分类", Data = new { group = "0" }, State = new NodeState { Opened = true }, Icon = "icon-folder blue ace-icon fa fa-sitemap", }; tree.Add(treeRoot); TreeViewHelper.MakeTree(treeRoot.Children, oriList, treeRoot.Id); return(tree); }
// POST: api/Common public JsonResult GetOrgDepts(string pid) { IEnumerable <OrgDept> listDepts = null; OrgDept pDept = null; if (pid.IsMissing()) { pDept = _dbContext.QueryFirstOrDefaultWhere <OrgDept>("(Pid='' or Pid='~' or Pid='0')"); var listDept = _dbContext.QueryAll <OrgDept>().AsList(); listDept.Remove(pDept); listDepts = listDept; } else { pDept = _dbContext.Get <OrgDept>(pid); listDepts = _dbContext.QueryWhere <OrgDept>("DeptCode like '" + pDept.DeptCode + "%'"); } List <TreeDataView> oriList = listDepts.Select(t => new TreeDataView { Id = t.Fid.ToString(), Pid = t.Pid.ToString(), Data = new { deptCode = t.DeptCode }, Text = t.DeptName, Icon = "icon-folder orange ace-icon fa fa-folder" }).ToList <TreeDataView>(); List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = pDept.Fid, Text = pDept.DeptName, Data = new { deptCode = pDept.DeptCode }, State = new NodeState { Opened = true }, Icon = "icon-folder orange ace-icon fa fa-folder", }; tree.Add(treeRoot); TreeViewHelper.MakeTree(treeRoot.Children, oriList, treeRoot.Id); return(JsonIgnoreNull(tree)); }
public IEnumerable <TreeDataView> GetConfigGroupTree() { IEnumerable <FapConfigGroup> configGroups = _configService.GetAllFapConfigGroup(); List <TreeDataView> oriList = configGroups.Select(t => new TreeDataView { Id = t.Fid.ToString(), Pid = t.Pid.ToString(), Data = new { group = "1" }, Text = t.CfName, Icon = "icon-folder ace-icon fa fa-cog" }).ToList <TreeDataView>(); List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = "配置组", Data = new { group = "0" }, State = new NodeState { Opened = true }, Icon = "icon-folder blue ace-icon fa fa-cogs", }; tree.Add(treeRoot); TreeViewHelper.MakeTree(treeRoot.Children, oriList, treeRoot.Id); return(tree); }
public IEnumerable <TreeDataView> GetBusinessRoleTree() { IEnumerable <FapBizRole> bizRoles = _rbacService.GetAllBizRole(); List <TreeDataView> oriList = bizRoles.Select(t => new TreeDataView { Id = t.Fid.ToString(), Pid = t.Pid.ToString(), Data = new { isRole = true }, Text = t.BizRoleName, Icon = "icon-folder orange ace-icon fa fa-users" }).ToList <TreeDataView>(); List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = "业务角色", Data = new { isRole = false }, State = new NodeState { Opened = true }, Icon = "icon-folder blue ace-icon fa fa-sitemap", }; tree.Add(treeRoot); TreeViewHelper.MakeTree(treeRoot.Children, oriList, treeRoot.Id); return(tree); }
// POST: api/Common public JsonResult DictCategory() { var listCat = _dbContext.Query <FapDict>("select Category,CategoryName from FapDict group by Category,CategoryName"); List <TreeDataView> oriList = listCat.Select(t => new TreeDataView { Id = t.Category, Pid = "0", Text = t.CategoryName, Icon = "icon-folder orange ace-icon fa fa-leaf" }).ToList <TreeDataView>(); List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = "字典分类", State = new NodeState { Opened = true }, Icon = "icon-folder blue ace-icon fa fa-sitemap", }; tree.Add(treeRoot); TreeViewHelper.MakeTree(treeRoot.Children, oriList, treeRoot.Id); return(Json(tree)); }
public IEnumerable <TreeDataView> GetMenuButtonTree() { var menuButtons = _platformDomain.MenuButtonSet; var tree = GetModuleAndMenuTree(); var mmtor = tree.GetEnumerator(); AddMenuButton(mmtor); return(tree); void AddMenuButton(IEnumerator <TreeDataView> menuEmumertor) { while (menuEmumertor.MoveNext()) { TreeDataView curr = menuEmumertor.Current; if (curr.Children.Any()) { AddMenuButton(curr.Children.GetEnumerator()); } if (curr.Data.IsMenu) { var children = AddOperNode(curr); if (children.Any()) { curr.Children = children.ToList(); } } } } IEnumerable <TreeDataView> AddOperNode(TreeDataView menuNode) { var opers = typeof(OperEnum).EnumItems(_multiLangService); string menuUid = menuNode.Id; if (!_applicationContext.IsAdministrator) { //权限中获取 var roleButtons = _rbacService.GetRoleButtonList(_applicationContext.CurrentRoleUid); if (roleButtons.Any()) { var rbtns = roleButtons.Where(r => r.MenuUid == menuUid); foreach (var btn in rbtns.Where(b => b.ButtonType == FapMenuButtonType.Grid || b.ButtonType == FapMenuButtonType.Tree)) { var button = menuButtons.FirstOrDefault(b => b.MenuUid == btn.MenuUid && b.ButtonID == btn.ButtonId); if (button != null) { string langkey = $"{menuUid}_{button.ButtonID}"; button.Description = _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.ButtonTag, langkey); TreeDataView toper = new TreeDataView() { Id = button.Fid, Data = new { IsBtn = false, IsMenu = false }, Pid = menuNode.Id, Text = button.Description, Icon = btn.ButtonType == FapMenuButtonType.Grid ? "fa fa-table" : "fa fa-code-fork" }; foreach (var oper in btn.ButtonValue.SplitComma()) { OperEnum operEnum = (OperEnum)oper.ToInt(); TreeDataView tcol = new TreeDataView(); tcol.Id = $"{menuNode.Id}|{button.ButtonType}|{ button.ButtonID }|{oper}"; tcol.Data = new { IsBtn = true, IsMenu = false }; tcol.Pid = toper.Id; tcol.Text = operEnum.Description(); tcol.Icon = GetOperIcon(operEnum); toper.Children.Add(tcol); } yield return(toper); } } var buttons = rbtns.Where(b => b.ButtonType == FapMenuButtonType.Link || b.ButtonType == FapMenuButtonType.Button); foreach (var btn in buttons) { var button = menuButtons.FirstOrDefault(b => b.MenuUid == btn.MenuUid && b.ButtonID == btn.ButtonId); TreeDataView toper = new TreeDataView() { Id = $"{menuNode.Id}|button|{ button.ButtonID }|1", Icon = "fa fa-bolt", Data = new { IsBtn = true, IsMenu = false }, Pid = menuNode.Id, Text = button.Description, }; yield return(toper); } } } else { if (menuButtons.TryGetValue(menuUid, out IEnumerable <FapMenuButton> buttons)) { foreach (var button in buttons) { string langkey = $"{menuUid}_{button.ButtonID}"; button.Description = _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.ButtonTag, langkey); TreeDataView toper = new TreeDataView() { Id = button.Fid, Data = new { IsBtn = false, IsMenu = false }, Pid = menuNode.Id, Text = button.Description }; if (button.ButtonType == FapMenuButtonType.Grid) { toper.Icon = " fa fa-table"; foreach (var oper in opers) { TreeDataView tcol = new TreeDataView(); tcol.Id = $"{menuNode.Id}|{button.ButtonType}|{ button.ButtonID }|{oper.Key}"; tcol.Data = new { IsBtn = true, IsMenu = false }; tcol.Pid = toper.Id; tcol.Text = oper.Description; tcol.Icon = GetOperIcon(oper.Value.ParseEnum <OperEnum>()); toper.Children.Add(tcol); } } else if (button.ButtonType == FapMenuButtonType.Tree) { toper.Icon = " fa fa-code-fork"; foreach (var oper in opers) { if (oper.Key == (int)OperEnum.Add || oper.Key == (int)OperEnum.Update || oper.Key == (int)OperEnum.Delete || oper.Key == (int)OperEnum.Refresh) { TreeDataView tcol = new TreeDataView(); tcol.Id = $"{menuNode.Id}|{button.ButtonType}|{ button.ButtonID }|{oper.Key}"; tcol.Data = new { IsBtn = true, IsMenu = false }; tcol.Pid = toper.Id; tcol.Text = oper.Description; tcol.Icon = GetOperIcon(oper.Value.ParseEnum <OperEnum>()); toper.Children.Add(tcol); } } } else if (button.ButtonType == FapMenuButtonType.Link || button.ButtonType == FapMenuButtonType.Button) { toper.Id = $"{menuNode.Id}|button|{ button.ButtonID }|1"; toper.Icon = "fa fa-bolt"; toper.Data = new { IsBtn = true, IsMenu = false }; } yield return(toper); } } } } }
public IActionResult TreeGridComponent(string fid, string multi) { FapComponent fc = _dbContext.Get <FapComponent>(fid); TreeGridViewModel model = new TreeGridViewModel(); model.TreeGridId = fid; model.IsMulti = multi.ToBool(); model.TreeFilterCondition = fc.TreeFilterCondition; model.TreeTitle = fc.TreeTitle; model.GridTitle = fc.GridTitle; #region 表 QuerySet qs = new QuerySet(); qs.TableName = fc.GridTableName; qs.QueryCols = fc.GridDisplayFields; qs.InitWhere = fc.TableCondition; model.GridModel = new JqGridViewModel { QuerySet = qs }; model.TempData.Add("returnfields", fc.ReturnFields); #endregion #region 树 //将List<dynamic>转换成List<TreeDataView> List <TreeDataView> treeList = new List <TreeDataView>(); string icon = "icon-folder ace-icon fa fa-folder blue"; if (!fc.TreeTableName.EqualsWithIgnoreCase("orgdept")) { if (!string.IsNullOrWhiteSpace(fc.TreeNodeIcon)) { icon = fc.TreeNodeIcon; } string sql = string.Format("select Fid as Id,{0} as Text,Pid,'{1}' as Icon from {2} ", fc.TreeDisplayField, icon, fc.TreeTableName); if (!string.IsNullOrWhiteSpace(fc.TreeCondition)) { sql += " where " + fc.TreeCondition; } if (!string.IsNullOrWhiteSpace(fc.TreeOrder)) { sql += " order by " + fc.TreeOrder; } var dataList = _dbContext.Query(sql); foreach (var data in dataList) { treeList.Add(new TreeDataView() { Id = data.Id, Text = data.Text, Pid = data.Pid, Icon = data.Icon, Data = new { selectable = true } }); } } else { IEnumerable <OrgDept> powerDepts = _rbacService.GetDeptInfoAuthority(_applicationContext.CurrentRoleUid); if (powerDepts != null && powerDepts.Any()) { foreach (var data in powerDepts) { TreeDataView tdv = new TreeDataView() { Id = data.Fid, Text = data.DeptName, State = new NodeState { Opened = false }, Pid = data.Pid, Icon = icon, Data = new { selectable = !data.HasPartPower } }; if (data.HasPartPower) { tdv.Icon = "icon-folder ace-icon fa fa-ban orange"; } treeList.Add(tdv); } } } List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = "请选择", State = new NodeState { Opened = true }, Icon = "icon-folder purple ace-icon fa fa-flag", }; TreeViewHelper.MakeTree(treeRoot.Children, treeList, treeRoot.Id); tree.Add(treeRoot); string rej = tree.ToJsonIgnoreNullValue(); model.JsonData = rej; #endregion return(View(model)); }
/// <summary> /// 树参照 /// </summary> /// <returns></returns> public IActionResult TreeReference(string fid) { string formid = "frm"; string ctrlid = "ctrl"; if (Request.Query.ContainsKey("frmid")) { formid = Request.Query["frmid"].ToString(); } if (Request.Query.ContainsKey("ctrlid")) { ctrlid = Request.Query["ctrlid"].ToString(); } string refcondition = string.Empty; _platformDomain.ColumnSet.TryGetValue(fid, out FapColumn fc); //fc.RefCondition替换参数的值 if (fc.RefCondition.IsPresent()) { refcondition = fc.RefCondition; string fieldName = string.Empty; // Regex regex = new Regex(FapPlatformConstants.VariablePattern, RegexOptions.IgnoreCase); var mat = regex.Matches(fc.RefCondition); foreach (Match item in mat) { fieldName = item.ToString().Substring(2, item.ToString().Length - 3); refcondition = refcondition.Replace(item.ToString(), Request.Query[fieldName].ToString()); } } string icon = "icon-folder ace-icon fa fa-folder blue"; List <string> refCols = new List <string>(); List <string> frmCols = new List <string>(); //参照名称 List <string> refRefCols = new List <string>(); List <string> frmRefCols = new List <string>(); List <string> refMcSqls = new List <string>(); if (fc.RefReturnMapping.IsPresent()) { JArray arrMapping = JArray.Parse(fc.RefReturnMapping); foreach (JObject item in arrMapping) { string refCol = item.GetStringValue("RefCol"); refCols.Add(refCol); string frmCol = item.GetStringValue("FrmCol"); frmCols.Add(frmCol); string refTable = fc.RefTable; //针对参照列的特殊处理 var refColumn = _dbContext.Column(refTable, refCol); var frmColumn = _dbContext.Column(fc.TableName, frmCol); if (refColumn != null && frmColumn != null) { if (refColumn.CtrlType == FapColumn.CTRL_TYPE_REFERENCE && frmColumn.CtrlType == FapColumn.CTRL_TYPE_REFERENCE) { refMcSqls.Add($"(select {refColumn.RefName} from {refColumn.RefTable} where {refColumn.RefTable}.{refColumn.RefID}={refColumn.TableName}.{refColumn.ColName} ) as {refColumn.ColName}MC"); refRefCols.Add(refColumn.ColName + "MC"); frmRefCols.Add(frmColumn.TableName + frmColumn.ColName + "MC"); } } } } List <TreeDataView> treeList = new List <TreeDataView>(); //非部门参照 if (!fc.RefTable.EqualsWithIgnoreCase("orgdept")) { string sql = string.Format("select {0} as Id,{1} as Text,Pid,'{2}' as Icon from {3} ", fc.RefID, fc.RefName, icon, fc.RefTable); if (refCols.Any()) { sql = $"select {fc.RefID} as Id,{fc.RefName} as Text,Pid,{ string.Join(",", refCols)},"; if (refMcSqls.Any()) { sql += $"{ string.Join(",", refMcSqls)},"; } sql += $"'{icon}' as Icon from { fc.RefTable}"; } if (!string.IsNullOrWhiteSpace(fc.RefCondition)) { sql += " where " + refcondition; } var dataList = _dbContext.Query(sql); //将List<dynamic>转换成List<TreeDataView> foreach (var data in dataList) { TreeDataView tdv = new TreeDataView() { Id = data.Id, Text = data.Text, State = new NodeState { Opened = false }, Pid = data.Pid, Icon = data.Icon }; if (refCols.Count > 0) { IDictionary <string, object> d = data as IDictionary <string, object>; List <string> refValues = new List <string>(); foreach (var col in refCols) { refValues.Add(d[col] + ""); } //参照列 if (refRefCols.Any()) { foreach (var col in refRefCols) { refValues.Add(d[col] + ""); } } tdv.Data = new { ext = string.Join("^-^", refValues), selectable = true }; } else { tdv.Data = new { ext = "", selectable = true }; } treeList.Add(tdv); } } else { IEnumerable <OrgDept> powerDepts = _rbacService.GetDeptInfoAuthority(_applicationContext.CurrentRoleUid); if (powerDepts != null && powerDepts.Any()) { foreach (var data in powerDepts) { TreeDataView tdv = new TreeDataView() { Id = data.Fid, Text = data.DeptName, State = new NodeState { Opened = false }, Pid = data.Pid, Icon = icon }; if (refCols.Count > 0) { List <string> refValues = new List <string>(); foreach (var col in refCols) { refValues.Add(data.GetType().GetProperty(col).GetValue(data, null) + ""); } //参照列 if (refRefCols.Any()) { foreach (var col in refRefCols) { refValues.Add(data.GetType().GetProperty(col).GetValue(data, null) + ""); } } tdv.Data = new { ext = string.Join("^-^", refValues), selectable = !data.HasPartPower }; if (data.HasPartPower) { tdv.Icon = "icon-folder ace-icon fa fa-ban orange"; } } else { tdv.Data = new { ext = "", selectable = !data.HasPartPower }; } treeList.Add(tdv); } } } List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = "请选择", State = new NodeState { Opened = true }, Icon = "icon-folder purple ace-icon fa fa-flag", }; TreeViewHelper.MakeTree(treeRoot.Children, treeList, treeRoot.Id); tree.Add(treeRoot); string rej = tree.ToJsonIgnoreNullValue(); //包含参照列 if (refRefCols.Any()) { refCols.AddRange(refRefCols); frmCols.AddRange(frmRefCols); } JsTreeViewModel treeModel = new JsTreeViewModel(); treeModel.CtrlName = formid + ctrlid + fc.TableName + fc.ColName; treeModel.JsonData = rej; treeModel.TempData.Add("refid", fc.RefID); treeModel.TempData.Add("refcode", fc.RefCode); treeModel.TempData.Add("refname", fc.RefName); treeModel.TempData.Add("frmCols", string.Join(",", frmCols)); treeModel.TempData.Add("refCols", string.Join(",", refCols)); return(View(treeModel)); }
// POST: api/Common public JsonResult GetHistoryOrgDepts(string date) { //权限 IEnumerable <OrgDept> powerDepts = _rbacService.GetDeptInfoAuthority(_applicationContext.CurrentRoleUid);// _dbContext.QueryEntityByWhere<OrgDept>(where, null, null, false, date); if (powerDepts != null && powerDepts.Any()) { //将List<dynamic>转换成List<TreeDataView> List <TreeDataView> treeList = new List <TreeDataView>(); foreach (var data in powerDepts) { treeList.Add(new TreeDataView() { Id = data.Fid, Text = data.DeptName, Pid = data.Pid, Data = new { Code = data.DeptCode, selectable = !data.HasPartPower }, Icon = "icon-folder ace-icon fa fa-folder orange" }); } List <TreeDataView> tree = new List <TreeDataView>(); string parentID = "0"; string _rootText = ""; var pt = powerDepts.FirstOrDefault <OrgDept>(t => t.Pid == "0" || t.Pid.IsMissing() || t.Pid == "#" || t.Pid == "~"); if (pt != null) { parentID = pt.Fid; _rootText = pt.DeptName; } TreeDataView treeRoot = new TreeDataView() { Id = parentID, Text = _rootText, State = new NodeState { Opened = true }, Icon = "icon-folder purple ace-icon fa fa-sitemap", }; if (parentID == "0") { treeRoot.Data = new { Code = "", selectable = false }; } else { treeRoot.Data = new { Code = pt.DeptCode, selectable = !pt.HasPartPower }; } TreeViewHelper.MakeTree(treeRoot.Children, treeList, treeRoot.Id); tree.Add(treeRoot); return(JsonIgnoreNull(tree)); } else { List <TreeDataView> tree = new List <TreeDataView>(); TreeDataView treeRoot = new TreeDataView() { Id = "0", Text = "部门未建立或无权限", Data = new { selectable = false }, State = new NodeState { Opened = true }, Icon = "icon-folder orange ace-icon fa fa-ban", }; tree.Add(treeRoot); return(JsonIgnoreNull(tree)); } }
// POST: api/Common public JsonResult GetOrgDeptsPower(string power) { IEnumerable <OrgDept> powerDepts = null; if (power.ToBool()) { powerDepts = _rbacService.GetDeptInfoAuthority(_applicationContext.CurrentRoleUid); } else { powerDepts = _platformDomain.OrgDeptSet.OrderBy(d => d.DeptOrder); } //将List<dynamic>转换成List<TreeDataView> List <TreeDataView> treeList = new List <TreeDataView>(); foreach (var data in powerDepts) { treeList.Add(new TreeDataView() { Id = data.Fid, Text = data.DeptName, Pid = data.Pid, Data = new { Code = data.DeptCode, Ext1 = data.HasPartPower, Ext2 = "" }, Icon = "icon-folder ace-icon fa fa-folder orange" }); } List <TreeDataView> tree = new List <TreeDataView>(); string parentID = "0"; var pt = powerDepts.FirstOrDefault <OrgDept>(t => t.Pid == "0" || t.Pid.IsMissing() || t.Pid == "#" || t.Pid == "~"); string _rootText = "组织架构"; if (_rootText.IsMissing()) { if (pt != null) { _rootText = pt.DeptName; parentID = pt.Fid; } else { _rootText = "无权限"; } } TreeDataView treeRoot = new TreeDataView() { Id = parentID, Text = _rootText, State = new NodeState { Opened = true }, Icon = "icon-folder purple ace-icon fa fa-sitemap", }; if (parentID == "0") { treeRoot.Data = new { Code = "", Ext1 = false, Ext2 = "" }; } else { treeRoot.Data = new { Code = pt.DeptCode, Ext1 = pt.HasPartPower, Ext2 = "" }; } tree.Add(treeRoot); TreeViewHelper.MakeTree(treeRoot.Children, treeList, treeRoot.Id); return(Json(tree)); }