mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 13:10:26 +08:00 
			
		
		
		
	将带宽限制改为流量限制
This commit is contained in:
		@@ -351,10 +351,10 @@ func (this *ServerHelper) createSettingsMenu(secondMenuItem string, serverIdStri
 | 
			
		||||
 | 
			
		||||
		if teaconst.IsPlus {
 | 
			
		||||
			menuItems = append(menuItems, maps.Map{
 | 
			
		||||
				"name":     "带宽限制",
 | 
			
		||||
				"url":      "/servers/server/settings/bandwidth?serverId=" + serverIdString,
 | 
			
		||||
				"isActive": secondMenuItem == "bandwidth",
 | 
			
		||||
				"isOn":     serverConfig.BandwidthLimit != nil && serverConfig.BandwidthLimit.IsOn,
 | 
			
		||||
				"name":     "流量限制",
 | 
			
		||||
				"url":      "/servers/server/settings/traffic?serverId=" + serverIdString,
 | 
			
		||||
				"isActive": secondMenuItem == "traffic",
 | 
			
		||||
				"isOn":     serverConfig.TrafficLimit != nil && serverConfig.TrafficLimit.IsOn,
 | 
			
		||||
			})
 | 
			
		||||
		}
 | 
			
		||||
	} else if serverConfig.IsTCPFamily() {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
// 套餐价格配置
 | 
			
		||||
Vue.component("plan-price-config-box", {
 | 
			
		||||
	props: ["v-price-type", "v-monthly-price", "v-seasonally-price", "v-yearly-price", "v-bandwidth-price"],
 | 
			
		||||
	props: ["v-price-type", "v-monthly-price", "v-seasonally-price", "v-yearly-price", "v-traffic-price"],
 | 
			
		||||
	data: function () {
 | 
			
		||||
		let priceType = this.vPriceType
 | 
			
		||||
		if (priceType == null) {
 | 
			
		||||
@@ -43,18 +43,18 @@ Vue.component("plan-price-config-box", {
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		let bandwidthPrice = this.vBandwidthPrice
 | 
			
		||||
		let bandwidthPriceBaseNumber = 0
 | 
			
		||||
		if (bandwidthPrice != null) {
 | 
			
		||||
			bandwidthPriceBaseNumber = bandwidthPrice.base
 | 
			
		||||
		let trafficPrice = this.vTrafficPrice
 | 
			
		||||
		let trafficPriceBaseNumber = 0
 | 
			
		||||
		if (trafficPrice != null) {
 | 
			
		||||
			trafficPriceBaseNumber = trafficPrice.base
 | 
			
		||||
		} else {
 | 
			
		||||
			bandwidthPrice = {
 | 
			
		||||
			trafficPrice = {
 | 
			
		||||
				base: 0
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		let bandwidthPriceBase = ""
 | 
			
		||||
		if (bandwidthPriceBaseNumber > 0) {
 | 
			
		||||
			bandwidthPriceBase = bandwidthPriceBaseNumber.toString()
 | 
			
		||||
		let trafficPriceBase = ""
 | 
			
		||||
		if (trafficPriceBaseNumber > 0) {
 | 
			
		||||
			trafficPriceBase = trafficPriceBaseNumber.toString()
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return {
 | 
			
		||||
@@ -67,8 +67,8 @@ Vue.component("plan-price-config-box", {
 | 
			
		||||
			seasonallyPriceNumber: seasonallyPriceNumber,
 | 
			
		||||
			yearlyPriceNumber: yearlyPriceNumber,
 | 
			
		||||
 | 
			
		||||
			bandwidthPriceBase: bandwidthPriceBase,
 | 
			
		||||
			bandwidthPrice: bandwidthPrice
 | 
			
		||||
			trafficPriceBase: trafficPriceBase,
 | 
			
		||||
			trafficPrice: trafficPrice
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	watch: {
 | 
			
		||||
@@ -93,12 +93,12 @@ Vue.component("plan-price-config-box", {
 | 
			
		||||
			}
 | 
			
		||||
			this.yearlyPriceNumber = price
 | 
			
		||||
		},
 | 
			
		||||
		bandwidthPriceBase: function (v) {
 | 
			
		||||
		trafficPriceBase: function (v) {
 | 
			
		||||
			let price = parseFloat(v)
 | 
			
		||||
			if (isNaN(price)) {
 | 
			
		||||
				price = 0
 | 
			
		||||
			}
 | 
			
		||||
			this.bandwidthPrice.base = price
 | 
			
		||||
			this.trafficPrice.base = price
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	template: `<div>
 | 
			
		||||
@@ -106,11 +106,11 @@ Vue.component("plan-price-config-box", {
 | 
			
		||||
	<input type="hidden" name="monthlyPrice" :value="monthlyPriceNumber"/>
 | 
			
		||||
	<input type="hidden" name="seasonallyPrice" :value="seasonallyPriceNumber"/>
 | 
			
		||||
	<input type="hidden" name="yearlyPrice" :value="yearlyPriceNumber"/>
 | 
			
		||||
	<input type="hidden" name="bandwidthPriceJSON" :value="JSON.stringify(bandwidthPrice)"/>
 | 
			
		||||
	<input type="hidden" name="trafficPriceJSON" :value="JSON.stringify(trafficPrice)"/>
 | 
			
		||||
	
 | 
			
		||||
	<div>
 | 
			
		||||
		<radio :v-value="'period'" :value="priceType" v-model="priceType"> 按时间周期</radio>    
 | 
			
		||||
		<radio :v-value="'bandwidth'" :value="priceType" v-model="priceType"> 按带宽用量</radio>
 | 
			
		||||
		<radio :v-value="'traffic'" :value="priceType" v-model="priceType"> 按流量</radio>
 | 
			
		||||
	</div>
 | 
			
		||||
	
 | 
			
		||||
	<!-- 按时间周期 -->
 | 
			
		||||
@@ -147,15 +147,15 @@ Vue.component("plan-price-config-box", {
 | 
			
		||||
		</table>
 | 
			
		||||
	</div>
 | 
			
		||||
	
 | 
			
		||||
	<!-- 按带宽 -->
 | 
			
		||||
	<div v-show="priceType =='bandwidth'">
 | 
			
		||||
	<!-- 按流量 -->
 | 
			
		||||
	<div v-show="priceType =='traffic'">
 | 
			
		||||
		<div class="ui divider"></div>
 | 
			
		||||
		<table class="ui table">
 | 
			
		||||
			<tr>
 | 
			
		||||
				<td class="title">基础带宽费用</td>
 | 
			
		||||
				<td class="title">基础流量费用</td>
 | 
			
		||||
				<td>
 | 
			
		||||
					<div class="ui input right labeled">
 | 
			
		||||
						<input type="text" v-model="bandwidthPriceBase" maxlength="10" style="width: 7em"/>
 | 
			
		||||
						<input type="text" v-model="trafficPriceBase" maxlength="10" style="width: 7em"/>
 | 
			
		||||
						<span class="ui label">元/GB</span>
 | 
			
		||||
					</div>
 | 
			
		||||
				</td>
 | 
			
		||||
 
 | 
			
		||||
@@ -11,8 +11,8 @@ Vue.component("plan-price-view", {
 | 
			
		||||
		<span v-if="plan.seasonallyPrice > 0">季度:¥{{plan.seasonallyPrice}}元<br/></span>
 | 
			
		||||
		<span v-if="plan.yearlyPrice > 0">年度:¥{{plan.yearlyPrice}}元</span>
 | 
			
		||||
	</span>
 | 
			
		||||
	<span v-if="plan.priceType == 'bandwidth'">
 | 
			
		||||
		基础价格:¥{{plan.bandwidthPrice.base}}元/GB
 | 
			
		||||
	<span v-if="plan.priceType == 'traffic'">
 | 
			
		||||
		基础价格:¥{{plan.trafficPrice.base}}元/GB
 | 
			
		||||
	</span>
 | 
			
		||||
</div>`
 | 
			
		||||
})
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
Vue.component("bandwidth-limit-config-box", {
 | 
			
		||||
	props: ["v-bandwidth-limit"],
 | 
			
		||||
Vue.component("traffic-limit-config-box", {
 | 
			
		||||
	props: ["v-traffic-limit"],
 | 
			
		||||
	data: function () {
 | 
			
		||||
		let config = this.vBandwidthLimit
 | 
			
		||||
		let config = this.vTrafficLimit
 | 
			
		||||
		if (config == null) {
 | 
			
		||||
			config = {
 | 
			
		||||
				isOn: false,
 | 
			
		||||
@@ -47,36 +47,36 @@ Vue.component("bandwidth-limit-config-box", {
 | 
			
		||||
			this.config.noticePageBody = `<!DOCTYPE html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
<title>Bandwidth Limit Exceeded Warning</title>
 | 
			
		||||
<title>Traffic Limit Exceeded Warning</title>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
The site bandwidth has exceeded the limit. Please contact with the site administrator.
 | 
			
		||||
The site traffic has exceeded the limit. Please contact with the site administrator.
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>`
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	template: `<div>
 | 
			
		||||
	<input type="hidden" name="bandwidthLimitJSON" :value="JSON.stringify(config)"/>
 | 
			
		||||
	<input type="hidden" name="trafficLimitJSON" :value="JSON.stringify(config)"/>
 | 
			
		||||
	<table class="ui table selectable definition">
 | 
			
		||||
		<tbody>
 | 
			
		||||
			<tr>
 | 
			
		||||
				<td class="title">是否启用</td>
 | 
			
		||||
				<td>
 | 
			
		||||
					<checkbox v-model="config.isOn"></checkbox>
 | 
			
		||||
					<p class="comment">注意:由于带宽统计是每5分钟统计一次,所以超出带宽限制后,对用户的提醒也会有所延迟。</p>
 | 
			
		||||
					<p class="comment">注意:由于流量统计是每5分钟统计一次,所以超出流量限制后,对用户的提醒也会有所延迟。</p>
 | 
			
		||||
				</td>
 | 
			
		||||
			</tr>
 | 
			
		||||
		</tbody>
 | 
			
		||||
		<tbody v-show="config.isOn">
 | 
			
		||||
			<tr>
 | 
			
		||||
				<td>日带宽限制</td>
 | 
			
		||||
				<td>日流量限制</td>
 | 
			
		||||
				<td>
 | 
			
		||||
					<size-capacity-box :v-value="config.dailySize"></size-capacity-box>
 | 
			
		||||
				</td>
 | 
			
		||||
			</tr>
 | 
			
		||||
			<tr>
 | 
			
		||||
				<td>月带宽限制</td>
 | 
			
		||||
				<td>月流量限制</td>
 | 
			
		||||
				<td>
 | 
			
		||||
					<size-capacity-box :v-value="config.monthlySize"></size-capacity-box>
 | 
			
		||||
				</td>
 | 
			
		||||
@@ -92,7 +92,7 @@ The site bandwidth has exceeded the limit. Please contact with the site administ
 | 
			
		||||
				<td>网页提示内容</td>
 | 
			
		||||
				<td>
 | 
			
		||||
					<textarea v-model="config.noticePageBody"></textarea>
 | 
			
		||||
					<p class="comment"><a href="" @click.prevent="showBodyTemplate">[使用模板]</a>。当达到带宽限制时网页显示的HTML内容,不填写则显示默认的提示内容。</p>
 | 
			
		||||
					<p class="comment"><a href="" @click.prevent="showBodyTemplate">[使用模板]</a>。当达到流量限制时网页显示的HTML内容,不填写则显示默认的提示内容。</p>
 | 
			
		||||
				</td>
 | 
			
		||||
			</tr>
 | 
			
		||||
		</tbody>
 | 
			
		||||
@@ -1,15 +1,15 @@
 | 
			
		||||
// 显示带宽限制说明
 | 
			
		||||
Vue.component("bandwidth-limit-view", {
 | 
			
		||||
	props: ["v-bandwidth-limit"],
 | 
			
		||||
// 显示流量限制说明
 | 
			
		||||
Vue.component("traffic-limit-view", {
 | 
			
		||||
	props: ["v-traffic-limit"],
 | 
			
		||||
	data: function () {
 | 
			
		||||
		return {
 | 
			
		||||
			config: this.vBandwidthLimit
 | 
			
		||||
			config: this.vTrafficLimit
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	template: `<div>
 | 
			
		||||
	<div v-if="config.isOn">
 | 
			
		||||
		<span v-if="config.dailySize != null && config.dailySize.count > 0">日带宽限制:{{config.dailySize.count}}{{config.dailySize.unit.toUpperCase()}}<br/></span>
 | 
			
		||||
		<span v-if="config.monthlySize != null && config.monthlySize.count > 0">月带宽限制:{{config.monthlySize.count}}{{config.monthlySize.unit.toUpperCase()}}<br/></span>
 | 
			
		||||
		<span v-if="config.dailySize != null && config.dailySize.count > 0">日流量限制:{{config.dailySize.count}}{{config.dailySize.unit.toUpperCase()}}<br/></span>
 | 
			
		||||
		<span v-if="config.monthlySize != null && config.monthlySize.count > 0">月流量限制:{{config.monthlySize.count}}{{config.monthlySize.unit.toUpperCase()}}<br/></span>
 | 
			
		||||
	</div>
 | 
			
		||||
	<span v-else class="disabled">没有限制。</span>
 | 
			
		||||
</div>`
 | 
			
		||||
@@ -6,7 +6,7 @@
 | 
			
		||||
		<input type="hidden" name="serverId" :value="serverId"/>
 | 
			
		||||
        <csrf-token></csrf-token>
 | 
			
		||||
 | 
			
		||||
        <bandwidth-limit-config-box :v-bandwidth-limit="bandwidthLimitConfig"></bandwidth-limit-config-box>
 | 
			
		||||
        <traffic-limit-config-box :v-traffic-limit="trafficLimitConfig"></traffic-limit-config-box>
 | 
			
		||||
 | 
			
		||||
		<submit-btn></submit-btn>
 | 
			
		||||
	</form>
 | 
			
		||||
		Reference in New Issue
	
	Block a user