meterSize.js 8.41 KB
/**
 * Created by ty on 2016/3/22.
 * 测量尺码管理
 */

var $ = require('jquery'),
    common = require('../common/common'),
    util = require('../common/util');

new common.edit("#filter").init();

//new common.dropDown({el: "#brand-filter", "ajax": "getSelectItems"});
new common.dropDown({el: "#hasMeasure-filter"});
new common.dropDown({el: "#brand-filter", ajax: "brand",params:function(){
    return {status:1};
}});
//new common.dropDown({el: "#category-filter", "ajax": "getHelpCategory"});

var tabTree=new common.tabTree("#category-filter",{
    columns: [{
        state: "prov",
        text: "一级分类",
        hide: false,
        addclass: ""
    }],
    datas:[{id:"",name:""}]
});
tabTree.init();
//tabTree.getAddress()&&tabTree.getAddress()[0].id
//tabTree.isfeeze=true;

var g = new common.grid({
    el: "#content-list",
    hash: false,
    parms: function () {
        return {
            productSkn: common.util.__input('skn-filter'),
            brandId: common.util.__input('brand-filter'),
            productSku: common.util.__input('sku-filter'),
            arriveStartTime: new Date(common.util.__input('startTime')).getTime()/1000,
            arriveEndTime: new Date(common.util.__input('endTime')).getTime()/1000,
            isMeasure: common.util.__input('hasMeasure-filter'),
            maxSortId:tabTree.getAddress()[0]?tabTree.getAddress()[0].id:""
        };
    },
    columns: [
        {display: "SKN", name: "productSkn"},
        {display: "名称", name: "productName"},
        {display: "品牌", name: "brandName"},
        {display: "分类", name: "productType"},
        {display: "性别", name: "genderName"},
        {
            display: "尺码",
            name: "sizeRelationsList",
            render: function(item) {
                return common.util.__template2($("#sizeinfo-template").html(), item);
            }
        },
        {
            display: "到货时间",
            name: "",
            render: function(item) {
                return Bll.getLocalTime(item.expectArrivalTime);
            }
        },
        {
            display: "操作",name: "", render: function (item) {
                var arr = [];
                arr.push('<a class="btn btn-info add2" data-index="' + item.__index + '">编辑</a>');
                return arr.join("");
            }
        }
    ]

});

g.init("/meterManage/productSize/queryProdSizeList");

var Bll = {
    getLocalTime:function(nS) {
        var date = new Date(parseInt(nS) * 1000);
        var mm = date.getMonth() + 1;
        var dd = date.getDate();
        var h = date.getHours();
        var min = date.getMinutes();
        var second = date.getSeconds();
        return date.getFullYear() + "-" + (mm < 10 ? "0" + mm : mm) + "-" + (dd < 10 ? "0" + dd : dd) + " " + (h < 10 ? "0" + h : h) + ":"
            + (min < 10 ? "0" + min : min) + ":" + (second < 10 ? "0" + second : second);
    },
    toast:function(url, item, hint) {
        var e = new common.edit("#nidaye");

        e.on('validate', 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)
                return "请将没有勾选无需测量的列填写完整!";
        });

        var dialog=new common.dialog({
            title:hint,
            content:'<div id="nidaye"><input type="hidden" id="noMeasureIds" for="checkbox">'+ common.util.__template2($("#modifySize-template").html(), item) +'<div id="faGrid" style="height: 600px;overflow:auto;"></div></div>',
            width: "90%",
            button:[{
                value:"提交",
                callback:function(){
                    e.submit(url,function(option){
                    //option.data;=

                        option.data.productSkn = item.productSkn;
                        option.data.noMeasureIds = $("#noMeasureIds").val()?$("#noMeasureIds").val().split("|"):[];
                        option.data.noMeasureIds = JSON.stringify(option.data.noMeasureIds);
                        option.data.sizeInfoList = [];
                        for(var i = 0; i < $(".sizeInfo").length; i++){
                            var info = $($(".sizeInfo")[i]);
                            option.data.sizeInfoList[i] = ({
                                productSkn: item.productSkn,
                                sizeId:grid.rows[info.data("index")].sizeId,
                                sizeAttributeId:grid.rows[info.data("index")].prdSizeAttributeBoList[parseInt(i%grid.rows[info.data("index")].prdSizeAttributeBoList.length)].sizeAttributeId,
                                sizeValue:info.val()
                            });
                        }
                        option.data.sizeInfoList = JSON.stringify(option.data.sizeInfoList);
                        option.data.productSizeReferList = [];
                        for(var i = 0; i < $(".refInfo").length; i++) {
                            var ref = $($(".refInfo")[i]);
                            option.data.productSizeReferList.push({
                                sizeId: grid.rows[ref.data("index")].sizeId,
                                gender: item.gender,
                                referenceName: ref.val()
                            });
                        }
                        option.data.productSizeReferList = JSON.stringify(option.data.productSizeReferList);

                        option.success=function(res){
                            dialog.close();
                            util.__tip(res.data.message, 'success');
                            g.reload();
                        };
                        option.error=function(res){
                            //dialog.close();
                            util.__tip(res.message);
                        }
                    });
                        return false;
                }},
                {
                    value:"取消"
            }]
        });
        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) {
                        if (j == item.prdSizeAttributeBoList.length) j = 0;//防止越界
                        var sizeVal = item.prdSizeAttributeBoList[j].sizeValue ? item.prdSizeAttributeBoList[j].sizeValue : "";
                        //j++;//
                        return '<input class="form-control sizeInfo '+ item.prdSizeAttributeBoList[j++].sizeAttributeId +'" data-index="' + item.__index + '"' + 'value="' + sizeVal + '"/>';
                    }
                });
            }
        }

            var grid=new common.grid({
                el:"#faGrid",
                hash: false,
                columns:headList
            });
            grid.init(item.sizeRelationsList);
            $("#noMeasureIds").val(item.noMeasureIds? item.noMeasureIds.join("|"):"");
            e.init();
        }
    };

$(document).on('click', '#filter-btn', function() {
    g.reload(1);
});

$(document).on('click', '.add2', function () {
    var item = g.rows[$(this).data("index")];
    Bll.toast("/meterManage/productSize/saveProdSizeInfo", item, "修改尺码");
});