From 719c4a786cd5386689f007f3a01a8c0b0fb6bb70 Mon Sep 17 00:00:00 2001 From: Lufaneng Date: Mon, 21 Jul 2025 09:44:54 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=94=AE=E7=9B=98=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 14 ++ package.json | 2 + src/components.d.ts | 2 + src/components/BaseKeyboardInput.vue | 251 +++++++++++++++++++++++++++ src/views/ParamsConfig/index.vue | 22 +++ 5 files changed, 291 insertions(+) create mode 100644 src/components/BaseKeyboardInput.vue diff --git a/package-lock.json b/package-lock.json index c780bae..3141924 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,8 @@ "element-plus": "^2.9.4", "nprogress": "^0.2.0", "pinia": "^2.3.1", + "simple-keyboard": "^3.8.69", + "simple-keyboard-layouts": "^3.4.109", "vue": "^3.5.13", "vue-echarts": "^7.0.3", "vue-router": "^4.5.0" @@ -4840,6 +4842,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/simple-keyboard": { + "version": "3.8.69", + "resolved": "https://registry.npmmirror.com/simple-keyboard/-/simple-keyboard-3.8.69.tgz", + "integrity": "sha512-H/aCx57Tu8xwOTkMrELdJ0mV0s3p1i/AjzKAb+M1TnHCoFyfLumn2SC9pekIOeoB51QENOQycjF/R8SFranwLw==", + "license": "MIT" + }, + "node_modules/simple-keyboard-layouts": { + "version": "3.4.109", + "resolved": "https://registry.npmmirror.com/simple-keyboard-layouts/-/simple-keyboard-layouts-3.4.109.tgz", + "integrity": "sha512-eKiKbWmW7P6WO52WrXhAK2uaGPDTibIrOzFCybS8mL6t4JTU49brHbatizo7coHRsbwCyR4W01dzbDRgvtmZWg==", + "license": "MIT" + }, "node_modules/sirv": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/sirv/-/sirv-3.0.0.tgz", diff --git a/package.json b/package.json index 8b336ac..a44e91e 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,8 @@ "element-plus": "^2.9.4", "nprogress": "^0.2.0", "pinia": "^2.3.1", + "simple-keyboard": "^3.8.69", + "simple-keyboard-layouts": "^3.4.109", "vue": "^3.5.13", "vue-echarts": "^7.0.3", "vue-router": "^4.5.0" diff --git a/src/components.d.ts b/src/components.d.ts index a77330b..388b3c9 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -7,6 +7,7 @@ export {} /* prettier-ignore */ declare module 'vue' { export interface GlobalComponents { + BaseKeyboardInput: typeof import('./components/BaseKeyboardInput.vue')['default'] ElButton: typeof import('element-plus/es')['ElButton'] ElCard: typeof import('element-plus/es')['ElCard'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] @@ -19,6 +20,7 @@ declare module 'vue' { ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] ElOption: typeof import('element-plus/es')['ElOption'] ElPagination: typeof import('element-plus/es')['ElPagination'] + ElPopover: typeof import('element-plus/es')['ElPopover'] ElRadio: typeof import('element-plus/es')['ElRadio'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] diff --git a/src/components/BaseKeyboardInput.vue b/src/components/BaseKeyboardInput.vue new file mode 100644 index 0000000..31128cb --- /dev/null +++ b/src/components/BaseKeyboardInput.vue @@ -0,0 +1,251 @@ + + + + + + + diff --git a/src/views/ParamsConfig/index.vue b/src/views/ParamsConfig/index.vue index c893452..ce331fc 100644 --- a/src/views/ParamsConfig/index.vue +++ b/src/views/ParamsConfig/index.vue @@ -128,6 +128,22 @@ +
+
+
测试值
+
+ +
+
+
+
+
+
测试数字
+
+ +
+
+
@@ -169,6 +185,12 @@ import { ref, onMounted, onUnmounted } from 'vue' import { useRouter } from 'vue-router' import RPC from '@/utils/rpc'; import TableDialog from './TableDialog.vue'; +import BaseKeyboardInput from '@/components/BaseKeyboardInput.vue'; + +const test = ref({ + value: '', + number: '' +}) const router = useRouter() const currentTime = ref('') From 2f3246b444a2da469b7fff955899632a8dfcea04 Mon Sep 17 00:00:00 2001 From: Lufaneng Date: Mon, 21 Jul 2025 10:18:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=94=AE=E7=9B=98=E6=9A=82=E5=AD=981?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/BaseKeyboardInput.vue | 4 ++-- src/views/ParamsConfig/index.vue | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/components/BaseKeyboardInput.vue b/src/components/BaseKeyboardInput.vue index 31128cb..b00124e 100644 --- a/src/components/BaseKeyboardInput.vue +++ b/src/components/BaseKeyboardInput.vue @@ -28,7 +28,7 @@ const props = defineProps({ // 保留几位小数 layoutName为number时生效 precision: { type: Number, - default: 2 + default: 10 }, // 获取焦点打开键盘 isOpen: { @@ -132,7 +132,7 @@ const keyboardInit = () => { } const onInit = (keyboard: any) => { - keyboard.setInput(model.value) + keyboard.setInput(String(model.value || '')) keyboard.setCaretPosition(inputRef.value?.ref.selectionEnd) document.addEventListener('click', handlePopClose) } diff --git a/src/views/ParamsConfig/index.vue b/src/views/ParamsConfig/index.vue index ce331fc..9b01438 100644 --- a/src/views/ParamsConfig/index.vue +++ b/src/views/ParamsConfig/index.vue @@ -32,12 +32,14 @@
大地经度
- + +
大地纬度
- + +
@@ -128,7 +130,7 @@
-
+
@@ -188,8 +190,8 @@ import TableDialog from './TableDialog.vue'; import BaseKeyboardInput from '@/components/BaseKeyboardInput.vue'; const test = ref({ - value: '', - number: '' + value: '123', + number: 90 }) const router = useRouter()