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}
); }, });