From 716f3f508ba546c957048aa2081303736a6b5beb Mon Sep 17 00:00:00 2001 From: AkiChase <1003019131@qq.com> Date: Sun, 28 Apr 2024 14:05:52 +0800 Subject: [PATCH] feat(KeyBoard): add steering wheel button --- src/App.vue | 15 +- src/components/Device.vue | 8 - src/components/Mask.vue | 10 +- src/components/keyboard/KeyBoard.vue | 23 ++- src/components/keyboard/KeyCommon.vue | 7 +- src/components/keyboard/KeySteeringWheel.vue | 172 +++++++++++++++++++ src/router.ts | 2 +- 7 files changed, 214 insertions(+), 23 deletions(-) create mode 100644 src/components/keyboard/KeySteeringWheel.vue diff --git a/src/App.vue b/src/App.vue index 6a389ac..c88b1a1 100644 --- a/src/App.vue +++ b/src/App.vue @@ -11,12 +11,25 @@ import { Store } from "@tauri-apps/plugin-store"; import { KeyMappingConfig } from "./keyMappingConfig"; import { onMounted } from "vue"; import { useGlobalStore } from "./store/global"; +import { useRouter } from "vue-router"; const store = useGlobalStore(); +const router = useRouter(); onMounted(async () => { - // loading keyMappingConfigList from local store + router.replace({ name: "mask" }); + const localStore = new Store("store.bin"); + // loading screenSize from local store + const screenSize = await localStore.get<{ sizeW: number; sizeH: number }>( + "screenSize" + ); + if (screenSize !== null) { + store.screenSizeW = screenSize.sizeW; + store.screenSizeH = screenSize.sizeH; + } + + // loading keyMappingConfigList from local store let keyMappingConfigList = await localStore.get( "keyMappingConfigList" ); diff --git a/src/components/Device.vue b/src/components/Device.vue index f10b0e6..c790f6c 100644 --- a/src/components/Device.vue +++ b/src/components/Device.vue @@ -55,14 +55,6 @@ let deviceWaitForMetadataTask: ((deviceName: string) => void) | null = null; let unlisten: UnlistenFn | undefined; onMounted(async () => { - const screenSize = await localStore.get<{ sizeW: number; sizeH: number }>( - "screenSize" - ); - if (screenSize !== null) { - store.screenSizeW = screenSize.sizeW; - store.screenSizeH = screenSize.sizeH; - } - unlisten = await listen("device-reply", (event) => { try { let payload = JSON.parse(event.payload as string); diff --git a/src/components/Mask.vue b/src/components/Mask.vue index e934225..500167a 100644 --- a/src/components/Mask.vue +++ b/src/components/Mask.vue @@ -116,15 +116,15 @@ function refreshKeyMappingButton() { }" >
- + {{ button.key.up }} - + {{ button.key.left }} - + {{ button.key.right }} - + {{ button.key.down }} - +
{ @contextmenu.prevent >
diff --git a/src/components/keyboard/KeyCommon.vue b/src/components/keyboard/KeyCommon.vue index 5dca300..e32cefe 100644 --- a/src/components/keyboard/KeyCommon.vue +++ b/src/components/keyboard/KeyCommon.vue @@ -4,18 +4,19 @@ import { useGlobalStore } from "../../store/global"; const emit = defineEmits<{ edit: []; - active: []; }>(); const props = defineProps<{ index: number; - activeIndex: number; }>(); + +const activeIndex = defineModel("activeIndex", { required: true }); + const store = useGlobalStore(); const elementRef = ref(null); function dragHandler(downEvent: MouseEvent) { - emit("active"); + activeIndex.value = props.index; const oldX = store.editKeyMappingList[props.index].posX; const oldY = store.editKeyMappingList[props.index].posY; const element = elementRef.value; diff --git a/src/components/keyboard/KeySteeringWheel.vue b/src/components/keyboard/KeySteeringWheel.vue new file mode 100644 index 0000000..3600127 --- /dev/null +++ b/src/components/keyboard/KeySteeringWheel.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/src/router.ts b/src/router.ts index bbe47f8..0d07e5a 100644 --- a/src/router.ts +++ b/src/router.ts @@ -5,7 +5,7 @@ import KeyBoard from "./components/keyboard/KeyBoard.vue"; import Device from "./components/Device.vue"; const routes = [ - { path: "/", name: "mask", component: Mask }, + { path: "/mask", name: "mask", component: Mask }, { path: "/device", name: "device", component: Device }, { path: "/setting", name: "setting", component: Setting }, { path: "/keyboard", name: "keyboard", component: KeyBoard },