Browse Source
修改生产订单的委内加工入库的前端页面 损耗率字段 委内加工入库对象 新增 销售订单物料号字段 修改委内加工入库的新增方法:由委内加工入库->入库流程改成(委内加工入库->品质->入库流程); 新增 委内加工品质单报告数据后端接口 新增 添加委内加工品质单详情数据后端接口 新增 委内入库品质单报告前端页面 新增 委内入库品质单品质前端页面 品质单前端页面 修改所有页面的按钮显示的条件 新增 委内入库相关品质页面 品质单 后端新增 委内加工品质单开始品质接口 品质单 后端新增 修改保存委内加工品质单开始品质 品质单 后端新增 委内加工品质单开始品质 物料相关信息 品质单 后端新增 修改委内加工入库单品质报告按钮 品质单 后端新增 修改保存委内加工入库单品质报告按钮 品质单详情新增 委内已完成数字段 品质单详情新增 根据物料号和品质单号查询品质管理品质单详情后端接口 品质单详情新增 查询委内加工品质单开始品质 物料相关信息后端接口 品质单报告新增 委内已完成数字段 品质单报告 新增 通过品质单报告Id修改品质管理品质单报告后端接口 品质单报告 新增 查询委内加工入库单品质报告 品质单不合格数 新增 品质单报告Id字段 品质单不合格数 新增 根据品质单报告id查询品质单报告不合格分类 后端接口 入库单新增 通过委内加工入库单品质后生成入库单后端接口dev
liuxiaoxu
4 months ago
24 changed files with 1254 additions and 52 deletions
@ -0,0 +1,315 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
||||
|
<head> |
||||
|
<th:block th:include="include :: header('修改品质管理品质单报告')" /> |
||||
|
<th:block th:include="include :: datetimepicker-css" /> |
||||
|
</head> |
||||
|
<body class="white-bg"> |
||||
|
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
||||
|
<form class="form-horizontal m" id="form-qualityOrderReport-edit" th:object="${qualityOrderReport}"> |
||||
|
<input name="qualityOrderReportId" th:field="*{qualityOrderReportId}" type="hidden"> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">料号:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<input name="materialNo" th:field="*{materialNo}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">物料名称:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<input name="materialName" th:field="*{materialName}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">委内已完成数:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<input name="makeInNum" th:field="*{makeInNum}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">品质已合格数:</label> |
||||
|
<div class="col-sm-6"> |
||||
|
<input name="qualityHasqualifiedNum" th:field="*{qualityHasqualifiedNum}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="container"> |
||||
|
<!--合格数--> |
||||
|
<div class="col-sm-12"> |
||||
|
<h3>合格数</h3> |
||||
|
<div class="row"> |
||||
|
<div class="form-group col-sm-6"> |
||||
|
<label class="control-label is-required">ok允收数:</label> |
||||
|
<input name="okAcceptedNum" th:field="*{okAcceptedNum}" class="form-control" type="text" required> |
||||
|
</div> |
||||
|
<div class="form-group col-sm-6"> |
||||
|
<label class="control-label">ok报告图片:</label> |
||||
|
<input name="okReportUrl" th:field="*{okReportUrl}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="row"> |
||||
|
<div class="form-group col-sm-6"> |
||||
|
<label class="control-label is-required">特采/让步数:</label> |
||||
|
<input name="specialConcessionsNum" th:field="*{specialConcessionsNum}" class="form-control" type="text" required> |
||||
|
</div> |
||||
|
<div class="form-group col-sm-6"> |
||||
|
<label class="control-label">特采报告图片:</label> |
||||
|
<input name="specialReportUrl" th:field="*{specialReportUrl}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!--不合格数--> |
||||
|
<div class="col-sm-12"> |
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12 d-flex align-items-center"> |
||||
|
<span style="font-weight: bold; font-family: Arial, sans-serif; font-size: 15px;">不合格数</span> |
||||
|
<a class="btn btn-success ml-auto" onclick="addUnqualified()"> |
||||
|
<i class="fa fa-plus"></i> 添加 |
||||
|
</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12 select-table table-striped"> |
||||
|
<table id="bootstrap-unqualified-table"></table> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
<!--其他字段--> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-4 control-label">检验完成时间:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<div class="input-group date"> |
||||
|
<input name="checkoutCompletionTime" th:value="${#dates.format(qualityOrderReport.checkoutCompletionTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text"> |
||||
|
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-4 control-label">备注:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<textarea name="remark" th:field="*{remark}" class="form-control" type="text"></textarea> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
<th:block th:include="include :: footer" /> |
||||
|
<th:block th:include="include :: datetimepicker-js" /> |
||||
|
<th:block th:include="include :: bootstrap-table-editable-js"/> |
||||
|
<script th:inline="javascript"> |
||||
|
|
||||
|
var processBadClassificationDatas = [[${@dict.getType('process_bad_classification')}]]; |
||||
|
var processBadGradeDatas = [[${@dict.getType('process_bad_grade')}]]; |
||||
|
|
||||
|
var qualityOrderCode = /*[[${qualityOrderCode}]]*/ ''; |
||||
|
var $table = $("#bootstrap-unqualified-table"); |
||||
|
var prefix = ctx + "quality/qualityOrder"; |
||||
|
$("#form-qualityOrderReport-edit").validate({ |
||||
|
focusCleanup: true |
||||
|
}); |
||||
|
|
||||
|
function submitHandler() { |
||||
|
if ($.validate.form()) { |
||||
|
// 获取表单数据 |
||||
|
const qualityReportData = $("#form-qualityOrderReport-edit").serializeArray().reduce((obj, item) => { |
||||
|
obj[item.name] = item.value; |
||||
|
return obj; |
||||
|
}, {}); |
||||
|
// 获取bootstrap-table的数据,这里假设你使用bootstrap-table的API获取所有数据 |
||||
|
var table = $('#bootstrap-unqualified-table').bootstrapTable('getData'); |
||||
|
// 检查表格数据是否为空 |
||||
|
if (table.length === 0) { |
||||
|
$.modal.alertWarning("请至少添加一条不合格数再保存!"); |
||||
|
return; |
||||
|
} |
||||
|
console.log(JSON.stringify(table)); |
||||
|
// 将表数据转换成与qualityReportData格式一致的数组 |
||||
|
var unqualifiedDataList = table.map(function (item) { |
||||
|
// 根据实际字段名调整 |
||||
|
return { |
||||
|
"processBadClassification": item.processBadClassification, |
||||
|
"processBadGrade": item.processBadGrade, |
||||
|
"processBadNum": item.processBadNum, |
||||
|
"unqualifiedReportUrl": item.unqualifiedReportUrl |
||||
|
// ...其他字段 |
||||
|
}; |
||||
|
}); |
||||
|
|
||||
|
const combinedData = Object.assign({}, qualityReportData, |
||||
|
{unqualifiedDataList: unqualifiedDataList, |
||||
|
qualityOrderCode: qualityOrderCode // 直接使用全局变量 |
||||
|
}, |
||||
|
); |
||||
|
// 合并表单数据和表格数据 |
||||
|
// const combinedData = Object.assign({}, ...complaintNoticeData.array(item => ({ [item.name]: item.value })), ...materialData); |
||||
|
console.log(combinedData) |
||||
|
// 使用 JSON.stringify() 序列化数据 |
||||
|
const jsonData = JSON.stringify(combinedData); |
||||
|
// 发送 AJAX 请求到后端接口 |
||||
|
$.operate.saveJson(prefix + "/makeInOrderReport", jsonData); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
$("input[name='checkoutCompletionTime']").datetimepicker({ |
||||
|
format: "yyyy-mm-dd", |
||||
|
minView: "month", |
||||
|
autoclose: true |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
|
||||
|
//添加不合格数 |
||||
|
function addUnqualified() { |
||||
|
// 生成一个简单的唯一标识,这里使用时间戳作为示例 |
||||
|
var uniqueId = new Date().getTime(); |
||||
|
// 创建一个新行数据模板,这里仅为示例,具体根据表格列来定义 |
||||
|
var newRow = { |
||||
|
qualityOrderReportId:uniqueId, |
||||
|
processBadClassification: "", |
||||
|
processBadGrade: "", |
||||
|
processBadNum: "", |
||||
|
unqualifiedReportUrl: "" |
||||
|
}; |
||||
|
|
||||
|
// 使用Bootstrap Table的API插入新行 |
||||
|
$('#bootstrap-unqualified-table').bootstrapTable('append', newRow); |
||||
|
|
||||
|
} |
||||
|
//收款凭证table列表 |
||||
|
$(function() { |
||||
|
var options = { |
||||
|
id:"bootstrap-unqualified-table", |
||||
|
modalName: "收款凭证", |
||||
|
showColumns: false, |
||||
|
pagination: false, |
||||
|
showToggle: false, |
||||
|
showRefresh:false, |
||||
|
showSearch:false, |
||||
|
singleSelect:true, |
||||
|
columns: [{ |
||||
|
checkbox: false |
||||
|
}, |
||||
|
{ |
||||
|
title: '品质报告单id', |
||||
|
field: 'qualityOrderReportId', |
||||
|
visible: false |
||||
|
}, |
||||
|
|
||||
|
{title: '不良分类',field: 'processBadClassification', |
||||
|
formatter:function (value, row, index) { |
||||
|
return processBadClassificationFormatter(value,row,index); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
{title: '不良等级',field: 'processBadGrade', |
||||
|
formatter:function (value, row, index) { |
||||
|
return processBadGradeFormatter(value,row,index); |
||||
|
} |
||||
|
}, |
||||
|
{ |
||||
|
title: '数量', |
||||
|
field: 'processBadNum', |
||||
|
editable:{ |
||||
|
type: 'text', |
||||
|
mode:'inline', |
||||
|
validate: function (v) { |
||||
|
if (!v) return '数量不能为空'; |
||||
|
if (isNaN(v)) return '数量必须是数字'; |
||||
|
var processBadNum = parseInt(v); |
||||
|
if (processBadNum < 0) return '数量必须是正整数'; |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
{ |
||||
|
title: '报告', |
||||
|
field: 'unqualifiedReportUrl', |
||||
|
editable: { |
||||
|
mode:'inline', |
||||
|
type: 'text', // 表示该列可以被编辑为文本 |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
title: '操作', |
||||
|
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.qualityOrderReportId + '\')"><i class="fa fa-remove"></i>删除</a> '); |
||||
|
return actions.join(''); |
||||
|
} |
||||
|
} |
||||
|
] |
||||
|
}; |
||||
|
$.table.init(options); |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
// 逻辑删除不合格数前端的一行数据 |
||||
|
function removeRow(qualityOrderReportId){ |
||||
|
console.log(qualityOrderReportId); |
||||
|
// 直接使用 receivablesRecordsId 值进行删除操作 |
||||
|
$("#bootstrap-unqualified-table").bootstrapTable('remove', { |
||||
|
field: 'qualityOrderReportId', |
||||
|
values: qualityOrderReportId |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
// 列中获取不良分类的下拉改变数据 |
||||
|
function onProcessBadClassification(selectElement, rowIndex) { |
||||
|
var processBadClassificationValue = $(selectElement).val(); |
||||
|
var tableData = $table.bootstrapTable('getData'); |
||||
|
var newRow = tableData[rowIndex]; // 获取当前行数据 |
||||
|
// 重新渲染成本小类的设备名称列 |
||||
|
// 更新行数据 |
||||
|
newRow.processBadClassification = processBadClassificationValue; |
||||
|
$table.bootstrapTable('updateRow', {index: rowIndex, row: newRow}); |
||||
|
} |
||||
|
|
||||
|
// 自定义不良分类的格式化函数 |
||||
|
function processBadClassificationFormatter(value, row, index) { |
||||
|
var selectHtml = '<select class="form-control" onchange="onProcessBadClassification(this, ' + index + ')">'; |
||||
|
|
||||
|
// 添加默认选项 |
||||
|
selectHtml += '<option value=""' + (value === undefined || value === '' ? ' selected' : '') + '>所有</option>'; |
||||
|
|
||||
|
processBadClassificationDatas.forEach(function (child) { |
||||
|
selectHtml += '<option value="' + child.dictValue + '"' + (value === child.dictValue ? ' selected' : '') + '>' + child.dictLabel + '</option>'; |
||||
|
}); |
||||
|
|
||||
|
selectHtml += '</select>'; |
||||
|
return selectHtml; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
// 列中获取不良等级的下拉改变数据 |
||||
|
function onProcessBadGrade(selectElement, rowIndex) { |
||||
|
var processBadGradeValue = $(selectElement).val(); |
||||
|
var tableData = $table.bootstrapTable('getData'); |
||||
|
var newRow = tableData[rowIndex]; // 获取当前行数据 |
||||
|
// 重新渲染成本小类的设备名称列 |
||||
|
// 更新行数据 |
||||
|
newRow.processBadGrade = processBadGradeValue; |
||||
|
$table.bootstrapTable('updateRow', {index: rowIndex, row: newRow}); |
||||
|
} |
||||
|
|
||||
|
// 自定义不良等级的格式化函数 |
||||
|
function processBadGradeFormatter(value, row, index) { |
||||
|
var selectHtml = '<select class="form-control" onchange="onProcessBadGrade(this, ' + index + ')">'; |
||||
|
|
||||
|
// 添加默认选项 |
||||
|
selectHtml += '<option value=""' + (value === undefined || value === '' ? ' selected' : '') + '>所有</option>'; |
||||
|
|
||||
|
processBadGradeDatas.forEach(function (child) { |
||||
|
selectHtml += '<option value="' + child.dictValue + '"' + (value === child.dictValue ? ' selected' : '') + '>' + child.dictLabel + '</option>'; |
||||
|
}); |
||||
|
|
||||
|
selectHtml += '</select>'; |
||||
|
return selectHtml; |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,237 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
||||
|
<head> |
||||
|
<th:block th:include="include :: header('委内加工单品质')" /> |
||||
|
<th:block th:include="include :: datetimepicker-css" /> |
||||
|
</head> |
||||
|
<body class="white-bg"> |
||||
|
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
||||
|
<form class="form-horizontal m" id="form-makeInStartingQuality-edit" th:object="${qualityOrder}"> |
||||
|
<input name="qualityOrderId" th:field="*{qualityOrderId}" type="hidden"> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">品质单号:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="qualityOrderCode" th:field="*{qualityOrderCode}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">入库单号:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="inStorageCode" th:field="*{inStorageCode}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">关联订单号:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="relatedOrderCode" th:field="*{relatedOrderCode}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">品质单订单类型:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<select name="qualityOrderType" class="form-control m-b" th:with="type=${@dict.getType('quality_order_type')}"> |
||||
|
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{qualityOrderType}"></option> |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">品质单入库类型:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<select name="qualityStorageStatus" class="form-control m-b" th:with="type=${@dict.getType('quality_storage_status')}"> |
||||
|
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{qualityStorageStatus}"></option> |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">交付质检时间:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<div class="input-group date"> |
||||
|
<input name="deliveryInspectionTime" th:value="${#dates.format(qualityOrder.deliveryInspectionTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text"> |
||||
|
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">仓库Id:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="warehouseCode" th:field="*{warehouseCode}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-3 control-label">仓库名称:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="warehouseName" th:field="*{warehouseName}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
<!--物料信息--> |
||||
|
<div class="container"> |
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12 select-table table-striped"> |
||||
|
<table id="bootstrap-table"></table> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<th:block th:include="include :: footer" /> |
||||
|
<th:block th:include="include :: datetimepicker-js" /> |
||||
|
<!--用于可以修改列表字段的插件--> |
||||
|
<th:block th:include="include :: bootstrap-table-editable-js" /> |
||||
|
<script th:inline="javascript"> |
||||
|
|
||||
|
|
||||
|
var qualityOrderCode = [[${qualityOrder.qualityOrderCode}]] |
||||
|
var qualityOrder = [[${qualityOrder}]] |
||||
|
var prefix = ctx + "quality/qualityOrder"; |
||||
|
$("#form-qualityOrder-edit").validate({ |
||||
|
focusCleanup: true |
||||
|
}); |
||||
|
|
||||
|
// 新增提交 |
||||
|
function submitHandler() { |
||||
|
// 获取表单数据 |
||||
|
const qualityOrderData = $("#form-makeInStartingQuality-edit").serializeArray().reduce((obj, item) => { |
||||
|
obj[item.name] = item.value; |
||||
|
return obj; |
||||
|
}, {}); |
||||
|
// 获取bootstrap-table的数据,这里假设你使用bootstrap-table的API获取所有数据 |
||||
|
var table = $('#bootstrap-table').bootstrapTable('getData'); |
||||
|
|
||||
|
// 将表数据转换成与complaintNoticeData格式一致的数组 |
||||
|
var materialDataList = table.map(function(item) { |
||||
|
// 根据实际字段名调整 |
||||
|
return { |
||||
|
"qualityOrderDetailId": item.qualityOrderDetailId, |
||||
|
"materialNo": item.materialNo, |
||||
|
"thisArrivedNum": item.thisArrivedNum, |
||||
|
"qualityQualifiedNum": item.qualityQualifiedNum, |
||||
|
"qualityUnqualifiedNum": item.qualityUnqualifiedNum |
||||
|
// ...其他字段 |
||||
|
}; |
||||
|
}); |
||||
|
|
||||
|
const combinedData = Object.assign({}, qualityOrderData, { |
||||
|
qualityOrderDetailList: materialDataList, |
||||
|
}); |
||||
|
// 合并表单数据和表格数据 |
||||
|
console.log(combinedData) |
||||
|
// 使用 JSON.stringify() 序列化数据 |
||||
|
const jsonData = JSON.stringify(combinedData); |
||||
|
// 发送 AJAX 请求到后端接口 |
||||
|
$.operate.saveJson(prefix + "/makeInStartingQuality", jsonData); |
||||
|
} |
||||
|
|
||||
|
//物料信息展示列表 |
||||
|
$(function() { |
||||
|
var options = { |
||||
|
modalName: "选择物料", |
||||
|
url: prefix + "/getMaterialListByQualityOrderCode", |
||||
|
queryParams: queryParams, |
||||
|
showSearch: false, |
||||
|
showRefresh: false, |
||||
|
showToggle: false, |
||||
|
showColumns: false, |
||||
|
pagination: false, // 设置不分页 |
||||
|
columns: [{ |
||||
|
checkbox: true |
||||
|
}, |
||||
|
{ |
||||
|
title: '品质单详情ID', |
||||
|
field: 'qualityOrderDetailId', |
||||
|
visible: false |
||||
|
}, |
||||
|
{ |
||||
|
title: '料号', |
||||
|
field: 'materialNo' |
||||
|
}, |
||||
|
{ |
||||
|
title: '物料名称', |
||||
|
field: 'materialName' |
||||
|
}, |
||||
|
{ |
||||
|
title: '物料类型', |
||||
|
field: 'materialType', |
||||
|
}, |
||||
|
{ |
||||
|
title: '物料图片地址', |
||||
|
field: 'materialPhotourl', |
||||
|
}, |
||||
|
{ |
||||
|
title: '物料描述', |
||||
|
field: 'materialDescribe', |
||||
|
}, |
||||
|
{ |
||||
|
title: '物料品牌', |
||||
|
field: 'materialBrand', |
||||
|
}, |
||||
|
{ |
||||
|
title: '物料单位', |
||||
|
field: 'materialUnit', |
||||
|
}, |
||||
|
{ |
||||
|
title: '物料加工方式', |
||||
|
field: 'materialProcessMethod', |
||||
|
}, |
||||
|
{ |
||||
|
title: '委内已完成数', |
||||
|
field: 'makeInNum', |
||||
|
}, |
||||
|
{ |
||||
|
title: '品质已合格数', |
||||
|
field: 'qualityHasqualifiedNum', |
||||
|
}, |
||||
|
{ |
||||
|
title: '本次到货数', |
||||
|
field: 'thisArrivedNum', |
||||
|
editable:{ |
||||
|
type:'text', |
||||
|
validate: function (v) { |
||||
|
if (!v) return '本次到货数不能为空'; |
||||
|
} |
||||
|
}, |
||||
|
required:true |
||||
|
}, |
||||
|
{ |
||||
|
title: '品质报告', |
||||
|
align: 'center', |
||||
|
formatter: function(value, row, index) { |
||||
|
// 这里直接使用row对象获取supplierCode,假设它是存在的 |
||||
|
var actions = []; |
||||
|
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="makeInOrderReport(\'' + row.materialNo + '\')"><i class="fa fa-plus"></i>报告</a> '); |
||||
|
return actions.join(''); |
||||
|
} |
||||
|
}, |
||||
|
{ |
||||
|
title: '品质合格数', |
||||
|
field: 'qualityQualifiedNum', |
||||
|
}, |
||||
|
{ |
||||
|
title: '品质不合格数', |
||||
|
field: 'qualityUnqualifiedNum', |
||||
|
}] |
||||
|
}; |
||||
|
$.table.init(options); |
||||
|
}) |
||||
|
|
||||
|
function queryParams(params) { |
||||
|
var curParams = { |
||||
|
// 传递参数查询参数 |
||||
|
qualityOrderCode: qualityOrderCode |
||||
|
}; |
||||
|
console.log(curParams); |
||||
|
return curParams; |
||||
|
} |
||||
|
|
||||
|
function makeInOrderReport(materialNo) { |
||||
|
var qualityOrderCode = [[${qualityOrder.qualityOrderCode}]]; |
||||
|
var queryParams = new URLSearchParams(); |
||||
|
queryParams.append('materialNo', materialNo); |
||||
|
queryParams.append('qualityOrderCode',encodeURIComponent(qualityOrderCode)); |
||||
|
|
||||
|
var url = ctx + 'quality/qualityOrder/makeInOrderReport?' + queryParams.toString(); |
||||
|
$.modal.open("品质报告", url); |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
</body> |
||||
|
</html> |
Loading…
Reference in new issue