From 79c70de6964c3cee1bf7ab051a7badc654634a90 Mon Sep 17 00:00:00 2001 From: AkiChase <1003019131@qq.com> Date: Mon, 29 Apr 2024 17:52:29 +0800 Subject: [PATCH] feat(KeyBoard): optimize the display of button setting --- src/components/keyboard/KeyBoard.vue | 1 - src/components/keyboard/KeyCommon.vue | 30 ++++++++---- src/components/keyboard/KeyInfo.vue | 51 ++++++++++++-------- src/components/keyboard/KeyObservation.vue | 24 +++++++-- src/components/keyboard/KeySkill.vue | 24 +++++++-- src/components/keyboard/KeySteeringWheel.vue | 27 +++++++++-- 6 files changed, 116 insertions(+), 41 deletions(-) diff --git a/src/components/keyboard/KeyBoard.vue b/src/components/keyboard/KeyBoard.vue index 855f19a..726aa83 100644 --- a/src/components/keyboard/KeyBoard.vue +++ b/src/components/keyboard/KeyBoard.vue @@ -11,7 +11,6 @@ import { useDialog, useMessage } from "naive-ui"; import { onBeforeRouteLeave } from "vue-router"; import KeyObservation from "./KeyObservation.vue"; -// TODO 设置面板的出现位置,不应该超出范围 // TODO 为技能添加圆形边框范围,将range属性转换为技能的灵敏度,鼠标移动按比例缩放,100时技能范围最大,最不灵敏,0时就是直接指向对应方向的技能边框的 // TODO 右键空白区域添加按键 // TODO 设置界面添加本地数据编辑器(类似utools) diff --git a/src/components/keyboard/KeyCommon.vue b/src/components/keyboard/KeyCommon.vue index f6a4915..78e0147 100644 --- a/src/components/keyboard/KeyCommon.vue +++ b/src/components/keyboard/KeyCommon.vue @@ -14,11 +14,7 @@ import { NInputNumber, } from "naive-ui"; import { CloseCircle, Settings } from "@vicons/ionicons5"; -import { - KeyMacro, - KeyMacroList, - KeyTap, -} from "../../keyMappingConfig"; +import { KeyMacro, KeyMacroList, KeyTap } from "../../keyMappingConfig"; const emit = defineEmits<{ edit: []; @@ -148,6 +144,20 @@ function saveMacro() { message.error("宏代码保存失败,请检查代码格式是否正确"); } } + +const settingPosX = ref(0); +const settingPosY = ref(0); +function showSetting() { + const keyboardElement = document.getElementById( + "keyboardElement" + ) as HTMLElement; + const maxWidth = keyboardElement.clientWidth - 150; + const maxHeight = keyboardElement.clientHeight - 220; + + settingPosX.value = Math.min(keyMapping.value.posX + 25, maxWidth); + settingPosY.value = Math.min(keyMapping.value.posY - 25, maxHeight); + showButtonSettingFlag.value = true; +}