Browse Source

[fix]

委外加工 委外报价
修改添加、编辑委外报价页面表单定义,修改显示效果;
修改添加、编辑报价页面表格定义,修改下拉框初始化方法,新增自定义计价单位的初始化函数和监听函数,修改页面提交函数;
修改委外经理和委外主管审批页面显示效果;
修改编辑保存委外报价controller接口;
修改编辑报价service方法和报价工序信息service方法;
dev
王晓迪 2 months ago
parent
commit
82c17c2369
  1. 7
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceQuoteController.java
  2. 32
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceQuoteServiceImpl.java
  3. 4
      ruoyi-admin/src/main/resources/mapper/system/OutsourceQuoteMapper.xml
  4. 141
      ruoyi-admin/src/main/resources/templates/system/outsource_quote/add.html
  5. 256
      ruoyi-admin/src/main/resources/templates/system/outsource_quote/edit.html
  6. 2
      ruoyi-admin/src/main/resources/templates/system/outsource_quote/outsource_quote.html
  7. 6
      ruoyi-admin/src/main/resources/templates/system/outsource_quote/taskWwjlVerify.html
  8. 6
      ruoyi-admin/src/main/resources/templates/system/outsource_quote/taskWwzgVerify.html

7
ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceQuoteController.java

@ -259,12 +259,7 @@ public class OutsourceQuoteController extends BaseController
public AjaxResult editSave(@RequestBody OutsourceQuoteVO outsourceQuoteVO)
{
List<OutsourceQuoteChild> children = outsourceQuoteVO.getOutsourceQuoteChildList();
for (OutsourceQuoteChild child:children) {
child.setOutsourceQuoteCode(outsourceQuoteVO.getOutsourceQuoteCode());
child.setSupplierCode(outsourceQuoteVO.getSupplierQuoteCode());
child.setSupplierName(outsourceQuoteVO.getSupplierName());
child.setTaxRate(outsourceQuoteVO.getTaxRate());
}
// System.out.println(children);
return toAjax(outsourceQuoteService.updateOutsourceQuote(outsourceQuoteVO));
}

32
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceQuoteServiceImpl.java

@ -10,6 +10,7 @@ import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableSupport;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils;
@ -154,11 +155,18 @@ public class OutsourceQuoteServiceImpl implements IOutsourceQuoteService
* @return 结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public int insertOutsourceQuote(OutsourceQuoteVO childVO)
{
String loginName = ShiroUtils.getLoginName();
List<OutsourceQuoteChild> children = childVO.getOutsourceQuoteChildList();
for (OutsourceQuoteChild child:children) {
if(child.getChargeUnit()==null){
throw new BusinessException("工序" + child.getOutsourceProcessNo()+"计价单位为空,请检查");
}
if(child.getMaterialRmb()==null || child.getMaterialNormb() ==null){
throw new BusinessException("工序" + child.getOutsourceProcessNo()+"价格为空,请检查");
}
child.setOutsourceQuoteCode(childVO.getOutsourceQuoteCode());
child.setSupplierCode(childVO.getSupplierQuoteCode());
child.setSupplierName(childVO.getSupplierName());
@ -187,9 +195,23 @@ public class OutsourceQuoteServiceImpl implements IOutsourceQuoteService
SysUser user = ShiroUtils.getSysUser();
outsourceQuoteVO.setUpdateTime(DateUtils.getNowDate());
outsourceQuoteVO.setUpdateBy(user.getLoginName());
outsourceQuoteMapper.updateOutsourceQuote(outsourceQuoteVO);
OutsourceQuoteVO quoteVO = outsourceQuoteMapper.selectOutsourceQuoteByOutsourceQuoteId(outsourceQuoteVO.getOutsourceQuoteId());
List<OutsourceQuoteChild> children = outsourceQuoteVO.getOutsourceQuoteChildList();
if(StringUtils.isNotEmpty(children)){
for (OutsourceQuoteChild child:children) {
if (child.getChargeUnit() == null) {
throw new BusinessException("工序" + child.getOutsourceProcessNo() + "计价单位为空,请检查");
}
if (child.getMaterialRmb() == null || child.getMaterialNormb() == null) {
throw new BusinessException("工序" + child.getOutsourceProcessNo() + "价格为空,请检查");
}
}
quoteVO.setOutsourceQuoteChildList(children);
outsourceQuoteMapper.deleteOutsourceQuoteChildByOutsourceQuoteCode(outsourceQuoteVO.getOutsourceQuoteCode());
insertOutsourceQuoteChild(outsourceQuoteVO);
return outsourceQuoteMapper.updateOutsourceQuote(outsourceQuoteVO);
insertOutsourceQuoteChild(quoteVO);
}
return 1;
}
// 更新审核后信息(更新子表审核状态,防止子表信息丢失
@ -238,6 +260,12 @@ public class OutsourceQuoteServiceImpl implements IOutsourceQuoteService
for (OutsourceQuoteChild child:outsourceQuoteChildList) {
child.setOutsourceProcessCode(outsourceQuote.getOutsourceQuoteCode());
child.setAuditStatus(outsourceQuote.getAuditStatus());
child.setOutsourceQuoteCode(outsourceQuote.getOutsourceQuoteCode());
child.setSupplierCode(outsourceQuote.getSupplierQuoteCode());
child.setSupplierName(outsourceQuote.getSupplierName());
child.setTaxRate(outsourceQuote.getTaxRate());
child.setUpdateBy(ShiroUtils.getLoginName());
child.setUpdateTime(DateUtils.getNowDate());
}
outsourceQuoteMapper.batchOutsourceQuoteChild(outsourceQuoteChildList);
}

4
ruoyi-admin/src/main/resources/mapper/system/OutsourceQuoteMapper.xml

@ -202,9 +202,9 @@
</delete>
<insert id="batchOutsourceQuoteChild">
insert into outsource_quote_child( outsource_quote_child_id, outsource_quote_code, outsource_process_code, charge_unit, outsource_process_no, outsource_process_name, remark, tax_rate, material_rmb, material_noRmb, supplier_code, supplier_name, create_by, create_time, update_by, update_time, audit_status) values
insert into outsource_quote_child(outsource_quote_code, outsource_process_code, charge_unit, outsource_process_no, outsource_process_name, remark, tax_rate, material_rmb, material_noRmb, supplier_code, supplier_name, create_by, create_time, update_by, update_time, audit_status) values
<foreach item="item" index="index" collection="list" separator=",">
( #{item.outsourceQuoteChildId}, #{item.outsourceQuoteCode}, #{item.outsourceProcessCode},#{item.chargeUnit}, #{item.outsourceProcessNo}, #{item.outsourceProcessName}, #{item.remark}, #{item.taxRate}, #{item.materialRmb}, #{item.materialNormb}, #{item.supplierCode}, #{item.supplierName}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.auditStatus})
( #{item.outsourceQuoteCode}, #{item.outsourceProcessCode},#{item.chargeUnit}, #{item.outsourceProcessNo}, #{item.outsourceProcessName}, #{item.remark}, #{item.taxRate}, #{item.materialRmb}, #{item.materialNormb}, #{item.supplierCode}, #{item.supplierName}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.auditStatus})
</foreach>
</insert>

141
ruoyi-admin/src/main/resources/templates/system/outsource_quote/add.html

@ -3,6 +3,7 @@
<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>
@ -10,17 +11,15 @@
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-outsource_quote-add">
<div class="form-check-inline">
<h4 class="form-header h4">委外报价信息</h4>
</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="outsourceQuoteCode" readonly="readonly" class="form-control" type="text">
</div>
</div>
<div class="form-group">
</div>
<div class="form-group">
@ -37,7 +36,6 @@
<input name="supplierName" class="form-control" type="text" required>
</div>
</div>
<div class="col-xs-12">
<div class="form-group">
<label class="col-sm-3 control-label">税率:</label>
<div class="col-sm-8">
@ -47,8 +45,6 @@
</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">
@ -58,15 +54,17 @@
</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">
<input name="remark" class="form-control" type="text">
<textarea name="remark" class="form-control" type="text"></textarea>
</div>
</div>
<div class="form-group">
</div>
<div class="form-check-inline">
<h4 class="form-header h4">委外报价工序信息</h4>
</div>
@ -89,7 +87,8 @@
<th:block th:include="include :: bootstrap-table-editable-js"/>
<script th:inline="javascript">
var prefix = ctx + "system/outsource_quote";
var chargeUnitDatas = [[${@dict.getType("charge_unit")}]]
var chargeUnitDatas = [[${@dict.getType("charge_unit")}]];
var chargeUnitDatas = [[${@dict.getType('outsource_quote_unit')}]];
$("#form-outsource_quote-add").validate({
focusCleanup: true
});
@ -147,60 +146,23 @@
return;
}else{
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);
}
}
console.log(JSON.stringify(outsourceQuote));
console.log(outsourceQuote);
$.operate.saveJson(prefix + "/add", JSON.stringify(outsourceQuote));
}
}
function getUnit(){
var selectElements = $('#bootstrap-table-process').find('select[id="chargeUnit"]');
// 遍历每个下拉框
var unit = [];
selectElements.each(function() {
// 获取当前下拉框的值
var selectedValue = $(this).val();
unit.push(selectedValue);
});
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;
};
$(function() {
var options = {
id: "bootstrap-table-process",
@ -237,34 +199,48 @@
field: 'chargeUnit',
align: 'center',
title: '计价单位',
width: 150,
// overflow: visible,
formatter: function(value, row, index) {
var html = $.common.sprintf("<select class='form-control' id='chargeUnit' 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, value);
return html;
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, value);
return html;
editable: {
type: 'text', // 编辑器类型
validate: function (value) {
value = $.trim(value); // 去除前后空格
if (!value) {
return '价格不能为空';
}
if (isNaN(value)) {
return '请输入有效的数字';
}
if (parseFloat(value) < 0) {
return '价格不能为负数';
}
}
}
},
{
@ -343,8 +319,8 @@
outsourceProcessNo: rowData.outsourceProcessNo,
outsourceProcessCode: rowData.outsourceProcessCode,
outsourceProcessName: rowData.outsourceProcessName,
materialNoRmb: 0.00,
materialRmb: 0.00,
materialNormb: '',
materialRmb: '',
};
// 将新行追加到表格末尾
$("#bootstrap-table-process").bootstrapTable('append', newRow);
@ -355,6 +331,27 @@
values: outsourceProcessCode
})
}
// 自定义计价单位的初始化函数
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>

256
ruoyi-admin/src/main/resources/templates/system/outsource_quote/edit.html

@ -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.supplierQuoteCode,
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>

2
ruoyi-admin/src/main/resources/templates/system/outsource_quote/outsource_quote.html

@ -268,7 +268,7 @@
});
function edit(outsourceQuoteId) {
var url = table.options.updateUrl.replace("{id}", outsourceQuoteId);
$.modal.open("修改委外报价",url,1000,600);
$.modal.open("修改委外报价",url);
}
// 导出

6
ruoyi-admin/src/main/resources/templates/system/outsource_quote/taskWwjlVerify.html

@ -59,7 +59,7 @@
<div class="form-group">
<label class="col-sm-3 control-label is-required" for="wwjlVerifyApproved">审批意见:</label>
<div class="col-sm-6">
<div class="col-sm-8">
<select name="p_B_wwjlVerifyApproved" id="wwjlVerifyApproved" class="form-control" required>
<option value=""></option>
<option value="true">同意</option>
@ -68,8 +68,8 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-6 control-label">批注:</label>
<div class="col-sm-6">
<label class="col-sm-3 control-label">批注:</label>
<div class="col-sm-8">
<textarea name="comment" class="form-control"></textarea>
</div>
</div>

6
ruoyi-admin/src/main/resources/templates/system/outsource_quote/taskWwzgVerify.html

@ -59,7 +59,7 @@
<div class="form-group">
<label class="col-sm-3 control-label is-required" for="wwzgVerifyApproved">审批意见:</label>
<div class="col-sm-6">
<div class="col-sm-8">
<select name="p_B_wwzgVerifyApproved" id="wwzgVerifyApproved" class="form-control" required>
<option value=""></option>
<option value="true">同意</option>
@ -68,8 +68,8 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-6 control-label">批注:</label>
<div class="col-sm-6">
<label class="col-sm-3 control-label">批注:</label>
<div class="col-sm-8">
<textarea name="comment" class="form-control"></textarea>
</div>
</div>

Loading…
Cancel
Save