mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 13:10:26 +08:00 
			
		
		
		
	实现在域名解析中使用EdgeDNS
This commit is contained in:
		@@ -27,8 +27,9 @@ func (this *CreatePopupAction) RunGet(params struct{}) {
 | 
				
			|||||||
	typeMaps := []maps.Map{}
 | 
						typeMaps := []maps.Map{}
 | 
				
			||||||
	for _, t := range typesResp.ProviderTypes {
 | 
						for _, t := range typesResp.ProviderTypes {
 | 
				
			||||||
		typeMaps = append(typeMaps, maps.Map{
 | 
							typeMaps = append(typeMaps, maps.Map{
 | 
				
			||||||
			"name": t.Name,
 | 
								"name":        t.Name,
 | 
				
			||||||
			"code": t.Code,
 | 
								"code":        t.Code,
 | 
				
			||||||
 | 
								"description": t.Description,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	this.Data["types"] = typeMaps
 | 
						this.Data["types"] = typeMaps
 | 
				
			||||||
@@ -36,6 +37,21 @@ func (this *CreatePopupAction) RunGet(params struct{}) {
 | 
				
			|||||||
	// 自动生成CustomHTTP私钥
 | 
						// 自动生成CustomHTTP私钥
 | 
				
			||||||
	this.Data["paramCustomHTTPSecret"] = rands.HexString(32)
 | 
						this.Data["paramCustomHTTPSecret"] = rands.HexString(32)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// EdgeDNS集群列表
 | 
				
			||||||
 | 
						nsClustersResp, err := this.RPC().NSClusterRPC().FindAllEnabledNSClusters(this.AdminContext(), &pb.FindAllEnabledNSClustersRequest{})
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							this.ErrorPage(err)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						nsClusterMaps := []maps.Map{}
 | 
				
			||||||
 | 
						for _, nsCluster := range nsClustersResp.NsClusters {
 | 
				
			||||||
 | 
							nsClusterMaps = append(nsClusterMaps, maps.Map{
 | 
				
			||||||
 | 
								"id":   nsCluster.Id,
 | 
				
			||||||
 | 
								"name": nsCluster.Name,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						this.Data["nsClusters"] = nsClusterMaps
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	this.Show()
 | 
						this.Show()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -59,6 +75,9 @@ func (this *CreatePopupAction) RunPost(params struct {
 | 
				
			|||||||
	CloudFlareAPIKey string
 | 
						CloudFlareAPIKey string
 | 
				
			||||||
	CloudFlareEmail  string
 | 
						CloudFlareEmail  string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Local EdgeDNS
 | 
				
			||||||
 | 
						ParamLocalEdgeDNSClusterId int64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// CustomHTTP
 | 
						// CustomHTTP
 | 
				
			||||||
	ParamCustomHTTPURL    string
 | 
						ParamCustomHTTPURL    string
 | 
				
			||||||
	ParamCustomHTTPSecret string
 | 
						ParamCustomHTTPSecret string
 | 
				
			||||||
@@ -109,6 +128,11 @@ func (this *CreatePopupAction) RunPost(params struct {
 | 
				
			|||||||
			Email("请输入正确格式的邮箱地址")
 | 
								Email("请输入正确格式的邮箱地址")
 | 
				
			||||||
		apiParams["apiKey"] = params.CloudFlareAPIKey
 | 
							apiParams["apiKey"] = params.CloudFlareAPIKey
 | 
				
			||||||
		apiParams["email"] = params.CloudFlareEmail
 | 
							apiParams["email"] = params.CloudFlareEmail
 | 
				
			||||||
 | 
						case "localEdgeDNS":
 | 
				
			||||||
 | 
							params.Must.
 | 
				
			||||||
 | 
								Field("ParamLocalEdgeDNSClusterId", params.ParamLocalEdgeDNSClusterId).
 | 
				
			||||||
 | 
								Gt(0, "请选择域名服务集群")
 | 
				
			||||||
 | 
							apiParams["clusterId"] = params.ParamLocalEdgeDNSClusterId
 | 
				
			||||||
	case "customHTTP":
 | 
						case "customHTTP":
 | 
				
			||||||
		params.Must.
 | 
							params.Must.
 | 
				
			||||||
			Field("paramCustomHTTPURL", params.ParamCustomHTTPURL).
 | 
								Field("paramCustomHTTPURL", params.ParamCustomHTTPURL).
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,12 +39,31 @@ func (this *ProviderAction) RunGet(params struct {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// 本地EdgeDNS相关
 | 
				
			||||||
 | 
						var localEdgeDNSMap = maps.Map{}
 | 
				
			||||||
 | 
						if provider.Type == "localEdgeDNS" {
 | 
				
			||||||
 | 
							nsClusterId := apiParams.GetInt64("clusterId")
 | 
				
			||||||
 | 
							nsClusterResp, err := this.RPC().NSClusterRPC().FindEnabledNSCluster(this.AdminContext(), &pb.FindEnabledNSClusterRequest{NsClusterId: nsClusterId})
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								this.ErrorPage(err)
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							nsCluster := nsClusterResp.NsCluster
 | 
				
			||||||
 | 
							if nsCluster != nil {
 | 
				
			||||||
 | 
								localEdgeDNSMap = maps.Map{
 | 
				
			||||||
 | 
									"id":   nsCluster.Id,
 | 
				
			||||||
 | 
									"name": nsCluster.Name,
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	this.Data["provider"] = maps.Map{
 | 
						this.Data["provider"] = maps.Map{
 | 
				
			||||||
		"id":        provider.Id,
 | 
							"id":           provider.Id,
 | 
				
			||||||
		"name":      provider.Name,
 | 
							"name":         provider.Name,
 | 
				
			||||||
		"type":      provider.Type,
 | 
							"type":         provider.Type,
 | 
				
			||||||
		"typeName":  provider.TypeName,
 | 
							"typeName":     provider.TypeName,
 | 
				
			||||||
		"apiParams": apiParams,
 | 
							"apiParams":    apiParams,
 | 
				
			||||||
 | 
							"localEdgeDNS": localEdgeDNSMap,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 域名
 | 
						// 域名
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -57,12 +57,28 @@ func (this *UpdatePopupAction) RunGet(params struct {
 | 
				
			|||||||
	typeMaps := []maps.Map{}
 | 
						typeMaps := []maps.Map{}
 | 
				
			||||||
	for _, t := range typesResp.ProviderTypes {
 | 
						for _, t := range typesResp.ProviderTypes {
 | 
				
			||||||
		typeMaps = append(typeMaps, maps.Map{
 | 
							typeMaps = append(typeMaps, maps.Map{
 | 
				
			||||||
			"name": t.Name,
 | 
								"name":        t.Name,
 | 
				
			||||||
			"code": t.Code,
 | 
								"code":        t.Code,
 | 
				
			||||||
 | 
								"description": t.Description,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	this.Data["types"] = typeMaps
 | 
						this.Data["types"] = typeMaps
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// EdgeDNS集群列表
 | 
				
			||||||
 | 
						nsClustersResp, err := this.RPC().NSClusterRPC().FindAllEnabledNSClusters(this.AdminContext(), &pb.FindAllEnabledNSClustersRequest{})
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							this.ErrorPage(err)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						nsClusterMaps := []maps.Map{}
 | 
				
			||||||
 | 
						for _, nsCluster := range nsClustersResp.NsClusters {
 | 
				
			||||||
 | 
							nsClusterMaps = append(nsClusterMaps, maps.Map{
 | 
				
			||||||
 | 
								"id":   nsCluster.Id,
 | 
				
			||||||
 | 
								"name": nsCluster.Name,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						this.Data["nsClusters"] = nsClusterMaps
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	this.Show()
 | 
						this.Show()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -88,6 +104,9 @@ func (this *UpdatePopupAction) RunPost(params struct {
 | 
				
			|||||||
	CloudFlareAPIKey string
 | 
						CloudFlareAPIKey string
 | 
				
			||||||
	CloudFlareEmail  string
 | 
						CloudFlareEmail  string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Local EdgeDNS
 | 
				
			||||||
 | 
						ParamLocalEdgeDNSClusterId int64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// CustomHTTP
 | 
						// CustomHTTP
 | 
				
			||||||
	ParamCustomHTTPURL    string
 | 
						ParamCustomHTTPURL    string
 | 
				
			||||||
	ParamCustomHTTPSecret string
 | 
						ParamCustomHTTPSecret string
 | 
				
			||||||
@@ -140,6 +159,11 @@ func (this *UpdatePopupAction) RunPost(params struct {
 | 
				
			|||||||
			Email("请输入正确格式的邮箱地址")
 | 
								Email("请输入正确格式的邮箱地址")
 | 
				
			||||||
		apiParams["apiKey"] = params.CloudFlareAPIKey
 | 
							apiParams["apiKey"] = params.CloudFlareAPIKey
 | 
				
			||||||
		apiParams["email"] = params.CloudFlareEmail
 | 
							apiParams["email"] = params.CloudFlareEmail
 | 
				
			||||||
 | 
						case "localEdgeDNS":
 | 
				
			||||||
 | 
							params.Must.
 | 
				
			||||||
 | 
								Field("ParamLocalEdgeDNSClusterId", params.ParamLocalEdgeDNSClusterId).
 | 
				
			||||||
 | 
								Gt(0, "请选择域名服务集群")
 | 
				
			||||||
 | 
							apiParams["clusterId"] = params.ParamLocalEdgeDNSClusterId
 | 
				
			||||||
	case "customHTTP":
 | 
						case "customHTTP":
 | 
				
			||||||
		params.Must.
 | 
							params.Must.
 | 
				
			||||||
			Field("paramCustomHTTPURL", params.ParamCustomHTTPURL).
 | 
								Field("paramCustomHTTPURL", params.ParamCustomHTTPURL).
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,10 +14,11 @@
 | 
				
			|||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<td>服务商厂家 *</td>
 | 
								<td>服务商厂家 *</td>
 | 
				
			||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				<select class="ui dropdown auto-width" name="type" v-model="type">
 | 
									<select class="ui dropdown auto-width" name="type" v-model="type" @change="changeType">
 | 
				
			||||||
					<option value="">[请选择]</option>
 | 
										<option value="">[请选择]</option>
 | 
				
			||||||
					<option v-for="type in types" :value="type.code">{{type.name}}</option>
 | 
										<option v-for="type in types" :value="type.code">{{type.name}}</option>
 | 
				
			||||||
				</select>
 | 
									</select>
 | 
				
			||||||
 | 
					                <p class="comment">{{typeDescription}}</p>
 | 
				
			||||||
			</td>
 | 
								</td>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
@@ -96,6 +97,19 @@
 | 
				
			|||||||
			</tr>
 | 
								</tr>
 | 
				
			||||||
		</tbody>
 | 
							</tbody>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- Edge DNS -->
 | 
				
			||||||
 | 
					        <tbody v-if="type == 'localEdgeDNS'">
 | 
				
			||||||
 | 
					            <tr>
 | 
				
			||||||
 | 
					                <td>选择域名服务集群 *</td>
 | 
				
			||||||
 | 
					                <td>
 | 
				
			||||||
 | 
					                    <select class="ui dropdown auto-width" name="paramLocalEdgeDNSClusterId">
 | 
				
			||||||
 | 
					                        <option value="0">[选择域名服务集群]</option>
 | 
				
			||||||
 | 
					                        <option v-for="cluster in nsClusters" :value="cluster.id">{{cluster.name}}</option>
 | 
				
			||||||
 | 
					                    </select>
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
 | 
					            </tr>
 | 
				
			||||||
 | 
					        </tbody>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <!-- 自定义HTTP-->
 | 
					        <!-- 自定义HTTP-->
 | 
				
			||||||
        <tbody v-if="type == 'customHTTP'">
 | 
					        <tbody v-if="type == 'customHTTP'">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,17 @@
 | 
				
			|||||||
Tea.context(function () {
 | 
					Tea.context(function () {
 | 
				
			||||||
	this.success = NotifyPopup
 | 
						this.success = NotifyPopup
 | 
				
			||||||
	this.type = ""
 | 
						this.type = ""
 | 
				
			||||||
 | 
						this.typeDescription = ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						this.changeType = function () {
 | 
				
			||||||
 | 
							let that = this
 | 
				
			||||||
 | 
							let t = this.types.$find(function (k, v) {
 | 
				
			||||||
 | 
								return v.code == that.type
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							if (t != null) {
 | 
				
			||||||
 | 
								this.typeDescription = t.description
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								this.typeDescription = ""
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
@@ -22,11 +22,11 @@
 | 
				
			|||||||
	<!-- DNSPod -->
 | 
						<!-- DNSPod -->
 | 
				
			||||||
	<tbody v-if="provider.type == 'dnspod'">
 | 
						<tbody v-if="provider.type == 'dnspod'">
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<td>密钥ID</td>
 | 
								<td class="color-border">密钥ID</td>
 | 
				
			||||||
			<td>{{provider.apiParams.id}}</td>
 | 
								<td>{{provider.apiParams.id}}</td>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<td>密钥Token</td>
 | 
								<td class="color-border">密钥Token</td>
 | 
				
			||||||
			<td>{{provider.apiParams.token}}</td>
 | 
								<td>{{provider.apiParams.token}}</td>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	</tbody>
 | 
						</tbody>
 | 
				
			||||||
@@ -46,25 +46,35 @@
 | 
				
			|||||||
    <!-- CloudFlare -->
 | 
					    <!-- CloudFlare -->
 | 
				
			||||||
    <tbody v-if="provider.type == 'cloudFlare'">
 | 
					    <tbody v-if="provider.type == 'cloudFlare'">
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <td>API密钥</td>
 | 
					            <td class="color-border">API密钥</td>
 | 
				
			||||||
            <td>
 | 
					            <td>
 | 
				
			||||||
                {{provider.apiParams.apiKey}}
 | 
					                {{provider.apiParams.apiKey}}
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <td>账号邮箱</td>
 | 
					            <td class="color-border">账号邮箱</td>
 | 
				
			||||||
            <td>{{provider.apiParams.email}}</td>
 | 
					            <td>{{provider.apiParams.email}}</td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
    </tbody>
 | 
					    </tbody>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- Local EdgeDNS -->
 | 
				
			||||||
 | 
					    <tbody v-if="provider.type == 'localEdgeDNS'">
 | 
				
			||||||
 | 
					        <tr>
 | 
				
			||||||
 | 
					            <td class="color-border">域名服务集群</td>
 | 
				
			||||||
 | 
					            <td>
 | 
				
			||||||
 | 
					                {{provider.localEdgeDNS.name}}
 | 
				
			||||||
 | 
					            </td>
 | 
				
			||||||
 | 
					        </tr>
 | 
				
			||||||
 | 
					    </tbody>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- CustomHTTP -->
 | 
					    <!-- CustomHTTP -->
 | 
				
			||||||
    <tbody v-if="provider.type == 'customHTTP'">
 | 
					    <tbody v-if="provider.type == 'customHTTP'">
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <td>HTTP URL</td>
 | 
					            <td class="color-border">HTTP URL</td>
 | 
				
			||||||
            <td>{{provider.apiParams.url}}</td>
 | 
					            <td>{{provider.apiParams.url}}</td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <td>私钥</td>
 | 
					            <td class="color-border">私钥</td>
 | 
				
			||||||
            <td>{{provider.apiParams.secret}}</td>
 | 
					            <td>{{provider.apiParams.secret}}</td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
    </tbody>
 | 
					    </tbody>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,7 @@
 | 
				
			|||||||
			<td>服务商厂家 *</td>
 | 
								<td>服务商厂家 *</td>
 | 
				
			||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				{{provider.typeName}}
 | 
									{{provider.typeName}}
 | 
				
			||||||
				<p class="comment">创建后无法修改此选项。</p>
 | 
									<p class="comment">{{typeDescription}}创建后无法修改此选项。</p>
 | 
				
			||||||
			</td>
 | 
								</td>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
@@ -79,6 +79,19 @@
 | 
				
			|||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        </tbody>
 | 
					        </tbody>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- Edge DNS -->
 | 
				
			||||||
 | 
					        <tbody v-if="provider.type == 'localEdgeDNS'">
 | 
				
			||||||
 | 
					            <tr>
 | 
				
			||||||
 | 
					                <td>选择域名服务集群 *</td>
 | 
				
			||||||
 | 
					                <td>
 | 
				
			||||||
 | 
					                    <select class="ui dropdown auto-width" name="paramLocalEdgeDNSClusterId" v-model="provider.params.clusterId">
 | 
				
			||||||
 | 
					                        <option value="0">[选择域名服务集群]</option>
 | 
				
			||||||
 | 
					                        <option v-for="cluster in nsClusters" :value="cluster.id">{{cluster.name}}</option>
 | 
				
			||||||
 | 
					                    </select>
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
 | 
					            </tr>
 | 
				
			||||||
 | 
					        </tbody>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <!-- 自定义HTTP-->
 | 
					        <!-- 自定义HTTP-->
 | 
				
			||||||
        <tbody v-if="provider.type == 'customHTTP'">
 | 
					        <tbody v-if="provider.type == 'customHTTP'">
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								web/views/@default/dns/providers/updatePopup.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								web/views/@default/dns/providers/updatePopup.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					Tea.context(function () {
 | 
				
			||||||
 | 
						this.typeDescription = ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						let that = this
 | 
				
			||||||
 | 
						this.types.forEach(function (v) {
 | 
				
			||||||
 | 
							if (v.code == that.provider.type) {
 | 
				
			||||||
 | 
								that.typeDescription = v.description
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
		Reference in New Issue
	
	Block a user