From c97c42ab2e4e954aa62fc846b7473f8462353d8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=81=8F?= Date: Thu, 2 Mar 2017 13:40:09 +0800 Subject: [PATCH] support InputNumber support InputNumber --- CHANGE.md | 4 +++- README.md | 2 +- src/components/input-number/input-number.vue | 22 ++++++++++------- src/index.js | 4 ++-- test/app.vue | 1 + test/main.js | 4 ++++ test/routers/input-number.vue | 25 ++++++++++++++++++++ test/routers/tag.vue | 2 -- 8 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 test/routers/input-number.vue diff --git a/CHANGE.md b/CHANGE.md index 8587fc84..ddc25d76 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 bcc13841..2d14427c 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 15343175..46f014bc 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 ad1b2af4..8b36d270 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 220e57ee..831fdd00 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 b7031c11..85c1382c 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 00000000..f2494ed8 --- /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 b37f111a..099a461b 100644 --- a/test/routers/tag.vue +++ b/test/routers/tag.vue @@ -35,9 +35,7 @@