|
@@ -0,0 +1,194 @@
|
|
|
+<template>
|
|
|
+ <div class="sku-cell">
|
|
|
+ <van-cell title="规格" value="请选择规格数量" @click="show = true" is-link/>
|
|
|
+ <van-sku
|
|
|
+ v-model="show"
|
|
|
+ :sku="sku"
|
|
|
+ :goods="goods"
|
|
|
+ :goods-id="goodsInfo.goodsId"
|
|
|
+ :quota="quota"
|
|
|
+ :quota-used="quotaUsed"
|
|
|
+ :hide-stock="sku.hide_stock"
|
|
|
+ :properties="properties"
|
|
|
+ @buy-clicked="onBuyClicked"
|
|
|
+ @add-cart="onAddCartClicked"
|
|
|
+ >
|
|
|
+ <template #sku-header-price="props">
|
|
|
+ <div class="van-sku__goods-price">
|
|
|
+ <span class="van-sku__price-symbol">¥</span
|
|
|
+ ><span class="van-sku__price-num">{{ props.price }}</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template #sku-actions="props">
|
|
|
+ <div class="van-sku-actions">
|
|
|
+ <van-button @click="onPayProduct(props)" color="#FF5B00">立即购买</van-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </van-sku>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+export default {
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ show: false,
|
|
|
+ sku: {
|
|
|
+ // 所有sku规格类目与其值的从属关系,比如商品有颜色和尺码两大类规格,颜色下面又有红色和蓝色两个规格值。
|
|
|
+ // 可以理解为一个商品可以有多个规格类目,一个规格类目下可以有多个规格值。
|
|
|
+ tree: [
|
|
|
+ // {
|
|
|
+ // k: '规格', // skuKeyName:规格类目名称
|
|
|
+ // k_s: 's1', // skuKeyStr:sku 组合列表(下方 list)中当前类目对应的 key 值,value 值会是从属于当前类目的一个规格值 id
|
|
|
+ // v: [
|
|
|
+ // {
|
|
|
+ // id: '1', // skuValueId:规格值 id
|
|
|
+ // name: '红色', // skuValueName:规格值名称
|
|
|
+ // imgUrl: 'https://img01.yzcdn.cn/1.jpg', // 规格类目图片,只有第一个规格类目可以定义图片
|
|
|
+ // previewImgUrl: 'https://img01.yzcdn.cn/1p.jpg' // 用于预览显示的规格类目图片
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // id: '1',
|
|
|
+ // name: '蓝色',
|
|
|
+ // imgUrl: 'https://img01.yzcdn.cn/2.jpg',
|
|
|
+ // previewImgUrl: 'https://img01.yzcdn.cn/2p.jpg'
|
|
|
+ // }
|
|
|
+ // ],
|
|
|
+ // largeImageMode: true // 是否展示大图模式
|
|
|
+ // }
|
|
|
+ ],
|
|
|
+ // 所有 sku 的组合列表,比如红色、M 码为一个 sku 组合,红色、S 码为另一个组合
|
|
|
+ list: [
|
|
|
+ {
|
|
|
+ id: 2259, // skuId
|
|
|
+ s1: '1', // 规格类目 k_s 为 s1 的对应规格值 id
|
|
|
+ s2: '1', // 规格类目 k_s 为 s2 的对应规格值 id
|
|
|
+ price: 100, // 价格(单位分)
|
|
|
+ stock_num: 110 // 当前 sku 组合对应的库存
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ price: '1.00' // 默认价格(单位元)
|
|
|
+ // stock_num: 227, // 商品总库存
|
|
|
+ // collection_id: 2261, // 无规格商品 skuId 取 collection_id,否则取所选 sku 组合对应的 id
|
|
|
+ // none_sku: false, // 是否无规格商品
|
|
|
+ // hide_stock: false // 是否隐藏剩余库存
|
|
|
+ },
|
|
|
+ properties: [
|
|
|
+ // 商品属性
|
|
|
+ {
|
|
|
+ k_id: 123, // 属性id
|
|
|
+ k: '规格', // 属性名
|
|
|
+ is_multiple: false, // 是否可多选
|
|
|
+ v: [
|
|
|
+ {
|
|
|
+ id: 1222, // 属性值id
|
|
|
+ name: '珍珠', // 属性值名
|
|
|
+ price: 1, // 属性值加价
|
|
|
+ text_status: 1 // 属性启用/禁用状态 0 - 禁用,1 - 启用
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1223,
|
|
|
+ name: '椰果',
|
|
|
+ price: 1,
|
|
|
+ text_status: 1
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1222, // 属性值id
|
|
|
+ name: '珍珠', // 属性值名
|
|
|
+ price: 1, // 属性值加价
|
|
|
+ text_status: 1 // 属性启用/禁用状态 0 - 禁用,1 - 启用
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1223,
|
|
|
+ name: '椰果',
|
|
|
+ price: 1,
|
|
|
+ text_status: 1
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1222, // 属性值id
|
|
|
+ name: '珍珠', // 属性值名
|
|
|
+ price: 1, // 属性值加价
|
|
|
+ text_status: 1 // 属性启用/禁用状态 0 - 禁用,1 - 启用
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1223,
|
|
|
+ name: '椰果',
|
|
|
+ price: 1,
|
|
|
+ text_status: 1
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1222, // 属性值id
|
|
|
+ name: '珍珠', // 属性值名
|
|
|
+ price: 1, // 属性值加价
|
|
|
+ text_status: 1 // 属性启用/禁用状态 0 - 禁用,1 - 启用
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1223,
|
|
|
+ name: '椰果',
|
|
|
+ price: 1,
|
|
|
+ text_status: 1
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1222, // 属性值id
|
|
|
+ name: '珍珠', // 属性值名
|
|
|
+ price: 1, // 属性值加价
|
|
|
+ text_status: 1 // 属性启用/禁用状态 0 - 禁用,1 - 启用
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1223,
|
|
|
+ name: '椰果',
|
|
|
+ price: 1,
|
|
|
+ text_status: 1
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ quota: 0,
|
|
|
+ quotaUsed: 0,
|
|
|
+ goods: {
|
|
|
+ picture: 'https://img01.yzcdn.cn/1.jpg'
|
|
|
+ },
|
|
|
+ goodsInfo: {
|
|
|
+ goodsId: 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ onBuyClicked ($event) {
|
|
|
+ console.log($event)
|
|
|
+ },
|
|
|
+ onAddCartClicked ($event) {
|
|
|
+ console.log($event)
|
|
|
+ },
|
|
|
+ onPayProduct ($event) {
|
|
|
+ console.log($event)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.van-image {
|
|
|
+ width: 18vw;
|
|
|
+ height: 18vw;
|
|
|
+}
|
|
|
+::v-deep .van-sku-header {
|
|
|
+ .van-sku__goods-price {
|
|
|
+ font-size: 3.7vw;
|
|
|
+ color: #F94B4B;
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+}
|
|
|
+.van-sku-actions {
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ box-sizing: border-box;
|
|
|
+ .van-button {
|
|
|
+ width: 80vw;
|
|
|
+ height: 12vw;
|
|
|
+ border-radius: 1.1vw;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|