请求条件增加不区分大小写选项

This commit is contained in:
刘祥超
2021-12-12 16:11:25 +08:00
parent 4dd6903025
commit 9a17adcc6f
8 changed files with 190 additions and 20 deletions

View File

@@ -97,7 +97,8 @@ Vue.component("http-cond-url-prefix", {
isRequest: true,
param: "${requestPath}",
operator: "prefix",
value: ""
value: "",
isCaseInsensitive: false
}
if (this.vCond != null && typeof (this.vCond.value) == "string") {
cond.value = this.vCond.value
@@ -106,6 +107,11 @@ Vue.component("http-cond-url-prefix", {
cond: cond
}
},
methods: {
changeCaseInsensitive: function (isCaseInsensitive) {
this.cond.isCaseInsensitive = isCaseInsensitive
}
},
template: `<div>
<input type="hidden" name="condJSON" :value="JSON.stringify(cond)"/>
<input type="text" v-model="cond.value"/>
@@ -121,7 +127,8 @@ Vue.component("http-cond-url-not-prefix", {
param: "${requestPath}",
operator: "prefix",
value: "",
isReverse: true
isReverse: true,
isCaseInsensitive: false
}
if (this.vCond != null && typeof this.vCond.value == "string") {
cond.value = this.vCond.value
@@ -130,6 +137,11 @@ Vue.component("http-cond-url-not-prefix", {
cond: cond
}
},
methods: {
changeCaseInsensitive: function (isCaseInsensitive) {
this.cond.isCaseInsensitive = isCaseInsensitive
}
},
template: `<div>
<input type="hidden" name="condJSON" :value="JSON.stringify(cond)"/>
<input type="text" v-model="cond.value"/>
@@ -145,7 +157,8 @@ Vue.component("http-cond-url-eq", {
isRequest: true,
param: "${requestPath}",
operator: "eq",
value: ""
value: "",
isCaseInsensitive: false
}
if (this.vCond != null && typeof this.vCond.value == "string") {
cond.value = this.vCond.value
@@ -154,6 +167,11 @@ Vue.component("http-cond-url-eq", {
cond: cond
}
},
methods: {
changeCaseInsensitive: function (isCaseInsensitive) {
this.cond.isCaseInsensitive = isCaseInsensitive
}
},
template: `<div>
<input type="hidden" name="condJSON" :value="JSON.stringify(cond)"/>
<input type="text" v-model="cond.value"/>
@@ -169,7 +187,8 @@ Vue.component("http-cond-url-not-eq", {
param: "${requestPath}",
operator: "eq",
value: "",
isReverse: true
isReverse: true,
isCaseInsensitive: false
}
if (this.vCond != null && typeof this.vCond.value == "string") {
cond.value = this.vCond.value
@@ -178,6 +197,11 @@ Vue.component("http-cond-url-not-eq", {
cond: cond
}
},
methods: {
changeCaseInsensitive: function (isCaseInsensitive) {
this.cond.isCaseInsensitive = isCaseInsensitive
}
},
template: `<div>
<input type="hidden" name="condJSON" :value="JSON.stringify(cond)"/>
<input type="text" v-model="cond.value"/>
@@ -193,7 +217,8 @@ Vue.component("http-cond-url-regexp", {
isRequest: true,
param: "${requestPath}",
operator: "regexp",
value: ""
value: "",
isCaseInsensitive: false
}
if (this.vCond != null && typeof this.vCond.value == "string") {
cond.value = this.vCond.value
@@ -202,6 +227,11 @@ Vue.component("http-cond-url-regexp", {
cond: cond
}
},
methods: {
changeCaseInsensitive: function (isCaseInsensitive) {
this.cond.isCaseInsensitive = isCaseInsensitive
}
},
template: `<div>
<input type="hidden" name="condJSON" :value="JSON.stringify(cond)"/>
<input type="text" v-model="cond.value"/>
@@ -217,7 +247,8 @@ Vue.component("http-cond-url-not-regexp", {
isRequest: true,
param: "${requestPath}",
operator: "not regexp",
value: ""
value: "",
isCaseInsensitive: false
}
if (this.vCond != null && typeof this.vCond.value == "string") {
cond.value = this.vCond.value
@@ -226,6 +257,11 @@ Vue.component("http-cond-url-not-regexp", {
cond: cond
}
},
methods: {
changeCaseInsensitive: function (isCaseInsensitive) {
this.cond.isCaseInsensitive = isCaseInsensitive
}
},
template: `<div>
<input type="hidden" name="condJSON" :value="JSON.stringify(cond)"/>
<input type="text" v-model="cond.value"/>
@@ -233,6 +269,67 @@ Vue.component("http-cond-url-not-regexp", {
</div>`
})
// User-Agent正则匹配
Vue.component("http-cond-user-agent-regexp", {
props: ["v-cond"],
data: function () {
let cond = {
isRequest: true,
param: "${userAgent}",
operator: "regexp",
value: "",
isCaseInsensitive: false
}
if (this.vCond != null && typeof this.vCond.value == "string") {
cond.value = this.vCond.value
}
return {
cond: cond
}
},
methods: {
changeCaseInsensitive: function (isCaseInsensitive) {
this.cond.isCaseInsensitive = isCaseInsensitive
}
},
template: `<div>
<input type="hidden" name="condJSON" :value="JSON.stringify(cond)"/>
<input type="text" v-model="cond.value"/>
<p class="comment">匹配User-Agent的正则表达式比如<code-label>Android|iPhone</code-label>。</p>
</div>`
})
// User-Agent正则不匹配
Vue.component("http-cond-user-agent-not-regexp", {
props: ["v-cond"],
data: function () {
let cond = {
isRequest: true,
param: "${userAgent}",
operator: "not regexp",
value: "",
isCaseInsensitive: false
}
if (this.vCond != null && typeof this.vCond.value == "string") {
cond.value = this.vCond.value
}
return {
cond: cond
}
},
methods: {
changeCaseInsensitive: function (isCaseInsensitive) {
this.cond.isCaseInsensitive = isCaseInsensitive
}
},
template: `<div>
<input type="hidden" name="condJSON" :value="JSON.stringify(cond)"/>
<input type="text" v-model="cond.value"/>
<p class="comment">匹配User-Agent的正则表达式比如<code-label>Android|iPhone</code-label>,如果匹配,则排除此条件。</p>
</div>`
})
// 根据MimeType
Vue.component("http-cond-mime-type", {
props: ["v-cond"],
@@ -376,7 +473,8 @@ Vue.component("http-cond-params", {
isRequest: true,
param: "",
operator: window.REQUEST_COND_OPERATORS[0].op,
value: ""
value: "",
isCaseInsensitive: false
}
if (this.vCond != null) {
cond = this.vCond
@@ -582,5 +680,15 @@ Vue.component("http-cond-params", {
</div>
</td>
</tr>
<tr v-if="['regexp', 'not regexp', 'eq', 'not', 'prefix', 'suffix', 'contains', 'not contains', 'in', 'not in'].$contains(cond.operator)">
<td>不区分大小写</td>
<td>
<div class="ui checkbox">
<input type="checkbox" v-model="cond.isCaseInsensitive"/>
<label></label>
</div>
<p class="comment">选中后表示对比时忽略参数值的大小写。</p>
</td>
</tr>
</tbody>`
})