mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 05:00:25 +08:00 
			
		
		
		
	改进界面
This commit is contained in:
		@@ -1,9 +1,11 @@
 | 
				
			|||||||
Vue.component("copy-to-clipboard", {
 | 
					Vue.component("copy-to-clipboard", {
 | 
				
			||||||
	props: ["v-target"],
 | 
						props: ["v-target"],
 | 
				
			||||||
	created: function () {
 | 
						created: function () {
 | 
				
			||||||
		let jsFile = document.createElement("script")
 | 
							if (typeof ClipboardJS == "undefined") {
 | 
				
			||||||
		jsFile.setAttribute("src", "/js/clipboard.min.js")
 | 
								let jsFile = document.createElement("script")
 | 
				
			||||||
		document.head.appendChild(jsFile)
 | 
								jsFile.setAttribute("src", "/js/clipboard.min.js")
 | 
				
			||||||
 | 
								document.head.appendChild(jsFile)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	methods: {
 | 
						methods: {
 | 
				
			||||||
		copy: function () {
 | 
							copy: function () {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,11 +41,11 @@ Vue.component("countries-selector", {
 | 
				
			|||||||
	template: `<div>
 | 
						template: `<div>
 | 
				
			||||||
	<input type="hidden" name="countryIdsJSON" :value="JSON.stringify(countryIds)"/>
 | 
						<input type="hidden" name="countryIdsJSON" :value="JSON.stringify(countryIds)"/>
 | 
				
			||||||
	<div v-if="countries.length > 0" style="margin-bottom: 0.5em">
 | 
						<div v-if="countries.length > 0" style="margin-bottom: 0.5em">
 | 
				
			||||||
		<div v-for="(country, index) in countries" class="ui label tiny">{{country.name}} <a href="" title="删除" @click.prevent="remove(index)"><i class="icon remove"></i></a></div>
 | 
							<div v-for="(country, index) in countries" class="ui label tiny basic">{{country.name}} <a href="" title="删除" @click.prevent="remove(index)"><i class="icon remove"></i></a></div>
 | 
				
			||||||
		<div class="ui divider"></div>
 | 
							<div class="ui divider"></div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div>
 | 
						<div>
 | 
				
			||||||
		<button class="ui button small" type="button" @click.prevent="add">+</button>
 | 
							<button class="ui button tiny" type="button" @click.prevent="add">+</button>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>`
 | 
					</div>`
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
Vue.component("network-addresses-view", {
 | 
					Vue.component("network-addresses-view", {
 | 
				
			||||||
	props: ["v-addresses"],
 | 
						props: ["v-addresses"],
 | 
				
			||||||
	template: `<div>
 | 
						template: `<div>
 | 
				
			||||||
	<div class="ui label tiny" v-if="vAddresses != null" v-for="addr in vAddresses">
 | 
						<div class="ui label tiny basic" v-if="vAddresses != null" v-for="addr in vAddresses">
 | 
				
			||||||
		{{addr.protocol}}://{{addr.host}}:{{addr.portRange}}
 | 
							{{addr.protocol}}://{{addr.host}}:{{addr.portRange}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>`
 | 
					</div>`
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,11 +41,11 @@ Vue.component("provinces-selector", {
 | 
				
			|||||||
	template: `<div>
 | 
						template: `<div>
 | 
				
			||||||
	<input type="hidden" name="provinceIdsJSON" :value="JSON.stringify(provinceIds)"/>
 | 
						<input type="hidden" name="provinceIdsJSON" :value="JSON.stringify(provinceIds)"/>
 | 
				
			||||||
	<div v-if="provinces.length > 0" style="margin-bottom: 0.5em">
 | 
						<div v-if="provinces.length > 0" style="margin-bottom: 0.5em">
 | 
				
			||||||
		<div v-for="(province, index) in provinces" class="ui label tiny">{{province.name}} <a href="" title="删除" @click.prevent="remove(index)"><i class="icon remove"></i></a></div>
 | 
							<div v-for="(province, index) in provinces" class="ui label tiny basic">{{province.name}} <a href="" title="删除" @click.prevent="remove(index)"><i class="icon remove"></i></a></div>
 | 
				
			||||||
		<div class="ui divider"></div>
 | 
							<div class="ui divider"></div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div>
 | 
						<div>
 | 
				
			||||||
		<button class="ui button small" type="button" @click.prevent="add">+</button>
 | 
							<button class="ui button tiny" type="button" @click.prevent="add">+</button>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>`
 | 
					</div>`
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
@@ -56,7 +56,7 @@ Vue.component("values-box", {
 | 
				
			|||||||
	},
 | 
						},
 | 
				
			||||||
	template: `<div>
 | 
						template: `<div>
 | 
				
			||||||
		<div style="margin-bottom: 1em" v-if="vValues.length > 0">
 | 
							<div style="margin-bottom: 1em" v-if="vValues.length > 0">
 | 
				
			||||||
			<div class="ui label tiny" v-for="(value, index) in vValues" style="margin-top:0.4em;margin-bottom:0.4em">{{value}}
 | 
								<div class="ui label tiny basic" v-for="(value, index) in vValues" style="margin-top:0.4em;margin-bottom:0.4em">{{value}}
 | 
				
			||||||
				<input type="hidden" :name="name" :value="value"/>
 | 
									<input type="hidden" :name="name" :value="value"/>
 | 
				
			||||||
				  <a href="" @click.prevent="update(index)" title="修改"><i class="icon pencil small" ></i></a> 
 | 
									  <a href="" @click.prevent="update(index)" title="修改"><i class="icon pencil small" ></i></a> 
 | 
				
			||||||
				<a href="" @click.prevent="remove(index)" title="删除"><i class="icon remove"></i></a> 
 | 
									<a href="" @click.prevent="remove(index)" title="删除"><i class="icon remove"></i></a> 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,7 +41,7 @@ Vue.component("dns-domain-selector", {
 | 
				
			|||||||
	template: `<div>
 | 
						template: `<div>
 | 
				
			||||||
	<input type="hidden" name="dnsDomainId" :value="domainId"/>
 | 
						<input type="hidden" name="dnsDomainId" :value="domainId"/>
 | 
				
			||||||
	<div v-if="domainName.length > 0">
 | 
						<div v-if="domainName.length > 0">
 | 
				
			||||||
		<span class="ui label small">
 | 
							<span class="ui label small basic">
 | 
				
			||||||
			{{domainName}}
 | 
								{{domainName}}
 | 
				
			||||||
			<a href="" @click.prevent="update"><i class="icon pencil small"></i></a>
 | 
								<a href="" @click.prevent="update"><i class="icon pencil small"></i></a>
 | 
				
			||||||
			<a href="" @click.prevent="remove()"><i class="icon remove"></i></a>
 | 
								<a href="" @click.prevent="remove()"><i class="icon remove"></i></a>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -53,9 +53,9 @@ Vue.component("dns-route-selector", {
 | 
				
			|||||||
	template: `<div>
 | 
						template: `<div>
 | 
				
			||||||
	<input type="hidden" name="dnsRoutesJSON" :value="JSON.stringify(routeCodes)"/>
 | 
						<input type="hidden" name="dnsRoutesJSON" :value="JSON.stringify(routeCodes)"/>
 | 
				
			||||||
	<div v-if="routes.length > 0">
 | 
						<div v-if="routes.length > 0">
 | 
				
			||||||
		<tiny-label v-for="route in routes" :key="route.code">
 | 
							<tiny-basic-label v-for="route in routes" :key="route.code">
 | 
				
			||||||
			{{route.name}} <a href="" @click.prevent="remove(route)"><i class="icon remove"></i></a>
 | 
								{{route.name}} <a href="" @click.prevent="remove(route)"><i class="icon remove"></i></a>
 | 
				
			||||||
		</tiny-label>
 | 
							</tiny-basic-label>
 | 
				
			||||||
		<div class="ui divider"></div>
 | 
							<div class="ui divider"></div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<button type="button" class="ui button small" @click.prevent="add" v-if="!isAdding">+</button>
 | 
						<button type="button" class="ui button small" @click.prevent="add" v-if="!isAdding">+</button>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -55,7 +55,7 @@ Vue.component("grant-selector", {
 | 
				
			|||||||
	},
 | 
						},
 | 
				
			||||||
	template: `<div>
 | 
						template: `<div>
 | 
				
			||||||
	<input type="hidden" name="grantId" :value="grantId"/>
 | 
						<input type="hidden" name="grantId" :value="grantId"/>
 | 
				
			||||||
	<div class="ui label small" v-if="grant != null">{{grant.name}}<span class="small">({{grant.methodName}})</span> <a href="" title="修改" @click.prevent="update()"><i class="icon pencil small"></i></a> <a href="" title="删除" @click.prevent="remove()"><i class="icon remove"></i></a> </div>
 | 
						<div class="ui label small basic" v-if="grant != null">{{grant.name}}<span class="small">({{grant.methodName}})</span> <a href="" title="修改" @click.prevent="update()"><i class="icon pencil small"></i></a> <a href="" title="删除" @click.prevent="remove()"><i class="icon remove"></i></a> </div>
 | 
				
			||||||
	<div v-if="grant == null">
 | 
						<div v-if="grant == null">
 | 
				
			||||||
		<a href="" @click.prevent="select()">[选择已有认证]</a>     <a href="" @click.prevent="create()">[添加新认证]</a>
 | 
							<a href="" @click.prevent="select()">[选择已有认证]</a>     <a href="" @click.prevent="create()">[添加新认证]</a>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,7 +39,7 @@ Vue.component("node-ip-addresses-box", {
 | 
				
			|||||||
	<input type="hidden" name="ipAddressesJSON" :value="JSON.stringify(ipAddresses)"/>
 | 
						<input type="hidden" name="ipAddressesJSON" :value="JSON.stringify(ipAddresses)"/>
 | 
				
			||||||
	<div v-if="ipAddresses.length > 0">
 | 
						<div v-if="ipAddresses.length > 0">
 | 
				
			||||||
		<div>
 | 
							<div>
 | 
				
			||||||
			<div v-for="(address, index) in ipAddresses" class="ui label small">
 | 
								<div v-for="(address, index) in ipAddresses" class="ui label tiny basic">
 | 
				
			||||||
				{{address.ip}}
 | 
									{{address.ip}}
 | 
				
			||||||
				<span class="small" v-if="address.name.length > 0">({{address.name}}<span v-if="!address.canAccess">,不可访问</span>)</span>
 | 
									<span class="small" v-if="address.name.length > 0">({{address.name}}<span v-if="!address.canAccess">,不可访问</span>)</span>
 | 
				
			||||||
				<span class="small" v-if="address.name.length == 0 && !address.canAccess">(不可访问)</span>
 | 
									<span class="small" v-if="address.name.length == 0 && !address.canAccess">(不可访问)</span>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -160,7 +160,7 @@ Vue.component("http-header-policy-box", {
 | 
				
			|||||||
			<td class="title">需要删除的Header</td>
 | 
								<td class="title">需要删除的Header</td>
 | 
				
			||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				<div v-if="requestDeletingHeaders.length > 0">
 | 
									<div v-if="requestDeletingHeaders.length > 0">
 | 
				
			||||||
					<div class="ui label small" v-for="headerName in requestDeletingHeaders">{{headerName}} <a href=""><i class="icon remove" title="删除" @click.prevent="deleteDeletingHeader(vRequestHeaderPolicy.id, headerName)"></i></a> </div>
 | 
										<div class="ui label small basic" v-for="headerName in requestDeletingHeaders">{{headerName}} <a href=""><i class="icon remove" title="删除" @click.prevent="deleteDeletingHeader(vRequestHeaderPolicy.id, headerName)"></i></a> </div>
 | 
				
			||||||
					<div class="ui divider" ></div>
 | 
										<div class="ui divider" ></div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<button class="ui button small" type="button" @click.prevent="addDeletingHeader(vRequestHeaderPolicy.id, 'request')">+</button>
 | 
									<button class="ui button small" type="button" @click.prevent="addDeletingHeader(vRequestHeaderPolicy.id, 'request')">+</button>
 | 
				
			||||||
@@ -202,7 +202,7 @@ Vue.component("http-header-policy-box", {
 | 
				
			|||||||
			<td class="title">需要删除的Header</td>
 | 
								<td class="title">需要删除的Header</td>
 | 
				
			||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				<div v-if="responseDeletingHeaders.length > 0">
 | 
									<div v-if="responseDeletingHeaders.length > 0">
 | 
				
			||||||
					<div class="ui label small" v-for="headerName in responseDeletingHeaders">{{headerName}} <a href=""><i class="icon remove" title="删除" @click.prevent="deleteDeletingHeader(vResponseHeaderPolicy.id, headerName)"></i></a> </div>
 | 
										<div class="ui label small basic" v-for="headerName in responseDeletingHeaders">{{headerName}} <a href=""><i class="icon remove" title="删除" @click.prevent="deleteDeletingHeader(vResponseHeaderPolicy.id, headerName)"></i></a> </div>
 | 
				
			||||||
					<div class="ui divider" ></div>
 | 
										<div class="ui divider" ></div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<button class="ui button small" type="button" @click.prevent="addDeletingHeader(vResponseHeaderPolicy.id, 'response')">+</button>
 | 
									<button class="ui button small" type="button" @click.prevent="addDeletingHeader(vResponseHeaderPolicy.id, 'response')">+</button>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -70,7 +70,7 @@ Vue.component("http-pages-and-shutdown-box", {
 | 
				
			|||||||
		<td class="title">特殊页面</td>
 | 
							<td class="title">特殊页面</td>
 | 
				
			||||||
		<td>
 | 
							<td>
 | 
				
			||||||
			<div v-if="pages.length > 0">
 | 
								<div v-if="pages.length > 0">
 | 
				
			||||||
				<div class="ui label small" v-for="(page,index) in pages">
 | 
									<div class="ui label small basic" v-for="(page,index) in pages">
 | 
				
			||||||
					{{page.status}} -> {{page.url}} <a href="" title="修改" @click.prevent="updatePage(index, page.id)"><i class="icon pencil small"></i></a> <a href="" title="删除" @click.prevent="removePage(index)"><i class="icon remove"></i></a>
 | 
										{{page.status}} -> {{page.url}} <a href="" title="修改" @click.prevent="updatePage(index, page.id)"><i class="icon pencil small"></i></a> <a href="" title="删除" @click.prevent="removePage(index)"><i class="icon remove"></i></a>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,7 +39,7 @@ Vue.component("server-name-box", {
 | 
				
			|||||||
	template: `<div>
 | 
						template: `<div>
 | 
				
			||||||
	<input type="hidden" name="serverNames" :value="JSON.stringify(serverNames)"/>
 | 
						<input type="hidden" name="serverNames" :value="JSON.stringify(serverNames)"/>
 | 
				
			||||||
	<div v-if="serverNames.length > 0">
 | 
						<div v-if="serverNames.length > 0">
 | 
				
			||||||
		<div v-for="(serverName, index) in serverNames" class="ui label small">
 | 
							<div v-for="(serverName, index) in serverNames" class="ui label small basic">
 | 
				
			||||||
			<em v-if="serverName.type != 'full'">{{serverName.type}}</em>  
 | 
								<em v-if="serverName.type != 'full'">{{serverName.type}}</em>  
 | 
				
			||||||
			<span v-if="serverName.subNames == null || serverName.subNames.length == 0">{{serverName.name}}</span>
 | 
								<span v-if="serverName.subNames == null || serverName.subNames.length == 0">{{serverName.name}}</span>
 | 
				
			||||||
			<span v-else>{{serverName.subNames[0]}}等{{serverName.subNames.length}}个域名</span>
 | 
								<span v-else>{{serverName.subNames[0]}}等{{serverName.subNames.length}}个域名</span>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -364,7 +364,7 @@ Vue.component("ssl-config-box", {
 | 
				
			|||||||
						<div class="ui divider"></div>
 | 
											<div class="ui divider"></div>
 | 
				
			||||||
						<div class="cipher-suites-box">
 | 
											<div class="cipher-suites-box">
 | 
				
			||||||
							已添加套件({{policy.cipherSuites.length}}):
 | 
												已添加套件({{policy.cipherSuites.length}}):
 | 
				
			||||||
							<div v-for="cipherSuite in policy.cipherSuites" class="ui label tiny" style="margin-bottom: 0.5em">
 | 
												<div v-for="cipherSuite in policy.cipherSuites" class="ui label tiny basic" style="margin-bottom: 0.5em">
 | 
				
			||||||
								<input type="hidden" name="cipherSuites" :value="cipherSuite"/>
 | 
													<input type="hidden" name="cipherSuites" :value="cipherSuite"/>
 | 
				
			||||||
								<span v-html="formatCipherSuite(cipherSuite)"></span>   <a href="" title="删除套件" @click.prevent="removeCipherSuite(cipherSuite)"><i class="icon remove"></i></a>
 | 
													<span v-html="formatCipherSuite(cipherSuite)"></span>   <a href="" title="删除套件" @click.prevent="removeCipherSuite(cipherSuite)"><i class="icon remove"></i></a>
 | 
				
			||||||
								<a href="" title="拖动改变顺序"><i class="icon bars handle"></i></a>
 | 
													<a href="" title="拖动改变顺序"><i class="icon bars handle"></i></a>
 | 
				
			||||||
@@ -431,7 +431,7 @@ Vue.component("ssl-config-box", {
 | 
				
			|||||||
				<td class="color-border">HSTS生效的域名</td>
 | 
									<td class="color-border">HSTS生效的域名</td>
 | 
				
			||||||
				<td colspan="2">
 | 
									<td colspan="2">
 | 
				
			||||||
					<div class="names-box">
 | 
										<div class="names-box">
 | 
				
			||||||
					<span class="ui label tiny" v-for="(domain, arrayIndex) in hsts.domains" :class="{blue:hstsDomainEditingIndex == arrayIndex}">{{domain}}
 | 
										<span class="ui label tiny basic" v-for="(domain, arrayIndex) in hsts.domains" :class="{blue:hstsDomainEditingIndex == arrayIndex}">{{domain}}
 | 
				
			||||||
						<input type="hidden" name="hstsDomains" :value="domain"/>  
 | 
											<input type="hidden" name="hstsDomains" :value="domain"/>  
 | 
				
			||||||
						<a href="" @click.prevent="editHstsDomain(arrayIndex)" title="修改"><i class="icon pencil"></i></a>
 | 
											<a href="" @click.prevent="editHstsDomain(arrayIndex)" title="修改"><i class="icon pencil"></i></a>
 | 
				
			||||||
						<a href="" @click.prevent="removeHstsDomain(arrayIndex)" title="删除"><i class="icon remove"></i></a>
 | 
											<a href="" @click.prevent="removeHstsDomain(arrayIndex)" title="删除"><i class="icon remove"></i></a>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<th>节点名称</th>
 | 
								<th>节点名称</th>
 | 
				
			||||||
			<th>访问地址</th>
 | 
								<th>访问地址</th>
 | 
				
			||||||
			<th class="two wide">状态</th>
 | 
								<th class="center width10">状态</th>
 | 
				
			||||||
			<th class="two op">操作</th>
 | 
								<th class="two op">操作</th>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	</thead>
 | 
						</thead>
 | 
				
			||||||
@@ -19,10 +19,10 @@
 | 
				
			|||||||
		<td>{{node.name}}</td>
 | 
							<td>{{node.name}}</td>
 | 
				
			||||||
		<td>
 | 
							<td>
 | 
				
			||||||
			<div v-if="node.accessAddrs != null && node.accessAddrs.length > 0">
 | 
								<div v-if="node.accessAddrs != null && node.accessAddrs.length > 0">
 | 
				
			||||||
				<span class="ui label tiny" v-for="addr in node.accessAddrs">{{addr}}</span>
 | 
									<span class="ui label tiny basic" v-for="addr in node.accessAddrs">{{addr}}</span>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</td>
 | 
							</td>
 | 
				
			||||||
		<td>
 | 
							<td class="center">
 | 
				
			||||||
			<label-on :v-is-on="node.isOn"></label-on>
 | 
								<label-on :v-is-on="node.isOn"></label-on>
 | 
				
			||||||
		</td>
 | 
							</td>
 | 
				
			||||||
		<td>
 | 
							<td>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,7 @@
 | 
				
			|||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				<div v-if="node.ipAddresses.length > 0">
 | 
									<div v-if="node.ipAddresses.length > 0">
 | 
				
			||||||
					<div>
 | 
										<div>
 | 
				
			||||||
						<div v-for="(address, index) in node.ipAddresses" class="ui label tiny">
 | 
											<div v-for="(address, index) in node.ipAddresses" class="ui label tiny basic">
 | 
				
			||||||
                            {{address.ip}}
 | 
					                            {{address.ip}}
 | 
				
			||||||
							<span class="small" v-if="address.name.length > 0">({{address.name}}<span v-if="!address.canAccess">,不可访问</span>)</span>
 | 
												<span class="small" v-if="address.name.length > 0">({{address.name}}<span v-if="!address.canAccess">,不可访问</span>)</span>
 | 
				
			||||||
							<span class="small" v-if="address.name.length == 0 && !address.canAccess">(不可访问)</span>
 | 
												<span class="small" v-if="address.name.length == 0 && !address.canAccess">(不可访问)</span>
 | 
				
			||||||
@@ -32,7 +32,7 @@
 | 
				
			|||||||
		<tr v-if="dnsRoutes.length > 0">
 | 
							<tr v-if="dnsRoutes.length > 0">
 | 
				
			||||||
			<td>DNS线路</td>
 | 
								<td>DNS线路</td>
 | 
				
			||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				<span class="ui label tiny" v-for="route in dnsRoutes">{{route.name}}</span>
 | 
									<span class="ui label tiny basic" v-for="route in dnsRoutes">{{route.name}}</span>
 | 
				
			||||||
			</td>
 | 
								</td>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,8 +9,8 @@
 | 
				
			|||||||
			<th class="center">ID</th>
 | 
								<th class="center">ID</th>
 | 
				
			||||||
			<th>名称</th>
 | 
								<th>名称</th>
 | 
				
			||||||
			<th>类型</th>
 | 
								<th>类型</th>
 | 
				
			||||||
			<th class="center">集群数</th>
 | 
								<th class="center width5">集群数</th>
 | 
				
			||||||
			<th class="center">节点数</th>
 | 
								<th class="center width5">节点数</th>
 | 
				
			||||||
			<th class="two op">操作</th>
 | 
								<th class="two op">操作</th>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	</thead>
 | 
						</thead>
 | 
				
			||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<td class="center">{{grant.id}}</td>
 | 
							<td class="center">{{grant.id}}</td>
 | 
				
			||||||
		<td>{{grant.name}}</td>
 | 
							<td>{{grant.name}}</td>
 | 
				
			||||||
		<td>
 | 
							<td>
 | 
				
			||||||
			<span class="ui label tiny">{{grant.method.name}}</span>
 | 
								<span class="ui label tiny basic">{{grant.method.name}}</span>
 | 
				
			||||||
		</td>
 | 
							</td>
 | 
				
			||||||
		<td class="center">
 | 
							<td class="center">
 | 
				
			||||||
			<span v-if="grant.countClusters > 0">{{grant.countClusters}}</span>
 | 
								<span v-if="grant.countClusters > 0">{{grant.countClusters}}</span>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@
 | 
				
			|||||||
			<td class="title">选择认证</td>
 | 
								<td class="title">选择认证</td>
 | 
				
			||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				<span v-if="grants.length == 0">暂时还没有可用的认证。</span>
 | 
									<span v-if="grants.length == 0">暂时还没有可用的认证。</span>
 | 
				
			||||||
				<a class="ui label small" v-for="grant in grants" :class="{blue:grantId == grant.id}" @click.prevent="selectGrant(grant)" style="margin-bottom:0.5em">{{grant.name}} <span class="small">({{grant.methodName}})</span></a>
 | 
									<a class="ui label small basic" v-for="grant in grants" :class="{blue:grantId == grant.id}" @click.prevent="selectGrant(grant)" style="margin-bottom:0.5em">{{grant.name}} <span class="small">({{grant.methodName}})</span></a>
 | 
				
			||||||
				<p class="comment">请点击选中某个认证。</p>
 | 
									<p class="comment">请点击选中某个认证。</p>
 | 
				
			||||||
			</td>
 | 
								</td>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,7 @@
 | 
				
			|||||||
			<th>节点名称</th>
 | 
								<th>节点名称</th>
 | 
				
			||||||
			<th>连接地址</th>
 | 
								<th>连接地址</th>
 | 
				
			||||||
			<th>数据库名</th>
 | 
								<th>数据库名</th>
 | 
				
			||||||
			<th class="two wide">状态</th>
 | 
								<th class="center width10">状态</th>
 | 
				
			||||||
			<th class="two op">操作</th>
 | 
								<th class="two op">操作</th>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	</thead>
 | 
						</thead>
 | 
				
			||||||
@@ -20,7 +20,7 @@
 | 
				
			|||||||
		<td>{{node.name}}</td>
 | 
							<td>{{node.name}}</td>
 | 
				
			||||||
		<td>{{node.host}}:{{node.port}}</td>
 | 
							<td>{{node.host}}:{{node.port}}</td>
 | 
				
			||||||
		<td>{{node.database}}</td>
 | 
							<td>{{node.database}}</td>
 | 
				
			||||||
		<td><label-on :v-is-on="node.isOn"></label-on></td>
 | 
							<td class="center"><label-on :v-is-on="node.isOn"></label-on></td>
 | 
				
			||||||
		<td>
 | 
							<td>
 | 
				
			||||||
			<a href="" @click.prevent="updateNode(node.id)">修改</a>  
 | 
								<a href="" @click.prevent="updateNode(node.id)">修改</a>  
 | 
				
			||||||
			<a href="" @click.prevent="deleteNode(node.id)">删除</a>
 | 
								<a href="" @click.prevent="deleteNode(node.id)">删除</a>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,7 @@
 | 
				
			|||||||
		<td>
 | 
							<td>
 | 
				
			||||||
			<p class="comment" v-if="routes.length == 0">暂时还没有支持的线路。</p>
 | 
								<p class="comment" v-if="routes.length == 0">暂时还没有支持的线路。</p>
 | 
				
			||||||
			<div v-if="routes.length > 0">
 | 
								<div v-if="routes.length > 0">
 | 
				
			||||||
				<div class="ui label tiny" v-for="route in routes" style="margin-bottom: 0.5em">{{route.name}}<span v-if="route.code.length > 0 && route.code != route.name"> ({{route.code}})</span></div>
 | 
									<div class="ui label tiny basic" v-for="route in routes" style="margin-bottom: 0.5em">{{route.name}}<span v-if="route.code.length > 0 && route.code != route.name"> ({{route.code}})</span></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<p class="comment">注意:有些DNS服务商会根据账号的会员级别等限制线路的使用。</p>
 | 
								<p class="comment">注意:有些DNS服务商会根据账号的会员级别等限制线路的使用。</p>
 | 
				
			||||||
		</td>
 | 
							</td>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -56,7 +56,7 @@
 | 
				
			|||||||
			<th class="width10 center">节点域名</th>
 | 
								<th class="width10 center">节点域名</th>
 | 
				
			||||||
			<th class="width10 center">服务域名</th>
 | 
								<th class="width10 center">服务域名</th>
 | 
				
			||||||
			<th>数据更新时间</th>
 | 
								<th>数据更新时间</th>
 | 
				
			||||||
			<th>状态</th>
 | 
								<th class="center width10">状态</th>
 | 
				
			||||||
			<th class="three op">操作</th>
 | 
								<th class="three op">操作</th>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	</thead>
 | 
						</thead>
 | 
				
			||||||
@@ -78,7 +78,7 @@
 | 
				
			|||||||
			<span v-if="domain.dataUpdatedTime.length > 0">{{domain.dataUpdatedTime}}</span>
 | 
								<span v-if="domain.dataUpdatedTime.length > 0">{{domain.dataUpdatedTime}}</span>
 | 
				
			||||||
			<span v-else class="disabled">尚未更新</span>
 | 
								<span v-else class="disabled">尚未更新</span>
 | 
				
			||||||
		</td>
 | 
							</td>
 | 
				
			||||||
		<td>
 | 
							<td class="center">
 | 
				
			||||||
			<div v-if="domain.countRoutes == 0 || domain.nodesChanged || domain.serversChanged">
 | 
								<div v-if="domain.countRoutes == 0 || domain.nodesChanged || domain.serversChanged">
 | 
				
			||||||
				<a href=""  style="border-bottom: 1px #db2828 dashed" title="点击和DNS服务商系统同步" @click.prevent="syncDomain(index,domain)" v-if="!domain.isSyncing"><span class="red">需要同步</span></a>
 | 
									<a href=""  style="border-bottom: 1px #db2828 dashed" title="点击和DNS服务商系统同步" @click.prevent="syncDomain(index,domain)" v-if="!domain.isSyncing"><span class="red">需要同步</span></a>
 | 
				
			||||||
				<span v-else>正在同步...</span>
 | 
									<span v-else>正在同步...</span>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,8 +15,8 @@
 | 
				
			|||||||
				<th>策略名称</th>
 | 
									<th>策略名称</th>
 | 
				
			||||||
				<th>策略类型</th>
 | 
									<th>策略类型</th>
 | 
				
			||||||
				<th>容量</th>
 | 
									<th>容量</th>
 | 
				
			||||||
				<th>引用服务</th>
 | 
									<th class="center">引用服务</th>
 | 
				
			||||||
				<th>状态</th>
 | 
									<th class="center">状态</th>
 | 
				
			||||||
				<th class="two op">操作</th>
 | 
									<th class="two op">操作</th>
 | 
				
			||||||
			</tr>
 | 
								</tr>
 | 
				
			||||||
		</thead>
 | 
							</thead>
 | 
				
			||||||
@@ -27,8 +27,8 @@
 | 
				
			|||||||
				<span v-if="policy.capacity != null && policy.capacity.count > 0">{{policy.capacity.count}}{{policy.capacity.unit.toUpperCase()}}</span>
 | 
									<span v-if="policy.capacity != null && policy.capacity.count > 0">{{policy.capacity.count}}{{policy.capacity.unit.toUpperCase()}}</span>
 | 
				
			||||||
				<span v-else class="disabled">不限</span>
 | 
									<span v-else class="disabled">不限</span>
 | 
				
			||||||
			</td>
 | 
								</td>
 | 
				
			||||||
			<td>{{infos[index].countServers}}</td>
 | 
								<td class="center">{{infos[index].countServers}}</td>
 | 
				
			||||||
			<td><label-on :v-is-on="policy.isOn"></label-on></td>
 | 
								<td class="center"><label-on :v-is-on="policy.isOn"></label-on></td>
 | 
				
			||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				<a :href="'/servers/components/cache/policy?cachePolicyId=' + policy.id">详情</a>   <a href="" @click.prevent="deletePolicy(policy.id)">删除</a>
 | 
									<a :href="'/servers/components/cache/policy?cachePolicyId=' + policy.id">详情</a>   <a href="" @click.prevent="deletePolicy(policy.id)">删除</a>
 | 
				
			||||||
			</td>
 | 
								</td>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,7 @@
 | 
				
			|||||||
				<tr>
 | 
									<tr>
 | 
				
			||||||
					<th style="width:3em"></th>
 | 
										<th style="width:3em"></th>
 | 
				
			||||||
					<th>分组名称</th>
 | 
										<th>分组名称</th>
 | 
				
			||||||
					<th>服务数量</th>
 | 
										<th class="center width10">服务数量</th>
 | 
				
			||||||
					<th class="two op">操作</th>
 | 
										<th class="two op">操作</th>
 | 
				
			||||||
				</tr>
 | 
									</tr>
 | 
				
			||||||
			</thead>
 | 
								</thead>
 | 
				
			||||||
@@ -24,7 +24,7 @@
 | 
				
			|||||||
				<tr>
 | 
									<tr>
 | 
				
			||||||
					<td style="text-align: center;"><i class="icon bars handle grey"></i> </td>
 | 
										<td style="text-align: center;"><i class="icon bars handle grey"></i> </td>
 | 
				
			||||||
					<td>{{group.name}}</td>
 | 
										<td>{{group.name}}</td>
 | 
				
			||||||
					<td>
 | 
										<td class="center">
 | 
				
			||||||
						<span v-if="group.countServers > 0">{{group.countServers}}</span>
 | 
											<span v-if="group.countServers > 0">{{group.countServers}}</span>
 | 
				
			||||||
						<span v-else class="disabled">0</span>
 | 
											<span v-else class="disabled">0</span>
 | 
				
			||||||
					</td>
 | 
										</td>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,8 +22,8 @@
 | 
				
			|||||||
				<th>域名</th>
 | 
									<th>域名</th>
 | 
				
			||||||
				<th>生效日期</th>
 | 
									<th>生效日期</th>
 | 
				
			||||||
				<th>过期日期</th>
 | 
									<th>过期日期</th>
 | 
				
			||||||
				<th>引用服务</th>
 | 
									<th class="center">引用服务</th>
 | 
				
			||||||
				<th>状态</th>
 | 
									<th class="center">状态</th>
 | 
				
			||||||
				<th class="three op">操作</th>
 | 
									<th class="three op">操作</th>
 | 
				
			||||||
			</tr>
 | 
								</tr>
 | 
				
			||||||
		</thead>
 | 
							</thead>
 | 
				
			||||||
@@ -38,13 +38,13 @@
 | 
				
			|||||||
			</td>
 | 
								</td>
 | 
				
			||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				<div v-for="dnsName in cert.dnsNames" style="margin-bottom:0.4em">
 | 
									<div v-for="dnsName in cert.dnsNames" style="margin-bottom:0.4em">
 | 
				
			||||||
					<span class="ui label tiny">{{dnsName}}</span>
 | 
										<span class="ui label tiny basic">{{dnsName}}</span>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</td>
 | 
								</td>
 | 
				
			||||||
			<td>{{certInfos[index].beginDay}}</td>
 | 
								<td>{{certInfos[index].beginDay}}</td>
 | 
				
			||||||
			<td>{{certInfos[index].endDay}}</td>
 | 
								<td>{{certInfos[index].endDay}}</td>
 | 
				
			||||||
			<td>{{certInfos[index].countServers}}</td>
 | 
								<td class="center">{{certInfos[index].countServers}}</td>
 | 
				
			||||||
			<td nowrap="">
 | 
								<td nowrap="" class="center">
 | 
				
			||||||
				<span class="ui label red tiny basic" v-if="!certInfos[index].isOn">未启用</span>
 | 
									<span class="ui label red tiny basic" v-if="!certInfos[index].isOn">未启用</span>
 | 
				
			||||||
				<span class="ui label red tiny basic" v-else-if="certInfos[index].isExpired">已过期</span>
 | 
									<span class="ui label red tiny basic" v-else-if="certInfos[index].isExpired">已过期</span>
 | 
				
			||||||
				<span class="ui label green tiny basic" v-else>有效中</span>
 | 
									<span class="ui label green tiny basic" v-else>有效中</span>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -48,7 +48,7 @@
 | 
				
			|||||||
			</td>
 | 
								</td>
 | 
				
			||||||
			<td class="rules-box">
 | 
								<td class="rules-box">
 | 
				
			||||||
				<div v-for="rule in set.rules" style="margin-top: 0.4em;margin-bottom:0.4em">
 | 
									<div v-for="rule in set.rules" style="margin-top: 0.4em;margin-bottom:0.4em">
 | 
				
			||||||
					<span class="ui label tiny">{{rule.name}}[{{rule.param}}] <var :class="{dash:rule.isCaseInsensitive}" :title="rule.isCaseInsensitive ? '大小写不敏感':''" v-if="!rule.isComposed">{{rule.operator}}</var> {{rule.value}}</span>
 | 
										<span class="ui label tiny basic">{{rule.name}}[{{rule.param}}] <var :class="{dash:rule.isCaseInsensitive}" :title="rule.isCaseInsensitive ? '大小写不敏感':''" v-if="!rule.isComposed">{{rule.operator}}</var> {{rule.value}}</span>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<span class="ui disabled" v-if="set.rules.length == 0">暂时还没有规则</span>
 | 
									<span class="ui disabled" v-if="set.rules.length == 0">暂时还没有规则</span>
 | 
				
			||||||
			</td>
 | 
								</td>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,10 +25,10 @@
 | 
				
			|||||||
				<td><span :class="{disabled:!group.isOn}">{{group.name}}</span>
 | 
									<td><span :class="{disabled:!group.isOn}">{{group.name}}</span>
 | 
				
			||||||
					<p class="comment" v-if="group.description.length > 0" style="padding-bottom:0">{{group.description}}</p>
 | 
										<p class="comment" v-if="group.description.length > 0" style="padding-bottom:0">{{group.description}}</p>
 | 
				
			||||||
					<p>
 | 
										<p>
 | 
				
			||||||
						<span v-if="group.isOn" class="ui label tiny green">启用</span>
 | 
											<span v-if="group.isOn" class="ui label tiny basic green">启用</span>
 | 
				
			||||||
						<span v-if="!group.isOn" class="ui label tiny red">停用</span>
 | 
											<span v-if="!group.isOn" class="ui label tiny basic red">停用</span>
 | 
				
			||||||
						<span v-if="group.code.length > 0" class="ui label tiny">预置</span>
 | 
											<span v-if="group.code.length > 0" class="ui label basic tiny">预置</span>
 | 
				
			||||||
						<span v-if="group.code.length == 0" class="ui label tiny">自定义</span>
 | 
											<span v-if="group.code.length == 0" class="ui label basic tiny">自定义</span>
 | 
				
			||||||
					</p>
 | 
										</p>
 | 
				
			||||||
				</td>
 | 
									</td>
 | 
				
			||||||
				<td class="center">
 | 
									<td class="center">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,19 +14,19 @@
 | 
				
			|||||||
		<thead>
 | 
							<thead>
 | 
				
			||||||
			<tr>
 | 
								<tr>
 | 
				
			||||||
				<th>策略名称</th>
 | 
									<th>策略名称</th>
 | 
				
			||||||
				<th>入站规则分组</th>
 | 
									<th class="center">入站规则分组</th>
 | 
				
			||||||
				<th>出站规则分组</th>
 | 
									<th class="center">出站规则分组</th>
 | 
				
			||||||
				<th>引用服务</th>
 | 
									<th class="center">引用服务</th>
 | 
				
			||||||
				<th class="two wide">状态</th>
 | 
									<th class="two wide center">状态</th>
 | 
				
			||||||
				<th class="two op">操作</th>
 | 
									<th class="two op">操作</th>
 | 
				
			||||||
			</tr>
 | 
								</tr>
 | 
				
			||||||
		</thead>
 | 
							</thead>
 | 
				
			||||||
		<tr v-for="policy in policies">
 | 
							<tr v-for="policy in policies">
 | 
				
			||||||
			<td>{{policy.name}}</td>
 | 
								<td>{{policy.name}}</td>
 | 
				
			||||||
			<td>{{policy.countInbound}}</td>
 | 
								<td class="center">{{policy.countInbound}}</td>
 | 
				
			||||||
			<td>{{policy.countOutbound}}</td>
 | 
								<td class="center">{{policy.countOutbound}}</td>
 | 
				
			||||||
			<td>{{policy.countServers}}</td>
 | 
								<td class="center">{{policy.countServers}}</td>
 | 
				
			||||||
			<td><label-on :v-is-on="policy.isOn"></label-on></td>
 | 
								<td class="center"><label-on :v-is-on="policy.isOn"></label-on></td>
 | 
				
			||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				<a :href="'/servers/components/waf/policy?firewallPolicyId=' + policy.id">详情</a>  
 | 
									<a :href="'/servers/components/waf/policy?firewallPolicyId=' + policy.id">详情</a>  
 | 
				
			||||||
				<a href="" @click.prevent="deletePolicy(policy.id)">删除</a>
 | 
									<a href="" @click.prevent="deletePolicy(policy.id)">删除</a>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
			<tr>
 | 
								<tr>
 | 
				
			||||||
				<td class="title">已封禁</td>
 | 
									<td class="title">已封禁</td>
 | 
				
			||||||
				<td>
 | 
									<td>
 | 
				
			||||||
					<div class="ui label tiny" v-for="country in countries" v-if="country.isChecked" style="margin-bottom: 0.5em">
 | 
										<div class="ui label tiny basic" v-for="country in countries" v-if="country.isChecked" style="margin-bottom: 0.5em">
 | 
				
			||||||
						<input type="hidden" name="countryIds" :value="country.id"/>
 | 
											<input type="hidden" name="countryIds" :value="country.id"/>
 | 
				
			||||||
						({{country.letter}}){{country.name}} <a href="" @click.prevent="deselectCountry(country)" title="取消封禁"><i class="icon remove"></i></a>
 | 
											({{country.letter}}){{country.name}} <a href="" @click.prevent="deselectCountry(country)" title="取消封禁"><i class="icon remove"></i></a>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
			<tr>
 | 
								<tr>
 | 
				
			||||||
				<td class="title">已封禁</td>
 | 
									<td class="title">已封禁</td>
 | 
				
			||||||
				<td>
 | 
									<td>
 | 
				
			||||||
					<div class="ui label tiny" v-for="province in provinces" v-if="province.isChecked" style="margin-bottom: 0.5em">
 | 
										<div class="ui label tiny basic" v-for="province in provinces" v-if="province.isChecked" style="margin-bottom: 0.5em">
 | 
				
			||||||
						<input type="hidden" name="provinceIds" :value="province.id"/>
 | 
											<input type="hidden" name="provinceIds" :value="province.id"/>
 | 
				
			||||||
						{{province.name}} <a href="" @click.prevent="deselectProvince(province)" title="取消封禁"><i class="icon remove"></i></a>
 | 
											{{province.name}} <a href="" @click.prevent="deselectProvince(province)" title="取消封禁"><i class="icon remove"></i></a>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<td>预置的规则分组</td>
 | 
								<td>预置的规则分组</td>
 | 
				
			||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				<span class="ui label tiny" v-for="group in firewallPolicy.groups" style="margin-bottom:0.5em" :class="{disabled:!group.isOn}">{{group.name}}</span>
 | 
									<span class="ui label tiny basic" v-for="group in firewallPolicy.groups" style="margin-bottom:0.5em" :class="{disabled:!group.isOn}">{{group.name}}</span>
 | 
				
			||||||
			</td>
 | 
								</td>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,7 +10,7 @@
 | 
				
			|||||||
				<select class="ui dropdown auto-width" name="frame" v-model="config.frame">
 | 
									<select class="ui dropdown auto-width" name="frame" v-model="config.frame">
 | 
				
			||||||
					<option value="">不限制</option>
 | 
										<option value="">不限制</option>
 | 
				
			||||||
					<option value="SAMEORIGIN">仅限同域名</option>
 | 
										<option value="SAMEORIGIN">仅限同域名</option>
 | 
				
			||||||
					<option value="DENY">完全禁止</option>
 | 
										<!--<option value="DENY">完全禁止</option>-->
 | 
				
			||||||
				</select>
 | 
									</select>
 | 
				
			||||||
				<p class="comment">当前服务被别的网页框架嵌套的条件限制。</p>
 | 
									<p class="comment">当前服务被别的网页框架嵌套的条件限制。</p>
 | 
				
			||||||
			</td>
 | 
								</td>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,7 +14,7 @@
 | 
				
			|||||||
	<tr>
 | 
						<tr>
 | 
				
			||||||
		<td class="title">绑定地址</td>
 | 
							<td class="title">绑定地址</td>
 | 
				
			||||||
		<td>
 | 
							<td>
 | 
				
			||||||
			<span v-for="listen in serverConfig.http.listen" class="ui label tiny">{{listen}}</span>
 | 
								<span v-for="listen in serverConfig.http.listen" class="ui label tiny basic">{{listen}}</span>
 | 
				
			||||||
			<p class="ui comment">如果地址中的IP是0.0.0.0,表示服务器的所有IP都可以用来使用访问此服务。</p>
 | 
								<p class="ui comment">如果地址中的IP是0.0.0.0,表示服务器的所有IP都可以用来使用访问此服务。</p>
 | 
				
			||||||
		</td>
 | 
							</td>
 | 
				
			||||||
	</tr>
 | 
						</tr>
 | 
				
			||||||
@@ -33,7 +33,7 @@
 | 
				
			|||||||
	<tr>
 | 
						<tr>
 | 
				
			||||||
		<td class="title">绑定地址</td>
 | 
							<td class="title">绑定地址</td>
 | 
				
			||||||
		<td>
 | 
							<td>
 | 
				
			||||||
			<span v-for="listen in serverConfig.https.listen" class="ui label tiny">{{listen}}</span>
 | 
								<span v-for="listen in serverConfig.https.listen" class="ui label tiny basic">{{listen}}</span>
 | 
				
			||||||
			<p class="ui comment">如果地址中的IP是0.0.0.0,表示服务器的所有IP都可以用来使用访问此服务。</p>
 | 
								<p class="ui comment">如果地址中的IP是0.0.0.0,表示服务器的所有IP都可以用来使用访问此服务。</p>
 | 
				
			||||||
		</td>
 | 
							</td>
 | 
				
			||||||
	</tr>
 | 
						</tr>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user