155 lines
6.8 KiB
HTML
155 lines
6.8 KiB
HTML
{$layout}
|
|
{$template "menu"}
|
|
{$template "/left_menu_with_menu"}
|
|
|
|
<style>
|
|
.httpdns-mini-action {
|
|
display: inline-block;
|
|
font-size: 12px;
|
|
color: #6b7280;
|
|
margin-left: .55em;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.httpdns-mini-action:hover {
|
|
color: #1e70bf;
|
|
}
|
|
|
|
.httpdns-mini-action .icon {
|
|
margin-right: 0 !important;
|
|
font-size: .92em !important;
|
|
}
|
|
|
|
.httpdns-note.comment {
|
|
color: #8f9aa6 !important;
|
|
font-size: 12px;
|
|
margin-top: .45em !important;
|
|
}
|
|
|
|
.httpdns-auth-table td.title {
|
|
width: 260px !important;
|
|
min-width: 260px !important;
|
|
white-space: nowrap;
|
|
word-break: keep-all;
|
|
}
|
|
|
|
.httpdns-secret-line {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: .35em;
|
|
}
|
|
|
|
.httpdns-mini-icon {
|
|
color: #8c96a3 !important;
|
|
font-size: 12px;
|
|
line-height: 1;
|
|
}
|
|
|
|
.httpdns-mini-icon:hover {
|
|
color: #5e6c7b !important;
|
|
}
|
|
|
|
.httpdns-state-on {
|
|
color: #21ba45;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.httpdns-state-off {
|
|
color: #8f9aa6;
|
|
font-weight: 600;
|
|
}
|
|
</style>
|
|
|
|
<div class="right-box with-menu">
|
|
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
|
|
<csrf-token></csrf-token>
|
|
<input type="hidden" name="appId" :value="app.id" />
|
|
|
|
<table class="ui table selectable definition" v-show="activeSection == 'basic'">
|
|
<tr>
|
|
<td class="title">主集群</td>
|
|
<td>
|
|
<select class="ui dropdown auto-width" name="primaryClusterId" v-model="settings.primaryClusterId">
|
|
<option :value="0">[不设置]</option>
|
|
<option v-for="cluster in clusters" :value="cluster.id">{{cluster.name}}</option>
|
|
</select>
|
|
<p class="comment httpdns-note">未设置时,按默认主集群处理(当前默认主集群:{{settings.defaultPrimaryClusterName || '-' }})。</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="title">备集群</td>
|
|
<td>
|
|
<select class="ui dropdown auto-width" name="backupClusterId" v-model="settings.backupClusterId">
|
|
<option :value="0">[不设置]</option>
|
|
<option v-for="cluster in clusters" :value="cluster.id">{{cluster.name}}</option>
|
|
</select>
|
|
<p class="comment httpdns-note">未设置时,按默认备用集群处理(当前默认备用集群:{{settings.defaultBackupClusterName || '-' }})。</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="title">应用启用</td>
|
|
<td>
|
|
<checkbox name="appStatus" value="1" v-model="settings.appStatus"></checkbox>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="title">SNI 防护配置</td>
|
|
<td>
|
|
<span class="green">隐匿 SNI</span>
|
|
<p class="comment httpdns-note">当前默认采用隐匿 SNI 策略,避免在 TLS 握手阶段暴露业务域名。</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<table class="ui table selectable definition httpdns-auth-table" v-show="activeSection == 'auth'">
|
|
<tr>
|
|
<td class="title">App ID</td>
|
|
<td>
|
|
<code>{{settings.appId}}</code>
|
|
<a href="" class="httpdns-mini-icon" title="复制 App ID" @click.prevent="copySecret(settings.appId, 'App ID')"><i class="copy outline icon"></i></a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="title">主服务域名</td>
|
|
<td>
|
|
<code v-if="settings.primaryServiceDomain && settings.primaryServiceDomain.length > 0">{{settings.primaryServiceDomain}}</code>
|
|
<span class="grey" v-else>未配置</span>
|
|
<a v-if="settings.primaryServiceDomain && settings.primaryServiceDomain.length > 0" href="" class="httpdns-mini-icon" title="复制主服务域名" @click.prevent="copySecret(settings.primaryServiceDomain, '主服务域名')"><i class="copy outline icon"></i></a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="title">备用服务域名</td>
|
|
<td>
|
|
<code v-if="settings.backupServiceDomain && settings.backupServiceDomain.length > 0">{{settings.backupServiceDomain}}</code>
|
|
<span class="grey" v-else>未配置</span>
|
|
<a v-if="settings.backupServiceDomain && settings.backupServiceDomain.length > 0" href="" class="httpdns-mini-icon" title="复制备用服务域名" @click.prevent="copySecret(settings.backupServiceDomain, '备用服务域名')"><i class="copy outline icon"></i></a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="title">请求验签</td>
|
|
<td>
|
|
<span :class="settings.signEnabled ? 'httpdns-state-on' : 'httpdns-state-off'">{{settings.signEnabled ? "已开启" : "已关闭"}}</span>
|
|
<a href="" class="ui mini button basic" style="margin-left: .8em;" @click.prevent="toggleSignEnabled">{{settings.signEnabled ? "关闭请求验签" : "开启请求验签"}}</a>
|
|
<p class="comment httpdns-note">打开后,服务端会对请求进行签名校验。</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="title">加签 Secret</td>
|
|
<td>
|
|
<div class="httpdns-secret-line">
|
|
<code>{{signSecretVisible ? settings.signSecretPlain : settings.signSecretMasked}}</code>
|
|
<a href="" class="httpdns-mini-icon" @click.prevent="signSecretVisible = !signSecretVisible" :title="signSecretVisible ? '隐藏明文' : '查看明文'"><i class="icon" :class="signSecretVisible ? 'eye slash' : 'eye'"></i></a>
|
|
<a href="" class="httpdns-mini-icon" title="复制加签 Secret" @click.prevent="copySecret(settings.signSecretPlain, '加签 Secret')"><i class="copy outline icon"></i></a>
|
|
<a href="" class="httpdns-mini-icon" title="重置加签 Secret" @click.prevent="resetSignSecret"><i class="redo icon"></i></a>
|
|
</div>
|
|
<p class="comment httpdns-note">最近更新:{{settings.signSecretUpdatedAt}}</p>
|
|
<p class="comment httpdns-note" v-if="!settings.signEnabled">请求验签已关闭,当前不使用加签 Secret。</p>
|
|
<p class="comment httpdns-note">用于生成鉴权接口的安全密钥。</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<submit-btn></submit-btn>
|
|
</form>
|
|
</div>
|