From 9c26422f06c6941e4380605e5442c0be3f0610e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=95=8F?= Date: Thu, 27 Apr 2017 16:56:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9Apicker=E4=B8=AD?= =?UTF-8?q?=E5=80=BC=E5=8F=98=E4=BA=86=E5=90=8E=E6=9C=AA=E6=9B=B4=E6=96=B0?= =?UTF-8?q?picker-colum=E4=B8=AD=E7=9A=84=E5=80=BC=20(#23)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 修复:picker中值变了后未更新picker-colum中的值 --- packages/image-preview/src/image-preview.js | 1 + packages/picker/src/picker-column.vue | 4 ++++ test/unit/specs/pciker.spec.js | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/packages/image-preview/src/image-preview.js b/packages/image-preview/src/image-preview.js index 5840d8d5e..a2a60141f 100644 --- a/packages/image-preview/src/image-preview.js +++ b/packages/image-preview/src/image-preview.js @@ -16,6 +16,7 @@ var ImagePreviewBox = images => { initInstance(); } + /* istanbul ignore else */ if (!instance.value) { instance.images = images; diff --git a/packages/picker/src/picker-column.vue b/packages/picker/src/picker-column.vue index 876b9bb9e..6daeefd48 100644 --- a/packages/picker/src/picker-column.vue +++ b/packages/picker/src/picker-column.vue @@ -69,10 +69,14 @@ export default { this.currentValues = val; }, currentValues(val) { + /* istanbul ignore else */ if (this.valueIndex === -1) { this.currentValue = (val || [])[0]; } }, + value(val) { + this.currentValue = val; + }, currentValue(val) { this.doOnValueChange(); diff --git a/test/unit/specs/pciker.spec.js b/test/unit/specs/pciker.spec.js index a229a9599..ff320a182 100644 --- a/test/unit/specs/pciker.spec.js +++ b/test/unit/specs/pciker.spec.js @@ -170,6 +170,25 @@ describe('PickerColumn', () => { expect(wrapper.vm.dragRange[1]).to.equal(2 * itemHeight); }); + it('change picker-column value', (done) => { + wrapper = mount(PickerColumn, { + propsData: { + values: [1, 2, 3, 4, 5], + value: 1 + } + }); + + expect(wrapper.hasClass('van-picker-column')).to.be.true; + expect(wrapper.vm.values.length).to.equal(5); + + wrapper.vm.value = 3; + wrapper.update(); + wrapper.vm.$nextTick(() => { + expect(wrapper.vm.currentValue).to.equal(3); + done(); + }); + }); + it('change picker-column values', (done) => { wrapper = mount(PickerColumn);