public ActionResult GetTreeGridJson(TbAreaAdministrationReauset request, string keyword) { if (string.IsNullOrEmpty(request.code)) { request.code = ""; } else { keyword = ""; } var data = _area.GetListTreeBySearch(request, keyword); if (string.IsNullOrWhiteSpace(keyword)) { var treeList = new List <TreeGridAsynModel <TbAreaAdministrationTreeReauset> >(); foreach (var item in data) { TreeGridAsynModel <TbAreaAdministrationTreeReauset> treeModel = new TreeGridAsynModel <TbAreaAdministrationTreeReauset>(); treeModel.isLeaf = item.ChildCount == 0; treeModel.parentId = item.FK_AreaCode; treeModel.nodeId = item.AreaCode; treeModel.n_level = request.code == "" ? 0 : request.n_level + 1; treeModel.entityJson = item; treeList.Add(treeModel); } return(Content(treeList.TreeGridAsynJson())); } else { var treeList = new List <TreeGridModel>(); foreach (var item in data) { TreeGridModel treeModel = new TreeGridModel(); bool hasChildren = data.Count(t => t.FK_AreaCode == item.AreaCode) == 0 ? false : true; if (data.Count(t => t.AreaCode == item.FK_AreaCode) == 0) { item.FK_AreaCode = "0"; } treeModel.id = item.AreaCode; treeModel.isLeaf = hasChildren; treeModel.parentId = item.FK_AreaCode; treeModel.expanded = true; treeModel.entityJson = item.ToJson(); treeList.Add(treeModel); } return(Content(treeList.TreeGridJson())); } }
/// <summary> /// 获取数据列表(tree) /// </summary> public List <TbAreaAdministrationTreeReauset> GetListTreeBySearch(TbAreaAdministrationReauset request, string keyword) { string sql = @"select AreaCode ,AreaCode as code ,FK_AreaCode ,AreaName ,AreaName as name ,FK_AreaCode_F ,(select COUNT(*) from TbAreaAdministration where FK_AreaCode= a.AreaCode) as ChildCount from TbAreaAdministration a where 1=1"; if (string.IsNullOrWhiteSpace(keyword)) { if (!string.IsNullOrWhiteSpace(request.code)) { sql += " and a.FK_AreaCode=@pcode "; } else { sql += " and a.FK_AreaCode is null "; } sql += "order by a.Sort"; var list = Db.Context.FromSql(sql) .AddInParameter("@name", DbType.String, "%" + request.AreaName + "%") .AddInParameter("@pcode", DbType.String, request.code) .ToList <TbAreaAdministrationTreeReauset>(); return(list); } else { var area = Repository <TbAreaAdministration> .First(p => p.AreaCode == keyword || p.AreaName == keyword); if (area != null) { //查找第一级code var codeArry = area.FK_AreaCode_F.Split('.'); sql = @"select a.AreaCode ,a.AreaCode as code ,a.FK_AreaCode ,a.AreaName ,a.AreaName as name ,a.FK_AreaCode_F ,a.Sort from TbAreaAdministration a where (a.AreaCode=@keyword or a.AreaCode=@keyword2 or a.FK_AreaCode_F like @keyword3)"; var list = Db.Context.FromSql(sql) .AddInParameter("@keyword", DbType.String, codeArry[0]) .AddInParameter("@keyword2", DbType.String, area.FK_AreaCode) .AddInParameter("@keyword3", DbType.String, area.FK_AreaCode_F + "%") .ToList <TbAreaAdministrationTreeReauset>(); return(list); } else { return(null); } } }