mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
parent
4f8a592836
commit
d74147dad0
@ -53,7 +53,7 @@
|
|||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
v-if="hasSku"
|
v-if="hasSku"
|
||||||
class="van-sku-group-container van-hairline--bottom"
|
:class="skuGroupClass"
|
||||||
>
|
>
|
||||||
<sku-row
|
<sku-row
|
||||||
v-for="(skuTreeItem, index) in skuTree"
|
v-for="(skuTreeItem, index) in skuTree"
|
||||||
@ -182,6 +182,10 @@ export default create({
|
|||||||
type: Object,
|
type: Object,
|
||||||
default: () => ({})
|
default: () => ({})
|
||||||
},
|
},
|
||||||
|
showSoldoutSku: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
showAddCartBtn: {
|
showAddCartBtn: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
@ -246,6 +250,16 @@ export default create({
|
|||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
|
skuGroupClass() {
|
||||||
|
return [
|
||||||
|
'van-sku-group-container',
|
||||||
|
'van-hairline--bottom',
|
||||||
|
{
|
||||||
|
'van-sku-group-container--hide-soldout': !this.showSoldoutSku
|
||||||
|
}
|
||||||
|
];
|
||||||
|
},
|
||||||
|
|
||||||
bodyStyle() {
|
bodyStyle() {
|
||||||
if (this.$isServer) {
|
if (this.$isServer) {
|
||||||
return;
|
return;
|
||||||
@ -307,8 +321,9 @@ export default create({
|
|||||||
}
|
}
|
||||||
|
|
||||||
treeItem.v.forEach(vItem => {
|
treeItem.v.forEach(vItem => {
|
||||||
if (vItem.imgUrl) {
|
const img = vItem.imgUrl || vItem.img_url;
|
||||||
imageList.push(vItem.imgUrl);
|
if (img) {
|
||||||
|
imageList.push(img);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -54,14 +54,10 @@ export default create({
|
|||||||
// 目前skuImg都挂载在skuTree中s1那类sku上
|
// 目前skuImg都挂载在skuTree中s1那类sku上
|
||||||
const treeItem = this.sku.tree.filter(item => item.k_s === 's1')[0] || {};
|
const treeItem = this.sku.tree.filter(item => item.k_s === 's1')[0] || {};
|
||||||
|
|
||||||
if (!treeItem.v) {
|
if (!treeItem.v) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const matchedSku = treeItem.v.filter(skuValue => skuValue.id === id)[0];
|
const matchedSku = treeItem.v.filter(skuValue => skuValue.id === id)[0];
|
||||||
if (matchedSku && matchedSku.imgUrl) {
|
if (matchedSku) return (matchedSku.imgUrl || matchedSku.img_url);
|
||||||
return matchedSku.imgUrl;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
previewImage() {
|
previewImage() {
|
||||||
|
@ -15,6 +15,10 @@ export default {
|
|||||||
name: '天蓝色',
|
name: '天蓝色',
|
||||||
imgUrl:
|
imgUrl:
|
||||||
'https://img.yzcdn.cn/upload_files/2017/02/21/FjKTOxjVgnUuPmHJRdunvYky9OHP.jpg!100x100.jpg'
|
'https://img.yzcdn.cn/upload_files/2017/02/21/FjKTOxjVgnUuPmHJRdunvYky9OHP.jpg!100x100.jpg'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '1215',
|
||||||
|
name: '白色'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
k_s: 's1',
|
k_s: 's1',
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<demo-section>
|
<demo-section>
|
||||||
|
<!-- 基础用法 -->
|
||||||
<demo-block :title="$t('basicUsage')">
|
<demo-block :title="$t('basicUsage')">
|
||||||
<div class="sku-container">
|
<div class="sku-container">
|
||||||
<van-sku
|
<van-sku
|
||||||
@ -29,6 +30,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</demo-block>
|
</demo-block>
|
||||||
|
|
||||||
|
<!-- 自定义步进器 -->
|
||||||
<demo-block :title="$t('title2')">
|
<demo-block :title="$t('title2')">
|
||||||
<div class="sku-container">
|
<div class="sku-container">
|
||||||
<van-sku
|
<van-sku
|
||||||
@ -55,6 +57,34 @@
|
|||||||
</div>
|
</div>
|
||||||
</demo-block>
|
</demo-block>
|
||||||
|
|
||||||
|
<!-- 隐藏售罄sku -->
|
||||||
|
<demo-block :title="$t('hideSoldoutSku')">
|
||||||
|
<div class="sku-container">
|
||||||
|
<van-sku
|
||||||
|
hide-quota-text
|
||||||
|
v-model="showSoldout"
|
||||||
|
:sku="skuData.sku"
|
||||||
|
:goods="skuData.goods_info"
|
||||||
|
:goods-id="skuData.goods_id"
|
||||||
|
:hide-stock="skuData.sku.hide_stock"
|
||||||
|
:quota="skuData.quota"
|
||||||
|
:quota-used="skuData.quota_used"
|
||||||
|
:custom-stepper-config="customStepperConfig"
|
||||||
|
:message-config="messageConfig"
|
||||||
|
:show-soldout-sku="false"
|
||||||
|
@buy-clicked="onBuyClicked"
|
||||||
|
@add-cart="onAddCartClicked"
|
||||||
|
/>
|
||||||
|
<van-button
|
||||||
|
block
|
||||||
|
type="primary"
|
||||||
|
@click="showSoldout = true"
|
||||||
|
>
|
||||||
|
{{ $t('hideSoldoutSku') }}
|
||||||
|
</van-button>
|
||||||
|
</div>
|
||||||
|
</demo-block>
|
||||||
|
|
||||||
<demo-block :title="$t('advancedUsage')">
|
<demo-block :title="$t('advancedUsage')">
|
||||||
<div class="sku-container">
|
<div class="sku-container">
|
||||||
<van-sku
|
<van-sku
|
||||||
@ -122,12 +152,14 @@ export default {
|
|||||||
i18n: {
|
i18n: {
|
||||||
'zh-CN': {
|
'zh-CN': {
|
||||||
title2: '自定义步进器相关配置',
|
title2: '自定义步进器相关配置',
|
||||||
|
hideSoldoutSku: '隐藏售罄sku',
|
||||||
stepperTitle: '我要买',
|
stepperTitle: '我要买',
|
||||||
button1: '积分兑换',
|
button1: '积分兑换',
|
||||||
button2: '买买买'
|
button2: '买买买'
|
||||||
},
|
},
|
||||||
'en-US': {
|
'en-US': {
|
||||||
title2: 'Custom Stepper Related Config',
|
title2: 'Custom Stepper Related Config',
|
||||||
|
hideSoldoutSku: 'Hide Soldout Sku',
|
||||||
stepperTitle: 'Stepper title',
|
stepperTitle: 'Stepper title',
|
||||||
button1: 'Button',
|
button1: 'Button',
|
||||||
button2: 'Button'
|
button2: 'Button'
|
||||||
@ -140,6 +172,7 @@ export default {
|
|||||||
showBase: false,
|
showBase: false,
|
||||||
showCustom: false,
|
showCustom: false,
|
||||||
showStepper: false,
|
showStepper: false,
|
||||||
|
showSoldout: false,
|
||||||
closeOnClickOverlay: true,
|
closeOnClickOverlay: true,
|
||||||
initialSku: {
|
initialSku: {
|
||||||
s1: '30349',
|
s1: '30349',
|
||||||
|
@ -19,11 +19,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-group-container {
|
|
||||||
margin-left: 15px;
|
|
||||||
padding: 12px 0 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* sku header */
|
/* sku header */
|
||||||
&-header {
|
&-header {
|
||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
@ -85,6 +80,17 @@
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&-group-container {
|
||||||
|
margin-left: 15px;
|
||||||
|
padding: 12px 0 2px;
|
||||||
|
|
||||||
|
&--hide-soldout {
|
||||||
|
.van-sku-row__item--disabled {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* sku row */
|
/* sku row */
|
||||||
&-row {
|
&-row {
|
||||||
margin: 0 15px 10px 0;
|
margin: 0 15px 10px 0;
|
||||||
|
@ -14,6 +14,12 @@ exports[`renders demo correctly 1`] = `
|
|||||||
自定义步进器相关配置
|
自定义步进器相关配置
|
||||||
</span></button></div>
|
</span></button></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="sku-container">
|
||||||
|
<!----> <button class="van-button van-button--primary van-button--normal van-button--block"><span class="van-button__text">
|
||||||
|
隐藏售罄sku
|
||||||
|
</span></button></div>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="sku-container">
|
<div class="sku-container">
|
||||||
<!----> <button class="van-button van-button--primary van-button--normal van-button--block"><span class="van-button__text">
|
<!----> <button class="van-button van-button--primary van-button--normal van-button--block"><span class="van-button__text">
|
||||||
|
@ -102,6 +102,8 @@ Vue.use(Sku);
|
|||||||
| custom-stepper-config | 步进器相关自定义配置 | `Object` | `{}` | - |
|
| custom-stepper-config | 步进器相关自定义配置 | `Object` | `{}` | - |
|
||||||
| message-config | 留言相关配置 | `Object` | `{}` | - |
|
| message-config | 留言相关配置 | `Object` | `{}` | - |
|
||||||
| get-container | 指定挂载的节点,可以传入选择器,<br>或一个返回节点的函数 | `String | () => HTMLElement` | - | - |
|
| get-container | 指定挂载的节点,可以传入选择器,<br>或一个返回节点的函数 | `String | () => HTMLElement` | - | - |
|
||||||
|
| initial-sku | 默认选中的sku,具体参考高级用法 | `Object` | `{}` | - |
|
||||||
|
| show-soldout-sku | 是否展示售罄的sku,如果展示,则为置灰不可选状态,不展示则直接隐藏 | `Boolean` | `true` | - |
|
||||||
|
|
||||||
### Event
|
### Event
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user