mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
fix(Sku): add open-preview event data (#6664)
* fix(Sku): open-preview event data * fix(Sku): delete findIndex * fix(Sku): change name Co-authored-by: songweite <songweite@youzan.com>
This commit is contained in:
parent
2ad40a7990
commit
4db4c9343a
@ -512,9 +512,22 @@ export default createComponent({
|
|||||||
this.selectedNum = num;
|
this.selectedNum = num;
|
||||||
},
|
},
|
||||||
|
|
||||||
onPreviewImage(indexImage) {
|
onPreviewImage(selectedValue) {
|
||||||
const index = this.imageList.findIndex((image) => image === indexImage);
|
const { imageList } = this;
|
||||||
|
let index = 0;
|
||||||
|
let indexImage = imageList[0];
|
||||||
|
if (selectedValue && selectedValue.imgUrl) {
|
||||||
|
this.imageList.some((image, pos) => {
|
||||||
|
if (image === selectedValue.imgUrl) {
|
||||||
|
index = pos;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
indexImage = selectedValue.imgUrl;
|
||||||
|
}
|
||||||
const params = {
|
const params = {
|
||||||
|
...selectedValue,
|
||||||
index,
|
index,
|
||||||
imageList: this.imageList,
|
imageList: this.imageList,
|
||||||
indexImage,
|
indexImage,
|
||||||
|
@ -23,13 +23,18 @@ export type SkuHeaderSlots = DefaultSlots & {
|
|||||||
'sku-header-image-extra'?: ScopedSlot;
|
'sku-header-image-extra'?: ScopedSlot;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type SelectedValueType = {
|
||||||
|
ks: string;
|
||||||
|
imgUrl: string;
|
||||||
|
};
|
||||||
|
|
||||||
const [createComponent, bem] = createNamespace('sku-header');
|
const [createComponent, bem] = createNamespace('sku-header');
|
||||||
|
|
||||||
function getSkuImg(
|
function getSkuImgValue(
|
||||||
sku: SkuData,
|
sku: SkuData,
|
||||||
selectedSku: SelectedSkuData
|
selectedSku: SelectedSkuData
|
||||||
): string | undefined {
|
): SelectedValueType | undefined {
|
||||||
let img;
|
let imgValue;
|
||||||
|
|
||||||
sku.tree.some((item) => {
|
sku.tree.some((item) => {
|
||||||
const id = selectedSku[item.k_s];
|
const id = selectedSku[item.k_s];
|
||||||
@ -37,14 +42,23 @@ function getSkuImg(
|
|||||||
if (id && item.v) {
|
if (id && item.v) {
|
||||||
const matchedSku =
|
const matchedSku =
|
||||||
item.v.filter((skuValue) => skuValue.id === id)[0] || {};
|
item.v.filter((skuValue) => skuValue.id === id)[0] || {};
|
||||||
img = matchedSku.previewImgUrl || matchedSku.imgUrl || matchedSku.img_url;
|
|
||||||
return img;
|
const img =
|
||||||
|
matchedSku.previewImgUrl || matchedSku.imgUrl || matchedSku.img_url;
|
||||||
|
if (img) {
|
||||||
|
imgValue = {
|
||||||
|
...matchedSku,
|
||||||
|
ks: item.k_s,
|
||||||
|
imgUrl: img,
|
||||||
|
};
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
return img;
|
return imgValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
function SkuHeader(
|
function SkuHeader(
|
||||||
@ -61,10 +75,11 @@ function SkuHeader(
|
|||||||
showHeaderImage = true,
|
showHeaderImage = true,
|
||||||
} = props;
|
} = props;
|
||||||
|
|
||||||
const imgUrl = getSkuImg(sku, selectedSku) || goods.picture;
|
const selectedValue = getSkuImgValue(sku, selectedSku);
|
||||||
|
const imgUrl = selectedValue ? selectedValue.imgUrl : goods.picture;
|
||||||
|
|
||||||
const previewImage = () => {
|
const previewImage = () => {
|
||||||
skuEventBus.$emit('sku:previewImage', imgUrl);
|
skuEventBus.$emit('sku:previewImage', selectedValue);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -51,7 +51,12 @@ export default createComponent({
|
|||||||
|
|
||||||
onPreviewImg(event) {
|
onPreviewImg(event) {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
this.skuEventBus.$emit('sku:previewImage', this.imgUrl);
|
const { skuValue, skuKeyStr } = this;
|
||||||
|
this.skuEventBus.$emit('sku:previewImage', {
|
||||||
|
...skuValue,
|
||||||
|
ks: skuKeyStr,
|
||||||
|
imgUrl: skuValue.imgUrl || skuValue.img_url,
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
genImage(classPrefix) {
|
genImage(classPrefix) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user