Js 组装 HTML

//配置箱子,生成箱子的布局。
    var boxTypeData = [[${@dict.getType('boxTypeAttr')}]];
    var weight = 0;
    var height = 0;

    function createBox() {
        debugger;
        control_box = 0;
        var boxType = $("#all_boxtype").val();

        height = boxType;

        var boxid = 1;
        var boxTypeName = $("#all_boxtype").find("option:selected").text();
        var html = "";
        html += "<select id='allBoxTypes' class='form-control' name = 'boxname'>";
        for (var i = 0; i < boxTypeData.length; i++) {
            if (boxTypeName == boxTypeData[i].dictLabel) {
                html += "<option value=" + boxTypeData[i].dictValue + " selected>" + boxTypeData[i].dictLabel + "</option>";
            } else {
                html += "<option value=" + boxTypeData[i].dictValue + ">" + boxTypeData[i].dictLabel + "</option>";
            }
        }
        $("#allBoxTypes option[value='" + boxType + "']").attr("selected", "selected");
        html += "</select>";
        var cabType = $("#cabType").val();
        if ($.validate.form()) {
            $("#allTypeStr").val('ischange'); //新增柜型时,生成布局时即认为已改变

            var cols = $('#col').val(); 	//列数
            var boxs = $('#laneNum').val();		//箱子整数
            var col_box = parseInt(boxs / cols);	//每列的箱子数
            if (col_box < 1) {
                $.modal.alertWarning('列数不能大于箱子数');
                //$('#col').focus().text('');
                return false;
            }

            var cabinet = $('#oneCabinetBox'); 	//整个柜子
            var cabinetBody = $('#oneCabinetBody'); 	//整个柜子的箱子主体
            var col_div = cabinet.find('#col_1');			//第一列DIV
            var boxid_div = cabinet.find('#boxid_1');		//一个箱子DIV
            var colinput_div = cabinet.find('#colinput_1');		//每一列的头部输入框DIV
            var col_input = cabinet.find('#colNumInput_1');//每一列的头部输入框

            var all_boxtype = $('#all_boxtype').clone();		//箱型select
            //all_boxtype.removeClass("form-control");
            var boxtype = $("#all_boxtype  option:selected").text();
            var boxHeight = height;
            cabinet.html('');		//置空柜子
            cabinet.css("width", (160 * cols + 2) + "px");	//柜子宽度

            cabinetBody.css("width", (160 * cols + 2) + "px");	//柜子宽度
            cabinetBody.html('');
            //遍历列 创建每一列的箱子
            for (var i = 1; i <= cols; i++) {
                var a_col = col_div.clone();
                a_col.attr('id', 'col_' + i);
                a_col.html('');

                //每一列的头部输入框
                var a_colinput_div = colinput_div.clone();
                a_colinput_div.attr('id', 'colinput_' + i);
                var a_col_input = col_input.clone();
                a_col_input.attr('id', 'colNumInput_' + i);
                a_col_input.val(col_box);
                a_col_input.attr('onchange', "inputColNum(" + i + ")");
                var colinputSpan = a_colinput_div.find('.colinputSpan');
                colinputSpan.html('');
                colinputSpan.append('第' + i + '列箱数').append(a_col_input);
                a_col.append(a_colinput_div);
                for (var j = 1; j <= col_box; j++) {	//创建每一列的箱子
                    var a_box = boxid_div.clone();
                    a_box.attr('id', 'boxid_' + boxid);
                    a_box.css("height", (boxHeight * 4 + 0) + "px");	//箱子高度


                    a_box.find('.divBoxid').text(boxid);
                    a_box.find('.divBoxType').find(".allBoxType").empty();
                    a_box.find('.divBoxType').find(".allBoxType").append(html);

                    //动态赋值
                    a_box.find(".divBoxType").find(".boxTypeAttr").empty();
                    var boxTypeInput = '<input type="hidden" name="bsVendingModelBoxList[' + boxid + '].boxType" value="' + boxtype + '"/>';
                    var boxTypeX = '<input type="hidden" name="bsVendingModelBoxList[' + boxid + '].bRow" value="' + j + '"/>';
                    var boxTypeY = '<input type="hidden" name="bsVendingModelBoxList[' + boxid + '].bCol" value="' + i + '"/>';
                    a_box.find(".divBoxType").find(".boxTypeAttr").append(boxTypeInput);
                    a_box.find(".boxPosition").find('.boxX').append(boxTypeX);
                    a_box.find(".boxPosition").find('.boxY').append(boxTypeY);

                    a_box.find('.divBoxTypeName').text(boxtype);
                    a_box.attr('onchange', "selectBoxType(" + boxid + ")");
                    a_box.attr('onclick', "getBoxType(" + boxid + ")");
                    a_box.find('.checkTp').remove();	//删除已经加的复选框

                    a_col.append(a_box);
                    boxid++;
                }

                cabinetBody.append(a_col);
            }
            cabinet.append(cabinetBody);
        }
    }


    //输入某一列的 箱子个数 col:第几列
    function inputColNum(col) {
        var cabType = $("#cabType").val();
        debugger;
        var col_num = $('#colNumInput_' + col).val();		//该列调整后的箱子数
        if (forcheck(col_num) == false) {
            return false;
        }

        //调整箱子布局
        var cols = $('#col').val(); 	//列数
        var boxs = $('#laneNum').val();		//箱子整数

        var cabinet = $('#oneCabinetBox'); 	//整个柜子
        var col_div = cabinet.find('#col_1');			//第一列DIV
        var boxid_div = cabinet.find('#boxid_1');		//一个箱子DIV
        var colinput_div = cabinet.find('#colinput_1');		//每一列的头部输入框DIV
        var col_input = cabinet.find('#colNumInput_1');//每一列的头部输入框

        var all_boxtype = $('#all_boxtype').clone();		//箱型select
        //all_boxtype.removeClass("form-control");
        var boxtype = $("#all_boxtype  option:selected").text();
        var boxHeight = $("#all_boxtype  option:selected").val();


        var boxid = 1;
        var newDivId = 1;
        //调整输入列,及后面列的箱子
        //如果增加了箱子,就在本列后追加相应的箱子,后面的列,箱号往后排
        //如果减少了箱子,就在本列后删除相应的箱子,后面的列,箱号往前排
        var mod_col = cabinet.find('#col_' + col);		//修改的列
        var mod_col_divBox = mod_col.find('.divBox');
        var mod_col_boxs = mod_col_divBox.length;	//修改前 该列的箱子数
        var add_box_num = col_num - mod_col_boxs;
        var bd_num = add_box_num;
        if (add_box_num > 0) {		//增加箱子
            boxid = mod_col_divBox.last().find('.divBoxid').text();
            boxid = parseInt(boxid) + 1;
            var tempBoxId = mod_col_divBox.last().attr('id');
            newDivId = parseInt(tempBoxId.substring(6, tempBoxId.length)) + 1;

            for (var j = 1; j <= add_box_num; j++) {	//创建列的箱子
                var a_box = boxid_div.clone();
                a_box.css("height", (boxHeight * 4 + 0) + "px");	//箱子高度

                a_box.attr('id', 'boxid_' + newDivId);
                a_box.find('.divBoxid').text(boxid);
                a_box.find('.divBoxType').text(boxtype);
                a_box.attr('onclick', "selectBoxType(" + newDivId + ")");

                mod_col.append(a_box);
                boxid++;
                newDivId++;
            }
        } else {		//减少箱子
            bd_num = mod_col_boxs - col_num;
            for (var i = 1; i <= bd_num; i++) {
                mod_col.find('.divBox').last().remove();
            }

        }

        if (cabType != '2') {		//托盘柜 不用变更其他列。
            //修改列  后面列的处理
            for (var i = (col + 1); i <= cols; i++) {
                var col_temp = cabinet.find('#col_' + i);
                col_temp.find('.divBox').each(function () {
                    //如果是控制箱,箱号为空,不变。
                    if ($(this).find('.divBoxid').text() != '') {
                        var newboxid = parseInt($(this).find('.divBoxid').text()) + add_box_num;
                        $(this).find('.divBoxid').text(newboxid);
                    }

                    var tempBoxId = $(this).attr('id');
                    var newDivId = parseInt(tempBoxId.substring(6, tempBoxId.length)) + add_box_num;
                    $(this).attr('id', 'boxid_' + newDivId);
                    $(this).attr('onclick', "selectBoxType(" + newDivId + ")");
                });
            }
        }

    }


    //选择箱型
    var control_box = 0 //判断如果为1,则已经添加了控制箱,无需再添加(控制箱最多只能设置1个)
    function selectBoxType(boxIdValue) {
        debugger;
        var a_box = $('#boxid_' + boxIdValue);
        var typeNameOld = strName;
        var boxid = a_box.find('.divBoxid').text();
        var newDivId = boxIdValue;
        var boxTypeName = $("#boxid_" + boxIdValue).find("option:selected").text();
        var boxType = "";
        for (var i = 0; i < boxTypeData.length; i++) {
            if (boxTypeName == boxTypeData[i].dictLabel) {
                boxType = boxTypeData[i].dictValue;
            }
        }
        if (boxTypeName == '控制箱') {
            if (control_box == 1) {
                var html = "";
                html += "<div  class='divContent'>";
                html += "<span class='divBoxid'>" + boxIdValue + "</span>";
                html += "<span class='divBoxType'>";
                html += "<select id='allBoxTypes' class='form-control' name = 'boxname'>";
                for (var i = 0; i < boxTypeData.length; i++) {
                    if (typeNameOld == boxTypeData[i].dictLabel) {
                        html += "<option value=" + boxTypeData[i].dictValue + " selected>" + boxTypeData[i].dictLabel + "</option>";
                    } else {
                        html += "<option value=" + boxTypeData[i].dictValue + ">" + boxTypeData[i].dictLabel + "</option>";
                    }
                }
                html += "</select>";
                html += "</span>";
                html += "<span id='divBoxTypeName' style='display: none;'  class='divBoxTypeName'>" + typeNameOld + "</span>";
                html += "</div>";
                $("#boxid_" + boxIdValue).html(html);
                $.modal.alertWarning("已经添加过控制箱,不能再添加控制箱!");
                return false;
            }
            control_box = 1;
        }
        if (typeNameOld == '控制箱' && boxTypeName != '控制箱') {
            control_box = 0;
        }
        var boxHeight = 0;

        boxHeight = boxType;

        debugger;
        //箱型改变
        if (boxTypeName != typeNameOld) {
            var a_box = $('#boxid_' + newDivId);
            a_box.find('.divBoxTypeName').text(boxTypeName);
            a_box.find('.divBoxType').find('.boxTypeAttr').find('input:eq(0)').attr('value', boxTypeName);
            a_box.css("height", (boxHeight * 4 + 0) + "px");	//箱子高度
            $("#allTypeStr").val('ischange');

            var cabType = $("#cabType").val();
            //普通柜:对控制箱的处理  控制箱不占箱号  箱号为空
            //删除控制箱
            if (typeNameOld == '控制箱') {
                //该箱子及后面的箱子箱号全部 +1
                //首选定位该箱子的箱号,找该箱子前面一个的箱号,没找到箱号就为1
                var newBoxid = 1;
                var cabinet = $('#oneCabinetBox'); 	//整个柜子
                var checkNaN = 0;
                //变更所有箱号
                cabinet.find('.divCols').each(function () {	//所有列

                    $(this).find('.divBox').each(function () {	//所有箱子
                        var tempBoxId = $(this).attr('id');

                        var tempDivId = parseInt(tempBoxId.substring(6, tempBoxId.length));
                        if (tempDivId <= parseInt(newDivId)) {
                            var oldBoxid = $(this).find('.divBoxid').text();
                            if (oldBoxid != '') {
                                newBoxid = parseInt(oldBoxid);
                            }
                        } else {
                            //后面的箱号全部 +1
                            var oldBoxid = $(this).find('.divBoxid').text();
                            if (oldBoxid != '') {
                                $(this).find('.divBoxid').text(parseInt(oldBoxid));
                            }
                        }

                    });
                });
                a_box.find('.divBoxid').text(newBoxid);	//重置该箱子箱号
            }

            //选择一个控制箱
            if (boxTypeName == '控制箱') {
                //该箱子箱号为空,后面的箱子箱号全部往前移 -1
                a_box.find('.divBoxid').text(boxIdValue);	//箱号为空
                $("#controlBoxNum").val(boxIdValue);
                var cabinet = $('#oneCabinetBox'); 	//整个柜子
                //变更所有箱号
                cabinet.find('.divCols').each(function () {	//所有列
                    $(this).find('.divBox').each(function () {	//所有箱子
                        var oldBoxid = $(this).find('.divBoxid').text();
                        if (oldBoxid != '' && parseInt(oldBoxid) > parseInt(boxid)) {
                            $(this).find('.divBoxid').text(parseInt(oldBoxid));
                        }
                    });

                });

            }
        }
    }

    var strName = "";

    function getBoxType(boxId) {
        strName = $("#boxid_" + boxId).find("option:selected").text();
    }


    function doSubmitBoxType(index, layero) {

        var body = layer.getChildFrame('body', index);//绑定父子之间的关系,用于数据传递,缺少则无法传递

        var boxid = $("#idSelect").val();
        var newDivId = $("#seqidSelect").val();
        var typeNameOld = $("#nameSelect").val();

        var table = body.find('#bootstrap-table');
        var tr = table.find('tr.selected');

        var boxHeight = parseInt(tr.find('td:eq(5)').html());
        var boxtype = tr.find('td:eq(2)').html();

        //debugger;
        //箱型改变
        if (boxtype != typeNameOld) {
            var a_box = $('#boxid_' + newDivId);
            a_box.find('.divBoxType').text(boxtype);
            a_box.css("height", (boxHeight * 4 + 0) + "px");	//箱子高度
            $("#allTypeStr").val('ischange');

            //如果是托盘柜  调整存托箱的托盘复选框
            var cabType = $("#cabType").val();
            if (cabType == '2') {	//托盘柜
                if (typeNameOld == '存托箱') {
                    a_box.find('.checkTp').remove();
                }
                //存托箱:提供绑定托盘复选框
                if (boxtype == '存托箱') {
                    var checkTp = '<span><input name="checkTp" class="checkTp" type="checkbox" title="带托盘?"></span>';
                    a_box.find('.divBoxType').after(checkTp);
                }
            } else {
                //普通柜:对控制箱的处理  控制箱不占箱号  箱号为空

                //删除控制箱
                if (typeNameOld == '控制箱') {
                    //该箱子及后面的箱子箱号全部 +1
                    //首选定位该箱子的箱号,找该箱子前面一个的箱号,没找到箱号就为1
                    var newBoxid = 1;

                    var cabinet = $('#oneCabinetBox'); 	//整个柜子
                    //变更所有箱号
                    cabinet.find('.divCols').each(function () {	//所有列

                        $(this).find('.divBox').each(function () {	//所有箱子
                            var tempBoxId = $(this).attr('id');
                            var tempDivId = parseInt(tempBoxId.substring(6, tempBoxId.length));
                            if (tempDivId <= parseInt(newDivId)) {
                                var oldBoxid = $(this).find('.divBoxid').text();
                                if (oldBoxid != '') {
                                    newBoxid = parseInt(oldBoxid);
                                }
                            } else {
                                //后面的箱号全部 +1
                                var oldBoxid = $(this).find('.divBoxid').text();
                                if (oldBoxid != '') {
                                    $(this).find('.divBoxid').text(parseInt(oldBoxid) + 1);
                                }
                            }

                        });
                    });
                    a_box.find('.divBoxid').text(newBoxid);	//重置该箱子箱号
                }

                //选择一个控制箱
                if (boxtype == '控制箱') {
                    //该箱子箱号为空,后面的箱子箱号全部往前移 -1
                    a_box.find('.divBoxid').text('');	//箱号为空
                    var cabinet = $('#oneCabinetBox'); 	//整个柜子
                    //变更所有箱号
                    cabinet.find('.divCols').each(function () {	//所有列

                        $(this).find('.divBox').each(function () {	//所有箱子
                            var oldBoxid = $(this).find('.divBoxid').text();
                            if (oldBoxid != '' && parseInt(oldBoxid) > parseInt(boxid)) {
                                $(this).find('.divBoxid').text(parseInt(oldBoxid) - 1);
                            }
                        });

                    });

                }
            }

        }
        layer.close(index);
    }


    function forcheck(ss) {
        var type = "^[0-9]*[1-9][0-9]*$";
        var re = new RegExp(type);
        if (ss.match(re) == null) {
            $.modal.alertWarning('请输入大于零的整数!');
            //alert( "请输入大于零的整数!");
            return false;
        }
        return true;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值