| <template> |
| <div class="control-number"> |
| <el-input-number |
| v-model="innerValue" |
| controls-position="right" |
| :min="min == null ? -1e4 : +min" |
| :max="max == null ? 1e4 : +max" |
| :step="step == null ? 1 : +step" |
| size="mini" |
| @change="onValueChange" |
| ></el-input-number> |
| </div> |
| </template> |
| |
| <script> |
| export default { |
| |
| props: ['value', 'min', 'max', 'step'], |
| |
| data() { |
| return { |
| innerValue: this.value |
| } |
| }, |
| |
| watch: { |
| value(val) { |
| this.innerValue = val; |
| } |
| }, |
| |
| methods: { |
| onValueChange() { |
| this.$emit('change', this.innerValue); |
| } |
| } |
| } |
| </script> |
| |
| <style lang="scss"> |
| .control-number { |
| .el-input-number { |
| width: 120px; |
| } |
| } |
| </style> |