主子表操作列新增单个删除

pull/382/head
RuoYi 2022-04-16 21:42:30 +08:00
parent 94e23ec0f8
commit 0264da8d7c
5 changed files with 61 additions and 50 deletions

View File

@ -417,7 +417,7 @@ var storage = {
// 主子表操作封装处理 // 主子表操作封装处理
var sub = { var sub = {
editColumn: function() { editRow: function() {
var dataColumns = []; var dataColumns = [];
for (var columnIndex = 0; columnIndex < table.options.columns.length; columnIndex++) { for (var columnIndex = 0; columnIndex < table.options.columns.length; columnIndex++) {
if (table.options.columns[columnIndex].visible != false) { if (table.options.columns[columnIndex].visible != false) {
@ -442,7 +442,11 @@ var sub = {
} else if ($.common.isNotEmpty(textareaValue.val())) { } else if ($.common.isNotEmpty(textareaValue.val())) {
obj[key] = textareaValue.val(); obj[key] = textareaValue.val();
} else { } else {
obj[key] = ""; if (key == "index" && $.common.isNotEmpty(data[dataIndex].index)) {
obj[key] = data[dataIndex].index;
} else {
obj[key] = "";
}
} }
} }
var item = data[dataIndex]; var item = data[dataIndex];
@ -451,8 +455,8 @@ var sub = {
} }
$("#" + table.options.id).bootstrapTable("updateRow", params); $("#" + table.options.id).bootstrapTable("updateRow", params);
}, },
delColumn: function(column) { delRow: function(column) {
sub.editColumn(); sub.editRow();
var subColumn = $.common.isEmpty(column) ? "index" : column; var subColumn = $.common.isEmpty(column) ? "index" : column;
var ids = $.table.selectColumns(subColumn); var ids = $.table.selectColumns(subColumn);
if (ids.length == 0) { if (ids.length == 0) {
@ -461,15 +465,18 @@ var sub = {
} }
$("#" + table.options.id).bootstrapTable('remove', { field: subColumn, values: ids }); $("#" + table.options.id).bootstrapTable('remove', { field: subColumn, values: ids });
}, },
addColumn: function(row, tableId) { delRowByIndex: function(defindex, index) {
sub.editRow();
var value = $.common.isNotEmpty(index) ? index : defindex;
$("#" + table.options.id).bootstrapTable('remove', { field: "index", values: [value] });
sub.editRow();
},
addRow: function(row, tableId) {
var currentId = $.common.isEmpty(tableId) ? table.options.id : tableId; var currentId = $.common.isEmpty(tableId) ? table.options.id : tableId;
table.set(currentId); table.set(currentId);
var count = $("#" + currentId).bootstrapTable('getData').length; var count = $("#" + currentId).bootstrapTable('getData').length;
sub.editColumn(); sub.editRow();
$("#" + currentId).bootstrapTable('insertRow', { $("#" + currentId).bootstrapTable('insertRow', { index: count + 1, row: row });
index: count + 1,
row: row
});
} }
}; };

View File

@ -1537,7 +1537,7 @@ var table = {
common: { common: {
// 判断字符串是否为空 // 判断字符串是否为空
isEmpty: function (value) { isEmpty: function (value) {
if (value == null || this.trim(value) == "") { if (value == null || this.trim(value) == "" || value == undefined || value == "undefined") {
return true; return true;
} }
return false; return false;

View File

@ -62,8 +62,8 @@
<h4 class="form-header h4">商品数据</h4> <h4 class="form-header h4">商品数据</h4>
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<button type="button" class="btn btn-white btn-sm" onclick="addColumn()"><i class="fa fa-plus"> 增加</i></button> <button type="button" class="btn btn-white btn-sm" onclick="addRow()"><i class="fa fa-plus"> 增加</i></button>
<button type="button" class="btn btn-white btn-sm" onclick="sub.delColumn()"><i class="fa fa-minus"> 删除</i></button> <button type="button" class="btn btn-white btn-sm" onclick="sub.delRow()"><i class="fa fa-minus"> 删除</i></button>
<div class="col-sm-12 select-table table-striped"> <div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table> <table id="bootstrap-table"></table>
</div> </div>
@ -166,7 +166,14 @@
var data = [{ index: index, type: value }]; var data = [{ index: index, type: value }];
return $("#goodsTypeTpl").tmpl(data).html(); return $("#goodsTypeTpl").tmpl(data).html();
} }
}] },
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
return '<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="sub.delRowByIndex(\'' + $.table.serialNumber(index) + '\', \'' + row.index + '\')"><i class="fa fa-remove"></i>删除</a>';
}
}]
}; };
$.table.init(options); $.table.init(options);
}); });
@ -184,15 +191,17 @@
autoclose: true autoclose: true
}); });
function addColumn() { function addRow() {
var count = $("#" + table.options.id).bootstrapTable('getData').length;
var row = { var row = {
index: $.table.serialNumber(count),
name: "", name: "",
weight: "", weight: "",
price: "", price: "",
date: "", date: "",
type: "", type: "",
} }
sub.addColumn(row); sub.addRow(row);
} }
$("#bootstrap-table").on("post-body.bs.table", function (e, args) { $("#bootstrap-table").on("post-body.bs.table", function (e, args) {

View File

@ -160,8 +160,8 @@
<h4 class="form-header h4">${subTable.functionName}信息</h4> <h4 class="form-header h4">${subTable.functionName}信息</h4>
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<button type="button" class="btn btn-white btn-sm" onclick="addColumn()"><i class="fa fa-plus"> 增加</i></button> <button type="button" class="btn btn-white btn-sm" onclick="addRow()"><i class="fa fa-plus"> 增加</i></button>
<button type="button" class="btn btn-white btn-sm" onclick="sub.delColumn()"><i class="fa fa-minus"> 删除</i></button> <button type="button" class="btn btn-white btn-sm" onclick="sub.delRow()"><i class="fa fa-minus"> 删除</i></button>
<div class="col-sm-12 select-table table-striped"> <div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table> <table id="bootstrap-table"></table>
</div> </div>
@ -334,9 +334,7 @@
var name = $.common.sprintf("${subclassName}List[%s].${javaField}", index); var name = $.common.sprintf("${subclassName}List[%s].${javaField}", index);
return $.common.dictToSelect(${javaField}Datas, value, name); return $.common.dictToSelect(${javaField}Datas, value, name);
} }
#if($foreach.count != $subTable.columns.size())
}, },
#end
#else #else
{ {
field: '${javaField}', field: '${javaField}',
@ -346,34 +344,33 @@
var html = $.common.sprintf("<input class='form-control' type='text' name='${subclassName}List[%s].${javaField}' value='%s'>", index, value); var html = $.common.sprintf("<input class='form-control' type='text' name='${subclassName}List[%s].${javaField}' value='%s'>", index, value);
return html; return html;
} }
#if($foreach.count != $subTable.columns.size())
}, },
#end #end
#end #end
#end {
title: '操作',
align: 'center',
formatter: function(value, row, index) {
return '<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="sub.delRowByIndex(\'' + $.table.serialNumber(index) + '\', \'' + row.index + '\')"><i class="fa fa-remove"></i>删除</a>';
}
}] }]
}; };
$.table.init(options); $.table.init(options);
}); });
function addColumn() { function addRow() {
var count = $("#" + table.options.id).bootstrapTable('getData').length; var count = $("#" + table.options.id).bootstrapTable('getData').length;
sub.editColumn(); var row = {
index: $.table.serialNumber(count),
$("#" + table.options.id).bootstrapTable('insertRow', {
index: count,
row: {
index: $.table.serialNumber(count),
#foreach($column in $subTable.columns) #foreach($column in $subTable.columns)
#set($javaField=$column.javaField) #set($javaField=$column.javaField)
#if($column.pk || $javaField == ${subTableFkclassName}) #if($column.pk || $javaField == ${subTableFkclassName})
#else #else
${javaField}: ""#if($foreach.count != $subTable.columns.size()),#end ${javaField}: "",
#end #end
#end #end
} }
}); sub.addRow(row);
} }
#end #end
</script> </script>

View File

@ -160,8 +160,8 @@
<h4 class="form-header h4">${subTable.functionName}信息</h4> <h4 class="form-header h4">${subTable.functionName}信息</h4>
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<button type="button" class="btn btn-white btn-sm" onclick="addColumn()"><i class="fa fa-plus"> 增加</i></button> <button type="button" class="btn btn-white btn-sm" onclick="addRow()"><i class="fa fa-plus"> 增加</i></button>
<button type="button" class="btn btn-white btn-sm" onclick="sub.delColumn()"><i class="fa fa-minus"> 删除</i></button> <button type="button" class="btn btn-white btn-sm" onclick="sub.delRow()"><i class="fa fa-minus"> 删除</i></button>
<div class="col-sm-12 select-table table-striped"> <div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table> <table id="bootstrap-table"></table>
</div> </div>
@ -345,9 +345,7 @@
var name = $.common.sprintf("${subclassName}List[%s].${javaField}", index); var name = $.common.sprintf("${subclassName}List[%s].${javaField}", index);
return $.common.dictToSelect(${javaField}Datas, value, name); return $.common.dictToSelect(${javaField}Datas, value, name);
} }
#if($foreach.count != $subTable.columns.size())
}, },
#end
#else #else
{ {
field: '${javaField}', field: '${javaField}',
@ -357,34 +355,34 @@
var html = $.common.sprintf("<input class='form-control' type='text' name='${subclassName}List[%s].${javaField}' value='%s'>", index, value); var html = $.common.sprintf("<input class='form-control' type='text' name='${subclassName}List[%s].${javaField}' value='%s'>", index, value);
return html; return html;
} }
#if($foreach.count != $subTable.columns.size())
}, },
#end #end
#end #end
#end {
title: '操作',
align: 'center',
formatter: function(value, row, index) {
return '<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="sub.delRowByIndex(\'' + $.table.serialNumber(index) + '\', \'' + row.index + '\')"><i class="fa fa-remove"></i>删除</a>';
}
}] }]
}; };
$.table.init(options); $.table.init(options);
}); });
function addColumn() { function addRow() {
var count = $("#" + table.options.id).bootstrapTable('getData').length; var count = $("#" + table.options.id).bootstrapTable('getData').length;
sub.editColumn(); var row = {
index: $.table.serialNumber(count),
$("#" + table.options.id).bootstrapTable('insertRow', {
index: count,
row: {
index: $.table.serialNumber(count),
#foreach($column in $subTable.columns) #foreach($column in $subTable.columns)
#set($javaField=$column.javaField) #set($javaField=$column.javaField)
#if($column.pk || $javaField == ${subTableFkclassName}) #if($column.pk || $javaField == ${subTableFkclassName})
#else #else
${javaField}: ""#if($foreach.count != $subTable.columns.size()),#end ${javaField}: "",
#end #end
#end #end
} }
}); sub.addRow(row);
} }
#end #end
</script> </script>