- {{range.minMB}}MB -
{{range.maxMB}}MB∞ 价格:{{range.pricePerMB}}元/MB
+ {{range.minMB}}MB -
{{range.maxMB}}MB∞ 价格:
{{range.totalPrice}}元{{range.pricePerMB}}元/MB
@@ -673,7 +673,7 @@ Vue.component("traffic-map-box",{props:["v-stats","v-is-attack"],mounted:functio
- | 带宽下限 |
+ 带宽下限 * |
@@ -682,7 +682,7 @@ Vue.component("traffic-map-box",{props:["v-stats","v-is-attack"],mounted:functio
|
- | 带宽上限 |
+ 带宽上限 * |
@@ -691,6 +691,16 @@ Vue.component("traffic-map-box",{props:["v-stats","v-is-attack"],mounted:functio
|
+
+ | 总价格 |
+
+
+
+ 元/MB
+
+
+ |
+
| 单位价格 |
@@ -698,6 +708,7 @@ Vue.component("traffic-map-box",{props:["v-stats","v-is-attack"],mounted:functio
元/MB
+
|
@@ -1550,7 +1561,7 @@ Vue.component("traffic-map-box",{props:["v-stats","v-is-attack"],mounted:functio
-
`}),Vue.component("http-firewall-checkpoint-cc",{props:["v-checkpoint"],data:function(){let e=[],t=60,i=1e3,s={},n=(null==(s=null!=window.parent.UPDATING_RULE?window.parent.UPDATING_RULE.checkpointOptions:s)&&(s={}),0==(e=null!=s.keys?s.keys:e).length&&(e=["${remoteAddr}","${requestPath}"]),null!=s.period&&(t=s.period),null!=s.threshold&&(i=s.threshold),this);return setTimeout(function(){n.change()},100),{keys:e,period:t,threshold:i,options:{},value:i}},watch:{period:function(){this.change()},threshold:function(){this.change()}},methods:{changeKeys:function(e){this.keys=e,this.change()},change:function(){let e=parseInt(this.period.toString()),t=((isNaN(e)||e<=0)&&(e=60),parseInt(this.threshold.toString()));(isNaN(t)||t<=0)&&(t=1e3),this.value=t,this.vCheckpoint.options=[{code:"keys",value:this.keys},{code:"period",value:e},{code:"threshold",value:t}]}},template:`
+
`}),Vue.component("http-firewall-checkpoint-cc",{props:["v-checkpoint"],data:function(){let e=[],t=60,i=1e3,s=!1,n={},o=(null==(n=null!=window.parent.UPDATING_RULE?window.parent.UPDATING_RULE.checkpointOptions:n)&&(n={}),0==(e=null!=n.keys?n.keys:e).length&&(e=["${remoteAddr}","${requestPath}"]),null!=n.period&&(t=n.period),null!=n.threshold&&(i=n.threshold),null!=n.ignoreCommonFiles&&"boolean"==typeof n.ignoreCommonFiles&&(s=n.ignoreCommonFiles),this);return setTimeout(function(){o.change()},100),{keys:e,period:t,threshold:i,ignoreCommonFiles:s,options:{},value:i}},watch:{period:function(){this.change()},threshold:function(){this.change()},ignoreCommonFiles:function(){this.change()}},methods:{changeKeys:function(e){this.keys=e,this.change()},change:function(){let e=parseInt(this.period.toString()),t=((isNaN(e)||e<=0)&&(e=60),parseInt(this.threshold.toString())),i=((isNaN(t)||t<=0)&&(t=1e3),this.value=t,this.ignoreCommonFiles);"boolean"!=typeof i&&(i=!1),this.vCheckpoint.options=[{code:"keys",value:this.keys},{code:"period",value:e},{code:"threshold",value:t},{code:"ignoreCommonFiles",value:i}]}},template:`
`}),Vue.component("http-firewall-checkpoint-referer-block",{props:["v-checkpoint"],data:function(){let e=!0,t=!0,i=[],s={},n=("boolean"==typeof(s=null==(s=null!=window.parent.UPDATING_RULE?window.parent.UPDATING_RULE.checkpointOptions:s)?{}:s).allowEmpty&&(e=s.allowEmpty),"boolean"==typeof s.allowSameDomain&&(t=s.allowSameDomain),null!=s.allowDomains&&"object"==typeof s.allowDomains&&(i=s.allowDomains),this);return setTimeout(function(){n.change()},100),{allowEmpty:e,allowSameDomain:t,allowDomains:i,options:{},value:0}},watch:{allowEmpty:function(){this.change()},allowSameDomain:function(){this.change()}},methods:{changeAllowDomains:function(e){this.allowDomains=e,this.change()},change:function(){this.vCheckpoint.options=[{code:"allowEmpty",value:this.allowEmpty},{code:"allowSameDomain",value:this.allowSameDomain},{code:"allowDomains",value:this.allowDomains}]}},template:`
@@ -3059,7 +3077,7 @@ Vue.component("traffic-map-box",{props:["v-stats","v-is-attack"],mounted:functio
- | 回源主机名不包含端口 |
+ 回源主机名移除端口 |
|
@@ -4266,7 +4284,7 @@ Vue.component("traffic-map-box",{props:["v-stats","v-is-attack"],mounted:functio
-`}),Vue.component("datetime-input",{props:["v-name","v-timestamp"],mounted:function(){let t=this;teaweb.datepicker(this.$refs.dayInput,function(e){t.day=e,t.hour="23",t.minute="59",t.second="59",t.change()})},data:function(){let t=this.vTimestamp,i=(null!=t?(t=parseInt(t),isNaN(t)&&(t=0)):t=0,""),s="",n="",o="";if(0
+`}),Vue.component("datetime-input",{props:["v-name","v-timestamp"],mounted:function(){let t=this;teaweb.datepicker(this.$refs.dayInput,function(e){t.day=e,t.hour="23",t.minute="59",t.second="59",t.change()})},data:function(){let t=this.vTimestamp,i=(null!=t?(t=parseInt(t),isNaN(t)&&(t=0)):t=0,""),s="",n="",o="";if(0
@@ -4278,7 +4296,7 @@ Vue.component("traffic-map-box",{props:["v-stats","v-is-attack"],mounted:functio
:
-
+
`}),Vue.component("label-on",{props:["v-is-on"],template:'已启用已停用
'}),Vue.component("code-label",{methods:{click:function(e){this.$emit("click",e)}},template:''}),Vue.component("code-label-plain",{template:''}),Vue.component("tiny-label",{template:''}),Vue.component("tiny-basic-label",{template:''}),Vue.component("micro-basic-label",{template:''}),Vue.component("grey-label",{props:["color"],data:function(){let e="grey";return{labelColor:e=null!=this.color&&0'}),Vue.component("optional-label",{template:'(可选)'}),Vue.component("plus-label",{template:'Plus专属功能。'}),Vue.component("pro-warning-label",{template:'注意:通常不需要修改;如要修改,请在专家指导下进行。'}),Vue.component("first-menu",{props:[],template:' \t\t'}),Vue.component("more-options-indicator",{data:function(){return{visible:!1}},methods:{changeVisible:function(){this.visible=!this.visible,null!=Tea.Vue&&(Tea.Vue.moreOptionsVisible=this.visible),this.$emit("change",this.visible)}},template:'更多选项收起选项 '}),Vue.component("page-size-selector",{data:function(){let t=window.location.search,i=10;if(0
`}),Vue.component("second-menu",{template:' \t\t'}),Vue.component("loading-message",{template:`
diff --git a/web/public/js/components.src.js b/web/public/js/components.src.js
index d2afc313..505558f3 100755
--- a/web/public/js/components.src.js
+++ b/web/public/js/components.src.js
@@ -2169,7 +2169,7 @@ Vue.component("plan-price-view", {
按{{plan.bandwidthPrice.percentile}}th带宽计费
- {{range.minMB}} - {{range.maxMB}}MB∞: {{range.pricePerMB}}元/MB
+ {{range.minMB}} - {{range.maxMB}}MB∞: {{range.totalPrice}}元{{range.pricePerMB}}元/MB
@@ -2190,6 +2190,7 @@ Vue.component("plan-bandwidth-ranges", {
minMB: "",
maxMB: "",
pricePerMB: "",
+ totalPrice: "",
addingRange: {
minMB: 0,
maxMB: 0,
@@ -2214,12 +2215,16 @@ Vue.component("plan-bandwidth-ranges", {
this.minMB = ""
this.maxMB = ""
this.pricePerMB = ""
+ this.totalPrice = ""
this.ranges.push(this.addingRange)
this.ranges.$sort(function (v1, v2) {
if (v1.minMB < v2.minMB) {
return -1
}
if (v1.minMB == v2.minMB) {
+ if (v2.maxMB == 0 || v1.maxMB < v2.maxMB) {
+ return -1
+ }
return 0
}
return 1
@@ -2261,13 +2266,20 @@ Vue.component("plan-bandwidth-ranges", {
pricePerMB = 0
}
this.addingRange.pricePerMB = pricePerMB
+ },
+ totalPrice: function (v) {
+ let totalPrice = parseFloat(v.toString())
+ if (isNaN(totalPrice) || totalPrice < 0) {
+ totalPrice = 0
+ }
+ this.addingRange.totalPrice = totalPrice
}
},
template: `
- {{range.minMB}}MB -
{{range.maxMB}}MB∞ 价格:{{range.pricePerMB}}元/MB
+ {{range.minMB}}MB -
{{range.maxMB}}MB∞ 价格:
{{range.totalPrice}}元{{range.pricePerMB}}元/MB
@@ -2277,7 +2289,7 @@ Vue.component("plan-bandwidth-ranges", {
@@ -4803,6 +4826,7 @@ Vue.component("http-firewall-checkpoint-cc", {
let keys = []
let period = 60
let threshold = 1000
+ let ignoreCommonFiles = false
let options = {}
if (window.parent.UPDATING_RULE != null) {
@@ -4824,6 +4848,9 @@ Vue.component("http-firewall-checkpoint-cc", {
if (options.threshold != null) {
threshold = options.threshold
}
+ if (options.ignoreCommonFiles != null && typeof (options.ignoreCommonFiles) == "boolean") {
+ ignoreCommonFiles = options.ignoreCommonFiles
+ }
let that = this
setTimeout(function () {
@@ -4834,6 +4861,7 @@ Vue.component("http-firewall-checkpoint-cc", {
keys: keys,
period: period,
threshold: threshold,
+ ignoreCommonFiles: ignoreCommonFiles,
options: {},
value: threshold
}
@@ -4844,6 +4872,9 @@ Vue.component("http-firewall-checkpoint-cc", {
},
threshold: function () {
this.change()
+ },
+ ignoreCommonFiles: function () {
+ this.change()
}
},
methods: {
@@ -4863,6 +4894,11 @@ Vue.component("http-firewall-checkpoint-cc", {
}
this.value = threshold
+ let ignoreCommonFiles = this.ignoreCommonFiles
+ if (typeof ignoreCommonFiles != "boolean") {
+ ignoreCommonFiles = false
+ }
+
this.vCheckpoint.options = [
{
code: "keys",
@@ -4875,6 +4911,10 @@ Vue.component("http-firewall-checkpoint-cc", {
{
code: "threshold",
value: threshold
+ },
+ {
+ code: "ignoreCommonFiles",
+ value: ignoreCommonFiles
}
]
}
@@ -4904,6 +4944,13 @@ Vue.component("http-firewall-checkpoint-cc", {
+
+ | 忽略常见文件 |
+
+
+
+ |
+
`
})
@@ -8919,7 +8966,7 @@ Vue.component("reverse-proxy-box", {
- | 回源主机名不包含端口 |
+ 回源主机名移除端口 |
|
@@ -12716,6 +12763,15 @@ Vue.component("datetime-input", {
this.minute = this.leadingZero(date.getMinutes(), 2)
this.second = this.leadingZero(date.getSeconds(), 2)
this.change()
+ },
+ nextHours: function (hours) {
+ let date = new Date()
+ date.setTime(date.getTime() + hours * 3600 * 1000)
+ this.day = date.getFullYear() + "-" + this.leadingZero(date.getMonth() + 1, 2) + "-" + this.leadingZero(date.getDate(), 2)
+ this.hour = this.leadingZero(date.getHours(), 2)
+ this.minute = this.leadingZero(date.getMinutes(), 2)
+ this.second = this.leadingZero(date.getSeconds(), 2)
+ this.change()
}
},
template: `
@@ -12730,7 +12786,7 @@ Vue.component("datetime-input", {
:
-
+
`
})
diff --git a/web/views/@default/dashboard/index.html b/web/views/@default/dashboard/index.html
index 096c29b6..e2e48a57 100644
--- a/web/views/@default/dashboard/index.html
+++ b/web/views/@default/dashboard/index.html
@@ -30,7 +30,7 @@