@page "/admin/list" @using Atomx.Common.Constants @inject ILogger Logger @* @attribute [Authorize] *@ 管理员账号管理 管理员帐号

帐号列表
\
@if (context.Status == 1) { } else { } 编辑 删除
@if (context.Id > 0) { 重置密码 } @if (context.Id == 0) { } @if ((context.Id > 0 && context.SetPassword) || context.Id == 0) { } @if ((context.Id > 0 && context.SetPassword) || context.Id == 0) { } 禁用 启用
@code { [SupplyParameterFromQuery] int? Page { get; set; } [SupplyParameterFromQuery(Name = "size")] int? PageSize { get; set; } [SupplyParameterFromForm] AdminSearch search { get; set; } = new(); Form searchForm = null!; [SupplyParameterFromForm] AdminModel model { get; set; } = new(); Form editform = null!; PagingList PagingList = new(); bool loading { get; set; } = true; bool searchExpand { get; set; } = false; bool drawerVisible; protected override void OnInitialized() { base.OnInitialized(); } protected override void OnParametersSet() { loadQueryString(); _ = LoadList(); base.OnParametersSet(); } void loadQueryString() { var uri = new Uri(Navigation.Uri); var query = uri.Query; search.Username = query.GetQueryString("Username"); search.Mobile = query.GetQueryString("Mobile"); search.Email = query.GetQueryString("Email"); search.RealName = query.GetQueryString("RealName"); 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(); } } } private async Task LoadList() { loading = true; var url = "/api/admin/search"; try { var apiResult = await HttpService.GetPagingList(url, search, Page.GetValueOrDefault(1), PageSize.GetValueOrDefault(20)); if (apiResult.Success) { if (apiResult.Data != null) { PagingList = apiResult.Data; } } } finally { loading = false; StateHasChanged(); } } private void OnReset() { search = new(); _ = LoadList(); } void OnSearchReset() { search = new(); searchForm?.Reset(); OnSearchFinish(); } void OnSearchFinish() { Page = Page.GetValueOrDefault(1) - 1; OnSearch(Page.Value); } private void OnSearch(int page) { var queryString = search.BuildQueryString(); if (string.IsNullOrEmpty(queryString)) { if (page > 1) { Navigation.NavigateTo($"/admin/list?page={page}"); } else { Navigation.NavigateTo($"/admin/list"); } } else { if (page > 1) { Navigation.NavigateTo($"/admin/list?page={page}&{queryString}"); } else { Navigation.NavigateTo($"/admin/list?{queryString}"); } } } void OnCreateClick() { model = new(); drawerVisible = true; } void OnEditClick(Admin admin) { this.model = admin.Adapt(); this.model.Password = string.Empty; drawerVisible = true; } async Task HandleDeleteConfirmAsync(MouseEventArgs e, long id) { var url = $"/api/admin/delete/{id}"; var apiResult = await HttpService.Post>(url, new()); if (apiResult.Success) { _ = LoadList(); await ModalService.InfoAsync(new ConfirmOptions() { Title = "操作提示", Content = "删除数据成功" }); } else { await ModalService.ErrorAsync(new ConfirmOptions() { Title = "操作提示", Content = $"数据删除失败.{apiResult.Message}" }); } } async Task OnFormFinish() { if (editform.Validate()) { var result = new ApiResult(); if (model.Id > 0) { var url = $"api/admin/edit"; result = await HttpService.Post>(url, model); } else { var url = $"api/admin/add"; result = await HttpService.Post>(url, model); } if (result.Code == (int)ResultCode.Success) { CloseDrawer(); LoadList(); await ModalService.InfoAsync(new ConfirmOptions() { Title = "提示", Content = "数据提交成功!" }); } else { await ModalService.ErrorAsync(new ConfirmOptions() { Title = "服务异常", Content = result.Message }); } } } private void OnPageChanged(int args) { OnSearch(args); } void CloseDrawer() { drawerVisible = false; editform.Reset(); } }