add new keyboard events

This commit is contained in:
layyback 2024-07-18 18:58:34 +08:00
parent b9f4333c01
commit a2c5bcc90c
2 changed files with 13 additions and 18 deletions

View File

@ -103,22 +103,12 @@ watch(
);
const changeIndex = (index) => {
if (!options.value.length) {
if (!pluginHistory.value.length) return;
if (
currentSelect.value + index > pluginHistory.value.length - 1 ||
currentSelect.value + index < 0
) {
currentSelect.value = 0;
return;
}
currentSelect.value = currentSelect.value + index;
return;
}
if (currentSelect.value + index > options.value.length - 1) {
const len = options.value.length || pluginHistory.value.length;
if (!len) return;
if (currentSelect.value + index > len - 1) {
currentSelect.value = 0;
} else if (currentSelect.value + index < 0) {
currentSelect.value = options.value.length - 1;
currentSelect.value = len - 1;
} else {
currentSelect.value = currentSelect.value + index;
}

View File

@ -25,6 +25,8 @@
ref="mainInput"
class="main-input"
@input="(e) => changeValue(e)"
@keydown.left="(e) => keydownEvent(e, 'left')"
@keydown.right="(e) => keydownEvent(e, 'right')"
@keydown.down="(e) => keydownEvent(e, 'down')"
@keydown.tab="(e) => keydownEvent(e, 'down')"
@keydown.up="(e) => keydownEvent(e, 'up')"
@ -41,10 +43,7 @@
>
<template #suffix>
<div class="suffix-tool">
<MoreOutlined
@click="showSeparate()"
class="icon-more"
/>
<MoreOutlined @click="showSeparate()" class="icon-more" />
</div>
</template>
</a-input>
@ -120,6 +119,12 @@ const keydownEvent = (e, key: string) => {
case 'down':
emit('changeCurrent', 1);
break;
case 'left':
emit('changeCurrent', -1);
break;
case 'right':
emit('changeCurrent', 1);
break;
case 'enter':
if (runPluginDisable) return;
emit('choosePlugin');