update 区域增加树结构显示

This commit is contained in:
2021-05-21 17:45:50 +08:00
parent c8530039eb
commit 179843f98e
7 changed files with 130 additions and 74 deletions

View File

@@ -79,9 +79,9 @@ namespace Ewide.Core.Controller
/// </summary>
/// <returns></returns>
[HttpGet("/sysArea/tree")]
public async Task<List<AreaTreeNode>> GetAreaCodeTree()
public async Task<List<AreaTreeNode>> GetAreaCodeTree([FromQuery]int? level)
{
return await _areaCodeService.GetAreaCodeTree();
return await _areaCodeService.GetAreaCodeTree(level);
}
}
}

View File

@@ -348,7 +348,7 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Ewide.Core.Controller.AreaCodeController.GetAreaCodeTree">
<member name="M:Ewide.Core.Controller.AreaCodeController.GetAreaCodeTree(System.Nullable{System.Int32})">
<summary>
获取目录树
</summary>
@@ -3016,7 +3016,7 @@
<param name="code">区域代码</param>
<returns></returns>
</member>
<member name="M:Ewide.Core.Service.Area.AreaCodeService.GetAreaCodeTree">
<member name="M:Ewide.Core.Service.Area.AreaCodeService.GetAreaCodeTree(System.Nullable{System.Int32})">
<summary>
获取区域目录树
</summary>

View File

@@ -71,12 +71,13 @@ namespace Ewide.Core.Service.Area
/// 获取区域目录树
/// </summary>
/// <returns></returns>
public async Task<List<AreaTreeNode>> GetAreaCodeTree()
public async Task<List<AreaTreeNode>> GetAreaCodeTree(int? level)
{
level = level.GetValueOrDefault(100);
var cachedAreaCodes = await _sysCacheService.GetAreaCode();
if (cachedAreaCodes == null || cachedAreaCodes.Count < 0)
{
cachedAreaCodes = await _areaCodeRep.DetachedEntities.ToListAsync();
cachedAreaCodes = await _areaCodeRep.DetachedEntities.Where(p => p.LevelType <= level).ToListAsync();
await _sysCacheService.SetAreaCode(cachedAreaCodes);
}
return new TreeBuildUtil<AreaTreeNode>().DoTreeBuild(cachedAreaCodes.Select(u => new AreaTreeNode
@@ -99,9 +100,10 @@ namespace Ewide.Core.Service.Area
{
var AreaCodes = await _areaCodeRep.DetachedEntities
.Where(input.LevelType.HasValue, a => a.LevelType == input.LevelType)
.Where(!string.IsNullOrEmpty(input.Code), a => a.Code.StartsWith(input.Code))
.Where(!string.IsNullOrEmpty(input.AdCode), a => a.AdCode.StartsWith(input.AdCode))
.Where(!string.IsNullOrEmpty(input.Name), a => a.Name.StartsWith(input.Name))
.Where(!string.IsNullOrEmpty(input.Code), a => a.Code.Contains(input.Code))
.Where(!string.IsNullOrEmpty(input.AdCode), a => a.AdCode.Contains(input.AdCode))
.Where(!string.IsNullOrEmpty(input.Name), a => a.Name.Contains(input.Name))
.Where(!string.IsNullOrEmpty(input.Pcode), a => a.Code.StartsWith(input.Pcode))
.ToPageData(input);
return XnPageResult<SysAreaCode>.PageResult(AreaCodes);
}

View File

@@ -15,6 +15,7 @@ namespace Ewide.Core.Service.Area.Dto
public int? LevelType { get; set; }
public string Note { get; set; }
public int Sort { get; set; }
public string Pcode { get; set; }
}
public class UpdateAreaCodeInput
{

View File

@@ -16,7 +16,7 @@ namespace Ewide.Core.Service.Area
Task<SysAreaCode> GetAreaCode(string code);
Task<List<SysAreaCode>> GetAreaCodeWithChildren(string code);
Task<List<AreaTreeNode>> GetAreaCodeTree();
Task<List<AreaTreeNode>> GetAreaCodeTree(int? level);
Task<dynamic> QueryAreaCodePageList([FromQuery] AreaCodeInput input);
}