diff --git a/packages/number-keyboard/Key.js b/packages/number-keyboard/Key.js
new file mode 100644
index 000000000..ef201ce61
--- /dev/null
+++ b/packages/number-keyboard/Key.js
@@ -0,0 +1,52 @@
+import { use } from '../utils';
+
+const [sfc, bem] = use('key');
+
+export default sfc({
+ props: {
+ type: Array,
+ text: [String, Number]
+ },
+
+ data() {
+ return {
+ active: false
+ };
+ },
+
+ computed: {
+ className() {
+ const types = this.type.slice(0);
+ this.active && types.push('active');
+ return bem(types);
+ }
+ },
+
+ methods: {
+ onFocus() {
+ this.active = true;
+ this.$emit('press', this.text);
+ },
+
+ onBlur(event) {
+ event.preventDefault();
+ event.stopPropagation();
+ this.active = false;
+ }
+ },
+
+ render(h) {
+ const { onBlur } = this;
+ return (
+
+ {this.text}
+
+ );
+ }
+});
diff --git a/packages/number-keyboard/Key.vue b/packages/number-keyboard/Key.vue
deleted file mode 100644
index 7c24309b5..000000000
--- a/packages/number-keyboard/Key.vue
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
diff --git a/packages/number-keyboard/index.vue b/packages/number-keyboard/index.js
similarity index 55%
rename from packages/number-keyboard/index.vue
rename to packages/number-keyboard/index.js
index 5cad4ee4e..5d7782e7c 100644
--- a/packages/number-keyboard/index.vue
+++ b/packages/number-keyboard/index.js
@@ -1,63 +1,11 @@
-
-