parent
23cf2fab0b
commit
088b36aec1
1 changed files with 66 additions and 0 deletions
@ -0,0 +1,66 @@ |
||||
<template> |
||||
<a-input |
||||
:addon-after="addonAfter" |
||||
:addon-before="addonBefore" |
||||
:default-value="defaultValue" |
||||
:disabled="disabled" |
||||
:id="id" |
||||
:max-length="maxLength" |
||||
:prefix="prefix" |
||||
:size="size" |
||||
:suffix="suffix || lenSuffix" |
||||
:type="type" |
||||
:allow-clear="allowClear" |
||||
v-model="sValue" |
||||
:value="value" |
||||
@change="onChange" |
||||
@input="onInput" |
||||
@pressEnter="onPressEnter" |
||||
@keydown="onKeydown" |
||||
> |
||||
<template :slot="slot" v-for="slot in Object.keys($slots)"> |
||||
<slot :name="slot"></slot> |
||||
</template> |
||||
</a-input> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
name: 'IInput', |
||||
model: { |
||||
prop: 'value', |
||||
event: 'change.value' |
||||
}, |
||||
props: ['addonAfter', 'addonBefore', 'defaultValue', 'disabled', 'id', 'maxLength', 'prefix', 'size', 'suffix', 'type', 'value', 'allowClear'], |
||||
data() { |
||||
return { |
||||
sValue: this.value || this.defaultValue || '' |
||||
} |
||||
}, |
||||
watch: { |
||||
value(val) { |
||||
this.sValue = val |
||||
} |
||||
}, |
||||
computed: { |
||||
lenSuffix() { |
||||
return this.maxLength && `${(this.sValue + '').length}/${this.maxLength}` |
||||
} |
||||
}, |
||||
methods: { |
||||
onChange(e) { |
||||
this.$emit('change', e) |
||||
this.$emit('change.value', e.target.value) |
||||
}, |
||||
onInput(e) { |
||||
this.$emit('input', e) |
||||
}, |
||||
onPressEnter(e) { |
||||
this.$emit('pressEnter', e) |
||||
}, |
||||
onKeydown(e) { |
||||
this.$emit('keydown', e) |
||||
} |
||||
} |
||||
} |
||||
</script> |
Loading…
Reference in new issue