diff --git a/Atomx.Admin/Atomx.Admin.Client/Models/CurrencyModel.cs b/Atomx.Admin/Atomx.Admin.Client/Models/CurrencyModel.cs index 5cd64fd..bf60979 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Models/CurrencyModel.cs +++ b/Atomx.Admin/Atomx.Admin.Client/Models/CurrencyModel.cs @@ -5,7 +5,7 @@ /// /// 数据ID /// - public int Id { get; set; } + public int? Id { get; set; } /// /// 语言 diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CurrencyEdit.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CurrencyEdit.razor new file mode 100644 index 0000000..ca0f11c --- /dev/null +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CurrencyEdit.razor @@ -0,0 +1,137 @@ +@page "/currency/create" +@page "/currency/edit/{id:long}" +@page "/{locale}/currency/create" +@page "/{locale}/currency/edit/{id:long}" + +@inject ILogger Logger +@attribute [Authorize] + + + + + 管理后台 + 系统功能 + 货币管理 + + + + + + +
+ + + + + + + + + + + + + @foreach (var item in LanguageCultures) + { + + } + + + + + + + + + + + 启用 + + + + +
+
+
+
+
+@code { + [Parameter] + public string Locale { get; set; } = string.Empty; + + [Parameter] + public long Id { get; set; } + + [SupplyParameterFromForm] + CurrencyModel model { get; set; } = new(); + Form editform = null!; + Dictionary LanguageCultures = LanguageCulture.Descriptions.ToDictionary(); + bool pageLoading = false; + bool saving = false; + + protected override void OnInitialized() + { + base.OnInitialized(); + } + + protected override void OnParametersSet() + { + if (Id > 0) + { + LoadData(); + } + base.OnParametersSet(); + } + + async void LoadData() + { + pageLoading = true; + var url = $"/api/currency/{Id}"; + var apiResult = await HttpService.Get>(url); + if (apiResult.Success) + { + if (apiResult.Data == null) + { + Navigation.NavigateTo($"/currency/create"); + } + else + { + model = apiResult.Data.Adapt(); + } + } + else + { + Navigation.NavigateTo($"/currency/create"); + } + + pageLoading = false; + StateHasChanged(); + } + + async void OnFormFinishAsync() + { + if (editform.Validate()) + { + saving = true; + var url = $"api/currency/save"; + var result = new ApiResult(); + result = await HttpService.Post>(url, model); + + + if (result.Code == (int)ResultCode.Success) + { + saving = false; + await ModalService.InfoAsync(new ConfirmOptions() { Title = "提示", Content = "数据提交成功!" }); + Navigation.NavigateTo($"/currency/list"); + } + else + { + saving = false; + await ModalService.ErrorAsync(new ConfirmOptions() { Title = "服务异常", Content = result.Message }); + } + } + } + +} diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CurrencyList.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CurrencyList.razor index e8c50a0..5c7cb95 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CurrencyList.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/CurrencyList.razor @@ -3,8 +3,8 @@ @inject ILogger Logger @attribute [Authorize] -货币管理 - + + Home @@ -112,7 +112,10 @@
- + @if (PagingList.Count > 0) + { + + } @@ -247,7 +250,7 @@ void HandleAddNew() { - Navigation.NavigateTo($"/currency/edit"); + Navigation.NavigateTo($"/currency/create"); } @@ -256,4 +259,4 @@ Navigation.NavigateTo($"/currency/edit/{model.Id}"); } - } \ No newline at end of file +} \ No newline at end of file diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/MessageTemplateList.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/MessageTemplateList.razor index 7acf83c..ca54e89 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/MessageTemplateList.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Settings/MessageTemplateList.razor @@ -107,7 +107,10 @@
- + @if (PagingList.Count > 0) + { + + } diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/SiteApps/AppVersionList.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/SiteApps/AppVersionList.razor index ad8f5d1..c47f6e2 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/SiteApps/AppVersionList.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/SiteApps/AppVersionList.razor @@ -156,7 +156,10 @@
- + @if (PagingList.Count > 0) + { + + } diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Storages/UploadList.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Storages/UploadList.razor index 86957f9..335ae63 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Storages/UploadList.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Storages/UploadList.razor @@ -92,6 +92,13 @@ +
+ + @if (PagingList.Count > 0) + { + + } + @@ -290,9 +297,9 @@ } } - private void OnPageChanged(int args) + private void OnPageChanged(PaginationEventArgs args) { - OnSearch(args); + OnSearch(args.Page); } void CloseDrawer() diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/AdminList.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/AdminList.razor index 2ebfe2f..4e1e01e 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/AdminList.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/AdminList.razor @@ -98,7 +98,10 @@
- + @if (PagingList.Count > 0) + { + + } diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/LanguageList.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/LanguageList.razor index a0080ff..199b670 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/LanguageList.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/LanguageList.razor @@ -78,6 +78,13 @@ +
+ + @if (PagingList.Count > 0) + { + + } + @@ -252,9 +259,9 @@ } } - private void OnPageChanged(int args) + private void OnPageChanged(PaginationEventArgs args) { - OnSearch(args); + OnSearch(args.Page); } void CloseDrawer() diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/LocaleResourceList.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/LocaleResourceList.razor index 2d51596..5d2407b 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/LocaleResourceList.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/LocaleResourceList.razor @@ -90,7 +90,10 @@
- + @if (PagingList.Count > 0) + { + + } diff --git a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/RoleList.razor b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/RoleList.razor index c15d8a1..fd59368 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/RoleList.razor +++ b/Atomx.Admin/Atomx.Admin.Client/Pages/Systems/RoleList.razor @@ -90,7 +90,10 @@
- + @if (PagingList.Count > 0) + { + + } diff --git a/Atomx.Admin/Atomx.Admin.Client/Services/NavigationService.cs b/Atomx.Admin/Atomx.Admin.Client/Services/NavigationService.cs new file mode 100644 index 0000000..a9525f4 --- /dev/null +++ b/Atomx.Admin/Atomx.Admin.Client/Services/NavigationService.cs @@ -0,0 +1,11 @@ +namespace Atomx.Admin.Client.Services +{ + public interface INavigationService + { + + } + + public class NavigationService + { + } +} diff --git a/Atomx.Admin/Atomx.Admin/Controllers/CurrencyController.cs b/Atomx.Admin/Atomx.Admin/Controllers/CurrencyController.cs index 903229d..b9e8130 100644 --- a/Atomx.Admin/Atomx.Admin/Controllers/CurrencyController.cs +++ b/Atomx.Admin/Atomx.Admin/Controllers/CurrencyController.cs @@ -1,5 +1,4 @@ -using AntDesign; -using Atomx.Admin.Client.Models; +using Atomx.Admin.Client.Models; using Atomx.Admin.Services; using Atomx.Common.Entities; using Atomx.Common.Models; @@ -8,8 +7,8 @@ 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; using Microsoft.Extensions.Localization; @@ -85,7 +84,7 @@ namespace Atomx.Admin.Controllers /// /// [HttpPost("search")] - public async Task GetList(CurrencySearchModel search, int page, int size = 20) + public async Task GetList(CurrencySearchModel search, int page, int size = 20) { var startTime = search.RangeTime[0]; if (startTime != null) @@ -197,7 +196,7 @@ namespace Atomx.Admin.Controllers result.Success = false; return new JsonResult(result); } - if (model.IsEdit && model.Id > 0) + if (model.Id.HasValue && model.Id > 0) { var data = _dbContext.Currencies.SingleOrDefault(p => p.Id == model.Id); if (data == null) @@ -211,20 +210,33 @@ namespace Atomx.Admin.Controllers data = _mapper.Map(model, data); data.UpdateTime = DateTime.UtcNow; _dbContext.SaveChanges(); - await _cacheService.GetCurrenciesById(model.Id, data); } else { - var data = _mapper.Map(model); - data.CreateTime = DateTime.UtcNow; + var data = new Currency() + { + Name = model.Name, + CurrencyCode = model.CurrencyCode, + DisplayLocale = model.DisplayLocale, + CustomFormatting = model.CustomFormatting, + Rate = (decimal)model.Rate, + DisplayOrder = model.DisplayOrder, + EnableDisplay = model.Enabled, + Symbolic = "", + Enabled = model.Enabled, + Title = model.Name, + EnablePay = true, + CreateTime = DateTime.UtcNow + }; _dbContext.Currencies.Add(data); _dbContext.SaveChanges(); - await _cacheService.GetCurrenciesById(model.Id, data); } result.Data = true; + //todo 更新缓存 + return new JsonResult(result); } diff --git a/Atomx.Common/Entities/Currency.cs b/Atomx.Common/Entities/Currency.cs index a837494..3e9d707 100644 --- a/Atomx.Common/Entities/Currency.cs +++ b/Atomx.Common/Entities/Currency.cs @@ -12,8 +12,8 @@ namespace Atomx.Common.Entities /// /// 数据ID /// - [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } /// diff --git a/Atomx.Data/DataContext.cs b/Atomx.Data/DataContext.cs index bbbcc6d..b00c62c 100644 --- a/Atomx.Data/DataContext.cs +++ b/Atomx.Data/DataContext.cs @@ -23,7 +23,11 @@ namespace Atomx.Data protected override void OnModelCreating(ModelBuilder builder) { - + base.OnModelCreating(builder); + builder.Entity(entity => + { + entity.Property(e => e.Id).ValueGeneratedOnAdd(); + }); } /// @@ -170,7 +174,7 @@ namespace Atomx.Data /// /// 标签 /// - public DbSet Tags { get; set; } + public DbSet Tags { get; set; } /// /// 上传文件