each 数据获取attr_Flask蘑菇app sku页面(formatApi商品规格、测试数据)

服务端提供商品规格的API接口

图解:

1fb6859ba4e7003b9676d3a9c61beeb9.png

代码:

# 实现rpc接口
from application import jsonrpc
from flask import request
from .models import db,GoodsSKU
@jsonrpc.method('Goods.info')
def info(sku_id):
    """sku商品基本信息"""
    data = {}
    try:
        sku = GoodsSKU.query.filter(
            GoodsSKU.is_show == True,
            GoodsSKU.is_deleted == False,
            GoodsSKU.id==sku_id
        ).first()
        data = sku.__to_dict__()
    except:
        # todo 日志记录
        pass
​
    data["goods_price"] = float(data["goods_price"])
    data["maket_price"] = float(data["maket_price"])
    data["sale_price"] = float(data["sale_price"])
    data["description"] = sku.spu.__to_dict__().get("description")
    return data
​
@jsonrpc.method('Goods.image')
def image(sku_id):
    """sku商品图片"""
    image_list = []
    try:
        sku = GoodsSKU.query.filter(
            GoodsSKU.is_show == True,
            GoodsSKU.is_deleted == False,
            GoodsSKU.id==sku_id
        ).first()
        for banner in sku.images:
            item = banner.__to_dict__(["image_url"])
            image_list.append(item)
    except:
        # todo 日志记录
        pass
    return image_list
​
from .models import GoodsAttrVal
@jsonrpc.method("Goods.attribute")
def attribute(sku_id):
    """sku商品属性列表"""
    data = {}
    try:
        sku_val_list = GoodsAttrVal.query.filter(
            GoodsAttrVal.is_show == True,
            GoodsAttrVal.is_deleted == False,
            GoodsAttrVal.sku_id == sku_id,
            GoodsAttrVal.option_id == None
        ).order_by(
            db.desc(GoodsAttrVal.sort),
            db.desc(GoodsAttrVal.id)
        )
        # 循环每个轮播广告模型,转换成字典
        for sku_val_item in sku_val_list:
            item = sku_val_item.__to_dict__(["sku_id", "attr_id", "value"])
            item["attr"] = sku_val_item.attr.name
            data[item.get("attr")] = item.get("value")
        return data
    except:
        # todo 日志记录
        pass
​
from .models import Goods
@jsonrpc.method("Goods.recommend")
def recommend(sku_id):
    """同类推荐"""
    data = []
    try:
        sku = GoodsSKU.query.filter(
            GoodsSKU.is_show == True,
            GoodsSKU.is_deleted == False,
            GoodsSKU.id == sku_id,
        ).first()
​
        # 根据sku对应的分类ID获取同类的SPU商品
        spu_list = Goods.query.filter(
            Goods.is_show == True,
            Goods.is_deleted == False,
            Goods.category_id == sku.cate_id,
            Goods.id != sku.spu_id,
        ).order_by(
            db.desc(Goods.sort),
            db.desc(Goods.id)
        ).limit(8)
​
        for spu in spu_list:
            item = spu.__to_dict__(["id", "title", "image_url"])
            data.append(item)
    except:
        pass
​
    return data
​
from .models import GoodsAttr
@jsonrpc.method("Goods.format")
def format(sku_id):
    """sku商品属性规格"""
    current_sku = GoodsSKU.query.filter(
        GoodsSKU.is_show == True,
        GoodsSKU.is_deleted == False,
        GoodsSKU.id == sku_id,
    ).first()
    print(current_sku.sale_price)
    # 1. 获取属性以及属性的选项
    attr_list = GoodsAttr.query.filter(
        GoodsAttr.is_show == True,
        GoodsAttr.is_deleted == False,
        GoodsAttr.type_id == current_sku.spu.type_id,
    )
    attr_data = []
    for attr_item in attr_list:
        options = []
        if len( attr_item.options.all() ) > 0:
            for option_item in attr_item.options:
                options.append({
                    "id": option_item.id,
                    "name": option_item.option,
                })
            attr_data.append({
                "k": attr_item.name,
                "k_s": attr_item.id,
                'v': options
            })
​
    """
    [
      {
        'k': '颜色', 
        'k_s': 1, 
        'v': [
           {'id': 1, 'name': '天空蓝'}, 
           {'id': 2, 'name': '原谅绿'}, 
           {'id': 3, 'name': '玫瑰金'}
        ]
      }, 
      {'k': '内存', 'k_s': 2, 'v': [{'id': 4, 'name': '4G'}, {'id': 5, 'name': '6G'}, {'id': 6, 'name': '8G'}]}, 
      {'k': '机身存储', 'k_s': 10, 'v': [{'id': 7, 'name': '128G'}, {'id': 8, 'name': '256G'}, {'id': 9, 'name': '512G'}]}
    ]
    """
​
    # 获取同一款spu下所有的sku商品
    sku_list = GoodsSKU.query.filter(
        GoodsSKU.is_show == True,
        GoodsSKU.is_deleted == False,
        GoodsSKU.spu_id == current_sku.spu.id
    ).order_by(
        db.desc(GoodsSKU.sort),
        db.desc(GoodsSKU.id)
    )
​
    sku_data = []
    for sku in sku_list:
        sku_attr_list = GoodsAttrVal.query.filter(
            GoodsAttrVal.is_show == True,
            GoodsAttrVal.is_deleted == False,
            GoodsAttrVal.sku_id == sku.id,
            GoodsAttrVal.option_id!=None
        ).order_by(
            db.desc(GoodsAttrVal.sort),
            db.desc(GoodsAttrVal.id)
        )
​
        sku_attrs_data = {}
        for sku_attr_item in sku_attr_list:
            sku_attrs_data[str(sku_attr_item.attr_id)] = sku_attr_item.option_id
​
        sku_data.append({
            "id": sku.id,
            "price": int(float(sku.sale_price) * 100 ),
            "stock_num": int(sku.goods_num),
            **sku_attrs_data,
        })
    print(current_sku.sale_price)
    return {
        "tree":attr_data,
        "list":sku_data,
        "price": float(current_sku.sale_price), # 当前页面对应SKU的售价
        "stock_num": current_sku.goods_num, # 当前页面对应SKU商品的库存
        "none_sku": False,  #  是否无规格商品
        "hide_stock": False # 是否隐藏剩余库存
    }
​

测试数据添加如下:

INSERT INTO `mogu_goods_attribute_val` (`created_time`,`updated_time`,`sort`,`is_deleted`,`is_show`,`sku_id`,`attr_id`,`option_id`,`value`) VALUES ('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,1,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,4,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,7,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,1,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,4,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,8,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,1,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,4,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,9,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,1,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,5,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,7,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,1,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,5,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,8,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,1,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,5,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,9,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,1,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,6,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,7,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,1,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,6,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,8,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,1,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,6,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,9,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,2,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,4,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,7,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,2,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,4,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,8,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,2,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,4,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,9,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,2,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,5,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,7,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,2,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,5,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,8,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,2,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,5,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,9,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,2,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,6,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,7,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,2,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,6,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,8,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,2,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,6,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,9,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,3,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,4,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,7,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,3,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,4,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,8,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,3,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,4,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,9,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,3,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,5,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,7,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,3,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,5,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,8,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,3,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,5,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,9,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,3,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,6,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,7,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,3,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,6,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,8,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,1,3,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,2,6,NULL),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,3,NULL,'xe6x93x8dxe4xbdx9cxe7xb3xbbxe7xbbx9f'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,4,NULL,'xe9xbax92xe9xbax9f985'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,5,NULL,'0.515kg'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,6,NULL,'6.53xe8x8bxb1xe5xafxb8'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,7,NULL,'Type-C'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,8,NULL,'3200xe4xb8x87xe5x83x8fxe7xb4xa0'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,9,NULL,'5G'),('2020-09-02 11:10:47','2020-09-02 11:10:47',1,0,1,1,10,9,NULL);

客户端获取商品规格数据,代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover" />
    <title>Document</title>
    <link rel="stylesheet" href="../static/css/index.css"/>
    <link rel="stylesheet" href="../static/css/goods.css"/>
    <script src="../static/js/vue.min.js"></script>
    <script src="../static/js/vant.min.js"></script>
    <script src="../static/js/axios.js"></script>
    <script src="../static/js/api.js"></script>
    <script src="../static/js/common.js"></script>
    <script src="../static/js/uuid.js"></script>
</style>
</head>
<body>
    <div id="app">
        <van-tabs v-model="active" scrollspy sticky>
          <van-tab title="商品">
            <van-swipe :autoplay="3000">
              <van-swipe-item v-for="item in sku_image"><img :src="$settings.Host+item.image_url" alt=""></van-swipe-item>
            </van-swipe>
            <p class="title">{{sku_info.title}}</p>
            <div class="sale">
                <p class="p1">¥{{sku_info.sale_price}}<span>新品促销</span></p>
                <p class="p2">销量{{sku_info.sale_num}}</p>
            </div>
            <!-- 优惠券单元格 -->
            <van-cell is-link icon="../static/images/icon/coupon.png">
              <template #title>
                <span class="custom-title">领取优惠券</span>
              </template>
            </van-cell>
            <van-cell is-link @click="showList=true">
              <template #title>
                <span class="custom-title">请选择规格</span>
              </template>
            </van-cell>
            <van-cell is-link>
              <template #title>
                <span class="custom-title">商品评价(99)</span>
              </template>
            </van-cell>
          </van-tab>
          <van-tab title="属性">
            <van-cell-group>
            <van-cell title="商品属性" size="large" />
            </van-cell-group>
            <div id="con_two_2">
                    <div class="canshu" v-for="value,attr in sku_attr_val">
                        <div class="canshu_1">
                            <p class="pl">{{attr}}</p>
                            <p class="pr">{{value}}</p>
                        </div>
                    </div>
                </div>
          </van-tab>
          <van-tab title="详情">
            <van-cell-group>
            <van-cell title="商品详情" size="large" />
            </van-cell-group>
                {{sku_info.description}}
          </van-tab>
        </van-tabs>
        <van-cell-group>
            <van-cell title="同类推荐" size="large" />
        </van-cell-group>
        <div class="goods-list">
                <van-grid column-num="4" :center="false">
          <van-grid-item @click="goto_goods_page(goods.id)" v-for="goods in recommend_goods_list">
                        <label>{{goods.title}}</label>
            <van-image :src="$settings.Host+goods.image_url"></van-image>
          </van-grid-item>
          </van-grid>
    </div>
        <van-tabbar v-model="tabbar_active" active-color="#ff2150" inactive-color="#000" @change="onTabbarChange">
            <van-tabbar-item :name="nav.name" :icon="nav.icon" v-for="nav in common_nav_list">{{nav.name}}</van-tabbar-item>
        </van-tabbar>
        <!-- 商品规格 -->
        <van-sku
          v-model="showList"
          :sku="sku"
          :goods="goods"
          :goods-id="goodsId"
          :quota="quota"
          :quota-used="quotaUsed"
          :hide-stock="sku.hide_stock"
          @buy-clicked="onBuyClicked"
          @add-cart="onAddCartClicked"
        />
​
    </div>
    <script>
    // 在 #app 标签下渲染一个按钮组件
    new Vue({
        el: '#app',
        data:{
            goodsId:"946755",
            quota:0,
            "quota-used": 0,
            quotaUsed:0,
        active: "",
        tabbar_active: "home",
        chosenCoupon: -1,
        showList: false,
            sku_info:{
                    // SKU商品基本信息
                    sku_id: 1,
                    title:"", // 商品图片
            },
            sku_image:[{},{},{}],  // SKU商品图片列表
            sku_attr_val: {},      // SKU商品属性列表
            recommend_goods_list:[], // 同类商品推荐
            sku: {
              // 所有sku规格类目与其值的从属关系,比如商品有颜色和尺码两大类规格,颜色下面又有红色和蓝色两个规格值。
              // 可以理解为一个商品可以有多个规格类目,一个规格类目下可以有多个规格值。
              tree: [
                    {
                  k: '颜色', // 属性名称
                  k_s: 's1', // 属性ID
                  v: [
                    {
                      id: '1', // 选项ID
                      name: '红色', // 选项名称
                    },
                    {
                      id: '2',
                      name: '蓝色',
                    }
                  ],
                },
                    {
                        k: '运行内存', // 属性名称
                        k_s: 's2', // 属性ID
                        v: [
                            {
                                id: '3', // 选项ID
                                name: '4G', // 选项名称
                            },
                            {
                                id: '4',
                                name: '6G',
                            }
                        ],
                    }
              ],
              // 所有 sku 的组合列表,比如红色、M 码为一个 sku 组合,红色、S 码为另一个组合
              list: [
                    {
                        id: 2259, // skuId
                        s1: '1', // 规格类目 k_s 为 s1 的对应规格值 id
                        s2: '3', // 规格类目 k_s 为 s2 的对应规格值 id
                        price: 10000, // 价格(单位分)
                        stock_num: 50 // 当前 sku 组合对应的库存
                    },
                    {
                        id: 2259, // skuId
                        "1": '1', // 规格类目 k_s 为 s1 的对应规格值 id
                        2: '4', // 规格类目 k_s 为 s2 的对应规格值 id
                        price: 19900, // 价格(单位分)
                        stock_num: 10 // 当前 sku 组合对应的库存
                    },
                    {
                        id: 2259, // skuId
                        s1: '2', // 规格类目 k_s 为 s1 的对应规格值 id
                        s2: '3', // 规格类目 k_s 为 s2 的对应规格值 id
                        price: 100, // 价格(单位分)
                        stock_num: 110 // 当前 sku 组合对应的库存
                    },
                    {
                        id: 2259, // skuId
                        s1: '2', // 规格类目 k_s 为 s1 的对应规格值 id
                        s2: '4', // 规格类目 k_s 为 s2 的对应规格值 id
                        price: 100, // 价格(单位分)
                        stock_num: 110 // 当前 sku 组合对应的库存
                    }
              ],
              price: '99.00', // 默认价格(单位元)
              stock_num: 227, // 商品总库存
              none_sku: false, // 是否无规格商品
              hide_stock: false // 是否隐藏剩余库存
            },
            goods: {
              // 默认商品 sku 缩略图
              picture: '../static/images/goods/c77c94908f9ff5c3.jpg',
            },
            common_nav_list:[],
            tabbar_active: "分类",
        },
        created(){
                this.get_common_nav();
                this.get_sku_info();
                this.get_sku_image();
                this.get_sku_attr_list();
                this.get_recommend_goods();
                this.get_goods_format();
        },
        methods:{
              get_goods_format(){
                    // 获取当前SPU下所有sku商品的规格数据
                    // 获取SKU商品基本信息
                    this.$axios.post(`${this.$settings.Host}/api`,{
                        id: this.$uuid(),
                        method: "Goods.format",
                        params: {"sku_id": this.sku_info.sku_id},
                        jsonrpc: "2.0"
                    }).then(response=>{
                        this.sku = response.data.result;
                        // 默认左起第一次菜单高亮显示
                    }).catch(error=>{
                        alert("网络异常,无法获取商品规格信息");
                    });
                },
              get_sku_info(){
                    // 获取SKU商品基本信息
                    this.$axios.post(`${this.$settings.Host}/api`,{
                        id: this.$uuid(),
                        method: "Goods.info",
                        params: {"sku_id": this.sku_info.sku_id},
                        jsonrpc: "2.0"
                    }).then(response=>{
                        this.sku_info = response.data.result;
                        // 默认左起第一次菜单高亮显示
                    }).catch(error=>{
                        alert("网络异常,无法获取商品基本信息");
                    });
                },
              get_sku_image(){
                    // 获取SKU商品图片列表
                    this.$axios.post(`${this.$settings.Host}/api`,{
                        id: this.$uuid(),
                        method: "Goods.image",
                        params: {"sku_id": this.sku_info.sku_id},
                        jsonrpc: "2.0"
                    }).then(response=>{
                        this.sku_image = response.data.result;
                    }).catch(error=>{
                        alert("网络异常,无法获取商品图片");
                    });
                },
                get_sku_attr_list(){
                    // 获取SKU商品属性列表
                    this.$axios.post(`${this.$settings.Host}/api`,{
                        id: this.$uuid(),
                        method: "Goods.attribute",
                        params: {"sku_id": this.sku_info.sku_id},
                        jsonrpc: "2.0"
                    }).then(response=>{
                        this.sku_attr_val = response.data.result;
                    }).catch(error=>{
                        alert("网络异常,无法获取商品图片");
                    });
                },
                get_recommend_goods(){
                    this.$axios.post(`${this.$settings.Host}/api`,{
                        id: this.$uuid(),
                        method: "Goods.recommend",
                        params: {"sku_id": this.sku_info.sku_id},
                        jsonrpc: "2.0"
                    }).then(response=>{
                        this.recommend_goods_list = response.data.result;
                    }).catch(error=>{
                        alert("网络异常,无法获取商品图片");
                    });
                },
                goto_goods_page(spu_id){
                    // 跳转到商品详情页
​
                },
            onTabbarChange(event) {
              this.tabbar_active=event;
            },
            onBuyClicked(){
​
            },
            onAddCartClicked(){
​
            },
                get_common_nav(){
                    // 获取公共底部导航
                    this.$axios.post(`${this.$settings.Host}/api`,{
                        id: this.$uuid(),
                        method: "Common.nav",
                        params: [],
                        jsonrpc: "2.0"
                    }).then(response=>{
                        this.common_nav_list = response.data.result;
                        // 默认左起第一次菜单高亮显示
                    }).catch(error=>{
                        alert("网络异常,无法获取底部导航");
                    });
                }
        },
​
    });
​
    // 通过 CDN 引入时不会自动注册 Lazyload 组件
    // 可以通过下面的方式手动注册
    Vue.use(vant.CouponCell);
    Vue.use(vant.CouponList);
    </script>
​
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值