addSizeInfo.js 6.36 KB
/**
 * Created by ty on 2016/3/24.
 */
var $ = require('jquery'),
    common = require('../common/common'),
    util = require('../common/util');

var hasClickEvent = false//判断保存按钮是否有点击事件;

$(document).on('click', '#searchSku', function() {
    var val = $.trim($("#skuInput").val());
    if(!val.match(/^[0-9]+$/)) {
        util.__tip("输入不合法", "warning");
        return;
    }
    if(val) {
        $("#add-list").hide();
        common.util.__ajax({
            url:'/meterManage/productSize/queryProdSizeList',
            data:{productSku:val}
        },function(res) {
            if(res.data.list && res.data.list.length > 0) {
                var e = new common.edit("#add-list");

                var item = res.data.list[0];
                var headList = [];
                var j = 0;//创造一个变量以供赋值
                if(item.sizeRelationsList.length > 0) {
                    headList.push({display: "尺码", name: "sizeName"});//尺码
                    headList.push({
                        display: "参考尺码(" + item.genderName + ")", name: "referenceName", render: function (item) {//参考尺码列
                            var refName = item.referenceName ? item.referenceName : "";//非空判断
                            return '<input class="form-control refInfo" data-index="' + item.__index + '"' + 'value="' + refName + '"/>';
                        }
                    });
                    for (var i = 0; i < item.sizeRelationsList[0].prdSizeAttributeBoList.length; i++) {//尺码列
                        var sizeAttributes = item.sizeRelationsList[0].prdSizeAttributeBoList[i];//参考尺码数组里的数据
                        var chkbox = '<label style="cursor: pointer;"><input type="checkbox" name="noMeasureIds" value="' + sizeAttributes.sizeAttributeId + '"/>无需测量</label>';
                        headList.push({
                            display: sizeAttributes.sizeAttributeName + "<br>" + chkbox,
                            name: "sizeValue",
                            render: function (item) {
                                var prdList = item.prdSizeAttributeBoList;
                                if (j == prdList.length) j = 0;//防止越界
                                var sizeVal = prdList[j].sizeValue ? prdList[j].sizeValue : "";
                                //j++;//
                                return '<input class="form-control sizeInfo '+ prdList[j++].sizeAttributeId
                                    +'" data-index="' + item.__index + '"' + 'value="' + sizeVal + '"/>';
                            }
                        });
                    }
                }

                var grid=new common.grid({
                    el:"#content-list",
                    hash: false,
                    columns:headList
                });
                grid.init(item.sizeRelationsList);
                //$("#add-saveArea").show();
                $("#add-head").html(common.util.__template2($("#modifySize-template").html(), item));
                $("#noMeasureIds").val(item.noMeasureIds? item.noMeasureIds.join("|"):"");
                $("#add-list").show();
                e.init();
                if(!hasClickEvent) {
                    hasClickEvent = true;
                    $(document).on('click', '#add-saveBtn', function () {

                        var flag = false;
                        $("input[name='noMeasureIds']").not("input:checked").each(function () {
                            $("." + $(this).val()).each(function() {
                                if(!$(this).val()){
                                    flag = true;
                                    return false;
                                }
                            });
                            if(flag) return false;
                        });
                        if (flag) {
                            util.__tip("请将没有勾选无需测量的列填写完整!", "warning");
                            return false;
                        }

                        var noMeasureIds = JSON.stringify($("#noMeasureIds").val()?$("#noMeasureIds").val().split("|"):[]);//无需测量的列
                        //尺码信息列表
                        var sizeInfoList = [];
                        for(var i = 0; i < $(".sizeInfo").length; i++){
                            var info = $($(".sizeInfo")[i]);//当前尺码input对象
                            var prdList = grid.rows[info.data("index")].prdSizeAttributeBoList;//当前列的对象的尺码列表
                            var attrIndex = parseInt(i%prdList.length);//在当前列的索引
                            sizeInfoList[i] = ({
                                productSkn: item.productSkn,
                                sizeId:grid.rows[info.data("index")].sizeId,
                                sizeAttributeId:prdList[attrIndex].sizeAttributeId,
                                sizeValue:info.val()
                            });
                        }
                        //商品参考尺码
                        var productSizeReferList = [];
                        for(var i = 0; i < $(".refInfo").length; i++) {
                            var ref = $($(".refInfo")[i]);
                            productSizeReferList.push({
                                sizeId: grid.rows[ref.data("index")].sizeId,
                                gender: item.gender,
                                referenceName: ref.val()
                            });
                        }
                        common.util.__ajax({
                            url:"/meterManage/productSize/saveProdSizeInfo",
                            data:{
                                productSkn: item.productSkn,
                                noMeasureIds: noMeasureIds,
                                sizeInfoList: JSON.stringify(sizeInfoList),
                                productSizeReferList: JSON.stringify(productSizeReferList)
                            }
                        },function() {
                        });
                        return false;
                    });
                }
            }else {
               util.__tip("未搜索到sku:" + val);
            }
        },true);
    }
});

$("#skuInput").keydown(function() {
    if(event.keyCode == "13") {
        $("#searchSku").click();
    }
});