mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-07 23:30: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