diff --git a/src/sku/README.md b/src/sku/README.md index 26723c7e0..bc4eb7758 100644 --- a/src/sku/README.md +++ b/src/sku/README.md @@ -161,6 +161,7 @@ Use [ref](https://vuejs.org/v2/api/#ref) to get Sku instance and call instance m | Name | Description | Attribute | Return value | |------|------|------|------| | getSkuData | Get current skuData | - | skuData | +| resetSelectedSku | Reset selected sku to initial sku | - | - | 2.3.0 | ### Slots diff --git a/src/sku/README.zh-CN.md b/src/sku/README.zh-CN.md index 84f88b9e7..f5600e0ee 100644 --- a/src/sku/README.zh-CN.md +++ b/src/sku/README.zh-CN.md @@ -162,9 +162,10 @@ export default { 通过 [ref](https://cn.vuejs.org/v2/api/#ref) 可以获取到 Sku 实例并调用实例方法 -| 方法名 | 说明 | 参数 | 返回值 | -|------|------|------|------| -| getSkuData | 获取当前 skuData | - | skuData | +| 方法名 | 说明 | 参数 | 返回值 | 版本 | +|------|------|------|------|------| +| getSkuData | 获取当前 skuData | - | skuData | - | +| resetSelectedSku | 重置选中规格到初始状态 | - | - | 2.3.0 | ### Slots diff --git a/src/sku/Sku.js b/src/sku/Sku.js index 0f5710bec..c11a344c9 100644 --- a/src/sku/Sku.js +++ b/src/sku/Sku.js @@ -106,7 +106,7 @@ export default createComponent({ } if (this.resetSelectedSkuOnHide) { - this.resetSelectedSku(this.skuTree); + this.resetSelectedSku(); } } }, @@ -119,7 +119,7 @@ export default createComponent({ initialSku() { this.resetStepper(); - this.resetSelectedSku(this.skuTree); + this.resetSelectedSku(); }, }, @@ -267,7 +267,7 @@ export default createComponent({ skuEventBus.$on('sku:buy', this.onBuy); this.resetStepper(); - this.resetSelectedSku(this.skuTree); + this.resetSelectedSku(); // 组件初始化后的钩子,抛出skuEventBus this.$emit('after-sku-create', skuEventBus); @@ -289,16 +289,17 @@ export default createComponent({ } }, - resetSelectedSku(skuTree) { + // @exposed-api + resetSelectedSku() { this.selectedSku = {}; // 重置 selectedSku - skuTree.forEach(item => { + this.skuTree.forEach(item => { this.selectedSku[item.k_s] = this.initialSku[item.k_s] || UNSELECTED_SKU_VALUE_ID; }); // 只有一个 sku 规格值时默认选中 - skuTree.forEach(item => { + this.skuTree.forEach(item => { const key = item.k_s; const valueId = item.v[0].id; if ( @@ -451,6 +452,7 @@ export default createComponent({ } }, + // @exposed-api getSkuData() { return { goodsId: this.goodsId, diff --git a/src/sku/demo/data.js b/src/sku/demo/data.ts similarity index 97% rename from src/sku/demo/data.js rename to src/sku/demo/data.ts index c7674f10b..22594d2a8 100644 --- a/src/sku/demo/data.js +++ b/src/sku/demo/data.ts @@ -1,4 +1,4 @@ -export default { +export const skuData = { goods_id: '946755', quota: 15, quota_used: 0, @@ -181,3 +181,9 @@ export default { ] } }; + +export const initialSku = { + s1: '30349', + s2: '1193', + selectedNum: 3 +}; diff --git a/src/sku/demo/index.vue b/src/sku/demo/index.vue index b64802f40..e1e7d6a32 100644 --- a/src/sku/demo/index.vue +++ b/src/sku/demo/index.vue @@ -150,7 +150,7 @@