商品多规格下单处理数据
多商品规格下单,选择规格切换对应规格的价格和库存。 在获取商品详情之后处理数据
let goodsSpecList = res.data.item_prop //商品规格
let goodsSpecPrice = res.data.item_spec //不同规格对应的价格
let priceKey = []
let specname = []
for (let i = 0; i < goodsSpecList.length; i++) {
priceKey.push(goodsSpecList[i].option[0].code)
specname.push(goodsSpecList[i].option[0].option)
}
this.setData({
goodsSpecList: goodsSpecList,
goodsSpecPrice: goodsSpecPrice,
specname: specname,
priceKey: priceKey,
specId: priceKey.join(-), //向接口传的规格
list: res.data,
})
for (let i = 0; i < goodsSpecPrice.length; i++) {
//获取价格
if (goodsSpecPrice[i].spc_code === this.data.specId) {
this.setData({
specPrice: goodsSpecPrice[i].price
})
}
}
**选择规格:**
chooseSpec(e) {
let priceKey = this.data.priceKey
let specname = this.data.specname
let index = e.currentTarget.dataset.idx
let itemId = e.currentTarget.dataset.itemid
priceKey.splice(index, 1, itemId)
this.setData({
itemId: itemId,
specname: specname,
priceKey: priceKey,
specId: priceKey.join(-), //商品规格
specname: specname
})
let goodsSpecPrice = this.data.goodsSpecPrice
for (let i = 0; i < goodsSpecPrice.length; i++) {
if (goodsSpecPrice[i].spc_code == this.data.specId) {
this.setData({
specPrice: goodsSpecPrice[i].price,
})
}
}
},
**页面**
选择规格:
<view class="color_box" wx:for="{
{goodsSpecList}}" wx:key="{
{index}}">
<view class="color_text">{
{
item.cname}}</view>
<view class="color_list" wx:for-item="itn">
<block wx:for="{
{item.option}}" wx:for-item="sub" wx:for-index="idx" wx:key="{
{index}}">
<view bindtap=chooseSpec data-idx={
{index}} data-specname={
{sub.option}} data-itemid={
{sub.code}}
class="{
{priceKey[index]===sub.code?origin:}}">{
{
sub.option}}</view>
</block>
</view>
</view>
价格:
<block wx:for="{
{goodsSpecPrice}}">
<view wx:if="{
{specId==item.spc_code}}">¥{
{
specPrice}}</view>
</block>
