diff --git a/CHANGE.md b/CHANGE.md index 8587fc8..ddc25d7 100644 --- a/CHANGE.md +++ b/CHANGE.md @@ -11,4 +11,6 @@ value 改为了 label,使用 v-model,废弃 checked ### Switch 废弃checked, 改为了 value,使用 v-model ### Badge -class 改为了 className \ No newline at end of file +class 改为了 className +### InputNumber +使用 v-model \ No newline at end of file diff --git a/README.md b/README.md index bcc1384..2d14427 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ - [ ] TimePicker - [ ] Cascader - [ ] Transfer -- [ ] InputNumber +- [x] InputNumber - [ ] Rate - [ ] Upload - [ ] Form diff --git a/src/components/input-number/input-number.vue b/src/components/input-number/input-number.vue index 1534317..46f014b 100644 --- a/src/components/input-number/input-number.vue +++ b/src/components/input-number/input-number.vue @@ -92,7 +92,8 @@ return { focused: false, upDisabled: false, - downDisabled: false + downDisabled: false, + currentValue: this.value }; }, computed: { @@ -164,7 +165,7 @@ } const targetVal = Number(e.target.value); - let val = Number(this.value); + let val = Number(this.currentValue); const step = Number(this.step); if (isNaN(val)) { return false; @@ -196,9 +197,11 @@ }, setValue (val) { this.$nextTick(() => { - this.value = val; + this.currentValue = val; + this.$emit('input', val); this.$emit('on-change', val); - this.$dispatch('on-form-change', val); + // todo 事件 +// this.$dispatch('on-form-change', val); }); }, focus () { @@ -224,7 +227,7 @@ if (isValueNumber(val)) { val = Number(val); - this.value = val; + this.currentValue = val; if (val > max) { this.setValue(max); @@ -234,7 +237,7 @@ this.setValue(val); } } else { - event.target.value = this.value; + event.target.value = this.currentValue; } }, changeVal (val) { @@ -250,11 +253,14 @@ } } }, - compiled () { - this.changeVal(this.value); + mounted () { + this.changeVal(this.currentValue); }, watch: { value (val) { + this.currentValue = val; + }, + currentValue (val) { this.changeVal(val); } } diff --git a/src/index.js b/src/index.js index ad1b2af..8b36d27 100644 --- a/src/index.js +++ b/src/index.js @@ -18,7 +18,7 @@ import Checkbox from './components/checkbox'; // import Form from './components/form'; import Icon from './components/icon'; import Input from './components/input'; -// import InputNumber from './components/input-number'; +import InputNumber from './components/input-number'; // import LoadingBar from './components/loading-bar'; // import Menu from './components/menu'; // import Message from './components/message'; @@ -74,7 +74,7 @@ const iview = { Icon, // iInput: Input, Input, - // InputNumber, + InputNumber, // LoadingBar, // Menu, // MenuGroup: Menu.Group, diff --git a/test/app.vue b/test/app.vue index 220e57e..831fdd0 100644 --- a/test/app.vue +++ b/test/app.vue @@ -25,6 +25,7 @@ li + li { border-left: solid 1px #bbb; padding-left: 10px; margin-left: 10px; }
  • Alert
  • Badge
  • Tag
  • +
  • InputNumber
  • diff --git a/test/main.js b/test/main.js index b7031c1..85c1382 100644 --- a/test/main.js +++ b/test/main.js @@ -64,6 +64,10 @@ const router = new VueRouter({ { path: '/tag', component: require('./routers/tag.vue') + }, + { + path: '/input-number', + component: require('./routers/input-number.vue') } ] }); diff --git a/test/routers/input-number.vue b/test/routers/input-number.vue new file mode 100644 index 0000000..f2494ed --- /dev/null +++ b/test/routers/input-number.vue @@ -0,0 +1,25 @@ + + \ No newline at end of file diff --git a/test/routers/tag.vue b/test/routers/tag.vue index b37f111..099a461 100644 --- a/test/routers/tag.vue +++ b/test/routers/tag.vue @@ -35,9 +35,7 @@