Commit 3ea74349 by wyc

详情排序

parent 267e0849
...@@ -407,13 +407,30 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s ...@@ -407,13 +407,30 @@ public UniteDeptDetailResponse UniteDeptDetail(int allotId, UnitType unitType, s
} }
#endregion #endregion
response.DetailItems = response.DetailItems.Where(w => w.Display).OrderBy(w => w.Sort).ToList();
// 应用用户设置的显示规则 // 应用用户设置的显示规则
RecursionUseSettings(response.DetailItems, settings, userInfo.IsSecondAdmin, allot); RecursionUseSettings(response.DetailItems, settings, userInfo.IsSecondAdmin, allot);
response.DetailItems = response.DetailItems.Where(w => w.Display).OrderBy(w => w.Sort).ToList();
RecursiveSorts(response.DetailItems);
return response; return response;
} }
/// <summary>
/// 详情结果(排序)
/// </summary>
/// <param name="detailItems"></param>
private void RecursiveSorts(List<DeptDetailItem> detailItems)
{
foreach (var item in detailItems)
{
if (item.Children?.Any() == true)
{
item.Children = item.Children.OrderBy(w => w.Sort).ThenBy(x => x.Sort).ToList();
RecursiveSorts(item.Children);
}
}
}
#region 科室详情辅助方法 #region 科室详情辅助方法
private void RecursionUseSettings(List<DeptDetailItem> detailItems, List<UniteDeptDetailItem> userDetailItems, bool isSecondAdmin, per_allot allot) private void RecursionUseSettings(List<DeptDetailItem> detailItems, List<UniteDeptDetailItem> userDetailItems, bool isSecondAdmin, per_allot allot)
...@@ -463,6 +480,18 @@ private void RecursionUseSettings(List<DeptDetailItem> detailItems, List<UniteDe ...@@ -463,6 +480,18 @@ private void RecursionUseSettings(List<DeptDetailItem> detailItems, List<UniteDe
// Item里面需要隐藏和格式化的操作 // Item里面需要隐藏和格式化的操作
if (detail.Children?.Any() != true && detail.Items?.Any() == true && cfg?.Children?.Any() == true) if (detail.Children?.Any() != true && detail.Items?.Any() == true && cfg?.Children?.Any() == true)
{ {
var keySort = cfg.Children.Select(w => w.Title).ToList();
List<Dictionary<string, object>> sortedItems = new List<Dictionary<string, object>>();
detail.Items.ForEach(item =>
{
var temp = item.OrderBy(row => keySort.IndexOf(row.Key)).ToDictionary(t => t.Key, t => t.Value);
sortedItems.Add(temp);
});
// 更新 Items 列表
detail.Items = sortedItems;
foreach (var item in cfg.Children) foreach (var item in cfg.Children)
{ {
foreach (var row in detail.Items) foreach (var row in detail.Items)
...@@ -740,11 +769,27 @@ public List<UniteDeptDetailItem> GetUniteDeptDetailSetting(int allotId) ...@@ -740,11 +769,27 @@ public List<UniteDeptDetailItem> GetUniteDeptDetailSetting(int allotId)
// 读取数据库保存内容 // 读取数据库保存内容
GetRecursionUseSettings(response, cofDeptDetail); GetRecursionUseSettings(response, cofDeptDetail);
RecursiveSort(response);
response = response.OrderBy(w => w.Sort).ToList(); response = response.OrderBy(w => w.Sort).ToList();
return response; return response;
} }
/// <summary>
/// 配置结果(排序)
/// </summary>
/// <param name="detailItems"></param>
private void RecursiveSort(List<UniteDeptDetailItem> detailItems)
{
foreach (var item in detailItems)
{
if (item.Children?.Any() == true)
{
item.Children = item.Children.OrderBy(w => w.Sort).ThenBy(x => x.Sort).ToList();
RecursiveSort(item.Children);
}
}
}
#region 递归设置 #region 递归设置
private void GetRecursionUseSettings(List<UniteDeptDetailItem> initDetailItems, List<UniteDeptDetailItem> userDetailItems) private void GetRecursionUseSettings(List<UniteDeptDetailItem> initDetailItems, List<UniteDeptDetailItem> userDetailItems)
{ {
...@@ -790,7 +835,11 @@ private void InitRecursion(List<UniteDeptDetailItem> detailItems, string parentI ...@@ -790,7 +835,11 @@ private void InitRecursion(List<UniteDeptDetailItem> detailItems, string parentI
} }
} }
#endregion #endregion
/// <summary>
/// 科室详情配置保存
/// </summary>
/// <param name="allotId"></param>
/// <param name="request"></param>
public void SaveUniteDeptDetailSetting(int allotId, List<UniteDeptDetailItem> request) public void SaveUniteDeptDetailSetting(int allotId, List<UniteDeptDetailItem> request)
{ {
var entity = _perforCofDeptDetailRepository.GetEntity(w => w.AllotId == allotId); var entity = _perforCofDeptDetailRepository.GetEntity(w => w.AllotId == allotId);
...@@ -1056,7 +1105,7 @@ public List<UniteDeptDetailItem> GetEmpDetailSetting(int allotId) ...@@ -1056,7 +1105,7 @@ public List<UniteDeptDetailItem> GetEmpDetailSetting(int allotId)
: JsonHelper.Deserialize<List<UniteDeptDetailItem>>(entity.Settings); : JsonHelper.Deserialize<List<UniteDeptDetailItem>>(entity.Settings);
GetRecursionUseSettings(response, cofDeptDetail); GetRecursionUseSettings(response, cofDeptDetail);
RecursiveSort(response);
response = response.OrderBy(w => w.Sort).ToList(); response = response.OrderBy(w => w.Sort).ToList();
return response; return response;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment