diff --git a/packages/field/en-US.md b/packages/field/en-US.md
index e9e633932..3a2ba7e28 100644
--- a/packages/field/en-US.md
+++ b/packages/field/en-US.md
@@ -114,7 +114,7 @@ Field support all native properties of input tag,such as `maxlength`、`placeh
| Attribute | Description | Type | Default |
|-----------|-----------|-----------|-------------|
-| value | Field value | `String` | - |
+| value | Field value | `String | Number` | - |
| label | Field label | `String` | - |
| type | Input type | `String` | `text` |
| disabled | Disable field | `Boolean` | `false` |
diff --git a/packages/field/index.vue b/packages/field/index.vue
index f5a597b4b..0337f9ae7 100644
--- a/packages/field/index.vue
+++ b/packages/field/index.vue
@@ -8,7 +8,7 @@
:class="b({
error,
disabled: $attrs.disabled,
- 'has-icon': hasIcon,
+ 'has-icon': showIcon,
'min-height': type === 'textarea' && !autosize
})"
>
@@ -35,8 +35,7 @@
:class="b('error-message')"
/>
@@ -60,7 +59,7 @@ export default create({
inheritAttrs: false,
props: {
- value: null,
+ value: [String, Number],
icon: String,
label: String,
error: Boolean,
@@ -91,8 +90,8 @@ export default create({
},
computed: {
- hasIcon() {
- return this.$slots.icon || this.icon;
+ showIcon() {
+ return this.$slots.icon || (this.icon && this.value !== '' && this.isDef(this.value));
},
listeners() {
@@ -117,7 +116,7 @@ export default create({
onKeypress(event) {
if (this.type === 'number') {
const { keyCode } = event;
- const allowPoint = this.value.indexOf('.') === -1;
+ const allowPoint = String(this.value).indexOf('.') === -1;
const isValidKey = (keyCode >= 48 && keyCode <= 57) || (keyCode === 46 && allowPoint) || keyCode === 45;
if (!isValidKey) {
event.preventDefault();
diff --git a/packages/field/test/__snapshots__/demo.spec.js.snap b/packages/field/test/__snapshots__/demo.spec.js.snap
index 0921f9529..bb94c1097 100644
--- a/packages/field/test/__snapshots__/demo.spec.js.snap
+++ b/packages/field/test/__snapshots__/demo.spec.js.snap
@@ -19,7 +19,7 @@ exports[`renders demo correctly 1`] = `
-
+
用户名
@@ -27,11 +27,7 @@ exports[`renders demo correctly 1`] = `
@@ -119,7 +115,7 @@ exports[`renders demo correctly 1`] = `
-
+
短信验证码
@@ -127,11 +123,7 @@ exports[`renders demo correctly 1`] = `