diff --git a/components/i/search/Ask.vue b/components/i/search/Ask.vue index 66c4a418b6496b5bf88f6b4ddd4c74a902b25ce8..918f3f4c92fbbce59ea06283724311355532ce84 100644 --- a/components/i/search/Ask.vue +++ b/components/i/search/Ask.vue @@ -29,7 +29,7 @@ size="xl" @click.stop="handleAsk" /> - + const { metaSymbol } = useShortcuts() const { isDesktop } = useDevice() +const Search = inject('Search') const placeholder = computed(() => `提出后续问题${isDesktop ? '(' + metaSymbol.value + 'L)' : ''}`) const props = defineProps({ asking: { @@ -90,6 +91,14 @@ defineShortcuts({ } } }) +defineShortcuts({ + escape: { + whenever: [Search.asking], + handler: () => { + if (!isFocus.value) handleStop() + } + } +}) function handleFocus () { queryInput.value.textarea.focus() } diff --git a/pages/search/[id].vue b/pages/search/[id].vue index d466f0938471fcd049acc64b87c7a07f02386526..50b0ecf56eaae99442e377e6aa984c8ebd3b2cad 100644 --- a/pages/search/[id].vue +++ b/pages/search/[id].vue @@ -371,7 +371,8 @@ async function handleUpdateOpenState(url) { } } provide('Search', { - handleUpdateOpenState + handleUpdateOpenState, + asking }) function handleShare (url) { if (isShareSupported) {