/// <summary> /// 设置子节点 /// </summary> /// <param name="list"></param> /// <param name="treeInfo"></param> /// <param name="parentCategoryCode">父节点CategoryID</param> /// <param name="selectedSysNo">选中的节点SysNo</param> private static void SetChildTreeInfo(List <Address> list, TreeInfoModel treeInfo, int parentID, int selectedSysNo) { if (treeInfo.children == null) { treeInfo.children = true; } if (list != null && list.Count > 0 && parentID > 0) { List <Address> childList = list.FindAll(child => child.ParentSysNo == parentID); if (childList != null && childList.Count > 0) { List <TreeInfoModel> treeList = new List <TreeInfoModel>(); foreach (var item in childList) { TreeInfoModel tree = MappingTreeInfo(item, selectedSysNo); treeList.Add(tree); SetChildTreeInfo(list, tree, item.SysNo, selectedSysNo); } if (treeList != null && treeList.Count > 0) { treeInfo.state.opened = true; } treeInfo.children = treeList; } } }
private static TreeInfoModel MappingTreeInfo(Address info, int selectedSysNo) { TreeInfoModel treeInfo = new TreeInfoModel(); treeInfo.id = info.SysNo; treeInfo.state = new TreeStateModel(); treeInfo.data = info; treeInfo.text = info.Name; if (info.SysNo == selectedSysNo) { treeInfo.state.selected = true; } else { treeInfo.state.selected = false; } //if (info.Grade == AddressGrade.Default) //{ // treeInfo.type = "default"; // treeInfo.icon = "icon-add icon-add-default"; //} //else //{ // treeInfo.icon = "icon-add icon-add-" + info.Grade.ToString().ToLower(); //} treeInfo.icon = "icon-add icon-add-" + info.Grade.GetValueOrDefault().ToString().ToLower(); return(treeInfo); }
public ActionResult GetAddressTree(AddressFilter filter) { AddressFilter addFilter = filter; if (filter == null) { addFilter = new AddressFilter(); } if (CurrUser.CompanySysNo > 0) { addFilter.CompanySysNo = CurrUser.CompanySysNo; } addFilter.PageSize = 1000000; QueryResult <Address> result = null; List <Address> addList = null; if ((!filter.ParentSysNo.HasValue || filter.ParentSysNo <= 0) && filter.CompanySysNo == defaultCompanySysNo) { filter.SelectedAddressCode = "1003"; } if (!string.IsNullOrWhiteSpace(filter.SelectedAddressCode)) { addList = AddressService.LoadAddressByAddressCode(filter.SelectedAddressCode, addFilter.CompanySysNo); } if (addList == null) { result = AddressService.QueryAddressList(addFilter); addList = result?.data; } List <TreeInfoModel> treeList = new List <TreeInfoModel>(); if (filter.ParentSysNo.HasValue && filter.ParentSysNo > 0) { foreach (var item in result.data) { TreeInfoModel treeInfo = MappingTreeInfo(item, 0); treeList.Add(treeInfo); treeInfo.children = item.Grade != AddressGrade.Room; } } else { if (addList != null && addList.Count > 0) { List <Address> firstList = addList.FindAll(item => !item.ParentSysNo.HasValue || item.ParentSysNo.Value == 0); if (firstList != null && firstList.Count > 0) { foreach (var item in firstList) { TreeInfoModel treeInfo = MappingTreeInfo(item, 0); treeList.Add(treeInfo); SetChildTreeInfo(addList, treeInfo, item.SysNo, 0); } } } } return(Json(treeList, JsonRequestBehavior.AllowGet)); }