diff --git a/Atomx.Admin/Atomx.Admin.Client/Models/CountryModel.cs b/Atomx.Admin/Atomx.Admin.Client/Models/CountryModel.cs
index d90b0c6..a443440 100644
--- a/Atomx.Admin/Atomx.Admin.Client/Models/CountryModel.cs
+++ b/Atomx.Admin/Atomx.Admin.Client/Models/CountryModel.cs
@@ -4,5 +4,10 @@ namespace Atomx.Admin.Client.Models
{
public class CountryModel:Country
{
+ ///
+ /// 语言
+ ///
+ public string LanguageId { get; set; } = string.Empty;
+ public List Localized { get; set; } = new List();
}
}
diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/AreaEdit.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/AreaEdit.razor
new file mode 100644
index 0000000..1182801
--- /dev/null
+++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/AreaEdit.razor
@@ -0,0 +1,5 @@
+AreaEdit
+
+@code {
+
+}
diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/AreaList.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/AreaList.razor
new file mode 100644
index 0000000..2a47eb9
--- /dev/null
+++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/AreaList.razor
@@ -0,0 +1,207 @@
+@page "/area/list/{countryId:long}"
+@page "/{locale}/area/list/{countryId:long}"
+@inject ILogger Logger
+@attribute [Authorize]
+
+
+
+
+
+
+ Home
+ 系统配置
+ 国家管理
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @if (context.Enabled)
+ {
+ 已激活
+ }
+ else
+ {
+ 未激活
+ }
+
+
+
+
+
+ HandleEdit(context)">编辑
+
+ @*
+
+ 删除
+
+ *@
+
+
+
+
+
+ @if (PagingList.Count > 0)
+ {
+
+ }
+
+
+
+
+
+
+
+@code {
+ [Parameter]
+ public string Locale { get; set; } = string.Empty;
+ [Parameter]
+ public long CountryId { get; set; }
+
+ [SupplyParameterFromQuery]
+ int? Page { get; set; }
+
+ [SupplyParameterFromQuery(Name = "size")]
+ int? PageSize { get; set; }
+
+ bool pageLoading = false;
+
+ Form searchForm = new();
+ CountrySearch search = new();
+
+ PagingList PagingList = new() { Size = 20 };
+
+
+ protected override async Task OnInitializedAsync()
+ {
+ await base.OnInitializedAsync();
+ }
+
+ protected override async Task OnParametersSetAsync()
+ {
+ loadQueryString();
+ await LoadListAsync();
+ await base.OnParametersSetAsync();
+ }
+
+ void loadQueryString()
+ {
+ var uri = new Uri(Navigation.Uri);
+ var query = uri.Query;
+ search.Name = query.GetQueryString("Name");
+ }
+
+ async Task LoadListAsync()
+ {
+ try
+ {
+ pageLoading = true;
+ var url = "/api/country/search";
+ var apiResult = await HttpService.GetPagingList(url, search, Page.GetValueOrDefault(1), PageSize.GetValueOrDefault(20));
+ if (apiResult.Success)
+ {
+ if (apiResult.Data != null)
+ {
+ PagingList = apiResult.Data;
+ }
+ }
+ else if (apiResult.Code == 403)
+ {
+ ModalService.Error(new ConfirmOptions() { Title = "权限不足", Content = apiResult.Message });
+ }
+
+ StateHasChanged();
+ }
+ finally
+ {
+ pageLoading = false;
+ }
+ }
+
+ void OnSearchReset()
+ {
+ search = new CountrySearch();
+ searchForm?.Reset();
+ }
+
+ private void OnSearch(int page)
+ {
+ var queryString = search.BuildQueryString();
+ if (string.IsNullOrEmpty(queryString))
+ {
+ if (page > 1)
+ {
+ Navigation.NavigateTo($"/country/list?page={page}");
+ }
+ else
+ {
+ Navigation.NavigateTo($"/country/list");
+ }
+ }
+ else
+ {
+ if (page > 1)
+ {
+ Navigation.NavigateTo($"/country/list?page={page}&{queryString}");
+ }
+ else
+ {
+ Navigation.NavigateTo($"/country/list?{queryString}");
+ }
+ }
+ }
+
+ void OnSearchFinish()
+ {
+ Page = Page.GetValueOrDefault(1) - 1;
+
+ OnSearch(Page.Value);
+ }
+
+ private void OnPageChanged(PaginationEventArgs args)
+ {
+ OnSearch(args.Page);
+ }
+
+ void HandleAddNew()
+ {
+ Navigation.NavigateTo($"/country/create");
+ }
+
+
+ void HandleEdit(Country model)
+ {
+ Navigation.NavigateTo($"/country/edit/{model.Id}");
+ }
+
+}
diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CountryEdit.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CountryEdit.razor
index 0582bd9..7e0e1ae 100644
--- a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CountryEdit.razor
+++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CountryEdit.razor
@@ -17,29 +17,43 @@
-
+