From fc38dd69a3dd33ac42d6633740724d3f48f39bdc Mon Sep 17 00:00:00 2001 From: Fine Date: Thu, 17 Nov 2022 17:37:31 +0800 Subject: [PATCH] enhance tags --- src/views/components/ConditionTags.vue | 39 +++++++++++++++++++------- 1 file changed, 29 insertions(+), 10 deletions(-) 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];