mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-23 18:00:27 +08:00
feat: uniform param name
This commit is contained in:
parent
b788944307
commit
eb0a4bb8f9
@ -140,7 +140,7 @@ export default {
|
|||||||
| start-sale-num `v2.3.0` | Minimum quantity | _number_ | `1` |
|
| start-sale-num `v2.3.0` | Minimum quantity | _number_ | `1` |
|
||||||
| 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` |
|
||||||
| isHideSkuHeaderImg `v2.9.0` | Whether to hide sku header image | _boolean_ | `false` |
|
| showHeaderImage `v2.9.0` | Whether to display sku header image | _boolean_ | `true` |
|
||||||
| lazy-load | Whether to enable lazy load,should register [Lazyload](#/en-US/lazyload) component | _boolean_ | `false` |
|
| lazy-load | Whether to enable lazy load,should register [Lazyload](#/en-US/lazyload) component | _boolean_ | `false` |
|
||||||
|
|
||||||
### Events
|
### Events
|
||||||
@ -204,7 +204,7 @@ sku: {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
k_s: 's1',
|
k_s: 's1',
|
||||||
is_support_big_picture: true, // Whether to display large image mode
|
large_picture_preview: true, // Whether to display large image mode
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
list: [
|
list: [
|
||||||
|
@ -144,7 +144,7 @@ export default {
|
|||||||
| start-sale-num `v2.3.0` | 起售数量 | _number_ | `1` |
|
| start-sale-num `v2.3.0` | 起售数量 | _number_ | `1` |
|
||||||
| 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` |
|
||||||
| isHideSkuHeaderImg `v2.9.0` | 是否隐藏 sku 头部图片 | _boolean_ | `false` |
|
| showHeaderImage `v2.9.0` | 是否展示 sku 头部图片 | _boolean_ | `true` |
|
||||||
| lazy-load | 是否开启图片懒加载,须配合 [Lazyload](#/zh-CN/lazyload) 组件使用 | _boolean_ | `false` |
|
| lazy-load | 是否开启图片懒加载,须配合 [Lazyload](#/zh-CN/lazyload) 组件使用 | _boolean_ | `false` |
|
||||||
|
|
||||||
### Events
|
### Events
|
||||||
@ -212,7 +212,7 @@ sku: {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
k_s: 's1', // skuKeyStr:sku 组合列表(下方 list)中当前类目对应的 key 值,value 值会是从属于当前类目的一个规格值 id
|
k_s: 's1', // skuKeyStr:sku 组合列表(下方 list)中当前类目对应的 key 值,value 值会是从属于当前类目的一个规格值 id
|
||||||
is_support_big_picture: true, // 是否展示大图模式
|
large_picture_preview: true, // 是否展示大图模式
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
// 所有 sku 的组合列表,比如红色、M 码为一个 sku 组合,红色、S 码为另一个组合
|
// 所有 sku 的组合列表,比如红色、M 码为一个 sku 组合,红色、S 码为另一个组合
|
||||||
|
@ -98,9 +98,9 @@ export default createComponent({
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true,
|
default: true,
|
||||||
},
|
},
|
||||||
isHideSkuHeaderImg: {
|
showHeaderImage: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: true,
|
||||||
},
|
},
|
||||||
lazyLoad: Boolean,
|
lazyLoad: Boolean,
|
||||||
},
|
},
|
||||||
@ -621,7 +621,7 @@ export default createComponent({
|
|||||||
selectedNum,
|
selectedNum,
|
||||||
stepperTitle,
|
stepperTitle,
|
||||||
selectedSkuComb,
|
selectedSkuComb,
|
||||||
isHideSkuHeaderImg,
|
showHeaderImage,
|
||||||
lazyLoad = false,
|
lazyLoad = false,
|
||||||
} = this;
|
} = this;
|
||||||
const slotsProps = {
|
const slotsProps = {
|
||||||
@ -640,7 +640,7 @@ export default createComponent({
|
|||||||
goods={goods}
|
goods={goods}
|
||||||
skuEventBus={skuEventBus}
|
skuEventBus={skuEventBus}
|
||||||
selectedSku={selectedSku}
|
selectedSku={selectedSku}
|
||||||
supportBigPicture={isHideSkuHeaderImg}
|
showHeaderImage={showHeaderImage}
|
||||||
>
|
>
|
||||||
<template slot="sku-header-image-extra">
|
<template slot="sku-header-image-extra">
|
||||||
{slots('sku-header-image-extra')}
|
{slots('sku-header-image-extra')}
|
||||||
@ -679,13 +679,13 @@ export default createComponent({
|
|||||||
{this.skuTree.map((skuTreeItem) => (
|
{this.skuTree.map((skuTreeItem) => (
|
||||||
<SkuRow
|
<SkuRow
|
||||||
skuRow={skuTreeItem}
|
skuRow={skuTreeItem}
|
||||||
isShowBigPicture={skuTreeItem.is_support_big_picture}
|
largePicturePreview={skuTreeItem.large_picture_preview}
|
||||||
hasScrollTab={skuTreeItem.v.length > 6}
|
hasScrollTab={skuTreeItem.v.length > 6}
|
||||||
>
|
>
|
||||||
{skuTreeItem.v.map((skuValue, itemIndex) => (
|
{skuTreeItem.v.map((skuValue, itemIndex) => (
|
||||||
<template
|
<template
|
||||||
slot={
|
slot={
|
||||||
skuTreeItem.is_support_big_picture
|
skuTreeItem.large_picture_preview
|
||||||
? 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'
|
||||||
@ -698,7 +698,7 @@ export default createComponent({
|
|||||||
selectedSku={selectedSku}
|
selectedSku={selectedSku}
|
||||||
skuEventBus={skuEventBus}
|
skuEventBus={skuEventBus}
|
||||||
skuKeyStr={skuTreeItem.k_s}
|
skuKeyStr={skuTreeItem.k_s}
|
||||||
isShowBigPicture={skuTreeItem.is_support_big_picture}
|
largePicturePreview={skuTreeItem.large_picture_preview}
|
||||||
lazyLoad={lazyLoad}
|
lazyLoad={lazyLoad}
|
||||||
></SkuRowItem>
|
></SkuRowItem>
|
||||||
</template>
|
</template>
|
||||||
|
@ -13,7 +13,7 @@ export type SkuHeaderProps = {
|
|||||||
goods: SkuGoodsData;
|
goods: SkuGoodsData;
|
||||||
skuEventBus: Vue;
|
skuEventBus: Vue;
|
||||||
selectedSku: SelectedSkuData;
|
selectedSku: SelectedSkuData;
|
||||||
supportBigPicture: boolean;
|
showHeaderImage: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type SkuHeaderSlots = DefaultSlots & {
|
export type SkuHeaderSlots = DefaultSlots & {
|
||||||
@ -55,7 +55,7 @@ function SkuHeader(
|
|||||||
goods,
|
goods,
|
||||||
skuEventBus,
|
skuEventBus,
|
||||||
selectedSku,
|
selectedSku,
|
||||||
supportBigPicture = false,
|
showHeaderImage = true,
|
||||||
} = props;
|
} = props;
|
||||||
const goodsImg = getSkuImg(sku, selectedSku) || goods.picture;
|
const goodsImg = getSkuImg(sku, selectedSku) || goods.picture;
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ function SkuHeader(
|
|||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<div class={[bem(), BORDER_BOTTOM]} {...inherit(ctx)}>
|
<div class={[bem(), BORDER_BOTTOM]} {...inherit(ctx)}>
|
||||||
{!supportBigPicture && (
|
{showHeaderImage && (
|
||||||
<div class={bem('img-wrap')} onClick={previewImage}>
|
<div class={bem('img-wrap')} onClick={previewImage}>
|
||||||
<img src={goodsImg} />
|
<img src={goodsImg} />
|
||||||
{slots['sku-header-image-extra']?.()}
|
{slots['sku-header-image-extra']?.()}
|
||||||
@ -73,7 +73,7 @@ function SkuHeader(
|
|||||||
<div
|
<div
|
||||||
class={[
|
class={[
|
||||||
bem('goods-info'),
|
bem('goods-info'),
|
||||||
supportBigPicture && bem('goods-info--no-padding'),
|
!showHeaderImage && bem('goods-info--no-padding'),
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
{slots.default?.()}
|
{slots.default?.()}
|
||||||
@ -87,7 +87,7 @@ SkuHeader.props = {
|
|||||||
goods: Object,
|
goods: Object,
|
||||||
skuEventBus: Object,
|
skuEventBus: Object,
|
||||||
selectedSku: Object,
|
selectedSku: Object,
|
||||||
supportBigPicture: Boolean,
|
showHeaderImage: Boolean,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default createComponent<SkuHeaderProps>(SkuHeader);
|
export default createComponent<SkuHeaderProps>(SkuHeader);
|
||||||
|
@ -9,7 +9,7 @@ const [createComponent, bem, t] = createNamespace('sku-row');
|
|||||||
export default createComponent({
|
export default createComponent({
|
||||||
mixins: [
|
mixins: [
|
||||||
BindEventMixin(function (bind) {
|
BindEventMixin(function (bind) {
|
||||||
if (!(this.isShowBigPicture && this.hasScrollTab)) {
|
if (!(this.largePicturePreview && this.hasScrollTab)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ export default createComponent({
|
|||||||
],
|
],
|
||||||
props: {
|
props: {
|
||||||
skuRow: Object,
|
skuRow: Object,
|
||||||
isShowBigPicture: {
|
largePicturePreview: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
@ -41,7 +41,7 @@ export default createComponent({
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
scrollStyle() {
|
scrollStyle() {
|
||||||
if (!(this.isShowBigPicture && this.hasScrollTab)) {
|
if (!(this.largePicturePreview && this.hasScrollTab)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
this.tranX = this.present * 20;
|
this.tranX = this.present * 20;
|
||||||
@ -62,7 +62,7 @@ export default createComponent({
|
|||||||
},
|
},
|
||||||
mounted() {},
|
mounted() {},
|
||||||
render() {
|
render() {
|
||||||
const { skuRow, isShowBigPicture, hasScrollTab } = this;
|
const { skuRow, largePicturePreview, hasScrollTab } = this;
|
||||||
const multipleNode = skuRow.is_multiple && (
|
const multipleNode = skuRow.is_multiple && (
|
||||||
<span class={bem('title-multiple')}>({t('multiple')})</span>
|
<span class={bem('title-multiple')}>({t('multiple')})</span>
|
||||||
);
|
);
|
||||||
@ -88,13 +88,15 @@ export default createComponent({
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
return (
|
return (
|
||||||
<div class={[bem(), BORDER_BOTTOM, isShowBigPicture && bem('picture')]}>
|
<div
|
||||||
|
class={[bem(), BORDER_BOTTOM, largePicturePreview && bem('picture')]}
|
||||||
|
>
|
||||||
<div class={bem('title')}>
|
<div class={bem('title')}>
|
||||||
{skuRow.k}
|
{skuRow.k}
|
||||||
{multipleNode}
|
{multipleNode}
|
||||||
</div>
|
</div>
|
||||||
{isShowBigPicture ? SkuContent : this.slots()}
|
{largePicturePreview ? SkuContent : this.slots()}
|
||||||
{isShowBigPicture && hasScrollTab && SkuScroll}
|
{largePicturePreview && hasScrollTab && SkuScroll}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -13,7 +13,7 @@ export default createComponent({
|
|||||||
type: Array,
|
type: Array,
|
||||||
default: () => [],
|
default: () => [],
|
||||||
},
|
},
|
||||||
isShowBigPicture: Boolean,
|
largePicturePreview: Boolean,
|
||||||
lazyLoad: Boolean,
|
lazyLoad: Boolean,
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ export default createComponent({
|
|||||||
render() {
|
render() {
|
||||||
const choosed = this.skuValue.id === this.selectedSku[this.skuKeyStr];
|
const choosed = this.skuValue.id === this.selectedSku[this.skuKeyStr];
|
||||||
const imgUrl = this.skuValue.imgUrl || this.skuValue.img_url;
|
const imgUrl = this.skuValue.imgUrl || this.skuValue.img_url;
|
||||||
const BEM_NAME = this.isShowBigPicture
|
const BEM_NAME = this.largePicturePreview
|
||||||
? 'van-sku-row__picture-item'
|
? 'van-sku-row__picture-item'
|
||||||
: 'van-sku-row__item';
|
: 'van-sku-row__item';
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ export default createComponent({
|
|||||||
]}
|
]}
|
||||||
onClick={this.onSelect}
|
onClick={this.onSelect}
|
||||||
>
|
>
|
||||||
{this.isShowBigPicture && (
|
{this.largePicturePreview && (
|
||||||
<img
|
<img
|
||||||
class={`${BEM_NAME}-img-icon`}
|
class={`${BEM_NAME}-img-icon`}
|
||||||
src="https://img.yzcdn.cn/upload_files/2020/06/18/Fn6Qf0fGRFyuD8xh0Gi1w2ng59G1.png"
|
src="https://img.yzcdn.cn/upload_files/2020/06/18/Fn6Qf0fGRFyuD8xh0Gi1w2ng59G1.png"
|
||||||
@ -68,7 +68,7 @@ export default createComponent({
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{imgUrl &&
|
{imgUrl &&
|
||||||
(this.isShowBigPicture && this.lazyLoad ? (
|
(this.largePicturePreview && this.lazyLoad ? (
|
||||||
<img class={`${BEM_NAME}-img`} src={imgUrl} vLazy={imgUrl} />
|
<img class={`${BEM_NAME}-img`} src={imgUrl} vLazy={imgUrl} />
|
||||||
) : (
|
) : (
|
||||||
<img class={`${BEM_NAME}-img`} src={imgUrl} />
|
<img class={`${BEM_NAME}-img`} src={imgUrl} />
|
||||||
|
@ -35,7 +35,7 @@ export const skuData = {
|
|||||||
],
|
],
|
||||||
k_s: 's1',
|
k_s: 's1',
|
||||||
count: 2,
|
count: 2,
|
||||||
is_support_big_picture: true,
|
large_picture_preview: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
k: '尺寸',
|
k: '尺寸',
|
||||||
|
@ -157,7 +157,7 @@
|
|||||||
:message-config="messageConfig"
|
:message-config="messageConfig"
|
||||||
:custom-sku-validator="customSkuValidator"
|
:custom-sku-validator="customSkuValidator"
|
||||||
:properties="skuData.properties"
|
:properties="skuData.properties"
|
||||||
:is-hide-sku-header-img="true"
|
:show-header-image="false"
|
||||||
disable-stepper-input
|
disable-stepper-input
|
||||||
reset-stepper-on-hide
|
reset-stepper-on-hide
|
||||||
safe-area-inset-bottom
|
safe-area-inset-bottom
|
||||||
|
Loading…
x
Reference in New Issue
Block a user