diff --git a/package-lock.json b/package-lock.json index 089458e9d..3ca680fec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "vant", - "version": "0.12.8", + "version": "0.12.9", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 4decfb7b5..92ecde1ef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vant", - "version": "0.12.8", + "version": "0.12.9", "description": "A Vue.js 2.0 Mobile UI at YouZan", "main": "lib/vant.js", "style": "lib/vant-css/index.css", diff --git a/packages/index.js b/packages/index.js index 0d62c82e3..111410db1 100644 --- a/packages/index.js +++ b/packages/index.js @@ -63,7 +63,7 @@ import TreeSelect from './tree-select'; import Uploader from './uploader'; import Waterfall from './waterfall'; -const version = '0.12.8'; +const version = '0.12.9'; const components = [ Actionsheet, AddressEdit, diff --git a/packages/sku/components/SkuMessages.vue b/packages/sku/components/SkuMessages.vue index ecf606467..720b9a96c 100644 --- a/packages/sku/components/SkuMessages.vue +++ b/packages/sku/components/SkuMessages.vue @@ -54,10 +54,16 @@ export default create({ data() { return { - messageValues: this.messages.map(() => ({ value: '' })) + messageValues: this.resetMessageValues(this.messages) }; }, + watch: { + messages(val) { + this.messageValues = this.resetMessageValues(val); + } + }, + computed: { messagePlaceholderMap() { return this.messageConfig.placeholderMap || {}; @@ -65,6 +71,9 @@ export default create({ }, methods: { + resetMessageValues(messages) { + return (messages || []).map(() => ({ value: '' })); + }, getType(message) { if (+message.multiple === 1) { return 'textarea'; diff --git a/packages/vant-css/package-lock.json b/packages/vant-css/package-lock.json index a59bad0d5..ea43a8fe2 100644 --- a/packages/vant-css/package-lock.json +++ b/packages/vant-css/package-lock.json @@ -1,6 +1,6 @@ { "name": "vant-css", - "version": "0.12.8", + "version": "0.12.10", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/vant-css/package.json b/packages/vant-css/package.json index 658f5d9b6..0d12cae62 100644 --- a/packages/vant-css/package.json +++ b/packages/vant-css/package.json @@ -1,6 +1,6 @@ { "name": "vant-css", - "version": "0.12.8", + "version": "0.12.10", "description": "vant css.", "main": "lib/index.css", "style": "lib/index.css", diff --git a/test/unit/specs/sku.spec.js b/test/unit/specs/sku.spec.js index 6d2947dee..79aa4867d 100644 --- a/test/unit/specs/sku.spec.js +++ b/test/unit/specs/sku.spec.js @@ -219,15 +219,17 @@ describe('Sku', (done) => { }); it('should not render sku group when none_sku is true', (done) => { - const newData = Object.assign({}, data); - newData.sku.none_sku = true; // eslint-disable-line + const newSku = { + ...data.sku, + none_sku: true + }; wrapper = mount(Sku, { attachToDocument: true, propsData: { value: false, - sku: newData.sku, - goodsId: newData.goods_id, + sku: newSku, + goodsId: data.goods_id, goods: goods } }); @@ -364,4 +366,35 @@ describe('Sku', (done) => { }); }); }); + + it('should reset values when sku change', (done) => { + wrapper = mount(Sku, { + attachToDocument: true, + propsData: { + value: true, + sku: data.sku, + goodsId: data.goods_id, + goods: goods, + resetStepperOnHide: true, + resetSelectedSkuOnHide: true + } + }); + + const newSku = { + ...data.sku, + tree: [], + list: [], + messages: [], + none_sku: true + }; + + wrapper.vm.sku = newSku; + const skuMessages = wrapper.find(Sku.SkuMessages)[0]; + + wrapper.vm.$nextTick(() => { + expect(wrapper.vm.selectedSku).to.be.empty; + expect(skuMessages.vm.messageValues).to.be.empty; + done(); + }); + }); });