mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 21:50:28 +08:00 
			
		
		
		
	实现在域名解析中使用EdgeDNS
This commit is contained in:
		@@ -27,8 +27,9 @@ func (this *CreatePopupAction) RunGet(params struct{}) {
 | 
			
		||||
	typeMaps := []maps.Map{}
 | 
			
		||||
	for _, t := range typesResp.ProviderTypes {
 | 
			
		||||
		typeMaps = append(typeMaps, maps.Map{
 | 
			
		||||
			"name": t.Name,
 | 
			
		||||
			"code": t.Code,
 | 
			
		||||
			"name":        t.Name,
 | 
			
		||||
			"code":        t.Code,
 | 
			
		||||
			"description": t.Description,
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
	this.Data["types"] = typeMaps
 | 
			
		||||
@@ -36,6 +37,21 @@ func (this *CreatePopupAction) RunGet(params struct{}) {
 | 
			
		||||
	// 自动生成CustomHTTP私钥
 | 
			
		||||
	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()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -59,6 +75,9 @@ func (this *CreatePopupAction) RunPost(params struct {
 | 
			
		||||
	CloudFlareAPIKey string
 | 
			
		||||
	CloudFlareEmail  string
 | 
			
		||||
 | 
			
		||||
	// Local EdgeDNS
 | 
			
		||||
	ParamLocalEdgeDNSClusterId int64
 | 
			
		||||
 | 
			
		||||
	// CustomHTTP
 | 
			
		||||
	ParamCustomHTTPURL    string
 | 
			
		||||
	ParamCustomHTTPSecret string
 | 
			
		||||
@@ -109,6 +128,11 @@ func (this *CreatePopupAction) RunPost(params struct {
 | 
			
		||||
			Email("请输入正确格式的邮箱地址")
 | 
			
		||||
		apiParams["apiKey"] = params.CloudFlareAPIKey
 | 
			
		||||
		apiParams["email"] = params.CloudFlareEmail
 | 
			
		||||
	case "localEdgeDNS":
 | 
			
		||||
		params.Must.
 | 
			
		||||
			Field("ParamLocalEdgeDNSClusterId", params.ParamLocalEdgeDNSClusterId).
 | 
			
		||||
			Gt(0, "请选择域名服务集群")
 | 
			
		||||
		apiParams["clusterId"] = params.ParamLocalEdgeDNSClusterId
 | 
			
		||||
	case "customHTTP":
 | 
			
		||||
		params.Must.
 | 
			
		||||
			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{
 | 
			
		||||
		"id":        provider.Id,
 | 
			
		||||
		"name":      provider.Name,
 | 
			
		||||
		"type":      provider.Type,
 | 
			
		||||
		"typeName":  provider.TypeName,
 | 
			
		||||
		"apiParams": apiParams,
 | 
			
		||||
		"id":           provider.Id,
 | 
			
		||||
		"name":         provider.Name,
 | 
			
		||||
		"type":         provider.Type,
 | 
			
		||||
		"typeName":     provider.TypeName,
 | 
			
		||||
		"apiParams":    apiParams,
 | 
			
		||||
		"localEdgeDNS": localEdgeDNSMap,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 域名
 | 
			
		||||
 
 | 
			
		||||
@@ -57,12 +57,28 @@ func (this *UpdatePopupAction) RunGet(params struct {
 | 
			
		||||
	typeMaps := []maps.Map{}
 | 
			
		||||
	for _, t := range typesResp.ProviderTypes {
 | 
			
		||||
		typeMaps = append(typeMaps, maps.Map{
 | 
			
		||||
			"name": t.Name,
 | 
			
		||||
			"code": t.Code,
 | 
			
		||||
			"name":        t.Name,
 | 
			
		||||
			"code":        t.Code,
 | 
			
		||||
			"description": t.Description,
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
	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()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -88,6 +104,9 @@ func (this *UpdatePopupAction) RunPost(params struct {
 | 
			
		||||
	CloudFlareAPIKey string
 | 
			
		||||
	CloudFlareEmail  string
 | 
			
		||||
 | 
			
		||||
	// Local EdgeDNS
 | 
			
		||||
	ParamLocalEdgeDNSClusterId int64
 | 
			
		||||
 | 
			
		||||
	// CustomHTTP
 | 
			
		||||
	ParamCustomHTTPURL    string
 | 
			
		||||
	ParamCustomHTTPSecret string
 | 
			
		||||
@@ -140,6 +159,11 @@ func (this *UpdatePopupAction) RunPost(params struct {
 | 
			
		||||
			Email("请输入正确格式的邮箱地址")
 | 
			
		||||
		apiParams["apiKey"] = params.CloudFlareAPIKey
 | 
			
		||||
		apiParams["email"] = params.CloudFlareEmail
 | 
			
		||||
	case "localEdgeDNS":
 | 
			
		||||
		params.Must.
 | 
			
		||||
			Field("ParamLocalEdgeDNSClusterId", params.ParamLocalEdgeDNSClusterId).
 | 
			
		||||
			Gt(0, "请选择域名服务集群")
 | 
			
		||||
		apiParams["clusterId"] = params.ParamLocalEdgeDNSClusterId
 | 
			
		||||
	case "customHTTP":
 | 
			
		||||
		params.Must.
 | 
			
		||||
			Field("paramCustomHTTPURL", params.ParamCustomHTTPURL).
 | 
			
		||||
 
 | 
			
		||||
@@ -14,10 +14,11 @@
 | 
			
		||||
		<tr>
 | 
			
		||||
			<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 v-for="type in types" :value="type.code">{{type.name}}</option>
 | 
			
		||||
				</select>
 | 
			
		||||
                <p class="comment">{{typeDescription}}</p>
 | 
			
		||||
			</td>
 | 
			
		||||
		</tr>
 | 
			
		||||
		<tr>
 | 
			
		||||
@@ -96,6 +97,19 @@
 | 
			
		||||
			</tr>
 | 
			
		||||
		</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-->
 | 
			
		||||
        <tbody v-if="type == 'customHTTP'">
 | 
			
		||||
            <tr>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,17 @@
 | 
			
		||||
Tea.context(function () {
 | 
			
		||||
	this.success = NotifyPopup
 | 
			
		||||
	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 -->
 | 
			
		||||
	<tbody v-if="provider.type == 'dnspod'">
 | 
			
		||||
		<tr>
 | 
			
		||||
			<td>密钥ID</td>
 | 
			
		||||
			<td class="color-border">密钥ID</td>
 | 
			
		||||
			<td>{{provider.apiParams.id}}</td>
 | 
			
		||||
		</tr>
 | 
			
		||||
		<tr>
 | 
			
		||||
			<td>密钥Token</td>
 | 
			
		||||
			<td class="color-border">密钥Token</td>
 | 
			
		||||
			<td>{{provider.apiParams.token}}</td>
 | 
			
		||||
		</tr>
 | 
			
		||||
	</tbody>
 | 
			
		||||
@@ -46,25 +46,35 @@
 | 
			
		||||
    <!-- CloudFlare -->
 | 
			
		||||
    <tbody v-if="provider.type == 'cloudFlare'">
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td>API密钥</td>
 | 
			
		||||
            <td class="color-border">API密钥</td>
 | 
			
		||||
            <td>
 | 
			
		||||
                {{provider.apiParams.apiKey}}
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td>账号邮箱</td>
 | 
			
		||||
            <td class="color-border">账号邮箱</td>
 | 
			
		||||
            <td>{{provider.apiParams.email}}</td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </tbody>
 | 
			
		||||
 | 
			
		||||
    <!-- Local EdgeDNS -->
 | 
			
		||||
    <tbody v-if="provider.type == 'localEdgeDNS'">
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class="color-border">域名服务集群</td>
 | 
			
		||||
            <td>
 | 
			
		||||
                {{provider.localEdgeDNS.name}}
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </tbody>
 | 
			
		||||
 | 
			
		||||
    <!-- CustomHTTP -->
 | 
			
		||||
    <tbody v-if="provider.type == 'customHTTP'">
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td>HTTP URL</td>
 | 
			
		||||
            <td class="color-border">HTTP URL</td>
 | 
			
		||||
            <td>{{provider.apiParams.url}}</td>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td>私钥</td>
 | 
			
		||||
            <td class="color-border">私钥</td>
 | 
			
		||||
            <td>{{provider.apiParams.secret}}</td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </tbody>
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@
 | 
			
		||||
			<td>服务商厂家 *</td>
 | 
			
		||||
			<td>
 | 
			
		||||
				{{provider.typeName}}
 | 
			
		||||
				<p class="comment">创建后无法修改此选项。</p>
 | 
			
		||||
				<p class="comment">{{typeDescription}}创建后无法修改此选项。</p>
 | 
			
		||||
			</td>
 | 
			
		||||
		</tr>
 | 
			
		||||
		<tr>
 | 
			
		||||
@@ -79,6 +79,19 @@
 | 
			
		||||
            </tr>
 | 
			
		||||
        </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-->
 | 
			
		||||
        <tbody v-if="provider.type == 'customHTTP'">
 | 
			
		||||
        <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