- | 匹配条件 * |
+ 匹配条件分组 * |
diff --git a/web/public/js/components/server/http-cond-definitions.js b/web/public/js/components/server/http-cond-definitions.js
index d3215b02..69dd04db 100644
--- a/web/public/js/components/server/http-cond-definitions.js
+++ b/web/public/js/components/server/http-cond-definitions.js
@@ -102,6 +102,53 @@ Vue.component("http-cond-url-prefix", {
`
})
+// URL精准匹配
+Vue.component("http-cond-url-eq", {
+ props: ["v-cond"],
+ data: function () {
+ let cond = this.vCond
+ if (cond == null) {
+ cond = {
+ isRequest: true,
+ param: "${requestPath}",
+ operator: "eq",
+ value: ""
+ }
+ }
+ return {
+ cond: cond
+ }
+ },
+ template: `
+
+
+ `
+})
+
+// URL正则匹配
+Vue.component("http-cond-url-regexp", {
+ props: ["v-cond"],
+ data: function () {
+ let cond = this.vCond
+ if (cond == null) {
+ cond = {
+ isRequest: true,
+ param: "${requestPath}",
+ operator: "regexp",
+ value: ""
+ }
+ }
+ return {
+ cond: cond
+ }
+ },
+ template: `
+
+
+ `
+})
+
+
// 根据MimeType
Vue.component("http-cond-mime-type", {
props: ["v-cond"],
diff --git a/web/public/js/components/server/http-request-conds-box.js b/web/public/js/components/server/http-request-conds-box.js
index 3bad07d0..971762df 100644
--- a/web/public/js/components/server/http-request-conds-box.js
+++ b/web/public/js/components/server/http-request-conds-box.js
@@ -63,7 +63,8 @@ Vue.component("http-request-conds-box", {
- |
+ | 分组{{groupIndex+1}} |
+
{{cond.param}} {{cond.operator}}
@@ -74,7 +75,7 @@ Vue.component("http-request-conds-box", {
{{group.connector}}
|
-
+ |
|
@@ -85,6 +86,10 @@ Vue.component("http-request-conds-box", {
+
`
})
\ No newline at end of file
diff --git a/web/public/js/components/server/http-request-conds-view.js b/web/public/js/components/server/http-request-conds-view.js
index 0fc40e83..2a12226a 100644
--- a/web/public/js/components/server/http-request-conds-view.js
+++ b/web/public/js/components/server/http-request-conds-view.js
@@ -10,10 +10,16 @@ Vue.component("http-request-conds-view", {
}
}
return {
- conds: conds,
+ initConds: conds,
components: window.REQUEST_COND_COMPONENTS
}
},
+ computed: {
+ // 之所以使用computed,是因为需要动态更新
+ conds: function () {
+ return this.initConds
+ },
+ },
methods: {
typeName: function (cond) {
let c = this.components.$find(function (k, v) {
diff --git a/web/public/js/conds/official.json b/web/public/js/conds/official.json
index 1f678caa..ef0857b0 100644
--- a/web/public/js/conds/official.json
+++ b/web/public/js/conds/official.json
@@ -3,18 +3,35 @@
"type": "url-extension",
"name": "URL扩展名",
"description": "根据URL中的文件路径扩展名进行过滤",
- "component": "http-cond-url-extension"
+ "component": "http-cond-url-extension",
+ "isRequest": true
},
{
"type": "url-prefix",
- "name": "路径前缀",
+ "name": "URL前缀",
"description": "根据URL中的文件路径前缀进行过滤",
- "component": "http-cond-url-prefix"
+ "component": "http-cond-url-prefix",
+ "isRequest": true
+ },
+ {
+ "type": "url-eq",
+ "name": "URL精准匹配",
+ "description": "检查URL中的文件路径是否一致",
+ "component": "http-cond-url-eq",
+ "isRequest": true
+ },
+ {
+ "type": "url-regexp",
+ "name": "URL正则匹配",
+ "description": "使用正则表达式检查URL中的文件路径是否一致",
+ "component": "http-cond-url-regexp",
+ "isRequest": true
},
{
"type": "mime-type",
"name": "内容MimeType",
- "description": "根据服务器返回的内容的MimeType进行过滤",
- "component": "http-cond-mime-type"
+ "description": "根据服务器返回的内容的MimeType进行过滤。注意:当用于缓存条件时,此条件需要结合别的请求条件使用。",
+ "component": "http-cond-mime-type",
+ "isRequest": false
}
]
\ No newline at end of file
diff --git a/web/views/@default/servers/server/settings/conds/addGroupPopup.js b/web/views/@default/servers/server/settings/conds/addGroupPopup.js
index 60c9ee53..0347a4e6 100644
--- a/web/views/@default/servers/server/settings/conds/addGroupPopup.js
+++ b/web/views/@default/servers/server/settings/conds/addGroupPopup.js
@@ -2,7 +2,7 @@ Tea.context(function () {
this.success = NotifyPopup
this.group = {
- connector: "or",
+ connector: "and", // 默认为and,更符合用户的直觉
description: "",
isReverse: false,
conds: [],
|