public ActionResult GetOrgTree() { using (var db = DbAccess.DbCRMContext.Create()) { var rows = db.T_QWF_Org.AsNoTracking().Where(w => w.IsDelete == 0).OrderBy(o => o.SortId).ToList(); var tree = new QWF.Framework.Web.UI.TreeConverter <DbAccess.T_QWF_Org>(); tree.ClosedLayer = 3;//这里要全部展开。否则是会异步加载 tree.GetId = m => { return(m.OrgId.ToString()); }; tree.GetParentId = m => { return(m.ParentId.ToString()); }; //映射字段 var treeList = tree.ConvertTo(item => { var node = new QWF.Framework.Web.UI.BaseTreeNode(); node.id = item.OrgId.ToString(); node.text = item.OrgName; return(node); }, rows, "0"); treeList.Insert(0, new Framework.Web.UI.BaseTreeNode { id = "", text = "==全部== " }); return(this.Content(Newtonsoft.Json.JsonConvert.SerializeObject(treeList))); } }
public ActionResult GetRoleInCategoryList() { var roleCode = this.Request["roleCode"].SafeConvert().ToStr(); using (var db = DbAccess.DbCRMContext.Create()) { var rows = (from a in db.T_QCRM_QueryCategory join trc in db.T_QCRM_RoleInQueryCategory on new { RoleCode = roleCode, CategoryId = a.Id } equals new { RoleCode = trc.RoleCode, CategoryId = trc.CategoryId } into bb from b in bb.DefaultIfEmpty() orderby a.SortId select new Models.RoleInQueryCategory { CategoryName = a.Name, CategoryId = a.Id, ParentId = a.ParentId, RoleCode = b.RoleCode }).ToList(); var tree = new QWF.Framework.Web.UI.TreeConverter <Models.RoleInQueryCategory>(); tree.GetId = m => { return(m.CategoryId.ToString()); }; tree.GetParentId = m => { return(m.ParentId.ToString()); }; tree.GetCheckbox = m => { return(m.RoleCode != null && m.ParentId > 0 ? true : (bool?)null); }; //映射字段 var treeList = tree.ConvertTo(item => { var node = new QWF.Framework.Web.UI.BaseTreeNode(); node.id = item.CategoryId.ToString(); node.text = item.CategoryName; return(node); }, rows.ToList(), "0"); return(this.Content(Newtonsoft.Json.JsonConvert.SerializeObject(treeList))); } }
// GET: Sales/Dictionary public ActionResult GetTreeByCode() { var code = Request["code"].SafeConvert().ToStr(); using (var db = DbAccess.DbCRMContext.Create()) { var rootId = db.T_QCRM_Dictionary.Where(w => w.Code == code).Select(s => s.Id).FirstOrDefault(); if (rootId > 0) { var ids = "," + rootId.ToString() + ","; var rows = db.T_QCRM_Dictionary.AsNoTracking().Where(w => w.IdList.IndexOf(ids) > -1).OrderBy(o => o.ItemSort).ToList(); var tree = new QWF.Framework.Web.UI.TreeConverter <DbAccess.T_QCRM_Dictionary>(); tree.ClosedLayer = 3;//这里要全部展开。否则是会异步加载 tree.GetId = m => { return(m.Id.ToString()); }; tree.GetParentId = m => { return(m.ParentId.ToString()); }; //映射字段 var treeList = tree.ConvertTo(item => { var node = new QWF.Framework.Web.UI.BaseTreeNode(); node.id = item.Id.ToString(); node.text = item.ItemName; return(node); }, rows, "0"); return(this.Content(Newtonsoft.Json.JsonConvert.SerializeObject(treeList))); } } return(this.Content(string.Empty)); }
public ActionResult GetQueryCategoryTree() { var curUser = QWF.Framework.Web.UserContext.GetCurrentInfo(); var curRoleCode = curUser.GetRolesCodes(); using (var db = QWF.CRM.DbAccess.DbCRMContext.Create()) { //当前用户能查看的分类 var qry = (from a in db.T_QCRM_QueryCategory.AsNoTracking().Where(w => w.ShareType == "all") join b in db.T_QCRM_RoleInQueryCategory.AsNoTracking().Where(w => curRoleCode.Contains(w.RoleCode)).Select(s => new { s.CategoryId }).Distinct() on a.Id equals b.CategoryId orderby a.SortId select new { a.Id, a.ParentId }).ToList(); var parnetIds = qry.Where(w => w.ParentId > 0).Select(s => s.ParentId).ToList(); var ids = qry.Select(s => s.Id).ToList(); var allIds = parnetIds.Concat(ids).ToList(); var qryPublic = db.T_QCRM_QueryCategory.AsNoTracking().Where(w => allIds.Contains(w.Id) && w.ShareType == "all").OrderBy(o => o.SortId).ToList(); //需要隐藏的配置 var qryUserSetting = db.T_QCRM_UserQuerySetting.AsNoTracking().Where(w => w.IsHide == 1 && w.UserCode == curUser.CurrentUserCode) .Select(s => s.QueryCategoryId).ToList(); if (qryUserSetting.Count > 0) { qryPublic = qryPublic.Where(w => !qryUserSetting.Contains(w.Id)).ToList(); } var tree = new QWF.Framework.Web.UI.TreeConverter <DbAccess.T_QCRM_QueryCategory>(); tree.GetId = m => { return(m.Id.ToString()); }; tree.GetParentId = m => { return(m.ParentId.ToString()); }; //映射字段 var treeList = tree.ConvertTo(item => { var node = new QWF.Framework.Web.UI.BaseTreeNode(); node.id = item.Id.ToString(); node.text = item.Name; node.attributes = new { parentId = item.ParentId }; return(node); }, qryPublic, "0"); return(this.Content(Newtonsoft.Json.JsonConvert.SerializeObject(treeList))); } }