diff --git a/src/views/components/ConditionTags.vue b/src/views/components/ConditionTags.vue
index 408a7eac..ef3dd2fe 100644
--- a/src/views/components/ConditionTags.vue
+++ b/src/views/components/ConditionTags.vue
@@ -35,9 +35,10 @@ limitations under the License. -->
size="small"
v-model="tags"
class="trace-new-tag"
- @input="searchTags"
+ @input="inputTags"
@blur="visible = false"
@focus="visible = true"
+ @change="addTags"
/>
@@ -159,13 +160,37 @@ async function fetchTagValues() {
searchTags();
}
+function inputTags() {
+ if (!tags.value) {
+ tagArr.value = keysList.value;
+ tagKeys.value = keysList.value;
+ tagList.value = tagArr.value;
+ return;
+ }
+ let search = "";
+ if (tags.value.includes("=")) {
+ search = tags.value.split("=")[1];
+ fetchTagValues();
+ } else {
+ search = tags.value;
+ }
+ tagList.value = tagArr.value.filter((d: string) => d.includes(search));
+}
+
+function addTags() {
+ if (!tags.value.includes("=")) {
+ return;
+ }
+ addLabels();
+ tagArr.value = tagKeys.value;
+ searchTags();
+}
+
function selectTag(item: string) {
if (tags.value.includes("=")) {
const key = tags.value.split("=")[0];
tags.value = key + "=" + item;
- addLabels();
- tagArr.value = tagKeys.value;
- searchTags();
+ addTags();
return;
}
tags.value = item + "=";
@@ -173,12 +198,6 @@ function selectTag(item: string) {
}
function searchTags() {
- if (!tags.value) {
- tagArr.value = keysList.value;
- tagKeys.value = keysList.value;
- tagList.value = tagArr.value;
- return;
- }
let search = "";
if (tags.value.includes("=")) {
search = tags.value.split("=")[1];