0.0.21 • Published 3 years ago

@retailwe/ui-goods-specs-popup v0.0.21

Weekly downloads
-
License
-
Repository
-
Last release
3 years ago

商品规格选择弹窗

引入

"usingComponents": {
  "wr-good-specs-popup": "@retailwe/ui-good-specs-popup/index"
}

代码演示

<goods-specs-popup
  id="goodsSpecsPopup"
  show="{{isSpuSelectPopupShow}}"
  title="{{details.title}}"
  src="{{specImg ? specImg : primaryImage}}"
  specList="{{details.specList}}"
  skuList="{{skuArray}}"
  bind:closeSpecsPopup="handlePopupHide"
  bind:change="chooseSpecItem"
  bind:changeNum="changeNum"
  bind:addCart="addCart"
  bind:buyNow="gotoBuy"
  isStock="{{isStock}}"
  isSlotButton="{{outOperateStatus ? true : false}}"
>
  <view slot="goods-price">
    <view class="popup-sku__price">
      <view
        class="popup-sku__price-num"
        wx:if="{{!isAllSelectedSku || (!promotionSubCode && isAllSelectedSku)}}"
      >
        <price
          price=" {{selectSkuSellsPrice ? selectSkuSellsPrice : minSalePrice }}"
          wr-class="popup-sku__price-num"
          type="lighter"
          fill="{{false}}"
        >
          {{selectSkuSellsPrice ? selectSkuSellsPrice : minSalePrice }}
        </price>
      </view>
      <block
        wx:if="{{selectSkuSellsPrice === 0 && minSalePrice !== maxSalePrice && !isAllSelectedSku}}"
      >
        <view class="delthrough"></view>
        <price
          price=" {{maxSalePrice }}"
          symbol=""
          wr-class="popup-sku__price-num"
          type="lighter"
          fill="{{false}}"
        >
          {{maxSalePrice }}
        </price>
      </block>
    </view>
  </view>
  <view slot="bottomSlot">
    <wr-toast id="toast2" wr-class="skuToast"></wr-toast>
  </view>
  <view
    class="sku-operate sku-operate-confirm "
    slot="slotButton"
    wx:if="{{outOperateStatus}}"
  >
    <view
      class="btn selected-sku-btn {{!isStock ? 'disabled' : ''}}"
      bindtap="specsConfirm"
    >
      确定
    </view>
  </view>
</goods-specs-popup>
interface SpecsValueListItem {
  hasStockObj: HasStockParams;
  specValue: string;
  specValueId: string;
  isChoosed: boolean;
}

interface SpecsItem {
  title: string; // 规格名称
  specId: string; // 规格ID
  specValueList: SpecsValueListItem[];
}

interface SpecInfoItem {
  specId: string; // 规格ID
  specValueId: string; // 规格值ID
}

interface SkuListItem {
  skuId: string;
  quantity: number; // 库存数量
  specInfo?: SpecInfoItem[];
}

入参

参数说明类型默认值是否必要
specList规格数据SpecsItem[][]
skuList商品 sku 数据SkuListItem[][]
show显示隐藏Booleanfalse
title标题String''
src图片地址String''
isStock是否有库存Booleantrue
limitMaxCount限制最大选择数量Number999
limitMinCount限制最小选择数量Number1
count数量Number1
isSlotButton是否自定义按钮Booleanfalse

Events

事件是否必要说明
closeSpecsPopup关闭弹窗
changeNum数量选择事件,返回所选数量
change返回选择的规格对象数组 selectedSku 和 规格是否全选 isAllSelectedSku
addCart加入购物车
buyNow立即购买, 返回是否全选 isAllSelectedSku

selectedSku 解释

[
  {
    specId: specValueId // 规格ID: 规格值ID
  }
]

外部样式类

类名说明
wr-class根节点样式类
specs-class规格样式
price-class价格样式

slot

name说明
goods-price价格 插槽 , 需要自己处理价格显示逻辑
bottomSlot底部 插槽
slotButton按钮插槽
0.0.20

3 years ago

0.0.21

3 years ago

0.0.19

4 years ago

0.0.18

4 years ago

0.0.17

4 years ago

0.0.16

4 years ago

0.0.15

4 years ago

0.0.14

4 years ago

0.0.13

4 years ago

0.0.12

4 years ago

0.0.11

4 years ago

0.0.10

4 years ago