diff --git a/internal/web/actions/default/dns/providers/index.go b/internal/web/actions/default/dns/providers/index.go index 94707e93..d108eec7 100644 --- a/internal/web/actions/default/dns/providers/index.go +++ b/internal/web/actions/default/dns/providers/index.go @@ -18,11 +18,13 @@ func (this *IndexAction) Init() { } func (this *IndexAction) RunGet(params struct { - Keyword string - Domain string + Keyword string + Domain string + ProviderType string }) { this.Data["keyword"] = params.Keyword this.Data["domain"] = params.Domain + this.Data["providerType"] = params.ProviderType // 格式化域名 var domain = params.Domain @@ -33,6 +35,7 @@ func (this *IndexAction) RunGet(params struct { AdminId: this.AdminId(), Keyword: params.Keyword, Domain: domain, + Type: params.ProviderType, }) if err != nil { this.ErrorPage(err) @@ -46,6 +49,7 @@ func (this *IndexAction) RunGet(params struct { AdminId: this.AdminId(), Keyword: params.Keyword, Domain: domain, + Type: params.ProviderType, Offset: page.Offset, Size: page.Size, }) @@ -53,7 +57,7 @@ func (this *IndexAction) RunGet(params struct { this.ErrorPage(err) return } - providerMaps := []maps.Map{} + var providerMaps = []maps.Map{} for _, provider := range providersResp.DnsProviders { dataUpdatedTime := "" if provider.DataUpdatedAt > 0 { @@ -61,7 +65,9 @@ func (this *IndexAction) RunGet(params struct { } // 域名 - countDomainsResp, err := this.RPC().DNSDomainRPC().CountAllEnabledDNSDomainsWithDNSProviderId(this.AdminContext(), &pb.CountAllEnabledDNSDomainsWithDNSProviderIdRequest{DnsProviderId: provider.Id}) + countDomainsResp, err := this.RPC().DNSDomainRPC().CountAllEnabledDNSDomainsWithDNSProviderId(this.AdminContext(), &pb.CountAllEnabledDNSDomainsWithDNSProviderIdRequest{ + DnsProviderId: provider.Id, + }) if err != nil { this.ErrorPage(err) return @@ -79,5 +85,30 @@ func (this *IndexAction) RunGet(params struct { } this.Data["providers"] = providerMaps + // 类型 + typesResponse, err := this.RPC().DNSProviderRPC().FindAllDNSProviderTypes(this.AdminContext(), &pb.FindAllDNSProviderTypesRequest{}) + if err != nil { + this.ErrorPage(err) + return + } + var providerTypeMaps = []maps.Map{} + for _, providerType := range typesResponse.ProviderTypes { + countProvidersWithTypeResp, err := this.RPC().DNSProviderRPC().CountAllEnabledDNSProviders(this.AdminContext(), &pb.CountAllEnabledDNSProvidersRequest{ + Type: providerType.Code, + }) + if err != nil { + this.ErrorPage(err) + return + } + if countProvidersWithTypeResp.Count > 0 { + providerTypeMaps = append(providerTypeMaps, maps.Map{ + "name": providerType.Name, + "code": providerType.Code, + "count": countProvidersWithTypeResp.Count, + }) + } + } + this.Data["providerTypes"] = providerTypeMaps + this.Show() } diff --git a/web/views/@default/dns/providers/index.html b/web/views/@default/dns/providers/index.html index e4b7d959..86e16d31 100644 --- a/web/views/@default/dns/providers/index.html +++ b/web/views/@default/dns/providers/index.html @@ -14,10 +14,16 @@
+
+ +
  - [清除条件] + [清除条件]
@@ -28,13 +34,13 @@ 账号说明 - 服务商 + 服务商 域名 操作 - {{provider.name}} + {{provider.name}} {{provider.typeName}} 0