mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 05:00:25 +08:00 
			
		
		
		
	阶段性提交
This commit is contained in:
		@@ -1,12 +1,17 @@
 | 
			
		||||
Vue.component("network-addresses-box", {
 | 
			
		||||
	props: ["vServerType", "vAddresses"],
 | 
			
		||||
	props: ["v-server-type", "v-addresses", "v-protocol"],
 | 
			
		||||
	data: function () {
 | 
			
		||||
		let addresses = this.vAddresses
 | 
			
		||||
		if (addresses == null) {
 | 
			
		||||
			addresses = []
 | 
			
		||||
		}
 | 
			
		||||
		let protocol = this.vProtocol
 | 
			
		||||
		if (protocol == null) {
 | 
			
		||||
			protocol = ""
 | 
			
		||||
		}
 | 
			
		||||
		return {
 | 
			
		||||
			addresses: addresses
 | 
			
		||||
			addresses: addresses,
 | 
			
		||||
			protocol: protocol
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	watch: {
 | 
			
		||||
@@ -17,7 +22,7 @@ Vue.component("network-addresses-box", {
 | 
			
		||||
	methods: {
 | 
			
		||||
		addAddr: function () {
 | 
			
		||||
			let that = this
 | 
			
		||||
			teaweb.popup("/servers/addPortPopup?serverType=" + this.vServerType, {
 | 
			
		||||
			teaweb.popup("/servers/addPortPopup?serverType=" + this.vServerType + "&protocol=" + this.protocol, {
 | 
			
		||||
				callback: function (resp) {
 | 
			
		||||
					var addr = resp.data.address;
 | 
			
		||||
					that.addresses.push(addr);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										46
									
								
								web/public/js/components/common/size-capacity-box.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								web/public/js/components/common/size-capacity-box.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
Vue.component("size-capacity-box", {
 | 
			
		||||
	props: ["v-name", "v-value", "v-count", "v-unit"],
 | 
			
		||||
	data: function () {
 | 
			
		||||
		let v = this.vValue
 | 
			
		||||
		if (v == null) {
 | 
			
		||||
			v = {
 | 
			
		||||
				count: this.vCount,
 | 
			
		||||
				unit: this.vUnit
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if (typeof (v["count"]) != "number") {
 | 
			
		||||
			v["count"] = -1
 | 
			
		||||
		}
 | 
			
		||||
		return {
 | 
			
		||||
			"size": v,
 | 
			
		||||
			countString: (v.count >= 0) ? v.count.toString() : ""
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	watch: {
 | 
			
		||||
		"countString": function (newValue) {
 | 
			
		||||
			let value = newValue.trim()
 | 
			
		||||
			if (value.length == 0) {
 | 
			
		||||
				this.size.count = -1
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
			let count = parseInt(value)
 | 
			
		||||
			if (!isNaN(count)) {
 | 
			
		||||
				this.size.count = count
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	template: `<div class="ui fields inline">
 | 
			
		||||
	<input type="hidden" :name="vName" :value="JSON.stringify(size)"/>
 | 
			
		||||
	<div class="ui field">
 | 
			
		||||
		<input type="text" v-model="countString" maxlength="11" size="11"/>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="ui field">
 | 
			
		||||
		<select class="ui dropdown" v-model="size.unit">
 | 
			
		||||
			<option value="byte">字节</option>
 | 
			
		||||
			<option value="kb">KB</option>
 | 
			
		||||
			<option value="mb">MB</option>
 | 
			
		||||
			<option value="gb">GB</option>
 | 
			
		||||
		</select>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>`
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										46
									
								
								web/public/js/components/server/gzip-box.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								web/public/js/components/server/gzip-box.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
Vue.component("gzip-box", {
 | 
			
		||||
	props: ["v-gzip-config"],
 | 
			
		||||
	data: function () {
 | 
			
		||||
		let gzip = this.vGzipConfig
 | 
			
		||||
		if (gzip == null) {
 | 
			
		||||
			gzip = {
 | 
			
		||||
				isOn: true,
 | 
			
		||||
				level: 0,
 | 
			
		||||
				minLength: null,
 | 
			
		||||
				maxLength: null
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return {
 | 
			
		||||
			gzip: gzip,
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	template: `<div>
 | 
			
		||||
<table class="ui table selectable definition">
 | 
			
		||||
	<tr>
 | 
			
		||||
		<td class="title">压缩级别</td>
 | 
			
		||||
		<td>
 | 
			
		||||
			<select class="dropdown auto-width" name="level" v-model="gzip.level">
 | 
			
		||||
				<option value="0">不压缩</option>
 | 
			
		||||
				<option v-for="i in 9" :value="i">{{i}}</option>
 | 
			
		||||
			</select>
 | 
			
		||||
			<p class="comment">级别越高,压缩比例越大。</p>
 | 
			
		||||
		</td>
 | 
			
		||||
	</tr>	
 | 
			
		||||
	<tr>
 | 
			
		||||
		<td>Gzip内容最小长度</td>
 | 
			
		||||
		<td>
 | 
			
		||||
			<size-capacity-box :v-name="'minLength'" :v-value="gzip.minLength" :v-unit="'kb'"></size-capacity-box>
 | 
			
		||||
			<p class="comment">0表示不限制,内容长度从文件尺寸或Content-Length中获取。</p>
 | 
			
		||||
		</td>
 | 
			
		||||
	</tr>
 | 
			
		||||
	<tr>
 | 
			
		||||
		<td>Gzip内容最大长度</td>
 | 
			
		||||
		<td>
 | 
			
		||||
			<size-capacity-box :v-name="'maxLength'" :v-value="gzip.maxLength" :v-unit="'mb'"></size-capacity-box>
 | 
			
		||||
			<p class="comment">0表示不限制,内容长度从文件尺寸或Content-Length中获取。</p>
 | 
			
		||||
		</td>
 | 
			
		||||
	</tr>
 | 
			
		||||
</table>
 | 
			
		||||
</div>`
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										37
									
								
								web/public/js/components/server/server-name-box.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								web/public/js/components/server/server-name-box.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
Vue.component("server-name-box", {
 | 
			
		||||
	props: ["v-server-names"],
 | 
			
		||||
	data: function () {
 | 
			
		||||
		let serverNames = this.vServerNames;
 | 
			
		||||
		if (serverNames == null) {
 | 
			
		||||
			serverNames = []
 | 
			
		||||
		}
 | 
			
		||||
		return {
 | 
			
		||||
			serverNames: serverNames
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		addServerName: function () {
 | 
			
		||||
			let that = this
 | 
			
		||||
			teaweb.popup("/servers/addServerNamePopup", {
 | 
			
		||||
				callback: function (resp) {
 | 
			
		||||
					var serverName = resp.data.serverName
 | 
			
		||||
					that.serverNames.push(serverName)
 | 
			
		||||
				}
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		removeServerName: function (index) {
 | 
			
		||||
			this.serverNames.$remove(index)
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	template: `<div>
 | 
			
		||||
	<input type="hidden" name="serverNames" :value="JSON.stringify(serverNames)"/>
 | 
			
		||||
	<div v-if="serverNames.length > 0">
 | 
			
		||||
		<div v-for="(serverName, index) in serverNames" class="ui label small">
 | 
			
		||||
			<em v-if="serverName.type != 'full'">{{serverName.type}}</em>  {{serverName.name}} <a href="" title="删除" @click.prevent="removeServerName(index)"><i class="icon remove"></i></a>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="ui divider"></div>
 | 
			
		||||
	</div>
 | 
			
		||||
	<a href="" @click.prevent="addServerName()">[添加域名绑定]</a>
 | 
			
		||||
</div>`
 | 
			
		||||
})
 | 
			
		||||
		Reference in New Issue
	
	Block a user