//配置箱子,生成箱子的布局。
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;
}
Js 组装 HTML
最新推荐文章于 2022-07-27 18:22:43 发布