feat(Sku): auto center in largeImageMode (#6633)

* feat(Sku): 大图模式下支持自动定位到选中

* fix(Sku): 修改居中实现

Co-authored-by: songweite <songweite@youzan.com>
This commit is contained in:
Waiter
2020-06-29 16:00:16 +08:00
committed by GitHub
parent fb26960336
commit ab5a665387
3 changed files with 37 additions and 1 deletions

View File

@@ -430,6 +430,8 @@ export default createComponent({
selectedProp: this.selectedProp,
selectedSkuComb: this.selectedSkuComb,
});
this.centerInitialSku();
},
getSkuMessages() {
@@ -605,6 +607,18 @@ export default createComponent({
selectedSkuComb: this.selectedSkuComb,
};
},
// 当 popup 完全打开后执行
onOpened() {
this.centerInitialSku();
},
centerInitialSku() {
(this.$refs.skuRows || []).forEach((it) => {
const { k_s } = it.skuRow || {};
it.centerItem(this.initialSku[k_s]);
});
},
},
render() {
@@ -681,7 +695,7 @@ export default createComponent({
(this.hasSkuOrAttr && (
<div class={this.skuGroupClass}>
{this.skuTree.map((skuTreeItem) => (
<SkuRow skuRow={skuTreeItem}>
<SkuRow skuRow={skuTreeItem} ref="skuRows" refInFor>
{skuTreeItem.v.map((skuValue) => (
<SkuRowItem
skuList={sku.list}
@@ -759,6 +773,7 @@ export default createComponent({
getContainer={this.getContainer}
closeOnClickOverlay={this.closeOnClickOverlay}
safeAreaInsetBottom={this.safeAreaInsetBottom}
onOpened={this.onOpened}
>
{Header}
<div class="van-sku-body" style={this.bodyStyle}>