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`] = `
- +
diff --git a/packages/field/test/field.spec.js b/packages/field/test/field.spec.js index 80c5b3ab4..2d40b2adf 100644 --- a/packages/field/test/field.spec.js +++ b/packages/field/test/field.spec.js @@ -14,6 +14,7 @@ test('click icon event', () => { const onIconClick = jest.fn(); const wrapper = mount(Field, { propsData: { + value: 'a', icon: 'search', onIconClick } diff --git a/packages/field/zh-CN.md b/packages/field/zh-CN.md index d7300b784..71abb34f3 100644 --- a/packages/field/zh-CN.md +++ b/packages/field/zh-CN.md @@ -117,7 +117,7 @@ Field 默认支持 Input 标签所有的原生属性,比如 `maxlength`、`pla | 参数 | 说明 | 类型 | 默认值 | |-----------|-----------|-----------|-------------|-------------| | label | 标签 | `String` | - | -| value | 当前输入的值 | `String` | - | +| value | 当前输入的值 | `String | Number` | - | | type | 可设置为任意原生类型, 如 `number` `tel` `textarea` | `String` | `text` | | disabled | 是否禁用输入框 | `Boolean` | `false` | | error | 是否将输入内容标红 | `Boolean` | `false` | diff --git a/packages/search/test/__snapshots__/demo.spec.js.snap b/packages/search/test/__snapshots__/demo.spec.js.snap index f01da008c..965e7043a 100644 --- a/packages/search/test/__snapshots__/demo.spec.js.snap +++ b/packages/search/test/__snapshots__/demo.spec.js.snap @@ -7,17 +7,13 @@ exports[`renders demo correctly 1`] = ` -
+
- +
@@ -31,17 +27,13 @@ exports[`renders demo correctly 1`] = ` -
+
- +
@@ -57,17 +49,13 @@ exports[`renders demo correctly 1`] = ` -
+
- +