添加页面

This commit is contained in:
yxw
2025-12-17 17:16:11 +08:00
parent da8ac8a22b
commit 903d6d9304
14 changed files with 348 additions and 175 deletions

View File

@@ -27,6 +27,7 @@
<PackageReference Include="Microsoft.Extensions.Http" Version="10.0.1" /> <PackageReference Include="Microsoft.Extensions.Http" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Localization" Version="10.0.1" /> <PackageReference Include="Microsoft.Extensions.Localization" Version="10.0.1" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.15.0" /> <PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.15.0" />
<PackageReference Include="TinyMCE.Blazor" Version="2.2.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -0,0 +1,24 @@
@page "/content/blog/create"
@page "/content/blog/edit/{id:long}"
@page "/{locale}/content/blog/create"
@page "/{locale}/content/blog/edit/{id:long}"
<PageContainer Title="@(Id > 0 ? "编辑博客文章" : "新增博客文章")">
<Breadcrumb>
<Breadcrumb>
<BreadcrumbItem Href="/">管理后台</BreadcrumbItem>
<BreadcrumbItem Href="/content/page/list">内容管理</BreadcrumbItem>
<BreadcrumbItem>博客文章</BreadcrumbItem>
</Breadcrumb>
</Breadcrumb>
<ChildContent>
<h3>Tools</h3>
</ChildContent>
</PageContainer>
@code {
[Parameter]
public string Locale { get; set; } = string.Empty;
[Parameter]
public long? Id { get; set; }
}

View File

@@ -0,0 +1,20 @@
@page "/content/blog/list"
@page "/{locale}/content/blog/list"
<PageContainer Title="博客文章">
<Breadcrumb>
<Breadcrumb>
<BreadcrumbItem Href="/">管理后台</BreadcrumbItem>
<BreadcrumbItem Href="/content/page/list">内容管理</BreadcrumbItem>
<BreadcrumbItem>博客文章</BreadcrumbItem>
</Breadcrumb>
</Breadcrumb>
<ChildContent>
<h3>Tools</h3>
</ChildContent>
</PageContainer>
@code {
[Parameter]
public string Locale { get; set; } = string.Empty;
}

View File

@@ -1,5 +1,24 @@
<h3>PageEdit</h3> @page "/content/page/create"
@page "/content/page/edit/{id:long}"
@page "/{locale}/content/page/create"
@page "/{locale}/content/page/edit/{id:long}"
<PageContainer Title="@(Id > 0 ? "编辑主题页面" : "新增主题页面")">
<Breadcrumb>
<Breadcrumb>
<BreadcrumbItem Href="/">管理后台</BreadcrumbItem>
<BreadcrumbItem Href="/content/page/list">内容管理</BreadcrumbItem>
<BreadcrumbItem>主题页面</BreadcrumbItem>
</Breadcrumb>
</Breadcrumb>
<ChildContent>
<h3>Tools</h3>
</ChildContent>
</PageContainer>
@code { @code {
[Parameter]
public string Locale { get; set; } = string.Empty;
[Parameter]
public long? Id { get; set; }
} }

View File

@@ -1,8 +1,20 @@
@page "/content/page/list" @page "/content/page/list"
@page "/{locale}/content/page/list"
<PageContainer Title="主题页面">
<h3>PageList</h3> <Breadcrumb>
<Breadcrumb>
<BreadcrumbItem Href="/">管理后台</BreadcrumbItem>
<BreadcrumbItem Href="/content/page/list">内容管理</BreadcrumbItem>
<BreadcrumbItem>主题页面</BreadcrumbItem>
</Breadcrumb>
</Breadcrumb>
<ChildContent>
<h3>Tools</h3>
</ChildContent>
</PageContainer>
@code { @code {
[Parameter]
public string Locale { get; set; } = string.Empty;
} }

View File

@@ -0,0 +1,20 @@
@page "/deposit/list"
@page "/{locale}/deposit/list"
<PageContainer Title="储值订单">
<Breadcrumb>
<Breadcrumb>
<BreadcrumbItem Href="/">管理后台</BreadcrumbItem>
<BreadcrumbItem Href="/content/page/list">内容管理</BreadcrumbItem>
<BreadcrumbItem>储值订单</BreadcrumbItem>
</Breadcrumb>
</Breadcrumb>
<ChildContent>
<h3>Tools</h3>
</ChildContent>
</PageContainer>
@code {
[Parameter]
public string Locale { get; set; } = string.Empty;
}

View File

@@ -0,0 +1,22 @@
@page "/deposit/detail/{id:long}"
@page "/{locale}/deposit/detail/{id:long}"
<PageContainer Title="@($"订单{Id}详情")">
<Breadcrumb>
<Breadcrumb>
<BreadcrumbItem Href="/">管理后台</BreadcrumbItem>
<BreadcrumbItem Href="/content/page/list">内容管理</BreadcrumbItem>
<BreadcrumbItem>主题页面</BreadcrumbItem>
</Breadcrumb>
</Breadcrumb>
<ChildContent>
<h3>Tools</h3>
</ChildContent>
</PageContainer>
@code {
[Parameter]
public string Locale { get; set; } = string.Empty;
[Parameter]
public long? Id { get; set; }
}

View File

@@ -1,5 +1,20 @@
<h3>OrderList</h3> @page "/order/list"
@page "/{locale}/order/list"
<PageContainer Title="购物订单">
<Breadcrumb>
<Breadcrumb>
<BreadcrumbItem Href="/">管理后台</BreadcrumbItem>
<BreadcrumbItem Href="/content/page/list">内容管理</BreadcrumbItem>
<BreadcrumbItem>购物订单</BreadcrumbItem>
</Breadcrumb>
</Breadcrumb>
<ChildContent>
<h3>Tools</h3>
</ChildContent>
</PageContainer>
@code { @code {
[Parameter]
public string Locale { get; set; } = string.Empty;
} }

View File

@@ -1,16 +1,23 @@
@page "/product/category/edit" @page "/product/category/edit"
@page "/product/category/edit/{Id:long?}" @page "/product/category/edit/{Id:long?}"
@page "/{locale}/product/category/edit"
@page "/{locale}/product/category/edit/{Id:long?}"
@inject ILogger<CategoryEdit> Logger @inject ILogger<CategoryEdit> Logger
@attribute [Authorize] @attribute [Authorize]
<PageTitle>分类编辑</PageTitle> <PageContainer Title="编辑产品分类">
<Title Level="4">分类信息</Title> <Breadcrumb>
<Breadcrumb>
<BreadcrumbItem Href="/">管理后台</BreadcrumbItem>
<BreadcrumbItem Href="/product/list">系统功能</BreadcrumbItem>
<BreadcrumbItem>分类管理</BreadcrumbItem>
</Breadcrumb>
</Breadcrumb>
<ChildContent>
<Spin Spinning="pageLoading"> <Spin Spinning="pageLoading">
<Card Title="" Class="hideborder" <Card Title="分类信息">
Style="margin-top: 24px;"
BodyStyle="padding: 0 32px 40px 32px">
<Form @ref="editform" Model="@model" LabelColSpan="5" WrapperColSpan="19" OnFinish="OnFormFinishAsync"> <Form @ref="editform" Model="@model" LabelColSpan="5" WrapperColSpan="19" OnFinish="OnFormFinishAsync">
@* @if (languages.Count > 1 && Id > 0) @* @if (languages.Count > 1 && Id > 0)
{ {
@@ -79,8 +86,13 @@
</Form> </Form>
</Card> </Card>
</Spin> </Spin>
</ChildContent>
</PageContainer>
@code { @code {
[Parameter]
public string Locale { get; set; } = string.Empty;
[SupplyParameterFromQuery] [SupplyParameterFromQuery]
int? Lang { get; set; } int? Lang { get; set; }

View File

@@ -1,10 +1,18 @@
@page "/category/list" @page "/category/list"
@page "/{locale}/category/list"
@inject ILogger<CategoryList> Logger @inject ILogger<CategoryList> Logger
@attribute [Authorize] @attribute [Authorize]
<PageTitle>分类管理</PageTitle> <PageContainer Title="产品分类管理">
<Title Level="4">菜单管理</Title> <Breadcrumb>
<Breadcrumb>
<BreadcrumbItem Href="/">管理后台</BreadcrumbItem>
<BreadcrumbItem Href="/product/list">系统功能</BreadcrumbItem>
<BreadcrumbItem>分类管理</BreadcrumbItem>
</Breadcrumb>
</Breadcrumb>
<ChildContent>
<Card> <Card>
<Form @ref="searchForm" Model="search" Layout="FormLayout.Inline" Class="search-form" OnFinish="OnSearchFinish"> <Form @ref="searchForm" Model="search" Layout="FormLayout.Inline" Class="search-form" OnFinish="OnSearchFinish">
<Row Justify="RowJustify.Start" Gutter="16"> <Row Justify="RowJustify.Start" Gutter="16">
@@ -23,6 +31,7 @@
</Row> </Row>
</Form> </Form>
</Card> </Card>
<br/>
<Card Class="mt-3"> <Card Class="mt-3">
<Table DataSource="categories" PageSize="100" HidePagination="true" Resizable> <Table DataSource="categories" PageSize="100" HidePagination="true" Resizable>
<TitleTemplate> <TitleTemplate>
@@ -132,10 +141,13 @@
</FormItem> </FormItem>
</Form> </Form>
</Drawer> </Drawer>
</ChildContent>
</PageContainer>
@code { @code {
[Parameter]
public string Locale { get; set; } = string.Empty;
[SupplyParameterFromQuery] [SupplyParameterFromQuery]
int? Page { get; set; } int? Page { get; set; }

View File

@@ -4,12 +4,12 @@
@attribute [Authorize] @attribute [Authorize]
<PageContainer Title="管理员帐号"> <PageContainer Title="管理员管理">
<Breadcrumb> <Breadcrumb>
<Breadcrumb> <Breadcrumb>
<BreadcrumbItem Href="/">管理后台</BreadcrumbItem> <BreadcrumbItem Href="/">管理后台</BreadcrumbItem>
<BreadcrumbItem Href="/admin/list">系统功能</BreadcrumbItem> <BreadcrumbItem Href="/admin/list">系统功能</BreadcrumbItem>
<BreadcrumbItem>版本管理</BreadcrumbItem> <BreadcrumbItem>管理员管理</BreadcrumbItem>
</Breadcrumb> </Breadcrumb>
</Breadcrumb> </Breadcrumb>
<ChildContent> <ChildContent>

View File

@@ -23,11 +23,12 @@
</Flex> </Flex>
</TitleTemplate> </TitleTemplate>
<ColumnDefinitions> <ColumnDefinitions>
<PropertyColumn Property="c => c.Name" Title="语言名称"> <PropertyColumn Property="c => c.Title" Title="语言名称">
</PropertyColumn>
<PropertyColumn Property="c => c.Title" Title="语言标题">
</PropertyColumn> </PropertyColumn>
<PropertyColumn Property="c => c.Name" Title="语言本地化">
</PropertyColumn>
<PropertyColumn Property="c => c.Culture" Title="语言文化" Width="100px" /> <PropertyColumn Property="c => c.Culture" Title="语言文化" Width="100px" />
<PropertyColumn Property="c => c.Enabled" Title="状态" Width="80px" Align="ColumnAlign.Center"> <PropertyColumn Property="c => c.Enabled" Title="状态" Width="80px" Align="ColumnAlign.Center">
@if (context.Enabled) @if (context.Enabled)
@@ -83,10 +84,10 @@
<Form LabelColSpan="5" @ref="@editform" Model="@model" OnFinish="OnFormFinish"> <Form LabelColSpan="5" @ref="@editform" Model="@model" OnFinish="OnFormFinish">
<FluentValidationValidator /> <FluentValidationValidator />
<FormItem Label="语言标题"> <FormItem Label="语言标题">
<Input @bind-Value="model.Title" For="(()=>model.Title)" Placeholder="语言标题" /> <Input @bind-Value="model.Title" For="(()=>model.Title)" Placeholder="语言名称" />
</FormItem> </FormItem>
<FormItem Label="语言名称"> <FormItem Label="语言名称">
<Input @bind-Value="model.Name" For="(()=>model.Name)" Placeholder="语言名称" /> <Input @bind-Value="model.Name" For="(()=>model.Name)" Placeholder="语言本地化" />
</FormItem> </FormItem>
<FormItem Label="语言文化"> <FormItem Label="语言文化">
<SimpleSelect @bind-Value="model.Culture" For="(()=>model.Culture)" Placeholder="语言文化"> <SimpleSelect @bind-Value="model.Culture" For="(()=>model.Culture)" Placeholder="语言文化">

View File

@@ -1,5 +1,20 @@
<h3>UserList</h3> @page "/user/list"
@page "/{locale}/user/list"
<PageContainer Title="用户列表">
<Breadcrumb>
<Breadcrumb>
<BreadcrumbItem Href="/">管理后台</BreadcrumbItem>
<BreadcrumbItem Href="/content/page/list">内容管理</BreadcrumbItem>
<BreadcrumbItem>用户列表</BreadcrumbItem>
</Breadcrumb>
</Breadcrumb>
<ChildContent>
<h3>Tools</h3>
</ChildContent>
</PageContainer>
@code { @code {
[Parameter]
public string Locale { get; set; } = string.Empty;
} }

View File

@@ -17,19 +17,19 @@ namespace Atomx.Common.Entities
public int Id { get; set; } public int Id { get; set; }
/// <summary> /// <summary>
/// 语言名称 /// 语言本地化
/// </summary> /// </summary>
[Column(TypeName = "varchar(50)")] [Column(TypeName = "varchar(50)")]
public string Name { get; set; } = string.Empty; public string Name { get; set; } = string.Empty;
/// <summary> /// <summary>
/// 语言标题 /// 语言名称
/// </summary> /// </summary>
[Column(TypeName = "varchar(50)")] [Column(TypeName = "varchar(50)")]
public string Title { get; set; } = string.Empty; public string Title { get; set; } = string.Empty;
/// <summary> /// <summary>
/// 语言名称 /// 语言文化
/// </summary> /// </summary>
[Column(TypeName = "varchar(25)")] [Column(TypeName = "varchar(25)")]
public string Culture { get; set; } = string.Empty; public string Culture { get; set; } = string.Empty;