import { createNamespace } from '../../utils';
import { isSkuChoosable } from '../utils/sku-helper';
const [createComponent] = createNamespace('sku-row-item');
export default createComponent({
props: {
lazyLoad: Boolean,
skuValue: Object,
skuKeyStr: String,
skuEventBus: Object,
selectedSku: Object,
largePicturePreview: Boolean,
skuList: {
type: Array,
default: () => [],
},
},
computed: {
imgUrl() {
return this.skuValue.imgUrl || this.skuValue.img_url;
},
choosable() {
return isSkuChoosable(this.skuList, this.selectedSku, {
key: this.skuKeyStr,
valueId: this.skuValue.id,
});
},
},
methods: {
onSelect() {
if (this.choosable) {
this.skuEventBus.$emit('sku:select', {
...this.skuValue,
skuKeyStr: this.skuKeyStr,
});
}
},
onPreviewImg(event) {
event.stopPropagation();
this.skuEventBus.$emit('sku:previewImage', this.imgUrl);
},
genImage(classPrefix) {
const { imgUrl } = this;
if (imgUrl) {
if (this.largePicturePreview && this.lazyLoad) {
return (
);
}
return
;
}
},
},
render() {
const choosed = this.skuValue.id === this.selectedSku[this.skuKeyStr];
const classPrefix = this.largePicturePreview
? 'van-sku-row__picture-item'
: 'van-sku-row__item';
return (
{this.largePicturePreview && (
)}
{this.genImage(classPrefix)}
{this.skuValue.name}
);
},
});