mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-06 14:50:25 +08:00
可以修改服务的DNS设置
This commit is contained in:
@@ -77,9 +77,20 @@ func (this *ClusterAction) RunGet(params struct {
|
||||
this.Data["nodes"] = nodeMaps
|
||||
|
||||
// 代理服务解析记录
|
||||
// TODO
|
||||
|
||||
this.Data["servers"] = []interface{}{}
|
||||
serversResp, err := this.RPC().ServerRPC().FindAllEnabledServersDNSWithClusterId(this.AdminContext(), &pb.FindAllEnabledServersDNSWithClusterIdRequest{ClusterId: params.ClusterId})
|
||||
if err != nil {
|
||||
this.ErrorPage(err)
|
||||
return
|
||||
}
|
||||
serverMaps := []maps.Map{}
|
||||
for _, server := range serversResp.Servers {
|
||||
serverMaps = append(serverMaps, maps.Map{
|
||||
"id": server.Id,
|
||||
"name": server.Name,
|
||||
"dnsName": server.DnsName,
|
||||
})
|
||||
}
|
||||
this.Data["servers"] = serverMaps
|
||||
|
||||
this.Show()
|
||||
}
|
||||
|
||||
46
web/public/js/components/common/links.js
Normal file
46
web/public/js/components/common/links.js
Normal file
@@ -0,0 +1,46 @@
|
||||
// 使用Icon的链接方式
|
||||
Vue.component("link-icon", {
|
||||
props: ["href"],
|
||||
template: `<span><slot></slot> <a :href="href" title="打开链接" class="link grey"><i class="icon linkify small"></i></a></span>`
|
||||
})
|
||||
|
||||
// 带有下划虚线的连接
|
||||
Vue.component("link-red", {
|
||||
props: ["href", "title"],
|
||||
data: function () {
|
||||
let href = this.href
|
||||
if (href == null) {
|
||||
href = ""
|
||||
}
|
||||
return {
|
||||
vHref: href
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickPrevent: function () {
|
||||
emitClick(this, arguments)
|
||||
}
|
||||
},
|
||||
template: `<a :href="vHref" :title="title" style="border-bottom: 1px #db2828 dashed" @click.prevent="clickPrevent"><span class="red"><slot></slot></span></a>`
|
||||
})
|
||||
|
||||
// 会弹出窗口的链接
|
||||
Vue.component("link-popup", {
|
||||
props: ["title"],
|
||||
methods: {
|
||||
clickPrevent: function () {
|
||||
emitClick(this, arguments)
|
||||
}
|
||||
},
|
||||
template: `<a href="" :title="title" @click.prevent="clickPrevent"><slot></slot></a>`
|
||||
})
|
||||
|
||||
// 提交点击事件
|
||||
function emitClick(obj, arguments) {
|
||||
let event = "click"
|
||||
let newArgs = [event]
|
||||
for (let i = 0; i < arguments.length; i++) {
|
||||
newArgs.push(arguments[i])
|
||||
}
|
||||
obj.$emit.apply(obj, newArgs)
|
||||
}
|
||||
@@ -12,4 +12,10 @@
|
||||
form .fields {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.link.grey {
|
||||
color: grey !important;
|
||||
}
|
||||
.link.grey:hover {
|
||||
color: #4183c4 !important;
|
||||
}
|
||||
/*# sourceMappingURL=@layout_override.css.map */
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"sources":["@layout_override.less"],"names":[],"mappings":"AACA,GAAG,OAAO,SAAU,MAAK,MAAM,QAAS,OAAM;AAAS,GAAG,OAAO,SAAU,MAAK,MAAM,QAAS,QAAO;EACrG,oCAAA;;AAGD,GAAG,OAAO,SAAU,MAAK,QAAS,OAAM;AAAS,GAAG,OAAO,SAAU,MAAK,QAAS,QAAO;EACzF,oCAAA;;AAGD,GAAG,MAAM;EACR,kCAAA;;AAID,IACC;EACC,2BAAA","file":"@layout_override.css"}
|
||||
{"version":3,"sources":["@layout_override.less"],"names":[],"mappings":"AACA,GAAG,OAAO,SAAU,MAAK,MAAM,QAAS,OAAM;AAAS,GAAG,OAAO,SAAU,MAAK,MAAM,QAAS,QAAO;EACrG,oCAAA;;AAGD,GAAG,OAAO,SAAU,MAAK,QAAS,OAAM;AAAS,GAAG,OAAO,SAAU,MAAK,QAAS,QAAO;EACzF,oCAAA;;AAGD,GAAG,MAAM;EACR,kCAAA;;AAID,IACC;EACC,2BAAA;;AAKF,KAAK;EACJ,sBAAA;;AAGD,KAAK,KAAK;EACT,yBAAA","file":"@layout_override.css"}
|
||||
@@ -17,3 +17,12 @@ form {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
// links
|
||||
.link.grey {
|
||||
color: grey !important;
|
||||
}
|
||||
|
||||
.link.grey:hover {
|
||||
color: #4183c4 !important;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<td>DNS服务商</td>
|
||||
<td>
|
||||
<div v-if="dnsInfo.providerName.length > 0">
|
||||
<a :href="'/dns/providers/provider?providerId=' + dnsInfo.providerId">{{dnsInfo.providerTypeName}} - {{dnsInfo.providerName}}</a>
|
||||
<link-icon :href="'/dns/providers/provider?providerId=' + dnsInfo.providerId">{{dnsInfo.providerTypeName}} - {{dnsInfo.providerName}}</link-icon>
|
||||
</div>
|
||||
<span v-else-if="dnsInfo.domainName.length == 0" class="disabled">请先设置域名</span>
|
||||
<span v-else class="disabled">没有设置</span>
|
||||
@@ -32,14 +32,15 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p class="comment">下面的DNS解析记录可以手工在DNS服务商提供的管理平台添加。</p>
|
||||
<p class="comment">下面的DNS解析记录也可以手工在DNS服务商提供的管理平台添加。</p>
|
||||
|
||||
<h3>节点DNS解析记录</h3>
|
||||
<h3>节点DNS解析记录 <span> ({{nodes.length}}个)</span></h3>
|
||||
<p class="comment" v-if="nodes.length == 0">暂时没有需要设置的DNS记录。</p>
|
||||
<table class="ui table selectable" v-if="nodes.length > 0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>节点</th>
|
||||
<th>子域名</th>
|
||||
<th>记录类型</th>
|
||||
<th>记录值</th>
|
||||
<th>线路</th>
|
||||
@@ -47,24 +48,44 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tr v-for="node in nodes">
|
||||
<td><a :href="'/clusters/cluster/node?nodeId=' + node.id">{{node.name}}</a></td>
|
||||
<td><link-icon :href="'/clusters/cluster/node?nodeId=' + node.id">{{node.name}}</link-icon></td>
|
||||
<td>
|
||||
<span v-if="dnsInfo.dnsName.length > 0">{{dnsInfo.dnsName}}</span>
|
||||
<link-red v-else @click.prevent="updateClusterDNS(cluster.id)">没有设置</link-red>
|
||||
</td>
|
||||
<td>A</td>
|
||||
<td>
|
||||
<span v-if="node.ipAddr.length > 0">{{node.ipAddr}}</span>
|
||||
<a href="" v-else style="border-bottom: 1px #db2828 dashed" @click.prevent="updateNode(node.id)"><span class="red">没有设置</span></a>
|
||||
<link-red title="点击设置" v-else @click.prevent="updateNode(node.id)">没有设置</link-red>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="node.route.length > 0">{{node.route}}</span>
|
||||
<a href="" v-else style="border-bottom: 1px #db2828 dashed" @click.prevent="updateNode(node.id)"><span class="red">没有设置</span></a>
|
||||
<link-red v-else title="点击设置" @click.prevent="updateNode(node.id)">没有设置</link-red>
|
||||
</td>
|
||||
<td>
|
||||
<a href="" @click.prevent="updateNode(node.id)">修改</a>
|
||||
<link-popup @click.prevent="updateNode(node.id)">修改</link-popup>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>代理服务解析记录</h3>
|
||||
<h3>代理服务解析记录 <span> ({{servers.length}}个)</span></h3>
|
||||
<p class="comment" v-if="servers.length == 0">暂时没有需要设置的DNS记录。</p>
|
||||
<table class="ui table selectable" v-if="servers.length > 0">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>服务</th>
|
||||
<th>子域名</th>
|
||||
<th>记录类型</th>
|
||||
<th>记录值</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr v-for="server in servers">
|
||||
<td><link-icon :href="'/servers/server?serverId=' + server.id">{{server.name}}</link-icon> </td>
|
||||
<td>{{server.dnsName}}</td>
|
||||
<td>CNAME</td>
|
||||
<td>
|
||||
<span v-if="dnsInfo.domainName.length > 0"><var>{{dnsInfo.dnsName}}</var>.{{dnsInfo.domainName}}.</span>
|
||||
<link-red title="点击设置" v-else @click.prevent="updateClusterDNS(cluster.id)">没有设置</link-red>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -15,7 +15,7 @@
|
||||
</thead>
|
||||
<tr v-for="cluster in clusters">
|
||||
<td>
|
||||
<a :href="'/clusters/cluster?clusterId=' + cluster.id">{{cluster.name}}</a>
|
||||
{{cluster.name}}<link-icon :href="'/clusters/cluster?clusterId=' + cluster.id"></link-icon>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="cluster.dnsName.length > 0 && cluster.domainName.length > 0"><em class="italic">{{cluster.dnsName}}</em>.{{cluster.domainName}}</span>
|
||||
@@ -26,7 +26,7 @@
|
||||
<span v-else class="disabled">-</span>
|
||||
</td>
|
||||
<td>
|
||||
<a v-if="cluster.providerName.length > 0" :href="'/dns/providers/provider?providerId=' + cluster.providerId">{{cluster.providerName}}</a>
|
||||
<span v-if="cluster.providerName.length > 0">{{cluster.providerName}}<link-icon :href="'/dns/providers/provider?providerId=' + cluster.providerId"></link-icon></span>
|
||||
<span v-else="" class="disabled">-</span>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
Reference in New Issue
Block a user