@ -3,50 +3,42 @@
< head >
< th:block th:include = "include :: header('修改委外报价')" / >
< th:block th:include = "include :: datetimepicker-css" / >
< th:block th:include = "include :: bootstrap-editable-css" / >
< th:block th:include = "include :: select2-css" / >
< / head >
< body class = "white-bg" >
< div class = "wrapper wrapper-content animated fadeInRight ibox-content" >
< form class = "form-horizontal m" id = "form-outsource_quote-edit" th:object = "${outsourceQuote}" >
< h4 class = "form-header h4" > 委外报价信息< / h4 >
< input name = "outsourceQuoteId" th:field = "*{outsourceQuoteId}" type = "hidden" >
< div class = "col-xs-12" >
< div class = "form-group" >
< label class = "col-sm-3 control-label is-required" > 委外报价单号:< / label >
< div class = "col-sm-8" >
< input name = "outsourceQuoteCode" th:field = "*{outsourceQuoteCode}" class = "form-control" type = "text" required readonly >
< / div >
< / div >
< div class = "form-group" >
< / div >
< div class = "col-xs-12" >
< div class = "form-group" >
< label class = "col-sm-3 control-label is-required" > 供应商编号:< / label >
< div class = "col-sm-8" >
< input id = "selectSupplierQuoteCode" name = "supplierQuoteCode" th:field = "*{supplierQuoteCode}" class = "form-control" required >
<!-- <select id="selectSupplierQuoteCode" name="supplierQuoteCode" th:field="*{supplierQuoteCode}" class="form - control" required> -->
<!-- <option value="">请选择供应商</option> -->
<!-- </select> -->
< / div >
<!-- <select id="selectSupplierQuoteCode" name="supplierQuoteCode" th:field="*{supplierQuoteCode}" class="form - control" required> -->
<!-- <option value="">请选择供应商</option> -->
<!-- </select> -->
< / div >
< / div >
< div class = "col-xs-12" >
< div class = "form-group" >
< label class = "col-sm-3 control-label is-required" > 供应商名称:< / label >
< div class = "col-sm-8" >
< input name = "supplierName" th:field = "*{supplierName}" class = "form-control" type = "text" >
< / div >
< / div >
< / div >
< div class = "col-xs-12" >
< div class = "form-group" >
< label class = "col-sm-3 control-label" > 工序合计:< / label >
< div class = "col-sm-8" >
< input name = "processAmount" th:field = "*{processAmount}" class = "form-control" type = "text" >
< / div >
< / div >
< / div >
< div class = "col-xs-12" >
< div class = "form-group" >
< label class = "col-sm-3 control-label" > 税率:< / label >
< div class = "col-sm-8" >
@ -56,8 +48,7 @@
< / div >
< / div >
< / div >
< / div >
< div class = "col-xs-12" >
< div class = "form-group" >
< label class = "col-sm-3 control-label" > 定价日期:< / label >
< div class = "col-sm-8" >
@ -66,40 +57,44 @@
< span class = "input-group-addon" > < i class = "fa fa-calendar" > < / i > < / span >
< / div >
< / div >
<!-- <div class="col - sm - 8"> -->
<!-- <input name="pricingDate" th:field="*{pricingDate}" class="form - control" type="text"> -->
<!-- </div> -->
< / div >
< / div >
< div class = "col-xs-12" >
< div class = "form-group" >
< label class = "col-sm-3 control-label" > 备注:< / label >
< div class = "col-sm-8" >
< input name = "remark" th:field = "*{remark}" class = "form-control" type = "text" >
< textarea name = "remark" th:field = "*{remark}" class = "form-control" type = "text" > < / textarea >
< / div >
< / div >
< div class = "form-group" >
< / div >
< h4 class = "form-header h4" > 委外报价工序信息< / h4 >
< div class = "row" >
< div class = "col-sm-12" >
< button type = "button" class = "btn btn-blue btn-sm" onclick = "processadd()" > < i class = "fa fa-plus" > 增加< / i > < / button >
< div class = "col-xs-12" >
< div class = "form-group-sm" >
< a class = "btn btn-success" onclick = "processadd()" > < i class = "fa fa-plus" > < / i > 添加< / a >
< div class = "col-sm-12 select-table table-striped" >
< table id = "bootstrap-table-process" > < / table >
< / div >
< / div >
< / div >
< / form >
< / div >
< th:block th:include = "include :: footer" / >
< th:block th:include = "include :: datetimepicker-js" / >
< th:block th:include = "include :: select2-js" / >
<!-- <th:block th:include="include :: bootstrap - table - editable - js"/> -- >
< th:block th:include = "include :: bootstrap-table-editable-js" / >
< script th:inline = "javascript" >
var prefix = ctx + "system/outsource_quote";
$("#form-outsource_quote-edit").validate({
focusCleanup: true
});
var processData = [[${outsourceQuote.outsourceQuoteChildList}]]
var processData = [[${outsourceQuote.outsourceQuoteChildList}]];
var chargeUnitDatas = [[${@dict.getType('outsource_quote_unit')}]];
//获取供应商
// $("#selectSupplierQuoteCode").on("select2:select",function (e) {
@ -114,10 +109,6 @@
autoClose: true
});
function submitHandler() {
var url = prefix + "/edit";
var outsourceQuote = {
};
if ($.validate.form()) {
var outsourceQuoteChildList = [];
// 获取表单数据
@ -126,10 +117,10 @@
return obj;
}, {});
console.log(outsourceQuoteData);
outsourceQuote = {
var outsourceQuote = {
outsourceQuoteId: outsourceQuoteData.outsourceQuoteId,
outsourceQuoteCode: outsourceQuoteData.outsourceQuoteCode,
supplierQuoteCode: outsourceQuoteData.supplierCode,
supplierQuoteCode: outsourceQuoteData.supplierQuote Code,
supplierName: outsourceQuoteData.supplierName,
pricingDate: outsourceQuoteData.pricingDate,
taxRate: outsourceQuoteData.taxRate,
@ -144,19 +135,15 @@
$.modal.alertWarning("请至少添加一条委外工序再保存!");
return;
}else{
console.log(rows);
outsourceQuote.processAmount = rows.length;
var unit = getUnit();
var noRmb = getNoRmb();
var rmb = getRmb();
for(var i=0;i< rows.length ; i + + ) {
var quoteChild = {
outsourceProcessCode: rows[i].outsourceProcessCode,
outsourceProcessNo: rows[i].outsourceProcessNo,
outsourceProcessName: rows[i].outsourceProcessName,
chargeUnit:unit[i] ,
materialNormb: noRmb[i] ,
materialRmb: rmb[i] ,
chargeUnit: rows[i].chargeUnit ,
materialNormb: rows[i].materialNormb ,
materialRmb: rows[i].materialRmb ,
};
outsourceQuote.outsourceQuoteChildList.push(quoteChild);
}
@ -181,89 +168,36 @@
// // 这里取到的是多行的
var rowData = layero.find("iframe")[0].contentWindow.getSelections();
//判断是否重复
var rows = $("#bootstrap-table-process").bootstrapTable('getData').length;
var data = $("#bootstrap-table-process").bootstrapTable('getData');
var rows = data.length;
if(rows>0){
for(var i=0;i< rows ; i + + ) {
var data = $("#bootstrap-table-process").bootstrapTable('getData')[i];
for(var j=0;j< rowData.length ; j + + ) {
if(data.outsourceProcessNo==rowData[j].outsourceProcessNo ){
if(data[i].outsourceProcessCode===rowData[j].outsourceProcessCode ){
$.modal.alertError("不能选择已添加过的相同工序");
return;
rowData.split(j,1);
break;
}
insertTable(rowData[i]);
}
};
}else{
}
for(i=0;i< rowData.length ; i + + ) {
insertTable(rowData[i]);
}
}
layer.closeAll();
layer.close(index);
}
function insertTable(rowData) {
$("#bootstrap-table-process").bootstrapTable('insertRow', {
index: 1,
row: {
var newRow = {
outsourceProcessNo: rowData.outsourceProcessNo,
outsourceProcessCode: rowData.outsourceProcessCode,
outsourceProcessName: rowData.outsourceProcessName,
materialNoRmb: 0.00,
materialRmb: 0.00,
}
});
}
function getUnit(){
var selectElements = $('#bootstrap-table-process').find('select[id^="chargeUnit"]');
// 遍历每个下拉框
var unit = [];
selectElements.each(function() {
// 获取当前下拉框的值
var selectedValue = $(this).val();
unit.push(selectedValue);
});
console.log(unit);
return unit;
}
function getNoRmb(){
var selectElements = $('#bootstrap-table-process').find('input[id^="materialNormb"]');
// 遍历每个下拉框
var noRmb = [];
selectElements.each(function() {
// 获取当前下拉框的值
var selectedValue = $(this).val();
noRmb.push(selectedValue);
});
// console.log(noRmb);
return noRmb;
};
function getRmb(){
var selectElements = $('#bootstrap-table-process').find('input[id^="materialRmb"]');
// 遍历每个输入框
var rmb = [];
selectElements.each(function() {
// 获取当前输入框的值
var selectedValue = $(this).val();
rmb.push(selectedValue);
});
// console.log(rmb);
return rmb;
materialNormb: '',
materialRmb: '',
};
function initProcessTable(data,index){
$("#bootstrap-table-process").bootstrapTable('insertRow', {
index:1,
row: {
outsourceProcessNo: data.outsourceProcessNo,
outsourceProcessCode: data.outsourceProcessCode,
outsourceProcessName: data.outsourceProcessName,
// 将新行追加到表格末尾
$("#bootstrap-table-process").bootstrapTable('append', newRow);
}
});
$('#bootstrap-table-process').find('select[id="chargeUnit'+index+'"]').val(data.chargeUnit);
$('#bootstrap-table-process').find('input[id="materialNormb'+index+'"]').val(data.materialNormb);
$('#bootstrap-table-process').find('input[id="materialRmb'+index+'"]').val(data.materialRmb);
};
$(function() {
var options = {
id: "bootstrap-table-process",
@ -281,12 +215,16 @@
title: '委外工序主键',
visible: false,
},
{
field: 'outsourceProcessCode',
align: 'center',
title: '委外工序ID',
},
{
field: 'outsourceProcessNo',
align: 'center',
title: '委外工序编号',
},
{
field: 'outsourceProcessName',
align: 'center',
@ -296,34 +234,48 @@
field: 'chargeUnit',
align: 'center',
title: '计价单位',
width: 120,
// overflow: visible,
formatter: function(value, row, index) {
var html = $.common.sprintf("< select class = 'form-control' id = 'chargeUnit" + index + "' name = 'outsourceQuoteChildList[%s].chargeUnit' value = '%s' data-first-title = '请选择' > " +
"< option value = '' > 请选择< / option > " +
"< option value = '0' > 按重量计< / option > " +
"< option value = '1' > 按数量计< / option > " +
"< option value = '2' > 按面积计< / option > " +
"< / select > ", index, value);
return html;
formatter:function (value, row, index) {
return chargeUnitFormatter(value,row,index);
}
},
{
field: 'materialNormb',
align: 'center',
title: '工序的不含税单价(RMB) ',
formatter: function(value, row, index) {
var html = $.common.sprintf("< input class = 'form-control' type = 'text' id = 'materialNormb" + index + "' name = 'outsourceQuoteChildList[%s].materialNormb' value = '%s' > ", index, value);
return html;
title: '不含税单价(RMB) ',
editable: {
type: 'text', // 编辑器类型
validate: function (value) {
value = $.trim(value); // 去除前后空格
if (!value) {
return '价格不能为空';
}
if (isNaN(value)) {
return '请输入有效的数字';
}
if (parseFloat(value) < 0 ) {
return '价格不能为负数';
}
}
}
},
{
field: 'materialRmb',
align: 'center',
title: '工序的含税单价(RMB)',
formatter: function(value, row, index) {
var html = $.common.sprintf("< input class = 'form-control' type = 'text' id = 'materialRmb" + index + "' name = 'outsourceQuoteChildList[%s].materialRmb' value = '%s' > ", index, value);
return html;
title: '含税单价(RMB)',
editable: {
type: 'text', // 编辑器类型
validate: function (value) {
value = $.trim(value); // 去除前后空格
if (!value) {
return '价格不能为空';
}
if (isNaN(value)) {
return '请输入有效的数字';
}
if (parseFloat(value) < 0 ) {
return '价格不能为负数';
}
}
}
},
{
@ -331,42 +283,42 @@
align: 'center',
formatter: function (value, row, index) {
var actions = [];
actions.push('< a class = "btn btn-danger btn-xs" href = "javascript:void(0)" onclick = "removeRow(\'' + row.outsourceProcessCode + '\')" > < i class = "fa fa-remove" > < / i > 删除< / a > ');
actions.push('< a class = "btn btn-danger btn-xs" href = "javascript:void(0)" onclick = "removeRow(\'' + row.outsourceProcessNo + '\')" > < i class = "fa fa-remove" > < / i > 删除< / a > ');
return actions.join('');
}
}]
};
$.table.init(options);
var quoteDetail = options.data;
console.log(quoteDetail);
$.each(quoteDetail, function(index, item) {
// 设置下拉框的值
$('#chargeUnit' + index).val(item.chargeUnit);
$('#materialNormb' + index).val(item.materialNormb);
$('#materialRmb' + index).val(item.materialRmb);
});
// 监听刷新事件
$('#bootstrap-table-process').on('refresh.bs.table', function () {
$.each(quoteDetail, function(index, item) {
// 设置下拉框的值
$('#chargeUnit' + index).val(item.chargeUnit);
$('#materialNormb' + index).val(item.materialNormb);
$('#materialRmb' + index).val(item.materialRmb);
});
});
});
function removeRow(outsourceProcessCode){
function removeRow(outsourceProcessNo){
$("#bootstrap-table-process").bootstrapTable('remove', {
field: 'outsourceProcessCode ',
values: outsourceProcessCode
field: 'outsourceProcessNo',
values: outsourceProcessNo
})
}
// 自定义计价单位的初始化函数
function chargeUnitFormatter(value, row, index) {
var selectHtml = `< select class = "form-control" onchange = "onChargeUnit(this, ${index})" > `;
selectHtml += '< option value = "" ' + ( value = == undefined | | value = == ' ' ? ' selected ' : ' ' ) + ' > 所有< / option > ';
chargeUnitDatas.forEach(function (child) {
selectHtml += '< option value = "' + child.dictValue + '" ' + ( value = == child . dictValue ? ' selected ' : ' ' ) + ' > ' + child.dictLabel + '< / option > ';
});
selectHtml += '< / select > ';
return selectHtml;
}
// 列中获取计价单位的下拉改变数据
function onChargeUnit(selectElement, rowIndex) {
var unitValue = $(selectElement).val();
var tableData = $("#bootstrap-table-process").bootstrapTable('getData');
var newRow = tableData[rowIndex]; // 获取当前行数据
// 更新行数据
newRow.chargeUnit = unitValue;
$("#bootstrap-table-process").bootstrapTable('updateRow', {index: rowIndex, row: newRow});
}
< / script >
< / body >
< / html >