小程序商城商品添加的时候选择多规格遇到的问题

tiffaniy 28天前 131

当新增商品选择多规格,但是没有添加任何规则的时候是可以数据进行提交的!!

然后提交的商品无法点开编辑,必须要自己手动修改商品属性为10 并且在相应的库里面增加数据

这个问题请关注修复下


同时请问个问题,以下代码中
public function getManySpecData($spec_rel, $skuData)
    {
        // spec_attr
        $specAttrData = [];
        foreach ($spec_rel as $item) {
            if (!isset($specAttrData[$item['spec_id']])) {
                $specAttrData[$item['spec_id']] = [
                    'group_id' => $item['spec']['id'],
                    'group_name' => $item['spec']['spec_name'],
                    'spec_items' => [],
                ];
            }
            $specAttrData[$item['spec_id']]['spec_items'][] = [
                'item_id' => $item['pivot']['spec_value_id'],
                'spec_value' => $item['spec_value'],
            ];
        }

        // spec_list
        $specListData = [];
        foreach ($skuData as $item) {
            $specListData[] = [
                'goods_spec_id' => $item['goods_spec_id'],
                'spec_sku_id' => $item['spec_sku_id'],
                'rows' => [],
                'form' => [
                    'goods_no' => $item['goods_no'],
                    'goods_price' => $item['goods_price'],
                    'goods_weight' => $item['goods_weight'],
                    'line_price' => $item['line_price'],
                    'stock_num' => $item['stock_num'],
                    'spec_image' => $item['spec_image'],
                ],
            ];
        }
        return ['spec_attr' => array_values($specAttrData), 'spec_list' => $specListData];
    }

这部分的数据处理是发生在什么情况下面的?谢谢,忘解答

if (!isset($specAttrData[$item['spec_id']])) {
                $specAttrData[$item['spec_id']] = [
                    'group_id' => $item['spec']['id'],
                    'group_name' => $item['spec']['spec_name'],
                    'spec_items' => [],
                ];
            }
最后于 26天前 被tiffaniy编辑
最新回复 (3)
  • 地虎降天龙 28天前
    感谢TA
    0 引用 2

    问题是您选择多规格后 没有增加对应的规格;
    我下面的版本会加入 空的判断:
    请加入下代码增加到:/public/assets/js/backend/litestoregoods.js
    的 88行:var dataParam = {spec_many: specMany.getData()};

                console.log(dataParam);

    之后:
    var formdata_tmp = form.serializeArray();

                var returnF = false;
                formdata_tmp.map(function (obj) {
                       if((obj.name == 'row[spec_type]' && obj.value =='20')
                        && dataParam.spec_many.spec_attr.length==0&& dataParam.spec_many.spec_list.length==0){
                            Toastr.error("请完善商品多规格");
                            returnF = true;
                            return false;
                       }
                 });
                if(returnF){
                   return false;
                }

    同页edit也一样增加 即可。

  • tiffaniy 楼主 28天前
    感谢TA
    0 引用 3

    非常感谢及时处理修复

  • yixin 2天前
    感谢TA
    0 引用 4

    楼主你能分享一下商品规格添加的前端和后端代码吗

  • 未登录
    5
返回