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 @@
+
+