@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] 管理后台 系统配置 国家管理
@code { [Parameter] public string Locale { get; set; } = string.Empty; [Parameter] public long CountryId { get; set; } [Parameter] public long Id { get; set; } [SupplyParameterFromForm] StateProvinceModel model { get; set; } = new(); Form editform = null!; List languageList = new(); Country country = new(); StateProvinceLocalizedModel stateProvince = new(); bool pageLoading = false; bool saving = false; protected override void OnInitialized() { base.OnInitialized(); } protected override void OnParametersSet() { model.CountryId = CountryId; _ = LoadLanguage(); _ = LoadCountry(); if (Id > 0) { LoadData(); } base.OnParametersSet(); } async Task LoadCountry() { var url = $"/api/country?id={CountryId}"; var apiResult = await HttpService.Get>(url); if (apiResult.Success) { if (apiResult.Data != null) { country = apiResult.Data; StateHasChanged(); } else { Navigation.NavigateTo($"/country/list"); } } } async Task LoadLanguage() { var url = $"/api/language/enabled"; var apiResult = await HttpService.Get>>(url); if (apiResult.Success) { if (apiResult.Data == null) { languageList = new List(); } else { languageList = apiResult.Data; languageList.Insert(0, new KeyValue() { Key = "0", Value = "标准" }); } StateHasChanged(); } } async void LoadData() { pageLoading = true; var url = $"/api/stateprovince/detail/{Id}"; var apiResult = await HttpService.Get>(url); if (apiResult.Success) { if (apiResult.Data == null) { Navigation.NavigateTo($"/country/list"); } else { stateProvince = apiResult.Data; model = apiResult.Data.Adapt(); } } else { Navigation.NavigateTo($"/country/list"); } pageLoading = false; StateHasChanged(); } async void OnFormFinishAsync() { if (editform.Validate()) { saving = true; var url = $"api/stateprovince/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($"/stateprovince/list/{CountryId}"); } else { saving = false; await ModalService.ErrorAsync(new ConfirmOptions() { Title = "服务异常", Content = result.Message }); } } } }