Compare commits
3 Commits
f0c9b74545
...
3c43f960c3
Author | SHA1 | Date |
---|---|---|
Lykin | 3c43f960c3 | |
Lykin | 78bfaf6e16 | |
Lykin | 50bec33870 |
|
@ -135,7 +135,7 @@ const onKeyShortcut = (e) => {
|
||||||
return
|
return
|
||||||
|
|
||||||
case 'd':
|
case 'd':
|
||||||
if (e.metaKey) {
|
if (e.metaKey && isMacOS()) {
|
||||||
onDelete()
|
onDelete()
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
|
@ -26,6 +26,7 @@ import RedisTypeTag from '@/components/common/RedisTypeTag.vue'
|
||||||
import usePreferencesStore from 'stores/preferences.js'
|
import usePreferencesStore from 'stores/preferences.js'
|
||||||
import { typesIconStyle } from '@/consts/support_redis_type.js'
|
import { typesIconStyle } from '@/consts/support_redis_type.js'
|
||||||
import { nativeRedisKey } from '@/utils/key_convert.js'
|
import { nativeRedisKey } from '@/utils/key_convert.js'
|
||||||
|
import { isMacOS } from '@/utils/platform.js'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
server: String,
|
server: String,
|
||||||
|
@ -280,6 +281,96 @@ const handleKeyRight = () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleKeyDelete = () => {
|
||||||
|
const selectedKey = get(selectedKeys.value, 0)
|
||||||
|
if (selectedKey == null) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let node = browserStore.getNode(selectedKey)
|
||||||
|
if (node == null) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const { db = 0, key: nodeKey, redisKey: rk = '', redisKeyCode: rkc, label } = node || {}
|
||||||
|
const redisKey = rkc || rk
|
||||||
|
const redisKeyName = !!rkc ? label : redisKey
|
||||||
|
switch (node.type) {
|
||||||
|
case ConnectionType.RedisKey:
|
||||||
|
dialogStore.openDeleteKeyDialog(props.server, db, isEmpty(redisKey) ? '*' : redisKey + ':*')
|
||||||
|
break
|
||||||
|
case ConnectionType.RedisValue:
|
||||||
|
$dialog.warning(i18n.t('dialogue.remove_tip', { name: redisKeyName }), () => {
|
||||||
|
browserStore.deleteKey(props.server, db, redisKey).then((success) => {
|
||||||
|
if (success) {
|
||||||
|
$message.success(i18n.t('dialogue.delete.success', { key: redisKeyName }))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleKeyCopy = () => {
|
||||||
|
const selectedKey = get(selectedKeys.value, 0)
|
||||||
|
if (selectedKey == null) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let node = browserStore.getNode(selectedKey)
|
||||||
|
if (node == null) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (node.type === ConnectionType.RedisValue) {
|
||||||
|
ClipboardSetText(nativeRedisKey(node.redisKeyCode || node.redisKey))
|
||||||
|
.then((succ) => {
|
||||||
|
if (succ) {
|
||||||
|
$message.success(i18n.t('interface.copy_succ'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
$message.error(e.message)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const onKeyShortcut = (e) => {
|
||||||
|
switch (e.key) {
|
||||||
|
case 'ArrowUp':
|
||||||
|
handleKeyUp()
|
||||||
|
break
|
||||||
|
case 'ArrowDown':
|
||||||
|
handleKeyDown()
|
||||||
|
break
|
||||||
|
case 'ArrowLeft':
|
||||||
|
handleKeyLeft()
|
||||||
|
break
|
||||||
|
case 'ArrowRight':
|
||||||
|
handleKeyRight()
|
||||||
|
break
|
||||||
|
case 'c':
|
||||||
|
if (e.metaKey) {
|
||||||
|
handleKeyCopy()
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 'Delete':
|
||||||
|
handleKeyDelete()
|
||||||
|
break
|
||||||
|
case 'd':
|
||||||
|
if (e.metaKey && isMacOS()) {
|
||||||
|
handleKeyDelete()
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 'F5':
|
||||||
|
handleSelectContextMenu('value_reload')
|
||||||
|
break
|
||||||
|
case 'r':
|
||||||
|
if (e.metaKey && isMacOS()) {
|
||||||
|
handleSelectContextMenu('value_reload')
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const handleSelectContextMenu = (action) => {
|
const handleSelectContextMenu = (action) => {
|
||||||
contextMenuParam.show = false
|
contextMenuParam.show = false
|
||||||
const selectedKey = get(selectedKeys.value, 0)
|
const selectedKey = get(selectedKeys.value, 0)
|
||||||
|
@ -752,11 +843,7 @@ defineExpose({
|
||||||
class="fill-height"
|
class="fill-height"
|
||||||
virtual-scroll
|
virtual-scroll
|
||||||
:keyboard="false"
|
:keyboard="false"
|
||||||
@keydown.up="handleKeyUp"
|
@keydown="onKeyShortcut"
|
||||||
@keydown.down="handleKeyDown"
|
|
||||||
@keydown.left="handleKeyLeft"
|
|
||||||
@keydown.right="handleKeyRight"
|
|
||||||
@keydown.delete="handleSelectContextMenu('value_remove')"
|
|
||||||
@update:selected-keys="onUpdateSelectedKeys"
|
@update:selected-keys="onUpdateSelectedKeys"
|
||||||
@update:expanded-keys="onUpdateExpanded"
|
@update:expanded-keys="onUpdateExpanded"
|
||||||
@update:checked-keys="onUpdateCheckedKeys">
|
@update:checked-keys="onUpdateCheckedKeys">
|
||||||
|
|
Loading…
Reference in New Issue