feat: lazy-load change and readme change

This commit is contained in:
水墨 2020-06-23 10:36:34 +08:00 committed by neverland
parent 232c3387cc
commit d02e4ae956
6 changed files with 32 additions and 45 deletions

View File

@ -141,8 +141,7 @@ export default {
| properties `v2.4.2` | Goods properties | _array_ | - | | properties `v2.4.2` | Goods properties | _array_ | - |
| preview-on-click-image `v2.5.2` | Whether to preview image when click goods image | _boolean_ | `true` | | preview-on-click-image `v2.5.2` | Whether to preview image when click goods image | _boolean_ | `true` |
| supportBigPicture `v2.9.0` | Whether to display large image mode | _boolean_ | `false` | | supportBigPicture `v2.9.0` | Whether to display large image mode | _boolean_ | `false` |
| supportBigPictureIndex `v2.9.0` | The index value of the large image mode | _number_ | `0` | | lazy-load | Whether to enable lazy loadshould register [Lazyload](#/en-US/lazyload) component | _boolean_ | `false` |
| hasScrollTab `v2.9.0` | Whether the large image mode displays a scroll bar | _boolean_ | `false` |
### Events ### Events

View File

@ -145,8 +145,7 @@ export default {
| properties `v2.4.2` | 商品属性 | _array_ | - | | properties `v2.4.2` | 商品属性 | _array_ | - |
| preview-on-click-image `v2.5.2` | 是否在点击商品图片时自动预览 | _boolean_ | `true` | | preview-on-click-image `v2.5.2` | 是否在点击商品图片时自动预览 | _boolean_ | `true` |
| supportBigPicture `v2.9.0` | 是否展示大图模式 | _boolean_ | `false` | | supportBigPicture `v2.9.0` | 是否展示大图模式 | _boolean_ | `false` |
| supportBigPictureIndex `v2.9.0` | 多规格情况下,大图模式的索引值 | _number_ | `0` | | lazy-load | 是否开启图片懒加载,须配合 [Lazyload](#/zh-CN/lazyload) 组件使用 | _boolean_ | `false` |
| hasScrollTab `v2.9.0` | 大图模式下,是否展示滚动条 | _boolean_ | `false` |
### Events ### Events

View File

@ -1,7 +1,6 @@
import Vue from 'vue'; import Vue from 'vue';
import Popup from '../popup'; import Popup from '../popup';
import Toast from '../toast'; import Toast from '../toast';
import Lazyload from '../lazyload';
import ImagePreview from '../image-preview'; import ImagePreview from '../image-preview';
import SkuHeader from './components/SkuHeader'; import SkuHeader from './components/SkuHeader';
import SkuHeaderItem from './components/SkuHeaderItem'; import SkuHeaderItem from './components/SkuHeaderItem';
@ -26,8 +25,6 @@ const namespace = createNamespace('sku');
const [createComponent, bem, t] = namespace; const [createComponent, bem, t] = namespace;
const { QUOTA_LIMIT } = LIMIT_TYPE; const { QUOTA_LIMIT } = LIMIT_TYPE;
Vue.use(Lazyload);
export default createComponent({ export default createComponent({
props: { props: {
sku: Object, sku: Object,
@ -105,14 +102,7 @@ export default createComponent({
type: Boolean, type: Boolean,
default: false, default: false,
}, },
supportBigPictureIndex: { lazyLoad: Boolean,
type: Number,
default: 0,
},
hasScrollTab: {
type: Boolean,
default: false,
},
}, },
data() { data() {
@ -632,8 +622,7 @@ export default createComponent({
stepperTitle, stepperTitle,
selectedSkuComb, selectedSkuComb,
supportBigPicture, supportBigPicture,
supportBigPictureIndex, lazyLoad = false,
hasScrollTab,
} = this; } = this;
const slotsProps = { const slotsProps = {
price, price,
@ -687,44 +676,37 @@ export default createComponent({
slots('sku-group') || slots('sku-group') ||
(this.hasSkuOrAttr && ( (this.hasSkuOrAttr && (
<div class={this.skuGroupClass}> <div class={this.skuGroupClass}>
{this.skuTree.map((skuTreeItem, index) => ( {this.skuTree.map((skuTreeItem) => (
<SkuRow <SkuRow
skuRow={skuTreeItem} skuRow={skuTreeItem}
isShowBigPicture={ isShowBigPicture={
supportBigPicture && supportBigPictureIndex === index supportBigPicture && skuTreeItem.is_support_big_picture
} }
hasScrollTab={hasScrollTab && skuTreeItem.v.length > 6} hasScrollTab={skuTreeItem.v.length > 6}
> >
{skuTreeItem.v.map((skuValue, itemIndex) => { {skuTreeItem.v.map((skuValue, itemIndex) => (
return supportBigPicture && supportBigPictureIndex === index ? ( <template
<template slot={
slot={ supportBigPicture && skuTreeItem.is_support_big_picture
Math.floor(itemIndex / 3) % 2 === 0 ? Math.floor(itemIndex / 3) % 2 === 0
? 'sku-item-group-one' ? 'sku-item-group-one'
: 'sku-item-group-two' : 'sku-item-group-two'
} : 'default'
> }
<SkuRowItem >
skuList={sku.list}
skuValue={skuValue}
selectedSku={selectedSku}
skuEventBus={skuEventBus}
skuKeyStr={skuTreeItem.k_s}
isShowBigPicture={
supportBigPicture && supportBigPictureIndex === index
}
></SkuRowItem>
</template>
) : (
<SkuRowItem <SkuRowItem
skuList={sku.list} skuList={sku.list}
skuValue={skuValue} skuValue={skuValue}
selectedSku={selectedSku} selectedSku={selectedSku}
skuEventBus={skuEventBus} skuEventBus={skuEventBus}
skuKeyStr={skuTreeItem.k_s} skuKeyStr={skuTreeItem.k_s}
isShowBigPicture={
supportBigPicture && skuTreeItem.is_support_big_picture
}
lazyLoad={lazyLoad}
></SkuRowItem> ></SkuRowItem>
); </template>
})} ))}
</SkuRow> </SkuRow>
))} ))}
{this.propList.map((skuTreeItem) => ( {this.propList.map((skuTreeItem) => (

View File

@ -14,6 +14,7 @@ export default createComponent({
default: () => [], default: () => [],
}, },
isShowBigPicture: Boolean, isShowBigPicture: Boolean,
lazyLoad: Boolean,
}, },
computed: { computed: {
@ -66,9 +67,12 @@ export default createComponent({
onClick={this.onPreviewImg} onClick={this.onPreviewImg}
/> />
)} )}
{imgUrl && ( {imgUrl &&
<img class={`${BEM_NAME}-img`} src={imgUrl} v-lazy={imgUrl} /> (this.isShowBigPicture && this.lazyLoad ? (
)} <img class={`${BEM_NAME}-img`} src={imgUrl} vLazy={imgUrl} />
) : (
<img class={`${BEM_NAME}-img`} src={imgUrl} />
))}
<span class={`${BEM_NAME}-name`}>{this.skuValue.name}</span> <span class={`${BEM_NAME}-name`}>{this.skuValue.name}</span>
</span> </span>
); );

View File

@ -35,6 +35,7 @@ export const skuData = {
], ],
k_s: 's1', k_s: 's1',
count: 2, count: 2,
is_support_big_picture: true,
}, },
{ {
k: '尺寸', k: '尺寸',

View File

@ -279,9 +279,11 @@
} }
} }
} }
&__content { &__content {
overflow-x: scroll; overflow-x: scroll;
::-webkit-scrollbar {
&::-webkit-scrollbar {
display: none; display: none;
} }