diff --git a/src/components/HeaderSearch/index.vue b/src/components/HeaderSearch/index.vue index 3c52c33..8ca5c7b 100644 --- a/src/components/HeaderSearch/index.vue +++ b/src/components/HeaderSearch/index.vue @@ -1,18 +1,29 @@ @@ -26,21 +37,26 @@ const search = ref('') const options = ref([]) const searchPool = ref([]) const show = ref(false) +const open = ref(false) const fuse = ref(undefined) const headerSearchSelectRef = ref(null) const router = useRouter() const routes = computed(() => usePermissionStore().routes) function click() { + open.value = !open.value show.value = !show.value - if (show.value) { - headerSearchSelectRef.value && headerSearchSelectRef.value.focus() + if (open.value) { + setTimeout(() => { + headerSearchSelectRef.value && headerSearchSelectRef.value.focus() + }, 1) } } function close() { headerSearchSelectRef.value && headerSearchSelectRef.value.blur() options.value = [] show.value = false + open.value = false } function change(val) { const path = val.path @@ -56,6 +72,7 @@ function change(val) { options.value = [] nextTick(() => { show.value = false + open.value = false }) } function initFuse(list) { @@ -144,40 +161,12 @@ watch(searchPool, (list) => {