addSizeInfo.js 6.4 KB
/**
 * Created by ty on 2016/3/24.
 */
var $ = require('jquery');
var common = require('../common/common');
var 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();
    }
});