mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
feat: lazy-load change and readme change
This commit is contained in:
parent
232c3387cc
commit
d02e4ae956
@ -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 load,should 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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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) => (
|
||||||
|
@ -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>
|
||||||
);
|
);
|
||||||
|
@ -35,6 +35,7 @@ export const skuData = {
|
|||||||
],
|
],
|
||||||
k_s: 's1',
|
k_s: 's1',
|
||||||
count: 2,
|
count: 2,
|
||||||
|
is_support_big_picture: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
k: '尺寸',
|
k: '尺寸',
|
||||||
|
@ -279,9 +279,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__content {
|
&__content {
|
||||||
overflow-x: scroll;
|
overflow-x: scroll;
|
||||||
::-webkit-scrollbar {
|
|
||||||
|
&::-webkit-scrollbar {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user