ProductAdd.helper.js

//(function () {
var selectProductType;
var selectProductBrand;
var contetAttributesEx;
var contetSKUs;
//var contetProductAccessories;
var contetRelatedProduct;
//var baseAccessorieHTML;

var hfCurrentProductType;
var hfCurrentProductBrand;
var hfCurrentAttributes;
var hfCurrentBaseProductSKUs;
var hfCurrentProductSKUs;
var hfProductImages;
var hfProductAccessories;
var btnOpenSKUs;
//var btnAddProductAccessories;
var btnAddRelatedProduct;

//Start Package relevant
var packageCheckList;
var selectPackage;
var txtPackageKeyWord;
var hrCurrentSelectPackage;
var btnPackage;
var delPackage;
var packageWindow;
var PackageShow;
var allpackage;
var packageDiv;
//End Package relevant
var selectedAllPackage;
var attributesTR;
var skusTR;
//var productAccessoriesTR;

var optionDefault = ‘<option selected="selected" value="" >请选择</option>‘;
var optionHTML = ‘<option value="{0}">{1}</option>‘;

var attributHTML = ‘<table cellspacing="0" cellpadding="0" width="100%" AttributeId="{0}" attributemode="{1}" id="{2}"><tr><td class="td_class" id="AttributName" >{3} :</td><td height="25" ><div style="width:800px;"><ul id="AttributeContent"></ul></div></td></tr></table><h2></h2>‘; //
var SelectAttributHTML = ‘<tr class="colorclass" style="display:none;"><td class="td_class"></td><td><table cellspacing="0" cellpadding="0" width="100%" id="color_{0}" class="table" style="display: none; margin-top: 10px;margin-bottom: 10px;"><thead><tr><th class="th">颜色</th><th  class="th">图片(无图片可不填)</th></tr></thead><tbody></tbody></table></td></tr>‘;
var colorTr = ‘<tr id="{0}" style="display: none; "><td class="tile"><label id="selectValueLabel_{1}"  title="{2}">{3}</label></td><td class="td"><input type="file" id="File_{4}" accept="image/gif, image/jpeg"/><img id="imgURL_{5}" value="" style="width: 28px; height: 28px;" /><div id="fileQueue" style="display:none;"> </div></td></tr>‘;

var attributInputHTML = ‘<input type="{0}" />‘;
var attributeLabelHTML = ‘<label for="{0}" title="{1}"  >{2}</label> ‘;
var attributeLabelHTMLForSpec = ‘<label for="{0}"  id="attrValuelabel_{1}" title="{6}" >{2}</label> <input id="attrValueText_{3}" maxlength="15" type="text" value="{4}" vid="{5}" style="display: none; " class="edit">‘;

var alertMessageHTML = ‘<table style="width: 100%; border-bottom: none; border-top: none; float: left;" cellpadding="2" cellspacing="1" class="border"><tr><td class="td_class"></td><td height="25">{0}</td></tr></table>‘;

var attributInputMode = { "Radio": "radio", "CheckBox": "checkbox", "Text": "text" };

var attributTagsHtml = "<li class=‘colord7‘ id=‘tag{0}‘ style=‘MARGIN-LEFT: 2px! important;‘><a href=‘javascript:void(0)‘ style=‘‘color:#0078B6‘  data-tag=‘{0}‘>{1}<span class=‘delpackage‘ style=‘ cursor: pointer‘ data-tag={0}>×</span></a> </li>";
var isFirstLoadAccessories = true;
var isFirstLoadRelatedProduct = true;

$(document).ready(function () {
    InitInput();

$("[id$=‘txtProductSKU‘]").blur(function () {
        var currentText = $("[id$=‘txtProductSKU‘]");
        if (currentText.val()) {
            LoadCheckResult(currentText, currentText.val());
        }
    });

selectProductType = $("#SelectProductType");
    selectProductBrand = $("#SelectProductBrand");
    contetAttributesEx = $("#ContetAttributesEx");
    contetSKUs = $("#contetSKUs");
    //contetProductAccessories = $("#contetProductAccessories");
    contetRelatedProduct = $(‘#contetRelatedProduct‘);

//Start Package relevant

selectPackage = $("#ctl00_ContentPlaceHolder1_ddlSelectPackageCategory");
    txtPackageKeyWord = $("#txt4Keyword");
    packageCheckList = $("#packageList input:checkbox");
    hrCurrentSelectPackage = $(‘[id$=Hidden_SelectPackage]‘);
    selectedAllPackage = $("#allpackage");
    delPackage = $(".delpackage");
    packageWindow = $(".packageWindow");
    PackageShow = $("#PackageShow");
    allpackage = $("#allpackage");
    packageDiv = $("#packageDiv");

//End Package relevant

attributesTR = $(".AttributesTR");
    skusTR = $(".SKUsTR");
    btnPackage = $("#btnPackage");

hfCurrentProductType = $(‘[id$=hfCurrentProductType]‘);
    hfCurrentProductBrand = $(‘[id$=hfCurrentProductBrand]‘);
    hfCurrentAttributes = $(‘[id$=hfCurrentAttributes]‘);
    hfCurrentBaseProductSKUs = $(‘[id$=hfCurrentBaseProductSKUs]‘);
    hfCurrentProductSKUs = $(‘[id$=hfCurrentProductSKUs]‘);
    hfProductImages = $(‘[id$=hfProductImages]‘);
    btnOpenSKUs = $(‘#btnOpenSKUs‘);
    btnCloseSkus = $(‘#btnCloseSkus‘);
    // btnAddProductAccessories = $(‘#btnAddProductAccessories‘);
    btnAddRelatedProduct = $(‘#btnAddRelatedProducts‘);
    InitProductTypes();
    btnCloseSkus.hide();

//Clear Backward Val
    hfCurrentProductType.val(selectProductType.val());

//ProductType
    selectProductType.bind(‘change‘, function () {
        if (!$(this).val()) {
            hfCurrentProductType.val(‘‘);

//Clear Brand
            selectProductBrand.find(‘option‘).remove();
            selectProductBrand.append(optionDefault);

//Clear Attributes
            contetAttributesEx.find(‘table,h2‘).remove();
            attributesTR.hide();

//Clear SKU
            if (btnOpenSKUs.css(‘display‘) == ‘none‘) {
                contetSKUs.find(‘table‘).remove();
                contetSKUs.append(alertMessageHTML.format(‘请您先选择商品类型! <a href="javascript:void(0);" style="color:blue;" onclick=GoTab(0,"SelectProductType")>点此返回选择</a>‘));
                skusTR.show();
            }

return false;
        }
        if (hfCurrentProductType.val() && !confirm(‘切换商品类型将会导致已经编辑的品牌,属性和规格数据丢失,确定要切换吗?‘)) {
            $(this).val(hfCurrentProductType.val());
            return false;
        }
        hfCurrentProductType.val($(this).val());
        LoadProductBrands();
        LoadAttributes();
        if (btnOpenSKUs.css(‘display‘) == ‘none‘) {
            LoadSKUs();
            InitInput();
        }
    });

//ProductBrand
    selectProductBrand.bind(‘change‘, function () {
        hfCurrentProductBrand.val($(this).val());
    });

//Start Package relevant
    selectPackage.bind(‘change‘, function () {
        LoadPackageByCid(selectPackage.val(), txtPackageKeyWord.val());
    });
    txtPackageKeyWord.bind(‘keyup‘, function () {
        LoadPackageByCid(selectPackage.val(), txtPackageKeyWord.val());
    });

packageCheckList.die("click").live("click", function () {
        if ($(this).is(‘:checked‘)) {
            if (!(hrCurrentSelectPackage.val().indexOf($(this).val()) !== -1)) {
                if (hrCurrentSelectPackage.val().length <= 0) {
                    hrCurrentSelectPackage.val($(this).val());
                    selectedAllPackage.append(attributTagsHtml.format($(this).val(), $(this).attr("pname")));
                } else {
                    hrCurrentSelectPackage.val(hrCurrentSelectPackage.val() + "," + $(this).val());
                    selectedAllPackage.append(attributTagsHtml.format($(this).val(), $(this).attr("pname")));
                }
            }
        }
        else {
            hrCurrentSelectPackage.val(hrCurrentSelectPackage.val().replace("" + $(this).val() + ",", ""));
            hrCurrentSelectPackage.val(hrCurrentSelectPackage.val().replace("" + $(this).val() + "", ""));
            $("#tag" + $(this).val() + "").remove();
        }
        hrCurrentSelectPackage.val(hrCurrentSelectPackage.val().replace(",,", ","));
        $.colorbox.resize();
    });

delPackage.die("click").live("click", function () {
        $("#tag" + $(this).attr("data-tag") + "").remove();
        $("#p" + $(this).attr("data-tag") + "").prop("checked", false);
        hrCurrentSelectPackage.val(hrCurrentSelectPackage.val().replace("" + $(this).val() + ",", ""));
        hrCurrentSelectPackage.val(hrCurrentSelectPackage.val().replace("" + $(this).val() + "", ""));
    });
    packageWindow.click(function () {
        packageDiv.append(allpackage);
    });
    btnPackage.click(function () {
        PackageShow.prepend(allpackage);
        $.colorbox.close();
    });

//End Package relevant

//OpenSKU
    btnOpenSKUs.bind(‘click‘, function () {
        $(this).hide();
        $(‘#trbtnOpenSKUs‘).hide();
        btnCloseSkus.show();
        if (!hfCurrentProductType.val()) {
            contetSKUs.find(‘table‘).remove();
            contetSKUs.append(alertMessageHTML.format(‘请您先选择商品类型! <a href="javascript:void(0);" style="color:blue;" onclick=GoTab(0,"SelectProductType")>点此返回选择</a>‘));
            skusTR.show();
            return;
        }
        LoadSKUs();
        InitInput();
    });

$(‘[id$=txtShortDescription]‘).autosize();
    //ProductAccessories
    //    btnAddProductAccessories.bind(‘click‘, function () {
    //        $(‘#AddProductAccessoriesTR‘).hide();
    //        if (isFirstLoadAccessories) {
    //            isFirstLoadAccessories = false;
    //            //$.jBox.tip("努力为您加载中,请稍后...", ‘loading‘);
    ////            window.setTimeout(function () {
    ////                $.jBox.closeTip();
    ////                $("#Accessories").attr(‘src‘, ‘/Admin/Shop/Products/SelectAccessorieNew.aspx‘);
    //            //            }, 3000);
    //            $("#Accessories").attr(‘src‘, ‘/Admin/Shop/Products/SelectAccessorieNew.aspx‘);
    //        }
    //        contetProductAccessories.show();
    //    });

btnAddRelatedProduct.bind(‘click‘, function () {
        $(‘#AddRelatedProductTR‘).hide();
        if (isFirstLoadRelatedProduct) {
            isFirstLoadRelatedProduct = false;
            //$.jBox.tip("努力为您加载中,请稍后...", ‘loading‘);
            //            window.setTimeout(function () {
            //                $.jBox.closeTip();
            //                $("#RelatedProductIfram").attr(‘src‘, ‘/Admin/Shop/Products/SelectRelatedProducts.aspx‘);
            //            }, 3000);
            $("#RelatedProductIfram").attr(‘src‘, ‘/Admin/Shop/Products/SelectRelatedProducts.aspx‘);
        }
        contetRelatedProduct.show();
    });

$.dynatextarea($(‘[id$=txtShortDescription]‘), 300, $(‘#progressbar1‘));

$("#SelectProductType").get(0).selectedIndex = 0;
    $("#SelectProductType").change();
    $(‘#AttributeContent‘).find(‘input:checkbox‘).eq(0).attr(‘checked‘, ‘checked‘);
});

function InitInput() {
    $(".OnlyNum").OnlyNum();
    $(".OnlyFloat").OnlyFloat();
}

function GoTab(index, targetId) {
    nTabs($(‘[onclick="nTabs(this,‘ + index + ‘);"]‘).get(0), 0);
    if (targetId) {
        $(‘#‘ + targetId).focus();
    }
}

function SubForm() {

var flag_skuCodeExist = false;
    if (!PageIsValid()) {
        nTabs($(‘[onclick="nTabs(this,0);"]‘).get(0), 0);
        return false;
    }
    if (!$(‘[id$=Hidden_SelectValue]‘).val()) {
        alert(‘请选择商品所在分类‘);
        return false;
    }
    if (!hfCurrentProductType.val()) {
        alert(‘请选择商品类型‘);
        return false;
    }

if (!$("[id$=‘txtMarketPrice‘]").val()) {
        alert(‘请输入商品市场价格‘);
        return false;
    }
    if (!$(‘[id$=txtProductSKU]‘).val()) {
        alert(‘请输入商品编码‘);
        return false;
    } else {
        //Check SKU 是否存在
        $.ajax({
            url: ("/ShopManage.aspx?timestamp={0}").format(new Date().getTime()),
            type: ‘POST‘,
            dataType: ‘json‘,
            timeout: 10000,
            async: false,
            data: { Action: "IsExistSkuCode", SKUCode: $(‘[id$=txtProductSKU]‘).val() },
            //        beforeSend: function () {
            //            $.jBox.tip("正在检测商品编码的唯一性,请稍后...", ‘loading‘);
            //        },
            //        complete: function () {
            //            $.jBox.closeTip();
            //        },
            success: function (resultData) {
                switch (resultData.STATUS) {
                    case "FAILED":
                        //  $.jBox.closeTip();
                        $(‘[id$=txtProductSKU]‘).val(‘‘);
                        $(‘[id$=txtProductSKU]‘).focus();
                        flag_skuCodeExist = true;
                        break;
                    default:
                        break;
                }
            }, error: function (xmlHttpRequest, textStatus, errorThrown) {
                alert(xmlHttpRequest.responseText);
            }
        });
        if (flag_skuCodeExist) {
            alert(‘该商品编码已经存在,请重新输入!‘);
            return false;
        }
    }
    if (!$(‘[id$=txtSalePrice]‘).val()) {
        alert(‘请输入销售价‘);
        return false;
    }
    if (!$(‘[id$=txtStock]‘).val()) {
        alert(‘请输入商品库存‘);
        return false;
    }
    if (!$(‘[id$=txtAlertStock]‘).val()) {
        alert(‘请输入警戒库存‘);
        return false;
    }

//AttributesJson
    hfCurrentAttributes.val(JSON.stringify(GetAttributes()));
//    if (!hfCurrentAttributes.val() || hfCurrentAttributes.val() == ‘[]‘) {
//        alert(‘请选择商品的属性‘);
//        return false;
//    }

var flag_skuCode = false;
    flag_skuCodeExist = false;
    var flag_SalePrice = false;
    var flag_Stock = false;
    var flag_AlertStock = false;
    $(".GridViewStyle tr td :input").each(function (index) {
        if ($(this).attr(‘id‘) == "SKU") {
            if (!$(this).val()) {
                flag_skuCode = true;
                return false;
            } else {
                //Check SKU 是否存在
                $.ajax({
                    url: ("/ShopManage.aspx?timestamp={0}").format(new Date().getTime()),
                    type: ‘POST‘,
                    dataType: ‘json‘,
                    timeout: 10000,
                    async: false,
                    data: { Action: "IsExistSkuCode", SKUCode: $(this).val() },
                    //        beforeSend: function () {
                    //            $.jBox.tip("正在检测商品编码的唯一性,请稍后...", ‘loading‘);
                    //        },
                    //        complete: function () {
                    //            $.jBox.closeTip();
                    //        },
                    success: function (resultData) {
                        switch (resultData.STATUS) {
                            case "FAILED":
                                //  $.jBox.closeTip();
                                $(this).val(‘‘);
                                $(this).focus();
                                flag_skuCodeExist = true;
                                break;
                            default:
                                break;
                        }
                    }, error: function (xmlHttpRequest, textStatus, errorThrown) {
                        alert(xmlHttpRequest.responseText);
                    }
                });
                if ($(".GridViewStyle tr td :input[id=SKU][value=‘" + $(this).val() + "‘]").length > 1) {
                    $(this).val(‘‘);
                    $(this).focus();
                    flag_skuCodeExist = true;
                }
                //不终止, 继续清空重复的SKU
//                if (flag_skuCodeExist) {
//                    return false;
//                }
            }
        }
        if ($(this).attr(‘id‘) == "SalePrice") {
            if (!$(this).val()) {
                flag_SalePrice = true;
                return false;
            }
        }
        if ($(this).attr(‘id‘) == "Stock") {
            if (!$(this).val()) {
                flag_Stock = true;
                return false;
            }
        }
        if ($(this).attr(‘id‘) == "AlertStock") {
            if (!$(this).val()) {
                flag_AlertStock = true;
                return false;
            }
        }
    });

if (flag_skuCode) {
        alert("开启的规格中的商品编码不能为空!");
        return false;
    }
    if (flag_skuCodeExist) {
        alert("开启的规格中的商品编码已经存在,请重新输入!");
        return false;
    }
    if (flag_SalePrice) {
        alert("开启的规格中的销售价不能为空!");
        return false;
    }
    if (flag_Stock) {
        alert("开启的规格中的库存数量不能为空!");
        return false;
    }
    if (flag_AlertStock) {
        alert("开启的规格中的警戒库存数量不能为空!");
        return false;
    }

//    if ($(‘[id$=hfSelectedAccessories]‘).val()) {
//        if (!$(‘[id$=txtAccessorieName]‘).val()) {
//            alert(‘请输入配件组名称‘);
//            return false;
//        }
//        if (!$(‘[id$=txtMinQuantity]‘).val()) {
//            alert(‘请输入最小购买量‘);
//            return false;s
//        }
//        if (!$(‘[id$=txtMaxQuantity]‘).val()) {
//            alert(‘请输入最大购买量‘);
//            return false;
//        }
//        if (!$(‘[id$=txtDiscountAmount]‘).val()) {
//            alert(‘请输入优惠额度‘);
//            return false;
//        }
//    }

//check SKU
    //    if (btnOpenSKUs.css(‘display‘) == ‘none‘) {
    //        if (!CheckBaseSKU) {
    //            nTabs($(‘[onclick="nTabs(this,0);"]‘).get(0), 0);
    //            return false;
    //        }
    //    } else {
    //        if (!CheckGenSKU) {
    //            nTabs($(‘[onclick="nTabs(this,2);"]‘).get(0), 0);
    //            return false;
    //        }
    //    }

//GenBaseSKUJson
    hfCurrentBaseProductSKUs.val(JSON.stringify(GetBaseSKU()));
    //SelectedSKUJson
    var selectedSku = GetSelectedSKU();
    if (selectedSku && selectedSku != ‘undefined‘) {
        hfCurrentProductSKUs.val(JSON.stringify(selectedSku));
    }

hfProductImages.val(‘‘);
    //ProductImages
    $(‘.ImgUpload‘).each(function() {
        var img = $(this).find("input[type=hidden]").val();
        if (img) {
            hfProductImages.val(hfProductImages.val() + ‘|‘ + img);
        }
    });

return true;
}

function InitProductTypes() {
    $.ajax({
        url: ("/ShopManage.aspx?timestamp={0}").format(new Date().getTime()),
        type: ‘POST‘,
        dataType: ‘json‘,
        timeout: 10000,
        async: false,
        data: { Action: "GetProductTypesKVList" },
        success: function(resultData) {
            switch (resultData.STATUS) {
            case "SUCCESS":
                selectProductType.find(‘option‘).remove();
                selectProductType.append(optionDefault);
                if (resultData.DATA.length == 0) {
                    ShowFailTip("您还没有设置任何商品类型, 请先设置商品类型");
                }
                $(resultData.DATA).each(function() {
                    selectProductType.append(optionHTML.format(this.TypeId, this.TypeName));
                });
                break;
            default:
                ShowFailTip("您还没有设置任何商品类型, 请先设置商品类型");
                break;
            }
        },
        error: function(xmlHttpRequest, textStatus, errorThrown) {
            alert(xmlHttpRequest.responseText);
        }
    });
}

function LoadProductBrands() {
    $.ajax({
        url: ("/ShopManage.aspx?timestamp={0}").format(new Date().getTime()),
        type: ‘POST‘,
        dataType: ‘json‘,
        timeout: 10000,
        async: false,
        data: { Action: "GetBrandsKVList", ProductTypeId: hfCurrentProductType.val() },
        success: function(resultData) {
            switch (resultData.STATUS) {
            case "SUCCESS":
                selectProductBrand.find(‘option‘).remove();
                selectProductBrand.append(optionDefault);
                $(resultData.DATA).each(function() {
                    selectProductBrand.append(optionHTML.format(this.BrandId, this.BrandName));
                });
                break;
            default:
                break;
            }
        },
        error: function(xmlHttpRequest, textStatus, errorThrown) {
            alert(xmlHttpRequest.responseText);
        }
    });
}

function LoadPackageByCid(cid, keyword) {
    $.ajax({
        url: ("/ShopManage.aspx?timestamp={0}").format(new Date().getTime()),
        type: ‘POST‘,
        dataType: ‘json‘,
        timeout: 10000,
        async: false,
        data: { Action: "GetPackage", id: cid, q: keyword },
        success: function(resultData) {
            switch (resultData.STATUS) {
            case "OK":
                $("#packageList").html("");
                $(resultData.DATA).each(function() {
                    $("#packageList").append($(attributInputHTML.format(attributInputMode.CheckBox)).val(this.PackageId).attr("id", "p" + this.PackageId).attr("pname", this.Name));
                    $("#packageList").append($(attributeLabelHTML.format("p" + this.PackageId, this.Name, this.Name)));
                });
                $.colorbox.resize();
                break;
            default:
                $("#packageList").html("");
                break;
            }
        },
        error: function(xmlHttpRequest, textStatus, errorThrown) {
            alert(xmlHttpRequest.responseText);
        }
    });
}

function LoadAttributes() {
    $.ajax({
        url: ("/ShopManage.aspx?timestamp={0}").format(new Date().getTime()),
        type: ‘POST‘,
        dataType: ‘json‘,
        timeout: 10000,
        async: false,
        data: { Action: "GetAttributesList", DataMode: 0, ProductTypeId: hfCurrentProductType.val() },
//        beforeSend: function () {
//            $.jBox.tip("努力为您加载中,请稍后...", ‘loading‘);
//        },
//        complete: function () {
//            $.jBox.closeTip();
//        },
        success: function (resultData) {
            switch (resultData.STATUS) {
                case "SUCCESS":
                    contetAttributesEx.find(‘table,h2‘).remove();
                    attributesTR.hide();
                    if (resultData.DATA.length == 0) {
//                       ShowFailTip("您还没有设置任何商品类型, 请先设置商品类型");
                    }
                    $(resultData.DATA).each(function () {
                        var data = this;
                        var target = $(attributHTML.format(
                            data.AttributeId, data.AttributeUsageMode, data.AttributeId,
                            data.AttributeName));
                        var inputMode;
                        switch (data.AttributeUsageMode) {
                            case 0:
                                inputMode = attributInputMode.Radio;
                                break;
                            case 1:
                                inputMode = attributInputMode.CheckBox;
                                break;
                            case 2:
                                inputMode = attributInputMode.Text;
                                break;
                            default:
                                alert(‘扩展属性模式不正确!‘);
                                return;
                        }
                        if (data.AttributeUsageMode == 2) {
                            target.find(‘#AttributeContent‘).append(
                                $(attributInputHTML.format(inputMode)).width(200).attr(‘maxlength‘, ‘200‘));
                        } else {
                            $(data.AttributeValues).each(function () {
                                target.find(‘#AttributeContent‘).append(‘<li id="li_‘+ this.valueId+‘">‘);
                                var targetInput = attributInputHTML.format(inputMode, data.AttributeId, data.AttributeName, this.valueStr);
                                var tarId = "AttributeValue" + this.valueId;
                                targetInput = $(targetInput);
                                targetInput.attr(‘name‘, "AttributeValue" + this.attributeId);
                                targetInput.attr(‘value‘, this.valueId);
                                targetInput.attr(‘id‘, tarId);
                                targetInput.css(‘cursor‘, ‘pointer‘);
                                target.find(‘#li_‘ + this.valueId).append(targetInput).append(
                                $(attributeLabelHTML.format(tarId, this.valueStr, cutstr(this.valueStr,10))).css(‘cursor‘, ‘pointer‘));
                                //target.find(‘#AttributeContent‘).append(targetInput).append(
                                //$(attributeLabelHTML.format(tarId, this.valueStr)).css(‘cursor‘, ‘pointer‘));
                                target.find(‘#AttributeContent‘).append(‘</li>‘);
                            });
                        }
                        // inputType
                        contetAttributesEx.append(target);
                         attributesTR.show();
                    });
                    break;
                default:
                    break;
            }
        }, error: function (xmlHttpRequest, textStatus, errorThrown) {
            alert(xmlHttpRequest.responseText);
        }
    });
}

//截取字符串
function cutstr(str, len) {
    var str_length = 0;
    var str_len = 0;
    if (!str) {
        return "";
    }
   var str_cut = new String();
    str_len = str.length;
    for (var i = 0; i < str_len; i++) {
        var a = str.charAt(i);
        str_length++;
        if (escape(a).length > 4) {
            //中文字符的长度经编码之后大于4
            str_length++;
        }
        str_cut = str_cut.concat(a);
        if (str_length >= len) {
            str_cut = str_cut.concat("...");
            return str_cut;
        }
    }
    //如果给定字符串小于指定长度,则返回源字符串;
    if (str_length < len) {
        return str;
    }
}

var definepic = "";
function LoadSKUs() {
    $.ajax({
        url: ("/ShopManage.aspx?timestamp={0}").format(new Date().getTime()),
        type: ‘POST‘,
        dataType: ‘json‘,
        timeout: 10000,
        async: false,
        data: { Action: "GetAttributesList", DataMode: 1, ProductTypeId: hfCurrentProductType.val() },
        //        beforeSend: function () {
        //            $.jBox.tip("努力为您加载中,请稍后...", ‘loading‘);
        //        },
        //        complete: function () {
        //            $.jBox.closeTip();
        //        },
        success: function (resultData) {
            switch (resultData.STATUS) {
                case "SUCCESS":
                    contetSKUs.find(‘table‘).remove();
                    if (contetSKUs.find(‘h2‘).length > 0) {
                        contetSKUs.find(‘h2‘).remove();
                    }
                    skusTR.hide();
                    if ($(resultData.DATA).length == 0) {
                        contetSKUs.append(alertMessageHTML.format(‘此商品类型没有设置规格!‘));
                    } else {
                        $(resultData.DATA).each(function () {
                            var data = this;
                            var target = $(attributHTML.format(
                                data.AttributeId, data.AttributeUsageMode, data.AttributeId,
                                data.AttributeName));
                            var inputMode = attributInputMode.CheckBox;
                            $(data.AttributeValues).each(function () {

target.find(‘#AttributeContent‘).append(‘<li id="li_‘ + this.valueId + ‘">‘);
                                var targetInput = attributInputHTML.format(inputMode);
                                var tarId = "AttributeValue" + this.valueId;
                                targetInput = $(targetInput);
                                targetInput.attr(‘attrid‘, data.AttributeId);
                                targetInput.attr(‘attrname‘, data.AttributeName);
                                targetInput.attr(‘valuestr‘, this.valueStr);
                                targetInput.attr(‘name‘, "AttributeValue" + this.attributeId);
                                targetInput.attr(‘value‘, this.valueId);
                                targetInput.attr(‘id‘, tarId);
                                targetInput.css(‘cursor‘, ‘pointer‘);
                                target.find(‘#li_‘ + this.valueId).append(targetInput).append(
                                    $(attributeLabelHTMLForSpec.format(tarId, this.valueId, cutstr(this.valueStr, 10), this.valueId, this.valueStr, this.valueId, this.valueStr)).css(‘cursor‘, ‘pointer‘));
                                target.find(‘#AttributeContent‘).append(‘</li>‘);
                            });
                            // inputType
                            contetSKUs.append(target);
                            if (data.UserDefinedPic) {
                                definepic = data.AttributeId;
                                var Colortarget = $(SelectAttributHTML.format(data.AttributeId));

$(‘#‘ + data.AttributeId).append(Colortarget);
                                $(data.AttributeValues).each(function () {
                                    var colortarget = colorTr.format(this.valueId, this.valueId, this.valueStr, this.valueStr, this.valueId, this.valueId);
                                    $("#color_" + data.AttributeId).append(colortarget)
                                });
                                uploadValueImage();

var ids = ‘#‘ + definepic + ‘ :checkbox‘;
                                contetSKUs.find(ids).bind(‘click‘, function () {
                                    colorManage();
                                });

contetSKUs.find(‘#‘ + definepic + ‘ :text‘).bind(‘change‘, function () {
                                    keepvalueStr();
                                });

contetSKUs.find(‘#‘ + definepic + ‘ :text‘).bind(‘blur‘, function () {
                                    changeValueStr();
                                });
                            }
                        });
                    }
                    skusTR.show();

//set click bind
                    contetSKUs.find(‘table #AttributeContent :input‘).bind(‘click‘, function () {
                        GeneralSKUs();
                    });
                    break;
                default:
                    break;
            }
        }, error: function (xmlHttpRequest, textStatus, errorThrown) {
            alert(xmlHttpRequest.responseText);
        }
    });
}

function keepvalueStr() {
    contetSKUs.find(‘#‘ + definepic + ‘ :text‘).each(function (index) {
        var valueId = $(this).attr(‘vid‘);
        if ($("#AttributeValue" + valueId).attr(‘checked‘)) {
            $(".SkuLabel_" + valueId).text($("#attrValueText_" + valueId).val());
        }
    });
}

function uploadValueImage() {
    $("#color_" + definepic + " tbody tr").each(function (index) {
        var id = $($("#color_" + definepic + " tbody tr")[index]).attr("id");
        $("#File_" + id).uploadify({
            ‘uploader‘: ‘/admin/js/jquery.uploadify/uploadify-v2.1.0/uploadify.swf‘,
            ‘script‘: ‘/ProductSkuImg.aspx‘,
            ‘cancelImg‘: ‘/admin/js/jquery.uploadify/uploadify-v2.1.0/cancel.png‘,
            ‘buttonImg‘: ‘/admin/images/uploadfile.jpg‘,
            ‘folder‘: ‘UploadFile‘,
            ‘queueID‘: ‘fileQueue_‘ + id,
            ‘width‘: 76,
            ‘height‘: 25,
            ‘auto‘: true,
            ‘multi‘: true,
            ‘fileExt‘: ‘*.jpg;*.gif;*.png;*.bmp‘,
            ‘fileDesc‘: ‘Image Files (.JPG, .GIF, .PNG)‘,
            ‘queueSizeLimit‘: 1,
            ‘sizeLimit‘: 1024 * 1024 * 10,
            ‘onInit‘: function () {
            },

‘onSelect‘: function (e, queueID, fileObj) {
            },
            ‘onComplete‘: function (event, queueId, fileObj, response, data) {
                var responseJSON = $.parseJSON(response);
                if (responseJSON.success) {
                    $("#imgURL_" + id).attr("src", responseJSON.data.format(‘T32X32_‘));
                    $("#imgURL_" + id).attr("value", responseJSON.data);
                }
            },
            ‘onError‘: function (event, ID, fileObj, errorObj) {
                //            alert(‘上传图片大小不能超过2M,尺寸不能大于1280×1280‘);
                alert(‘上传文件发生错误, 状态码: [‘ + errorObj.info + ‘]‘);
            }
        });
    });
}

function changeValueStr() {
    contetSKUs.find(‘#‘ + definepic + ‘ :text‘).each(function (index) {
        var valueId = $(this).attr(‘vid‘);
        if ($("#AttributeValue" + valueId).attr(‘checked‘)) {
            $("#selectValueLabel_" + valueId).attr("title", $("#attrValueText_" + valueId).val()).text($("#attrValueText_" + valueId).val());
            $(".SkuLabel_" + valueId).text($("#attrValueText_" + valueId).val());
        }
    });
}

function colorManage() {
    var ids = ‘#‘ + definepic + ‘ :checkbox‘;
    var checkedNum = 0;
    contetSKUs.find(ids).each(function (index) {
        var valueId = $(this).attr(‘value‘);
        if ($("#AttributeValue" + valueId).attr(‘checked‘)) {
            checkedNum++;
            $("#color_" + definepic).attr("style", "");
            $(".colorclass").attr("style", "");
            $("#attrValuelabel_" + valueId).attr("style", "display: none;");
            $("#attrValueText_" + valueId).attr("style", "");

$("#color_" + definepic + " #" + valueId).attr("style", "");
            $("#selectValueLabel_" + valueId).attr("title", $("#attrValueText_" + valueId).val()).text($("#attrValueText_" + valueId).val());
            $(".SkuLabel_" + valueId).text($("#attrValueText_" + valueId).val());
        } else {
            $("#color_" + definepic + " #" + valueId).attr("style", "display: none;");
            $("#attrValuelabel_" + valueId).attr("style", "");
            $("#attrValueText_" + valueId).attr("style", "display: none;");
        }
    });

if (checkedNum <= 0) {
        $("#color_" + definepic).show();
        $(".colorclass").show();
    }
}

function GeneralSKUs() {
    var skusContent = contetSKUs.find(‘table #AttributeContent‘);
    var countTR = skusContent.length;
    var selectedCountTR = skusContent.find(‘input:checked:first‘).length;

//全部属性均选中, 生成SKU
    if(selectedCountTR <= countTR && selectedCountTR>0)  {
        contetSKUs.removeData(); //clear data
        contetSKUs.data(‘skus‘, skusContent);

var htSkuData = new jQuery.Hashtable();
        var attributeIds = new Array(selectedCountTR);
        var attributeIdIndex = 0;
        //组装已选SKU
        contetSKUs.find(‘table #AttributeContent‘).find(‘input:checked‘).each(function () {
            var attributeId = $(this).attr(‘attrid‘);
            var attributeName = $(this).attr(‘attrname‘);
            var valueId = $(this).val();
            var value = $(this).attr(‘valuestr‘);

if (htSkuData.containsKey(attributeId)) {
                //存在 Add
                htSkuData.get(attributeId).Values.push({
                    "AttributeId": attributeId,
                    "ValueId": valueId,
                    "Value": value
                });
            } else {
                //不存在 New
                attributeIds[attributeIdIndex++] = attributeId;
                var checkedValues = new Array();
                checkedValues.push({
                    "AttributeId": attributeId,
                    "ValueId": valueId,
                    "Value": value
                });
                var attributInfo = {
                    "AttributeId": attributeId,
                    "AttributeName": attributeName,
                    "Values": checkedValues
                };
                htSkuData.add(attributeId, attributInfo);
            }
        });

//组合已选SKU
        var skuValues = htSkuData.get(attributeIds[0]).Values;
        var skuArray = new Array(skuValues.length);

$.each(skuValues, function (i, skuValue) {
            skuArray[i] = new Array(1);
            skuArray[i][0] = skuValue;
        });

for (var index = 1; index < attributeIds.length; index++) {
            skuValues = htSkuData.get(attributeIds[index]).Values;
            var tmpArray = new Array(skuArray.length * skuValues.length);
            var rowCounter = 0;

for (var sindex = 0; sindex < skuValues.length; sindex++) {
                for (var cindex = 0; cindex < skuArray.length; cindex++) {
                    tmpArray[rowCounter] = new Array(index + 1);
                    for (var rindex = 0; rindex < (index + 1); rindex++) {
                        if (rindex == index)
                            tmpArray[rowCounter][rindex] = skuValues[sindex];
                        else {
                            tmpArray[rowCounter][rindex] = skuArray[cindex][rindex];
                        }
                    }
                    rowCounter++;
                }
            }

skuArray = tmpArray;
        }

TempSKUInfo();
        //$("#Hidden_TempSKUInfo").val(‘‘);
        //向页面添加SKU
        GeneralSKUItem(skuArray, htSkuData, attributeIds);
        IsExistSkuCode();
    }
    else {
//        contetSKUs.find(‘#GeneralSKUs‘).remove();
    }
}

var skusTableHTML = ‘<table class="GridViewStyle" cellspacing="0" cellpadding="" rules="all" border="1" id="GeneralSKUs" style="border-color:#CCCCCC;border-width:1px;border-style:solid;width:98%;margin-left: 1%;border-collapse:collapse;">‘;
var skusTableHeadTr = ‘<tr class="GridViewHeaderStyle" style="height:35px;background:#FFF"></tr>‘;
var skusTableHeadTh = ‘<td id="SKUName" style="width:50px;text-align: center;" AttributeId="{0}">{1}</td>‘;
var skusTableHeadThBase = ‘<th style="width:30%;"><em>*</em>商品编码</th><th style="width:90px;"><em>*</em>销售价</th><th style="width:90px">成本价</th>‘;
skusTableHeadThBase += ‘<th style="width:40px;"><em>*</em>库存</th><th style="width:40px;"><em>*</em>警戒库存</th>‘;
skusTableHeadThBase += ‘<th style="width:40px;">重量</th><th style="width:30px;">上架</th>‘;
var skusTableTdBase = ‘<td ><input value="{0}" id="SKU" style="width:200px;" maxlength="20" type="text" /></td>‘;
skusTableTdBase += ‘<td ><input value="{1}" id="SalePrice" class="OnlyFloat" style="width:90px;text-align: right;" maxlength="9" type="text"/></td>‘;
skusTableTdBase += ‘<td ><input value="{2}" id="CostPrice" class="OnlyFloat" style="width:90px;text-align: right;" maxlength="9 type="text"/></td>‘;
skusTableTdBase += ‘ <td ><input value="{3}" id="Stock" class="OnlyNum" style="width:40px;" maxlength="5" type="text"/></td>‘;
skusTableTdBase += ‘<td ><input value="{4}" id="AlertStock" class="OnlyNum" style="width:40px;" maxlength="5" type="text"/></td>‘;
skusTableTdBase += ‘<td ><input value="{5}" id="Weight" class="OnlyNum" style="width:40px;" maxlength="10" type="text"/></td>‘;
skusTableTdBase += ‘<td ><input checked="checked" id="Upselling" type="checkbox"/></td>‘;
var skusTableTd = ‘<td class="SKUValueTD" attributeid="{0}" valueid="{1}"><div id="SKUValueStr" class="specdiv"><label class="SkuLabel_{2}" >{3}</label></div></td>‘;
var skusTableTr = ‘<tr class="SKUItemTR grdrow" style="height: 25px; background-position: initial initial; background-repeat: initial initial; " id="{0}"></tr>‘;

function GeneralSKUItem(skuArray, htSkuData, attributeIds) {
    contetSKUs.find(‘#GeneralSKUs‘).remove();
    var skuTable = $(skusTableHTML);
    //表头处理
    var headTR = skuTable.append(skusTableHeadTr).find(‘tr:last‘);
    for (var i = 0; i < attributeIds.length; i++) {
        headTR.append(skusTableHeadTh.format(htSkuData.get(attributeIds[i]).AttributeId, htSkuData.get(attributeIds[i]).AttributeName));
    }
    headTR.append(skusTableHeadThBase);

//SKU数据行
    $(skuArray).each(function (index) {
        var trId = "";
        $(this).each(function () {
            trId = this.AttributeId + ‘_‘ + this.ValueId + ‘_‘ + trId;
        });
        var skusTableTrFormat = skusTableTr;
        skusTableTrFormat = skusTableTrFormat.format(trId.substring(0, trId.length - 1));
        var dataTR = skuTable.append(skusTableTrFormat).find(‘tr:last‘);
        $(this).each(function () {
            dataTR.append(skusTableTd.format(this.AttributeId, this.ValueId, this.ValueId, this.Value));
        });
        var productSKU = GetBaseSKU();
        dataTR.append(skusTableTdBase.format(
                productSKU.SKU ? productSKU.SKU + "-" + (index + 1) : "",
                productSKU.SalePrice ? parseFloat(productSKU.SalePrice).toFixed(2) : "0",
                productSKU.CostPrice ? parseFloat(productSKU.CostPrice).toFixed(2) : "0",
                productSKU.Stock ? productSKU.Stock : "0",
                productSKU.AlertStock ? productSKU.AlertStock : "0",
                productSKU.Weight ? productSKU.Weight : "0"
            ));
    });
    contetSKUs.append(skuTable);
    //TempSKUInfo();
    GeneratedTempSkuInfo();
    $("#Hidden_TempSKUInfo").val(‘‘);
}

/*获取临时保存用户输入的商品信息 By Maticsoft: Rock 2012年12月22日 14:31:20*/
function GeneratedTempSkuInfo() {
    var hiddenTempValue = $("#Hidden_TempSKUInfo").val();
    if (hiddenTempValue) {
        var tempValues = hiddenTempValue.split(‘,‘);
        for (var i = 0; i < tempValues.length-1; i++) {
            var oneTempValue = tempValues[i].split(‘|‘);
            var trId = "#" + oneTempValue[0];
            if ($(trId).length > 0) {
                //Fix 商品编码SKU 重排后 混乱BUG
                //$($(trId).find(‘:text‘)[0]).val(oneTempValue[1]);
                $($(trId).find(‘:text‘)[1]).val(oneTempValue[2]);
                $($(trId).find(‘:text‘)[2]).val(oneTempValue[3]);
                $($(trId).find(‘:text‘)[3]).val(oneTempValue[4]);
                $($(trId).find(‘:text‘)[4]).val(oneTempValue[5]);
                $($(trId).find(‘:text‘)[5]).val(oneTempValue[6]);
                $($(trId).find(‘input:last‘)).attr(‘checked‘, oneTempValue[7]);
            }
        }
    }
}

/*临时保存用户输入的商品信息 By Maticsoft: Rock 2012年12月22日 14:01:20*/
function TempSKUInfo() {
    var tempValue = ‘{0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}‘;
    //Hidden_TempSKUInfo
    $(".GridViewStyle tr").each(function(index) {
        if (index != 0) {
            var trSkuId = $(this).attr(‘id‘);
            var tempCommodityCode = $($(this).find(‘:text‘)[0]).val() ? $($(this).find(‘:text‘)[0]).val() : "";
            var tempSalePrice = $($(this).find(‘:text‘)[1]).val() ? $($(this).find(‘:text‘)[1]).val() : 0;
            var tempCostPrice = $($(this).find(‘:text‘)[2]).val() ? $($(this).find(‘:text‘)[2]).val() : 0;
            var tempStock = $($(this).find(‘:text‘)[3]).val() ? $($(this).find(‘:text‘)[3]).val() : 0
            var tempAlertStock = $($(this).find(‘:text‘)[4]).val() ? $($(this).find(‘:text‘)[4]).val() : 0;
            var tempWeight = $($(this).find(‘:text‘)[5]).val() ? $($(this).find(‘:text‘)[5]).val() : 0;
            var tempSaleStatus = $($(this).find(‘input:last‘)).attr(‘checked‘) ? $($(this).find(‘input:last‘)).attr(‘checked‘) : ""; // $($(".GridViewStyle tr")[1]).find(‘input:last‘)
            var hiddenTempValue = $("#Hidden_TempSKUInfo").val();
            $("#Hidden_TempSKUInfo").val(tempValue.format(trSkuId, tempCommodityCode, tempSalePrice, tempCostPrice, tempStock, tempAlertStock, tempWeight, tempSaleStatus) + ‘,‘ + hiddenTempValue);
        }
    });
}

/*检测商品编码是否存在 By Maticsoft: Rock 2012年12月22日 17:01:20*/
function IsExistSkuCode() {
    $(".GridViewStyle tr td :input").each(function (index) {
        var currentText = $(this);
        if ($(this).attr(‘id‘) == "SKU") {
            $(this).unbind(‘blur‘).bind(‘blur‘, function () {
                if ($(this).val()) {
                    LoadCheckResult(currentText, $(this).val());
                }
            });

}
    });
}

function LoadCheckResult(senderevent,skucode) {
    $.ajax({
        url: ("/ShopManage.aspx?timestamp={0}").format(new Date().getTime()),
        type: ‘POST‘,
        dataType: ‘json‘,
        timeout: 10000,
        async: false,
        data: { Action: "IsExistSkuCode", SKUCode: skucode },
//        beforeSend: function () {
//            $.jBox.tip("正在检测商品编码的唯一性,请稍后...", ‘loading‘);
//        },
//        complete: function () {
//            $.jBox.closeTip();
//        },
        success: function (resultData) {
            switch (resultData.STATUS) {
                case "FAILED":
                  //  $.jBox.closeTip();
                    alert("该商品编码已经存在,请重新输入!");
                    senderevent.val(‘‘);
                    senderevent.focus();
                    break;
                default:
                    break;
            }
        }, error: function (xmlHttpRequest, textStatus, errorThrown) {
            alert(xmlHttpRequest.responseText);
        }
    });
    if ($(".GridViewStyle tr td :input[id=SKU][value=‘" + skucode + "‘]").length>1) {
        alert("该商品编码已经存在,请重新输入!");
        senderevent.val(‘‘);
        senderevent.focus();
    }
}

function GetBaseSKU() {
    var txtProductSKU, txtSalePrice, txtCostPrice, txtStock, txtAlertStock, txtWeight, chkUpselling;
    txtProductSKU = $(‘[id$=txtProductSKU]‘).val();
    if ($(‘[id$=txtSalePrice]‘).val()) {
        txtSalePrice = parseFloat($(‘[id$=txtSalePrice]‘).val());
    } else {
        txtSalePrice = 0;
    }
    if ($(‘[id$=txtCostPrice]‘).val()) {
        txtCostPrice = parseFloat($(‘[id$=txtCostPrice]‘).val());
    } else {
        txtCostPrice = 0;
    }
    if ($(‘[id$=txtStock]‘).val()) {
        txtStock = parseInt($(‘[id$=txtStock]‘).val());
    } else {
        txtStock = 0;
    }
    if ($(‘[id$=txtAlertStock]‘).val()) {
        txtAlertStock = parseInt($(‘[id$=txtAlertStock]‘).val());
    } else {
        txtAlertStock = 0;
    }
    if ($(‘[id$=txtWeight]‘).val()) {
        txtWeight = parseInt($(‘[id$=txtWeight]‘).val());
    } else {
        txtWeight = 0;
    }
    if ($(‘[id$=chkUpselling]‘).length > 0) {
        chkUpselling = $(‘[id$=chkUpselling]‘).prop(‘checked‘);
    } else {
        chkUpselling = $($(‘[id$=rblUpselling]‘)).find(‘:input‘)[0].checked ? $($(‘[id$=rblUpselling]‘)).find(‘:input‘)[0].checked : $($(‘[id$=rblUpselling]‘)).find(‘:input‘)[1].checked;
    }

var res = { "SKU": txtProductSKU,
        "SalePrice": txtSalePrice ? txtSalePrice : "0",
        "CostPrice": txtCostPrice ? txtCostPrice : "0",
        "Stock": txtStock,
        "AlertStock": txtAlertStock,
        "Weight": txtWeight,
        "Upselling": chkUpselling,
        "SKUItems": []
    };
    return res;
}

function GetSelectedSKU() {
    var txtProductSKU, txtSalePrice, txtCostPrice, txtStock, txtAlertStock, txtWeight, chkUpselling,
        SKUInfos, SKUItems, SKUItemTR, SKUValueTD;
    SKUInfos = [];
    SKUItemTR = contetSKUs.find.selected(‘#GeneralSKUs‘).find(".SKUItemTR");
    SKUItemTR.each(function () {
        txtProductSKU = $(this).find(‘#SKU‘).val();
        txtSalePrice = $(this).find(‘#SalePrice‘).val();
        txtCostPrice = $(this).find(‘#CostPrice‘).val();
        txtStock = $(this).find(‘#Stock‘).val();
        txtAlertStock = $(this).find(‘#AlertStock‘).val();
        txtWeight = $(this).find(‘#Weight‘).val();
        chkUpselling = $(this).find(‘#Upselling‘).prop(‘checked‘);
        SKUItems = [];

SKUValueTD = $(this).find(‘.SKUValueTD‘);
        SKUValueTD.each(function () {
            //Add SKUItem
            var valueStr = "";
            var imagepath = "";
            if (parseInt(definepic) == parseInt($(this).attr(‘attributeid‘))) {
                valueStr = $(".SkuLabel_" + $(this).attr(‘valueid‘)).text();
                if ($("#imgURL_" + $(this).attr(‘valueid‘)).attr("src")) {
                    imagepath = $("#imgURL_" + $(this).attr(‘valueid‘)).attr("value");
                }
            }
            SKUItems.push(
                {
                    "AttributeId": parseInt($(this).attr(‘attributeid‘)),
                    "ValueId": parseInt($(this).attr(‘valueid‘)),
                    "ValueStr": valueStr,
                    "ImageUrl": imagepath
                });
        });

//Add SKUInfo
        SKUInfos.push({
            "SKU": txtProductSKU,
            "SalePrice": txtSalePrice ? parseFloat(txtSalePrice) : "0",
            "CostPrice": txtCostPrice ? parseFloat(txtCostPrice) : "0",
            "Stock": txtStock ? parseInt(txtStock) : "0",
            "AlertStock": txtAlertStock ? parseInt(txtAlertStock) : "0",
            "Weight": txtWeight ? parseInt(txtWeight) : "0",
            "Upselling": chkUpselling,
            "SKUItems": SKUItems
        });
    });
    return SKUInfos.length > 0 ? SKUInfos : undefined;
}

function GetAttributes() {
    var attributeTable = contetAttributesEx.find(‘table‘);
    var attributeid, attributemode, attributinfo;
    var attributeJson = [];
    attributeTable.each(function () {
        attributeid = parseInt($(this).attr(‘attributeid‘));
        attributemode = parseInt($(this).attr(‘attributemode‘));

attributinfo = {
            "AttributeId": attributeid,
            "AttributeMode": attributemode
        };

switch (attributemode) {
            case 0:
                if ($(this).find(‘:checked‘).length == 0) {
                    return null;
                }
                attributinfo.ValueItem = parseInt($(this).find(‘:checked‘).val());
                break;
            case 1:
                attributinfo.ValueItem = [];
                if ($(this).find(‘:checked‘).length == 0) {
                    return null;
                }
                $(this).find(‘:checked‘).each(function () {
                    attributinfo.ValueItem.push(parseInt($(this).val()));
                });
                break;
            case 2:
                attributinfo.ValueItem = $(this).find(‘[type=text]‘).val();
                if (!attributinfo.ValueItem) {
                    return null;
                }
                break;
            default:
                alert(‘扩展属性获取失败, 指定数据类型不存在!‘);
                return;
        }
        attributeJson.push(attributinfo);
    });
    return attributeJson;
}

//} ());

时间: 2024-07-30 19:53:39

ProductAdd.helper.js的相关文章

helper.js(20170612)

//***************************************参数辅助对象***************************************/ //公共参数辅助对象 var ObjParameter = { //获取url参数值 //注意:参数值最好不用中文,会有编码问题 //name:参数名称 getQueryString: function (name) { var reg = new RegExp("(^|&)" + name + &quo

AmazeUI(妹子UI)中CSS组件、JS插件、Web组件的区别

AmazeUI(妹子UI)是非常优秀的国产前端UI,现在来介绍一下AmazeUI中CSS组件.JS插件与Web组件的区别. CSS组件顾名思义就是仅使用CSS渲染而成的组件,而JS插件也很容易理解,就是由CSS渲染和JS来控制行为的组件.比较不好理解就是Web组件,好像跟JS插件意思差不多,都是CSS和JS组成的.它们到底区别在哪?我们重点来讲这个.我们通过学习如何调用Web组件(其中的手风琴组件)来一步一步了解其与JS插件的区别. 示例01.Web组件-直接使用 (请下载附件查看示例) 示例中

egg 官方文档之:框架扩展(Application、Context、Request、Response、Helper的访问方式及扩展)

地址:https://eggjs.org/zh-cn/basics/extend.html Application app 对象指的是 Koa 的全局应用对象,全局只有一个,在应用启动时被创建. 访问方式: ctx.app Controller,Middleware,Helper,Service 中都可以通过 this.app 访问到 Application 对象,例如 this.app.config 访问配置对象. 在 app.js 中 app 对象会作为第一个参数注入到入口函数中 // ap

Egg.js 通过 extend 实现 日期格式化

1.创建 helper 扩展方法 app/extend/helper.js /** * app/extend/helper.js * 扩展里面引入第三方模块 * https://www.npmjs.com/package/silly-datetime * 1.yarn add silly-datetime * 2.var sd = require('silly-datetime'); * 3.sd.format(new Date(), 'YYYY-MM-DD HH:mm'); */ let sd

2016/02/14 codes

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, i

ANGULARJS 动态编译添加到dom中

在使用angularjs 时,希望通过动态构建angular模版,再通过angular进行展示. 使用 方法如下: <html ng-app="app"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script src="assets/angular.min.js">

SIPp web frontend(2)

SIP VoIP 測试交流群: 323827101 欢迎大家转载.为保留作者成果,转载请注明出处.http://blog.csdn.net/netluoriver,有些文件在资源中也能够下载.假设你没有积分,能够联系我索要! 3.6Adding calls to a test(为測试脚本添加呼叫) To add a call, use the add a call link of the corresponding party (see in the figure above) and get

测试框架mochajs详解

测试框架mochajs详解 章节目录 关于单元测试的想法 mocha单元测试框架简介 安装mocha 一个简单的例子 mocha支持的断言模块 同步代码测试 异步代码测试 promise代码测试 不建议使用箭头函数 钩子函数 钩子函数的描述参数 异步的钩子函数 全局钩子 延迟启动测试 测试用例TODO 仅执行一个用例集/用例 跳过哪些用例集/用例 重新执行用例 动态生成用例 测试时间 测试超时 用例集执行超时 用例执行超时 钩子函数超时 diff差异比较功能 mocha使用命令和参数 mocha

两种动态加载JavaScript文件的方法

两种动态加载JavaScript文件的方法 第一种便是利用ajax方式,第二种是,动静创建一个script标签,配置其src属性,经过把script标签拔出到页面head来加载js,感乐趣的网友可以看下 动态加载script到页面大约有俩方法 第一种便是利用ajax方式,把script文件代码从背景加载到前台,而后对加载到的内容经过eval()实施代码.第二种是,动静创建一个script标签,配置其src属性,经过把script标签插入到页面head来加载js,相当于正在head中写了一个<sc