diff --git a/Atomx.Admin/Atomx.Admin.Client/Models/StateProvinceSearch.cs b/Atomx.Admin/Atomx.Admin.Client/Models/StateProvinceSearch.cs index de32af2..1f0e24d 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Models/StateProvinceSearch.cs +++ b/Atomx.Admin/Atomx.Admin.Client/Models/StateProvinceSearch.cs @@ -1,8 +1,11 @@ -namespace Atomx.Admin.Client.Models +using System.Runtime.Serialization; + +namespace Atomx.Admin.Client.Models { public class StateProvinceSearch { - public long CountryId { get; set; } + [IgnoreDataMember] + public long? CountryId { get; set; } public string Name { get; set; } = string.Empty; } } diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CountryEdit.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CountryEdit.razor index 030da68..3277f6a 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CountryEdit.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CountryEdit.razor @@ -21,12 +21,12 @@
@if (Id > 0 && languageList.Count() > 0) { - - + +@* 标准 - + *@ @foreach (var item in languageList) { @@ -38,28 +38,28 @@ } - + - + - + - + - + - 允许发货 + 允许发货 - + - 启用 + @@ -61,6 +61,7 @@ +
@@ -86,11 +87,11 @@ @if (context.Enabled) { - 已激活 + } else { - 未激活 + } diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/StateProvinceEdit.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/StateProvinceEdit.razor index 4521971..8f0811d 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/StateProvinceEdit.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/StateProvinceEdit.razor @@ -1,51 +1,41 @@ -@page "/stateprovince/create" -@page "/stateprovince/edit/{id:long}" -@page "/{locale}/stateprovince/create" -@page "/{locale}/stateprovince/edit/{id:long}" +@page "/stateprovince/{countryId:long}/create" +@page "/stateprovince/{countryId:long}/edit/{id:long}" +@page "/{locale}/stateprovince/{countryId:long}/create" +@page "/{locale}/stateprovince/{countryId:long}/edit/{id:long}" @inject ILogger Logger @attribute [Authorize] - + 管理后台 - 系统配置 + 系统配置 国家管理 - +
+ + + - + - - + + - - - - - - - @foreach (var item in LanguageCultures) - { - - } - - - - - + + - 启用 + - - @if (searchExpand) - { - 收起 - } - else - { - 展开 - } -
- +
+
- +
- - - - @if (context.PrimaryCurrency) - { - - } - else - { - - } - + + @if (context.Enabled) { - 已激活 + } else { - 未激活 + } - 编辑 + 编辑 @* searchForm = new(); - CurrencySearchModel search = new(); + Form searchForm = new(); + StateProvinceSearch search = new(); - PagingList PagingList = new() { Size = 20 }; + PagingList PagingList = new() { Size = 20 }; protected override async Task OnInitializedAsync() @@ -160,21 +124,7 @@ var uri = new Uri(Navigation.Uri); var query = uri.Query; search.Name = query.GetQueryString("Name"); - search.Status = query.GetQueryString("Status"); - - var data = query.GetQueryString("RangeTime"); - if (!string.IsNullOrEmpty(data)) - { - var rangetime = data.Split("-"); - if (rangetime != null && rangetime.Length > 0) - { - searchExpand = true; - search.RangeTime[0] = rangetime[0].NumberToDateTime(); - search.RangeTime[1] = rangetime[1].NumberToDateTime(); - StateHasChanged(); - } - } - + search.CountryId = CountryId; } async Task LoadListAsync() @@ -182,8 +132,8 @@ try { pageLoading = true; - var url = "/api/currency/search"; - var apiResult = await HttpService.GetPagingList(url, search, Page.GetValueOrDefault(1), PageSize.GetValueOrDefault(20)); + var url = "/api/stateprovince/search"; + var apiResult = await HttpService.GetPagingList(url, search, Page.GetValueOrDefault(1), PageSize.GetValueOrDefault(20)); if (apiResult.Success) { if (apiResult.Data != null) @@ -206,7 +156,7 @@ void OnSearchReset() { - search = new CurrencySearchModel(); + search = new(); searchForm?.Reset(); } @@ -217,22 +167,22 @@ { if (page > 1) { - Navigation.NavigateTo($"/currency/list?page={page}"); + Navigation.NavigateTo($"/stateprovince/list/{CountryId}?page={page}"); } else { - Navigation.NavigateTo($"/currency/list"); + Navigation.NavigateTo($"/stateprovince/list/{CountryId}"); } } else { if (page > 1) { - Navigation.NavigateTo($"/currency/list?page={page}&{queryString}"); + Navigation.NavigateTo($"/stateprovince/list/{CountryId}?page={page}&{queryString}"); } else { - Navigation.NavigateTo($"/currency/list?{queryString}"); + Navigation.NavigateTo($"/stateprovince/list/{CountryId}?{queryString}"); } } } @@ -251,17 +201,13 @@ void HandleAddNew() { - Navigation.NavigateTo($"/currency/create"); + Navigation.NavigateTo($"/stateprovince/{CountryId}/create"); } - void HandleEdit(CurrencyModel model) + void HandleEdit(StateProvince model) { - Navigation.NavigateTo($"/currency/edit/{model.Id}"); + Navigation.NavigateTo($"/stateprovince/{CountryId}/edit/{model.Id}"); } -} - -@code { - -} +} \ No newline at end of file diff --git a/Atomx.Admin/Atomx.Admin/Controllers/AreaController.cs b/Atomx.Admin/Atomx.Admin/Controllers/AreaController.cs index f3b8f97..d5becd3 100644 --- a/Atomx.Admin/Atomx.Admin/Controllers/AreaController.cs +++ b/Atomx.Admin/Atomx.Admin/Controllers/AreaController.cs @@ -61,7 +61,7 @@ namespace Atomx.Admin.Controllers /// /// /// - [HttpPost("searh")] + [HttpPost("search")] [Authorize(Policy = Permissions.User.View)] public IActionResult AddressList(AreaSearch search, int page, int size = 20) { diff --git a/Atomx.Admin/Atomx.Admin/Controllers/CountryController.cs b/Atomx.Admin/Atomx.Admin/Controllers/CountryController.cs index 29e2727..bb41c30 100644 --- a/Atomx.Admin/Atomx.Admin/Controllers/CountryController.cs +++ b/Atomx.Admin/Atomx.Admin/Controllers/CountryController.cs @@ -9,6 +9,7 @@ using Atomx.Data.CacheServices; using Atomx.Data.Services; using Atomx.Utils.Extension; using FluentValidation; +using Mapster; using MapsterMapper; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -61,7 +62,7 @@ namespace Atomx.Admin.Controllers /// /// /// - [HttpPost("searh")] + [HttpPost("search")] public IActionResult Search(CountrySearch search, int page, int size = 20) { if (page < 1) @@ -214,8 +215,19 @@ namespace Atomx.Admin.Controllers _dbContext.LocalizedProperties.AddRange(addLocalizedList); } - data.Enabled = model.Enabled; - data.DisplayOrder = model.DisplayOrder; + var config = new TypeAdapterConfig(); + config.NewConfig() + .Ignore(dest => dest.Name).Ignore(dest => dest.Id); + data = model.Adapt(data, config); + //data = _mapper.Map(model, data); + + //data.TwoLetterISOCode = model.TwoLetterISOCode; + //data.Initial = model.Initial; + //data.AllowShipping = model.AllowShipping; + //data.NumericISOCode = model.NumericISOCode; + //data.ThreeLetterISOCode = model.ThreeLetterISOCode; + //data.Enabled = model.Enabled; + //data.DisplayOrder = model.DisplayOrder; try diff --git a/Atomx.Admin/Atomx.Admin/Controllers/StateProvinceController.cs b/Atomx.Admin/Atomx.Admin/Controllers/StateProvinceController.cs index d6c531c..23c02d7 100644 --- a/Atomx.Admin/Atomx.Admin/Controllers/StateProvinceController.cs +++ b/Atomx.Admin/Atomx.Admin/Controllers/StateProvinceController.cs @@ -57,7 +57,7 @@ namespace Atomx.Admin.Controllers /// /// /// - [HttpPost("searh")] + [HttpPost("search")] [Authorize(Policy = Permissions.User.View)] public IActionResult AddressList(StateProvinceSearch search, int page, int size = 20) { diff --git a/Atomx.Utils/Extension/StringExtension.cs b/Atomx.Utils/Extension/StringExtension.cs index c7a37a7..a4d09ba 100644 --- a/Atomx.Utils/Extension/StringExtension.cs +++ b/Atomx.Utils/Extension/StringExtension.cs @@ -1,6 +1,7 @@ using System.Security.Cryptography; using System.Text; using System.Web; +using System.Runtime.Serialization; namespace Atomx.Utils.Extension { @@ -96,6 +97,12 @@ namespace Atomx.Utils.Extension var modelDict = source.GetType().GetProperties().ToDictionary(a => a.Name.ToLower()); foreach (var item in modelDict) { + // Skip properties marked with IgnoreDataMember + if (item.Value.IsDefined(typeof(IgnoreDataMemberAttribute), false)) + { + continue; + } + if (item.Value.PropertyType != typeof(DateTime?[])) { System.Reflection.PropertyInfo? pi = null;