Skip to content

Commit fe78258

Browse files
committed
refactor: 重构代码提高可读性
1 parent d4df546 commit fe78258

File tree

3 files changed

+38
-35
lines changed

3 files changed

+38
-35
lines changed

src/BootstrapBlazor/Components/Table/Table.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,7 @@
745745
</DynamicElement>;
746746

747747
RenderFragment<TableContentCellContext<TItem>> RenderContentCell => context =>
748-
@<td colspan="@GetColSpan(context.ColSpan)" class="@GetFixedCellClassString(context.Col, context.CellClass)" style="@GetFixedCellStyleString(context.Col)">
748+
@<td colspan="@GetColSpan(context.Colspan)" class="@GetFixedCellClassString(context.Col, context.CellClass)" style="@GetFixedCellStyleString(context.Col)">
749749
<DynamicElement TagName="div" TriggerClick="@context.HasTreeChildren"
750750
OnClick="@ToggleTreeRow(context.Item)" StopPropagation="context.HasTreeChildren"
751751
class="@GetCellClassString(context.Col, context.HasTreeChildren, context.IsInCell)" style="@GetCellStyleString(context.Col)">

src/BootstrapBlazor/Components/Table/Table.razor.cs

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1374,57 +1374,60 @@ private RenderFragment RenderContentRow(TItem item) => builder =>
13741374
{
13751375
if (colIndex > 1)
13761376
{
1377+
// 合并单元格情况
13771378
colIndex--;
13781379
continue;
13791380
}
1380-
var cellClass = "";
1381-
var colSpan = 0;
1382-
string? value = null;
1383-
RenderFragment? valueTemplate = null;
1384-
if (col.OnCellRender != null)
1385-
{
1386-
var cell = new TableCellArgs { Row = item, ColumnName = col.GetFieldName() };
1387-
col.OnCellRender(cell);
1388-
cellClass = cell.Class;
1389-
colSpan = cell.Colspan;
1390-
valueTemplate = cell.ValueTemplate;
1391-
value = cell.Value;
1392-
colIndex = colSpan;
1393-
}
13941381

1395-
var isFirstColOfTree = IsTree && index++ == 0;
1396-
var degree = 0;
1397-
var isExpand = false;
1398-
var hasChildren = false;
1399-
if (isFirstColOfTree)
1400-
{
1401-
var treeItem = TreeNodeCache.Find(TreeRows, item, out degree);
1402-
if (treeItem != null)
1403-
{
1404-
isExpand = treeItem.IsExpand;
1405-
hasChildren = treeItem.HasChildren;
1406-
}
1407-
}
1408-
var hasTreeChildren = isFirstColOfTree && hasChildren;
1382+
// 获得单元格参数
1383+
var cellArgs = GetCellArgs(item, col, ref colIndex);
1384+
1385+
// 获得树节点信息
1386+
var (isTreeCol, degree, isExpand, hasChildren) = GetTreeInfo(item, index++);
1387+
var hasTreeChildren = isTreeCol && hasChildren;
1388+
14091389
var context = new TableContentCellContext<TItem>()
14101390
{
14111391
Item = item,
1412-
ColSpan = colSpan,
14131392
Col = col,
1414-
CellClass = cellClass,
1393+
Colspan = cellArgs.Colspan,
1394+
CellClass = cellArgs.Class,
1395+
Value = cellArgs.Value,
1396+
ValueTemplate = cellArgs.ValueTemplate,
14151397
HasTreeChildren = hasTreeChildren,
14161398
IsInCell = isInCell,
14171399
Degree = degree,
14181400
IsExpand = isExpand,
1419-
IsFirstColOfTree = isFirstColOfTree,
1420-
ValueTemplate = valueTemplate,
1421-
Value = value
1401+
IsFirstColOfTree = isTreeCol
14221402
};
14231403

14241404
builder.AddContent(0, RenderContentCell(context));
14251405
}
14261406
};
14271407

1408+
private static TableCellArgs GetCellArgs(TItem item, ITableColumn col, ref int colIndex)
1409+
{
1410+
var cell = new TableCellArgs { Row = item, ColumnName = col.GetFieldName() };
1411+
col.OnCellRender?.Invoke(cell);
1412+
colIndex = cell.Colspan;
1413+
return cell;
1414+
}
1415+
1416+
private (bool isFirstColOfTree, int degree, bool isExpand, bool hasChildren) GetTreeInfo(TItem item, int index)
1417+
{
1418+
var isFirstColOfTree = IsTree && index == 0;
1419+
if (!isFirstColOfTree)
1420+
{
1421+
return (false, 0, false, false);
1422+
}
1423+
1424+
var treeItem = TreeNodeCache.Find(TreeRows, item, out var degree);
1425+
return (isFirstColOfTree,
1426+
degree,
1427+
treeItem?.IsExpand ?? false,
1428+
treeItem?.HasChildren ?? false);
1429+
}
1430+
14281431
/// <summary>
14291432
/// 渲染单元格方法
14301433
/// </summary>

src/BootstrapBlazor/Components/Table/TableContentCellContext.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ readonly record struct TableContentCellContext<TItem>
99
{
1010
public TItem Item { get; init; }
1111

12-
public int ColSpan { get; init; }
12+
public int Colspan { get; init; }
1313

1414
public ITableColumn Col { get; init; }
1515

0 commit comments

Comments
 (0)