调整UI布局,消息模版新增语言字段

This commit is contained in:
yxw
2025-12-15 18:28:17 +08:00
parent 9b8bf43eb6
commit 98e3f7ab73
11 changed files with 510 additions and 328 deletions

View File

@@ -1,90 +1,103 @@
@page "/system/role/permission/{RoleId:long}"
@page "/{locale}/system/role/permission/{RoleId:long}"
@attribute [Authorize]
@inject ILogger<RoleList> Logger
<PageTitle>权限设置</PageTitle>
<Spin Spinning="loading">
<Title Level="4">编辑角色权限</Title>
<Card>
<Form @ref="editForm" Model="model" LabelColSpan="2" WrapperColSpan="22" Class="search-form" OnFinish="OnFormFinishAsync">
<FormItem Label="角色">
为角色 <Text>@role?.Name</Text> 设置权限
</FormItem>
<FormItem Label="权限">
<div class="ant-form-item-control-input-content">
@if (!PermissionGroups.Any())
{
<div>
<p>暂无权限可设置</p>
</div>
}
else
{
@foreach (var group in PermissionGroups)
{
<GridRow Style="padding-top:10px;">
<GridCol Span="24">
<label class="ant-checkbox-wrapper">
<span class="ant-checkbox @((@group.PermissionItems.Count(p => p.IsSelected) > 0 && @group.PermissionItems.Count(p => p.IsSelected) < @group.PermissionItems.Count) ? "ant-checkbox-indeterminate" : "")">
<input class="ant-checkbox-input" type="checkbox"
@onchange="(e) => ToggleAllPermissions(group, (bool)e.Value!)"
checked="@group.PermissionItems.All(p => p.IsSelected)" />
<span class="ant-checkbox-inner"></span>
</span>
<span>
<span class="form-check-label fw-bold">
@group.CategoryName
</span>
<small class="text-muted ms-2">
(@group.PermissionItems.Count(p => p.IsSelected)/@group.PermissionItems.Count)
</small>
</span>
</label>
</GridCol>
</GridRow>
<GridRow Style="margin-left:20px;margin-right:20px;">
@foreach (var permission in group.PermissionItems)
<PageContainer Title="权限角色设置">
<Breadcrumb>
<Breadcrumb>
<BreadcrumbItem Href="/">管理后台</BreadcrumbItem>
<BreadcrumbItem Href="/admin/list">系统功能</BreadcrumbItem>
<BreadcrumbItem>权限编辑</BreadcrumbItem>
</Breadcrumb>
</Breadcrumb>
<ChildContent>
<Spin Spinning="loading">
<Card>
<Form @ref="editForm" Model="model" LabelColSpan="2" WrapperColSpan="22" Class="search-form" OnFinish="OnFormFinishAsync">
<FormItem Label="角色">
为角色 <Text>@role?.Name</Text> 设置权限
</FormItem>
<FormItem Label="权限">
<div class="ant-form-item-control-input-content">
@if (!PermissionGroups.Any())
{
<div>
<p>暂无权限可设置</p>
</div>
}
else
{
@foreach (var group in PermissionGroups)
{
<GridCol Span="6">
<label class="ant-checkbox-wrapper">
<span class="ant-checkbox">
<input class="ant-checkbox-input" type="checkbox"
@bind="permission.IsSelected"
id="perm_@permission.Name" />
<span class="ant-checkbox-inner"></span>
<GridRow Style="padding-top:10px;">
<GridCol Span="24">
<label class="ant-checkbox-wrapper">
<span class="ant-checkbox @((@group.PermissionItems.Count(p => p.IsSelected) > 0 && @group.PermissionItems.Count(p => p.IsSelected) < @group.PermissionItems.Count) ? "ant-checkbox-indeterminate" : "")">
<input class="ant-checkbox-input" type="checkbox"
@onchange="(e) => ToggleAllPermissions(group, (bool)e.Value!)"
checked="@group.PermissionItems.All(p => p.IsSelected)" />
<span class="ant-checkbox-inner"></span>
</span>
<span class="form-check-label" for="perm_@permission.Name">
@permission.Description
<small class="text-muted d-block">@permission.Name</small>
</span>
</label>
</GridCol>
</span>
<span>
<span class="form-check-label fw-bold">
@group.CategoryName
</span>
<small class="text-muted ms-2">
(@group.PermissionItems.Count(p => p.IsSelected)/@group.PermissionItems.Count)
</small>
</span>
</label>
</GridCol>
</GridRow>
<GridRow Style="margin-left:20px;margin-right:20px;">
@foreach (var permission in group.PermissionItems)
{
<GridCol Span="6">
<label class="ant-checkbox-wrapper">
<span class="ant-checkbox">
<input class="ant-checkbox-input" type="checkbox"
@bind="permission.IsSelected"
id="perm_@permission.Name" />
<span class="ant-checkbox-inner"></span>
</span>
<span class="form-check-label" for="perm_@permission.Name">
@permission.Description
<small class="text-muted d-block">@permission.Name</small>
</span>
</label>
</GridCol>
}
</GridRow>
}
</GridRow>
}
}
</div>
</FormItem>
<FormItem WrapperCol="new ColLayoutParam { Span = 24, Offset = 2 }">
<Button Type="@ButtonType.Primary" HtmlType="submit" Loading="@isSaving">
@if (isSaving)
{
<span>保存中...</span>
}
else
{
<span>保存权限设置</span>
}
}
</div>
</FormItem>
<FormItem WrapperCol="new ColLayoutParam { Span = 24, Offset = 2 }">
<Button Type="@ButtonType.Primary" HtmlType="submit" Loading="@isSaving">
@if (isSaving)
{
<span>保存中...</span>
}
else
{
<span>保存权限设置</span>
}
</Button>
</FormItem>
</Form>
</Button>
</FormItem>
</Form>
</Card>
</Spin>
</Card>
</Spin>
</ChildContent>
</PageContainer>
@code {
[Parameter]
public string Locale { get; set; } = string.Empty;
[Parameter]
public long RoleId { get; set; }