mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 13:10:26 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			106 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
Tea.context(function () {
 | 
						|
	this.serverType = "httpProxy"
 | 
						|
	this.tlsProtocolName = ""
 | 
						|
	this.origins = []
 | 
						|
	this.defaultAddresses = []
 | 
						|
 | 
						|
	this.success = NotifySuccess("保存成功", "/servers");
 | 
						|
 | 
						|
	this.fail = function (resp) {
 | 
						|
		if (resp.errors != null && resp.errors.length > 0) {
 | 
						|
			let isFiltered = false
 | 
						|
 | 
						|
			let that = this
 | 
						|
			resp.errors.forEach(function (err) {
 | 
						|
				if (err.param == "emptyDomain") {
 | 
						|
					isFiltered = true
 | 
						|
					teaweb.warn(err.messages[0], function () {
 | 
						|
						that.$refs.serverNameBox.addServerName()
 | 
						|
					})
 | 
						|
				} else if (err.param == "emptyOrigin") {
 | 
						|
					isFiltered = true
 | 
						|
					teaweb.warn(err.messages[0], function () {
 | 
						|
						that.addOrigin()
 | 
						|
					})
 | 
						|
				}
 | 
						|
			})
 | 
						|
 | 
						|
			if (isFiltered) {
 | 
						|
				return
 | 
						|
			}
 | 
						|
		}
 | 
						|
		Tea.failResponse(resp)
 | 
						|
	}
 | 
						|
 | 
						|
	this.changeServerType = function () {
 | 
						|
		this.origins = []
 | 
						|
		this.tlsProtocolName = ""
 | 
						|
		this.addDefaultAddresses()
 | 
						|
	}
 | 
						|
 | 
						|
	// 初始化调用
 | 
						|
	this.$delay(function () {
 | 
						|
		this.changeServerType()
 | 
						|
	})
 | 
						|
 | 
						|
	this.addOrigin = function () {
 | 
						|
		teaweb.popup("/servers/addOriginPopup?serverType=" + this.serverType, {
 | 
						|
			height: "27em",
 | 
						|
			callback: function (resp) {
 | 
						|
				this.origins.push(resp.data.origin);
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
 | 
						|
	this.removeOrigin = function (index) {
 | 
						|
		this.origins.$remove(index)
 | 
						|
	}
 | 
						|
 | 
						|
	this.addDefaultAddresses = function () {
 | 
						|
		// 默认绑定的端口地址
 | 
						|
		this.defaultAddresses = []
 | 
						|
		if (this.serverType == "httpProxy" || this.serverType == "httpWeb") {
 | 
						|
			this.defaultAddresses.push({
 | 
						|
				"host": "",
 | 
						|
				"portRange": "80",
 | 
						|
				"protocol": "http"
 | 
						|
			})
 | 
						|
			this.defaultAddresses.push({
 | 
						|
				"host": "",
 | 
						|
				"portRange": "443",
 | 
						|
				"protocol": "https"
 | 
						|
			})
 | 
						|
			this.tlsProtocolName = "https"
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 用户相关
 | 
						|
	 */
 | 
						|
	this.userId = 0
 | 
						|
	this.plans = []
 | 
						|
 | 
						|
	this.changeUserId = function (v) {
 | 
						|
		this.userId = v
 | 
						|
 | 
						|
		if (this.userId == 0) {
 | 
						|
			this.plans = []
 | 
						|
			return
 | 
						|
		}
 | 
						|
 | 
						|
		this.$post("/servers/users/plans")
 | 
						|
			.params({
 | 
						|
				userId: this.userId
 | 
						|
			})
 | 
						|
			.success(function (resp) {
 | 
						|
				this.plans = resp.data.plans
 | 
						|
			})
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 证书相关
 | 
						|
	 */
 | 
						|
	this.findServerNames = function () {
 | 
						|
		return this.$refs.serverNameBox.allServerNames()
 | 
						|
	}
 | 
						|
}) |