zhangsiqi
4 months ago
5 changed files with 1224 additions and 0 deletions
@ -0,0 +1,506 @@ |
|||
<!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" /> |
|||
<link th:href="@{/ajax/libs/select2/select2.css}" rel="stylesheet"> |
|||
<link th:href="@{/ajax/libs/select2/select2-bootstrap.css}" rel="stylesheet"> |
|||
<th:block th:include="include :: bootstrap-editable-css"/> |
|||
<style> |
|||
.other-container { |
|||
width: 90%; |
|||
height: 200px; |
|||
margin: auto; |
|||
} |
|||
.other { |
|||
margin-top: 20px; |
|||
} |
|||
h4 { |
|||
display: inline-block; |
|||
margin-right: 20px; |
|||
} |
|||
.modal-body{ |
|||
height: 550px; |
|||
} |
|||
iframe{ |
|||
width: 100%; |
|||
height: 500px; |
|||
frameborder: 0; |
|||
border: 0; |
|||
display: inline-block; |
|||
} |
|||
</style> |
|||
</head> |
|||
<body class="white-bg"> |
|||
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|||
<form class="form-horizontal m" id="form-purchaseOrder-detail" th:object="${purchaseOrder}"> |
|||
<input name="purchaseOrderId" th:field="*{purchaseOrderId}" type="hidden"> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">采购单号:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="purchaseOrderCode" th:field="*{purchaseOrderCode}" class="form-control" type="text" readonly> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">采购类别:</label> |
|||
<div class="col-sm-8"> |
|||
<!-- <input name="purchaseCategory" th:field="*{purchaseCategory}" class="form-control" type="text">--> |
|||
<select name="purchaseCategory" th:field="*{purchaseCategory}" class="form-control m-b" th:with="type=${@dict.getType('purchase_category')}"> |
|||
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option> |
|||
</select> |
|||
</div> |
|||
</div> |
|||
<div class="container"> |
|||
<!--物料相关--> |
|||
<div class="row"> |
|||
<div class="col-sm-12" id="tablesContainer"> |
|||
<!-- 表格将在这里动态生成 --> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
<div class="other-container"> |
|||
<div class="other"> |
|||
<br><hr> |
|||
<h4>选择采购信息</h4> |
|||
<a class="btn btn-primary" onclick="showQuotationModal()"><i class="fa fa-plus"></i> 选择材料</a> |
|||
<a class="btn btn-danger" onclick="removeMaterial()" ><i class="fa fa-remove"></i> 删除材料</a> |
|||
<div class="col-sm-12 select-table table-striped"> |
|||
<table id="addQuotationTable" style="white-space:nowrap"></table> |
|||
</div> |
|||
</div> |
|||
<div class="modal inmodal" id="supplierQuotationModal" |
|||
role="dilog" aria-hidden="true"> |
|||
|
|||
<!-- 查询供应商报价--> |
|||
<div class="modal-dialog" style="width: 1000px;background-color: #FFFFFF"> |
|||
|
|||
<div class="modal-content" style="background-color: #FFFFFF"> |
|||
|
|||
<div class="modal-body"> |
|||
<div class="container-div"> |
|||
<div class="row"> |
|||
<div class="col-sm-12 search-collapse"> |
|||
<form id="quotationFormId"> |
|||
<div class="select-list"> |
|||
<ul> |
|||
<li> |
|||
<label>报价编码:</label> |
|||
<input type="text" name="quotationCode"/> |
|||
</li> |
|||
<li> |
|||
<label>原辅料代码:</label> |
|||
<input type="text" name="rawSubsidiaryCode"/> |
|||
|
|||
</li> |
|||
<li> |
|||
<label>原辅料名称:</label> |
|||
<input type="text" name="rawSubsidiaryName"/> |
|||
</li> |
|||
<!-- <li>--> |
|||
<!-- <label>供应商名称:</label>--> |
|||
<!-- <input type="text" name="supplierName"/>--> |
|||
|
|||
<!-- </li>--> |
|||
<li> |
|||
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search('quotationFormId','quotationTable')"><i |
|||
class="fa fa-search"></i> 搜索</a> |
|||
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('quotationFormId','quotationTable')"><i |
|||
class="fa fa-refresh"></i> 重置</a> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
<div class="col-sm-12 select-table table-striped"> |
|||
<table id="quotationTable" style="white-space:nowrap"></table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="modal-footer"> |
|||
<a class="btn btn-warning btn-rounded" onclick="addQuotationToTable()">确认添加</a> |
|||
<a class="btn btn-primary btn-rounded" onclick="closeQuotationModal()">关闭</a> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
</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"/> |
|||
<script th:inline="javascript"> |
|||
|
|||
var getData = [[${purchaseOrder}]]; |
|||
|
|||
|
|||
var commonCurrencyDatas = [[${@dict.getType('sys_common_currency')}]]; |
|||
var purchasingUnitDatas = [[${@dict.getType('sys_unit_class')}]]; |
|||
var materialTypeDatas = [[${@dict.getType('ck_meterialt_type')}]]; |
|||
var confirmTaxDatas = [[${@dict.getType('sys_whether')}]]; |
|||
var currentQuoteDatas = [[${@dict.getType('sys_whether')}]]; |
|||
var confirmNoDatas = [[${@dict.getType('sys_whether')}]]; |
|||
var auditNoDatas = [[${@dict.getType('sys_whether')}]]; |
|||
var approveNoDatas = [[${@dict.getType('sys_whether')}]]; |
|||
|
|||
var prefix = ctx + "purchase/purchaseOrder"; |
|||
var prefixSupplierQuotation = ctx + 'system/supplierquotation' |
|||
var prefixPurchaseMaterial = ctx + 'purchase/purchaseMaterial' |
|||
|
|||
$("#form-purchaseOrder-detail").validate({ |
|||
focusCleanup: true |
|||
}); |
|||
|
|||
function submitHandler() { |
|||
// if ($.validate.form()) { |
|||
// $.operate.save(prefix + "/edit", $('#form-purchaseOrder-detail').serialize()); |
|||
// } |
|||
let getData=$('#addQuotationTable').bootstrapTable('getData', true) |
|||
if(getData.length > 0){ |
|||
if ($.validate.form()) { |
|||
$.modal.confirm("确认以上修改吗?", function (){ |
|||
//确认添加选中的物料数据 |
|||
confirmQuotation(); |
|||
$.operate.save(prefix + "/edit", $('#form-purchaseOrder-detail').serialize()); |
|||
}) |
|||
} |
|||
} else { |
|||
$.modal.alertWarning("未选择产品,请选择!") |
|||
} |
|||
} |
|||
|
|||
$("input[name='billingDate']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true, |
|||
todayBtn: true |
|||
}); |
|||
|
|||
$(function() { |
|||
//初始化添加材料表 |
|||
$('#addQuotationTable').bootstrapTable({ |
|||
url: prefixPurchaseMaterial + '/list', |
|||
pagination: true, |
|||
pageNumber: 1, |
|||
pageSize: 10, |
|||
method: "post", |
|||
contentType: "application/x-www-form-urlencoded", |
|||
striped: true, // 是否显示行间隔色 |
|||
cache: false, // 是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) |
|||
showToggle: false, // 是否显示详细视图和列表视图的切换按钮 |
|||
cardView: false, // 是否显示详细视图 |
|||
detailView: false, // 是否显示父子表 |
|||
smartDisplay: false, // 加了这个才显示每页显示的行数 |
|||
showExport: false, // 是否显示导出按钮 |
|||
clickToSelect: true, |
|||
paginationDetailHAlign: ' hiddenDetailInfo', |
|||
height: 250, |
|||
uniqueId: 'purchaseOrderChildId', |
|||
queryParams: function (params) { |
|||
//console.log("123"); |
|||
var curParams = { |
|||
// 传递参数查询参数 |
|||
pageSize: params.limit, |
|||
pageNum: params.offset / params.limit + 1, |
|||
purchaseOrderCode: getData.purchaseOrderCode, |
|||
supplierCode: getData.supplierCode, |
|||
supplierName: getData.supplierName |
|||
}; |
|||
// console.log(data[0].enterpriseCode) |
|||
return curParams |
|||
}, |
|||
columns: [{ |
|||
checkbox: true |
|||
}, |
|||
{ |
|||
title: '采购订单子表id', |
|||
field: 'purchaseOrderChildId', |
|||
visible: false |
|||
}, |
|||
{ |
|||
title: '关联采购订单号', |
|||
field: 'purchaseOrderCode', |
|||
}, |
|||
{ |
|||
title: '供应商代码', |
|||
field: 'supplierCode', |
|||
}, |
|||
{ |
|||
title: '供应商名称', |
|||
field: 'supplierName', |
|||
}, |
|||
{ |
|||
title: '物料料号', |
|||
field: 'materialCode', |
|||
}, |
|||
{ |
|||
title: '物料名称', |
|||
field: 'materialName', |
|||
}, |
|||
{ |
|||
title: '物料不含税单价', |
|||
field: 'materialNormb', |
|||
}, |
|||
{ |
|||
title: '物料含税单价', |
|||
field: 'materialRmb', |
|||
}, |
|||
{ |
|||
title: '采购物料数量', |
|||
field: 'materialNum', |
|||
}, |
|||
{ |
|||
title: '物料合计', |
|||
field: 'materialAmount', |
|||
}, |
|||
{ |
|||
title: '数量合计', |
|||
field: 'materialSum', |
|||
}, |
|||
{ |
|||
title: '不含税总价(RMB)', |
|||
field: 'materialNormbsum', |
|||
}, |
|||
{ |
|||
title: '含税总价(RMB)', |
|||
field: 'materialRmbsum', |
|||
}, |
|||
{ |
|||
title: '交货时间', |
|||
field: 'deliveryTime', |
|||
}, |
|||
{ |
|||
title: '收货状态', |
|||
field: 'eceiptStatus', |
|||
}, |
|||
{ |
|||
title: '打款结案状态', |
|||
field: 'paymentStatus', |
|||
}, |
|||
{ |
|||
title: '税率', |
|||
field: 'taxRate', |
|||
}, |
|||
] |
|||
}) |
|||
|
|||
}); |
|||
|
|||
/*供应商列表*/ |
|||
$.ajax({ |
|||
url: ctx + 'system/supplier/list', |
|||
type: 'post', |
|||
success: function (res) { |
|||
console.log(res) |
|||
if (res.rows.length > 0) { |
|||
var suppliertData = res.rows; |
|||
//alert(JSON.stringify(data)); |
|||
for (let i in suppliertData) { |
|||
// console.log(finishProductData[i].finishProductCode) |
|||
$("#form-purchaseOrder-detail select[name='supplierCode']").append("<option value='" + suppliertData[i].supplierCode + "'>" + suppliertData[i].supplierCode + "</option>"); |
|||
} |
|||
$("#form-purchaseOrder-detail select[name='supplierCode']").val(getData.supplierCode).trigger("change") |
|||
$("#form-purchaseOrder-detail select[name='supplierCode']").change(function () { |
|||
var code = $(this).val(); |
|||
for (let i=0;i<suppliertData.length;i++) { |
|||
if (suppliertData[i].supplierCode == code) { |
|||
$("#form-purchaseOrder-detail input[name='supplierName']").val(suppliertData[i].supplierName); |
|||
$("#form-purchaseOrder-detail input[name='customerContact']").val(suppliertData[i].customerContact); |
|||
$("#form-purchaseOrder-detail input[name='contactNumber']").val(suppliertData[i].contactNumber); |
|||
$("#form-purchaseOrder-detail input[name='customerFax']").val(suppliertData[i].customerFax); |
|||
$("#form-purchaseOrder-detail input[name='paymentTerms']").val(suppliertData[i].paymentTerms); |
|||
$("#form-purchaseOrder-detail input[name='taxRate']").val(suppliertData[i].taxRate); |
|||
} |
|||
} |
|||
}) |
|||
|
|||
} else { |
|||
$.modal.msgError(res.msg); |
|||
} |
|||
} |
|||
}) |
|||
/*用户列表*/ |
|||
$.ajax({ |
|||
url: ctx + 'system/user/list', |
|||
type: 'post', |
|||
success: function (res) { |
|||
console.log(res) |
|||
if (res.rows.length > 0) { |
|||
var usertData = res.rows; |
|||
//alert(JSON.stringify(data)); |
|||
for (let i in usertData) { |
|||
// console.log(finishProductData[i].finishProductCode) |
|||
$("#form-purchaseOrder-detail select[name='purchaseCommander']").append("<option value='" + usertData[i].userName + "'>" + usertData[i].userName + "</option>"); |
|||
} |
|||
$("#form-purchaseOrder-detail select[name='purchaseCommander']").val(getData.purchaseCommander).trigger("change") |
|||
} else { |
|||
$.modal.msgError(res.msg); |
|||
} |
|||
} |
|||
}) |
|||
|
|||
/*添加报价信息*/ |
|||
//点击按钮显示报价信息模态框 |
|||
function showQuotationModal() { |
|||
if ($.validate.form()) { |
|||
$("#supplierQuotationModal").modal("show"); |
|||
//显示报价信息 |
|||
showQuotationData(); |
|||
} else { |
|||
$.modal.alertWarning("请填写必填项"); |
|||
} |
|||
} |
|||
|
|||
//关闭报价信息模态框 |
|||
function closeQuotationModal() { |
|||
$("#supplierQuotationModal").modal("hide"); |
|||
} |
|||
|
|||
//显示报价信息 |
|||
function showQuotationData() { |
|||
var supplierCode = $("#form-purchaseOrder-detail select[name='supplierCode']").val() |
|||
$("#quotationTable").bootstrapTable("destroy") |
|||
var options = { |
|||
id: 'quotationTable', |
|||
url: prefixSupplierQuotation + "/list", |
|||
modalName: "供应商报价", |
|||
pagination: true, |
|||
pageNumber: 1, |
|||
pageSize: 10, |
|||
showRefresh: false, |
|||
showToggle: false, |
|||
clickToSelect: true, |
|||
queryParams: function (params) { |
|||
var curParams = { |
|||
// 传递参数查询参数 |
|||
pageSize: params.limit, |
|||
pageNum: params.offset / params.limit + 1, |
|||
supplierCode: supplierCode |
|||
}; |
|||
let json = $.extend(curParams, $.common.formToJSON("quotationFormId")); |
|||
return json; |
|||
}, |
|||
columns: [ |
|||
{title: '采购单子表编号',field: 'purchaseOrderChildId',visible: false}, |
|||
{title: '关联采购订单号',field: 'purchaseOrderCode',visible: false}, |
|||
{title: '供应商ID',field: 'supplierCode',}, |
|||
{title: '供应商名称',field: 'supplierName',}, |
|||
{title: '物料合计',field: 'materialAmount',}, |
|||
{title: '数量合计',field: 'materialSum',}, |
|||
{title: '不含税总价(RMB)',field: 'materialNoRmbSum',}, |
|||
{title: '含税总价(RMB)',field: 'materialRmbSum',}, |
|||
{title:'收货状态',field: 'eceiptStatus',formatter: function (value, row, index) { |
|||
$.table.selectDictLabel(eceiptStatusDatas, value);} |
|||
}, |
|||
{title:'打款状态',field: 'paymentStatus',formatter: function (value, row, index) { |
|||
$.table.selectDictLabel(paymentStatusDatas, value);} |
|||
}, |
|||
{title: '交货时间',field: 'deliveryTime',visible: false}, |
|||
] |
|||
|
|||
}; |
|||
$.table.init(options); |
|||
} |
|||
|
|||
//表中添加选中的物料信息 |
|||
function addQuotationToTable() { |
|||
var data = $("#quotationTable").bootstrapTable("getSelections"); |
|||
var count = $('#addQuotationTable').bootstrapTable('getData').length; |
|||
var purchaseOrderNumber = $("input[name='purchaseOrderNumber']").val(); |
|||
var supplierCode = $("select[name='supplierCode']").val(); |
|||
var supplierName = $("input[name='supplierName']").val(); |
|||
// console.log(data); |
|||
// console.log(count); |
|||
for (var i = 0; i < data.length; i++) { |
|||
let rawSubsidiary = $('#addQuotationTable').bootstrapTable('getRowByUniqueId', data[i].rawSubsidiaryCode); |
|||
if (rawSubsidiary != null) { |
|||
alert(rawSubsidiary.rawSubsidiaryName + "已存在,不可重复添加!"); |
|||
continue; |
|||
} |
|||
$("#addQuotationTable").bootstrapTable('insertRow', { |
|||
index: count + i, |
|||
row: { |
|||
purchaseOrderNumber: purchaseOrderNumber, |
|||
supplierCode: supplierCode, |
|||
supplierName: supplierName, |
|||
materialQuantity: '', |
|||
amountMoney: '', |
|||
deliveryTime: '', |
|||
purchaseExplain: '', |
|||
accountReconciliationFlag: 0 |
|||
} |
|||
}); |
|||
} |
|||
|
|||
$("#quotationTable").bootstrapTable("uncheckAll"); |
|||
closeQuotationModal(); |
|||
} |
|||
|
|||
//确认添加选中的物料数据 |
|||
function confirmQuotation() { |
|||
$("#addQuotationTable").bootstrapTable('refresh'); |
|||
let data = $('#addQuotationTable').bootstrapTable('getData', true); |
|||
// console.log(data) |
|||
if (data.length > 0) { |
|||
for (var i = 0; i < data.length; i++) { |
|||
data[i].purchaseOrderNumber = $("input[name='purchaseOrderNumber']").val(); |
|||
data[i].supplierCode = $("select[name='supplierCode']").val(); |
|||
data[i].supplierName = $("input[name='supplierName']").val(); |
|||
} |
|||
$.ajax({ |
|||
url: prefixPurchaseMaterial + '/addEditSave', |
|||
type: "POST", |
|||
data: { |
|||
data: JSON.stringify(data) |
|||
}, |
|||
dataType: "json", |
|||
success: function (resp) { |
|||
// console.log(data) |
|||
console.log(resp) |
|||
}, |
|||
|
|||
}) |
|||
} |
|||
} |
|||
|
|||
// 批量删除成品 |
|||
function removeMaterial() { |
|||
var addQuotationTableData = $("#addQuotationTable").bootstrapTable("getSelections"); |
|||
var ids = []; |
|||
var rawSubsidiaryCodes=[]; |
|||
for (let i = 0;i < addQuotationTableData.length;i++) { |
|||
ids.push(addQuotationTableData[i].purchaseMaterialId) |
|||
rawSubsidiaryCodes.push(addQuotationTableData[i].rawSubsidiaryCode) |
|||
} |
|||
// console.log(ids) |
|||
if (addQuotationTableData.length > 0) { |
|||
$.modal.confirm("是否确认要删除选中的产品?", function (){ |
|||
$.ajax({ |
|||
url: prefixPurchaseMaterial + "/removeMaterial", |
|||
type: "POST", |
|||
data: { |
|||
ids: JSON.stringify(ids) |
|||
}, |
|||
success: function (res) { |
|||
// console.log(ids) |
|||
// console.log(res) |
|||
$.modal.msgSuccess("删除成功") |
|||
// $("#addProductTable").bootstrapTable('refreshOptions', {pageNumber: 1}); // pageNumber:1, 指定页码为第1页 |
|||
// $("#addProductTable").bootstrapTable('refresh'); |
|||
$("#addQuotationTable").bootstrapTable ('remove', { field: 'rawSubsidiaryCode', values: rawSubsidiaryCodes }) |
|||
} |
|||
}) |
|||
}) |
|||
|
|||
} else { |
|||
alert("请选择需要删除的数据") |
|||
} |
|||
|
|||
} |
|||
</script> |
|||
</body> |
|||
</html> |
@ -0,0 +1,181 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
|||
<head> |
|||
<th:block th:include="include :: header('采购经理审核')" /> |
|||
<th:block th:include="include :: select2-css" /> |
|||
<link th:href="@{/ajax/libs/element-ui/element-ui.css}" rel="stylesheet"/> |
|||
</head> |
|||
<body class="white-bg"> |
|||
<div id="app" class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|||
<form class="form-horizontal m" id="form-gcjl-edit" th:object="${formData}"> |
|||
<input name="id" th:field="*{id}" type="hidden"> |
|||
<input name="taskId" th:field="*{taskId}" type="hidden"> |
|||
<input name="taskName" th:field="*{taskName}" type="hidden"> |
|||
<input name="instanceId" th:field="*{instanceId}" type="hidden"> |
|||
<input name="instanceType" th:field="*{instanceType}" type="hidden"> |
|||
<input type="hidden" name="p_COM_comment" /> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">申请人:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="applyUserName" th:field="*{applyUserName}" class="form-control" type="text" readonly> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">申请时间:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="input-group date"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
<input name="applyTime" th:value="${#dates.format(formData.applyTime, 'yyyy-MM-dd HH:mm')}" class="form-control" type="text" disabled> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">标题:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="title" th:field="*{applyTitle}" class="form-control" type="text" readonly> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label" for="cgjlVerifyApproved"><span style="color: red; ">*</span>审批意见:</label> |
|||
<div class="col-sm-8"> |
|||
<select name="p_B_cgjlVerifyApproved" id="cgjlVerifyApproved" class="form-control m-b" required> |
|||
<option value=""></option> |
|||
<option value="true">同意</option> |
|||
<option value="false">拒绝</option> |
|||
</select> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">批注:</label> |
|||
<div class="col-sm-8"> |
|||
<textarea name="comment" class="form-control"></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" /> |
|||
<th:block th:include="include :: select2-js" /> |
|||
<script th:src="@{/js/activiti.js}"></script> |
|||
<script th:inline="javascript"> |
|||
var erpMaterial = [[${formData}]]; |
|||
var prefix = ctx + "purchase/purchaseOrder"; |
|||
var purchaseOrderCode = [[${purchaseOrder.purchaseOrderCode}]]; |
|||
var warehouseCode = [[${purchaseOrder.stockNo}]]; |
|||
var warehouseName = [[${purchaseOrder.stockName}]]; |
|||
var warehouseDetailAddress = [[${purchaseOrder.stockAddress}]]; |
|||
$("#form-gcjl-edit").validate({focusCleanup: true}); |
|||
function submitHandler() { |
|||
if ($.validate.form()) { |
|||
if ($('textarea[name="comment"]').val()) { |
|||
$('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val()); |
|||
} |
|||
var taskId = [[${taskId}]]; |
|||
$.operate.save(prefix + "/complete/" + taskId, $('#form-gcjl-edit').serialize()); |
|||
} |
|||
} |
|||
|
|||
var prefix = ctx + "purchase/purchaseOrder"; |
|||
var auditStatusDatas = [[${@dict.getType('auditStatus')}]]; |
|||
var useStatusDatas = [[${@dict.getType('useStatus')}]]; |
|||
var processMethodDatas = [[${@dict.getType('processMethod')}]]; |
|||
var materialUnitDatas = [[${@dict.getType('sysUnitClassDatas')}]]; |
|||
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]]; |
|||
$("#form-addPurchaseStorage-edit").validate({ focusCleanup: true}); |
|||
//生成的不同table的id集合 |
|||
var tableDatas = []; |
|||
$(function() { |
|||
// 假设qualityOrderCode已经定义或者可以通过某种方式获取到 |
|||
var purchaseOrderCode = [[${purchaseOrder.purchaseOrderCode}]]; // 这里需要实际赋值,比如从前端某个地方读取 |
|||
$.getJSON(prefix + "/detailListGroupedBySupplier?qualityOrderCode=" + purchaseOrderCode, function(data) { |
|||
for (var supplierCode in data) { |
|||
if (data.hasOwnProperty(supplierCode)) { |
|||
var supplierData = data[supplierCode]; |
|||
createTableForSupplier(supplierCode, supplierData); |
|||
} |
|||
} |
|||
}); |
|||
}); |
|||
function createTableForSupplier(supplierCode, supplierData) { |
|||
var tableId = 'bootstrap-table-' + supplierCode.replace(/[^a-z0-9]/gi, '_').toLowerCase(); |
|||
tableDatas.push(tableId); |
|||
var $tableWrapper = $('<div class="table-responsive mt-3"></div>'); |
|||
// 确保supplierData至少有一条记录,并从中提取供应商详细信息 |
|||
var supplierInfo = supplierData.length > 0 ? supplierData[0] : {}; // 默认为空对象,以防数据不存在 |
|||
// 构建含有额外供应商信息的标题字符串 |
|||
var headerTitle ='供应商'+'</br>'+supplierCode + ' - ' + supplierInfo.supplierName ; |
|||
var $header = $('<h4>' + headerTitle + '</h4>'); |
|||
var $table = $('<table id="' + tableId + '" class="table table-striped table-bordered"></table>'); |
|||
$table.bootstrapTable({ |
|||
data: supplierData, |
|||
columns: [ |
|||
{checkbox: false,visible: false}, |
|||
{title: '供应商ID',field: 'supplierCode',visible: false}, |
|||
{title: '料号',field: 'materialCode'}, |
|||
{title: '物料名称',field: 'materialName'}, |
|||
{title: '物料类型',field: 'materialType', |
|||
formatter: function (value,row, index) { |
|||
$.table.selectCategoryLabel(materialTypeDatas, value) |
|||
} |
|||
}, |
|||
{title: '物料图片地址',field: 'materialPhotourl', |
|||
formatter: function (value, row, index) { |
|||
$.table.imageView(value) |
|||
} |
|||
}, |
|||
{title: '物料描述',field: 'materialDescribe',}, |
|||
{title: '物料品牌',field: 'materialBrand',}, |
|||
{title: '物料单位',field: 'materialUnit', |
|||
formatter:function (value) { |
|||
return $.table.selectDictLabel(materialUnitDatas, value); |
|||
} |
|||
}, |
|||
{title: '物料加工方式',field: 'materialProcessMethod', |
|||
formatter:function (value) { |
|||
return $.table.selectDictLabel(processMethodDatas, value); |
|||
} |
|||
}, |
|||
{title: '计划采购数',field: 'materialNum',}, |
|||
{title: '实际采购数',field: 'materialRealNum',}, |
|||
{title: '交付时间',field: 'deliveryTime',}, |
|||
{title: '通知已到货数',field: 'notifyArriveNum', |
|||
formatter: function (value, row, index) { |
|||
if (value == null || value == '') { |
|||
return 0; |
|||
} |
|||
return value; |
|||
} |
|||
}, |
|||
{title: '已入库数',field: 'hasStorageNum', |
|||
formatter: function (value, row, index) { |
|||
if (value == null || value == '') { |
|||
return 0; |
|||
} |
|||
return value; |
|||
} |
|||
}, |
|||
{title: '通知到货数',field: 'notifyArriveNum', |
|||
formatter: function (value, row, index) { |
|||
return '<input type="number" min="0" oninput="validity.valid || (value = 0)" data-id="notifyArriveNum" class="form-control" name="notifyArriveNum" value="'+value+'"'; |
|||
} |
|||
} |
|||
] |
|||
}); |
|||
$tableWrapper.append($header).append($table); |
|||
$('#tablesContainer').append($tableWrapper); |
|||
} |
|||
$("input[name='arrivedTime']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
|
|||
$("input[name='deliveryInspectionTime']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
</script> |
|||
</body> |
|||
</html> |
@ -0,0 +1,181 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
|||
<head> |
|||
<th:block th:include="include :: header('工程主管审核')" /> |
|||
<th:block th:include="include :: select2-css" /> |
|||
<link th:href="@{/ajax/libs/element-ui/element-ui.css}" rel="stylesheet"/> |
|||
</head> |
|||
<body class="white-bg"> |
|||
<div id="app" class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|||
<form class="form-horizontal m" id="form-edit" th:object="${formData}"> |
|||
<input name="id" th:field="*{id}" type="hidden"> |
|||
<input name="taskId" th:field="*{taskId}" type="hidden"> |
|||
<input name="taskName" th:field="*{taskName}" type="hidden"> |
|||
<input name="instanceId" th:field="*{instanceId}" type="hidden"> |
|||
<input name="instanceType" th:field="*{instanceType}" type="hidden"> |
|||
<input type="hidden" name="p_COM_comment" /> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">申请人:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="applyUserName" th:field="*{applyUserName}" class="form-control" type="text" readonly> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">申请时间:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="input-group date"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
<input name="applyTime" th:value="${#dates.format(formData.applyTime, 'yyyy-MM-dd HH:mm')}" class="form-control" type="text" disabled> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">标题:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="title" th:field="*{applyTitle}" class="form-control" type="text" readonly> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label" for="cgzgVerifyApproved"><span style="color: red; ">*</span>审批意见:</label> |
|||
<div class="col-sm-8"> |
|||
<select name="p_B_cgzgVerifyApproved" id="cgzgVerifyApproved" class="form-control m-b" required> |
|||
<option value=""></option> |
|||
<option value="true">同意</option> |
|||
<option value="false">拒绝</option> |
|||
</select> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">批注:</label> |
|||
<div class="col-sm-8"> |
|||
<textarea name="comment" class="form-control"></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" /> |
|||
<th:block th:include="include :: select2-js" /> |
|||
<script th:src="@{/js/activiti.js}"></script> |
|||
<script th:inline="javascript"> |
|||
var erpMaterial = [[${formData}]]; |
|||
var prefix = ctx + "purchase/purchaseOrder"; |
|||
var purchaseOrderCode = [[${purchaseOrder.purchaseOrderCode}]]; |
|||
var warehouseCode = [[${purchaseOrder.stockNo}]]; |
|||
var warehouseName = [[${purchaseOrder.stockName}]]; |
|||
var warehouseDetailAddress = [[${purchaseOrder.stockAddress}]]; |
|||
$("#form-gcjl-edit").validate({focusCleanup: true}); |
|||
function submitHandler() { |
|||
if ($.validate.form()) { |
|||
if ($('textarea[name="comment"]').val()) { |
|||
$('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val()); |
|||
} |
|||
var taskId = [[${taskId}]]; |
|||
$.operate.save(prefix + "/complete/" + taskId, $('#form-gcjl-edit').serialize()); |
|||
} |
|||
} |
|||
|
|||
var prefix = ctx + "purchase/purchaseOrder"; |
|||
var auditStatusDatas = [[${@dict.getType('auditStatus')}]]; |
|||
var useStatusDatas = [[${@dict.getType('useStatus')}]]; |
|||
var processMethodDatas = [[${@dict.getType('processMethod')}]]; |
|||
var materialUnitDatas = [[${@dict.getType('sysUnitClassDatas')}]]; |
|||
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]]; |
|||
$("#form-addPurchaseStorage-edit").validate({ focusCleanup: true}); |
|||
//生成的不同table的id集合 |
|||
var tableDatas = []; |
|||
$(function() { |
|||
// 假设qualityOrderCode已经定义或者可以通过某种方式获取到 |
|||
var purchaseOrderCode = [[${purchaseOrder.purchaseOrderCode}]]; // 这里需要实际赋值,比如从前端某个地方读取 |
|||
$.getJSON(prefix + "/detailListGroupedBySupplier?qualityOrderCode=" + purchaseOrderCode, function(data) { |
|||
for (var supplierCode in data) { |
|||
if (data.hasOwnProperty(supplierCode)) { |
|||
var supplierData = data[supplierCode]; |
|||
createTableForSupplier(supplierCode, supplierData); |
|||
} |
|||
} |
|||
}); |
|||
}); |
|||
function createTableForSupplier(supplierCode, supplierData) { |
|||
var tableId = 'bootstrap-table-' + supplierCode.replace(/[^a-z0-9]/gi, '_').toLowerCase(); |
|||
tableDatas.push(tableId); |
|||
var $tableWrapper = $('<div class="table-responsive mt-3"></div>'); |
|||
// 确保supplierData至少有一条记录,并从中提取供应商详细信息 |
|||
var supplierInfo = supplierData.length > 0 ? supplierData[0] : {}; // 默认为空对象,以防数据不存在 |
|||
// 构建含有额外供应商信息的标题字符串 |
|||
var headerTitle ='供应商'+'</br>'+supplierCode + ' - ' + supplierInfo.supplierName ; |
|||
var $header = $('<h4>' + headerTitle + '</h4>'); |
|||
var $table = $('<table id="' + tableId + '" class="table table-striped table-bordered"></table>'); |
|||
$table.bootstrapTable({ |
|||
data: supplierData, |
|||
columns: [ |
|||
{checkbox: false,visible: false}, |
|||
{title: '供应商ID',field: 'supplierCode',visible: false}, |
|||
{title: '料号',field: 'materialCode'}, |
|||
{title: '物料名称',field: 'materialName'}, |
|||
{title: '物料类型',field: 'materialType', |
|||
formatter: function (value,row, index) { |
|||
$.table.selectCategoryLabel(materialTypeDatas, value) |
|||
} |
|||
}, |
|||
{title: '物料图片地址',field: 'materialPhotourl', |
|||
formatter: function (value, row, index) { |
|||
$.table.imageView(value) |
|||
} |
|||
}, |
|||
{title: '物料描述',field: 'materialDescribe',}, |
|||
{title: '物料品牌',field: 'materialBrand',}, |
|||
{title: '物料单位',field: 'materialUnit', |
|||
formatter:function (value) { |
|||
return $.table.selectDictLabel(materialUnitDatas, value); |
|||
} |
|||
}, |
|||
{title: '物料加工方式',field: 'materialProcessMethod', |
|||
formatter:function (value) { |
|||
return $.table.selectDictLabel(processMethodDatas, value); |
|||
} |
|||
}, |
|||
{title: '计划采购数',field: 'materialNum',}, |
|||
{title: '实际采购数',field: 'materialRealNum',}, |
|||
{title: '交付时间',field: 'deliveryTime',}, |
|||
{title: '通知已到货数',field: 'notifyArriveNum', |
|||
formatter: function (value, row, index) { |
|||
if (value == null || value == '') { |
|||
return 0; |
|||
} |
|||
return value; |
|||
} |
|||
}, |
|||
{title: '已入库数',field: 'hasStorageNum', |
|||
formatter: function (value, row, index) { |
|||
if (value == null || value == '') { |
|||
return 0; |
|||
} |
|||
return value; |
|||
} |
|||
}, |
|||
{title: '通知到货数',field: 'notifyArriveNum', |
|||
formatter: function (value, row, index) { |
|||
return '<input type="number" min="0" oninput="validity.valid || (value = 0)" data-id="notifyArriveNum" class="form-control" name="notifyArriveNum" value="'+value+'"'; |
|||
} |
|||
} |
|||
] |
|||
}); |
|||
$tableWrapper.append($header).append($table); |
|||
$('#tablesContainer').append($tableWrapper); |
|||
} |
|||
$("input[name='arrivedTime']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
|
|||
$("input[name='deliveryInspectionTime']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
</script> |
|||
</body> |
|||
</html> |
@ -0,0 +1,181 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
|||
<head> |
|||
<th:block th:include="include :: header('副总经理审核')" /> |
|||
<th:block th:include="include :: select2-css" /> |
|||
<link th:href="@{/ajax/libs/element-ui/element-ui.css}" rel="stylesheet"/> |
|||
</head> |
|||
<body class="white-bg"> |
|||
<div id="app" class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|||
<form class="form-horizontal m" id="form-edit" th:object="${formData}"> |
|||
<input name="id" th:field="*{id}" type="hidden"> |
|||
<input name="taskId" th:field="*{taskId}" type="hidden"> |
|||
<input name="taskName" th:field="*{taskName}" type="hidden"> |
|||
<input name="instanceId" th:field="*{instanceId}" type="hidden"> |
|||
<input name="instanceType" th:field="*{instanceType}" type="hidden"> |
|||
<input type="hidden" name="p_COM_comment" /> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">申请人:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="applyUserName" th:field="*{applyUserName}" class="form-control" type="text" readonly> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">申请时间:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="input-group date"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
<input name="applyTime" th:value="${#dates.format(formData.applyTime, 'yyyy-MM-dd HH:mm')}" class="form-control" type="text" disabled> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">标题:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="title" th:field="*{applyTitle}" class="form-control" type="text" readonly> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label" for="fzjlVerifyApproved"><span style="color: red; ">*</span>审批意见:</label> |
|||
<div class="col-sm-8"> |
|||
<select name="p_B_fzjlVerifyApproved" id="fzjlVerifyApproved" class="form-control m-b" required> |
|||
<option value=""></option> |
|||
<option value="true">同意</option> |
|||
<option value="false">拒绝</option> |
|||
</select> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">批注:</label> |
|||
<div class="col-sm-8"> |
|||
<textarea name="comment" class="form-control"></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" /> |
|||
<th:block th:include="include :: select2-js" /> |
|||
<script th:src="@{/js/activiti.js}"></script> |
|||
<script th:inline="javascript"> |
|||
var erpMaterial = [[${formData}]]; |
|||
var prefix = ctx + "purchase/purchaseOrder"; |
|||
var purchaseOrderCode = [[${purchaseOrder.purchaseOrderCode}]]; |
|||
var warehouseCode = [[${purchaseOrder.stockNo}]]; |
|||
var warehouseName = [[${purchaseOrder.stockName}]]; |
|||
var warehouseDetailAddress = [[${purchaseOrder.stockAddress}]]; |
|||
$("#form-gcjl-edit").validate({focusCleanup: true}); |
|||
function submitHandler() { |
|||
if ($.validate.form()) { |
|||
if ($('textarea[name="comment"]').val()) { |
|||
$('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val()); |
|||
} |
|||
var taskId = [[${taskId}]]; |
|||
$.operate.save(prefix + "/complete/" + taskId, $('#form-gcjl-edit').serialize()); |
|||
} |
|||
} |
|||
|
|||
var prefix = ctx + "purchase/purchaseOrder"; |
|||
var auditStatusDatas = [[${@dict.getType('auditStatus')}]]; |
|||
var useStatusDatas = [[${@dict.getType('useStatus')}]]; |
|||
var processMethodDatas = [[${@dict.getType('processMethod')}]]; |
|||
var materialUnitDatas = [[${@dict.getType('sysUnitClassDatas')}]]; |
|||
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]]; |
|||
$("#form-addPurchaseStorage-edit").validate({ focusCleanup: true}); |
|||
//生成的不同table的id集合 |
|||
var tableDatas = []; |
|||
$(function() { |
|||
// 假设qualityOrderCode已经定义或者可以通过某种方式获取到 |
|||
var purchaseOrderCode = [[${purchaseOrder.purchaseOrderCode}]]; // 这里需要实际赋值,比如从前端某个地方读取 |
|||
$.getJSON(prefix + "/detailListGroupedBySupplier?qualityOrderCode=" + purchaseOrderCode, function(data) { |
|||
for (var supplierCode in data) { |
|||
if (data.hasOwnProperty(supplierCode)) { |
|||
var supplierData = data[supplierCode]; |
|||
createTableForSupplier(supplierCode, supplierData); |
|||
} |
|||
} |
|||
}); |
|||
}); |
|||
function createTableForSupplier(supplierCode, supplierData) { |
|||
var tableId = 'bootstrap-table-' + supplierCode.replace(/[^a-z0-9]/gi, '_').toLowerCase(); |
|||
tableDatas.push(tableId); |
|||
var $tableWrapper = $('<div class="table-responsive mt-3"></div>'); |
|||
// 确保supplierData至少有一条记录,并从中提取供应商详细信息 |
|||
var supplierInfo = supplierData.length > 0 ? supplierData[0] : {}; // 默认为空对象,以防数据不存在 |
|||
// 构建含有额外供应商信息的标题字符串 |
|||
var headerTitle ='供应商'+'</br>'+supplierCode + ' - ' + supplierInfo.supplierName ; |
|||
var $header = $('<h4>' + headerTitle + '</h4>'); |
|||
var $table = $('<table id="' + tableId + '" class="table table-striped table-bordered"></table>'); |
|||
$table.bootstrapTable({ |
|||
data: supplierData, |
|||
columns: [ |
|||
{checkbox: false,visible: false}, |
|||
{title: '供应商ID',field: 'supplierCode',visible: false}, |
|||
{title: '料号',field: 'materialCode'}, |
|||
{title: '物料名称',field: 'materialName'}, |
|||
{title: '物料类型',field: 'materialType', |
|||
formatter: function (value,row, index) { |
|||
$.table.selectCategoryLabel(materialTypeDatas, value) |
|||
} |
|||
}, |
|||
{title: '物料图片地址',field: 'materialPhotourl', |
|||
formatter: function (value, row, index) { |
|||
$.table.imageView(value) |
|||
} |
|||
}, |
|||
{title: '物料描述',field: 'materialDescribe',}, |
|||
{title: '物料品牌',field: 'materialBrand',}, |
|||
{title: '物料单位',field: 'materialUnit', |
|||
formatter:function (value) { |
|||
return $.table.selectDictLabel(materialUnitDatas, value); |
|||
} |
|||
}, |
|||
{title: '物料加工方式',field: 'materialProcessMethod', |
|||
formatter:function (value) { |
|||
return $.table.selectDictLabel(processMethodDatas, value); |
|||
} |
|||
}, |
|||
{title: '计划采购数',field: 'materialNum',}, |
|||
{title: '实际采购数',field: 'materialRealNum',}, |
|||
{title: '交付时间',field: 'deliveryTime',}, |
|||
{title: '通知已到货数',field: 'notifyArriveNum', |
|||
formatter: function (value, row, index) { |
|||
if (value == null || value == '') { |
|||
return 0; |
|||
} |
|||
return value; |
|||
} |
|||
}, |
|||
{title: '已入库数',field: 'hasStorageNum', |
|||
formatter: function (value, row, index) { |
|||
if (value == null || value == '') { |
|||
return 0; |
|||
} |
|||
return value; |
|||
} |
|||
}, |
|||
{title: '通知到货数',field: 'notifyArriveNum', |
|||
formatter: function (value, row, index) { |
|||
return '<input type="number" min="0" oninput="validity.valid || (value = 0)" data-id="notifyArriveNum" class="form-control" name="notifyArriveNum" value="'+value+'"'; |
|||
} |
|||
} |
|||
] |
|||
}); |
|||
$tableWrapper.append($header).append($table); |
|||
$('#tablesContainer').append($tableWrapper); |
|||
} |
|||
$("input[name='arrivedTime']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
|
|||
$("input[name='deliveryInspectionTime']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
</script> |
|||
</body> |
|||
</html> |
@ -0,0 +1,175 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
|||
<head> |
|||
<th:block th:include="include :: header('驳回调整')" /> |
|||
<th:block th:include="include :: select2-css" /> |
|||
<link th:href="@{/ajax/libs/element-ui/element-ui.css}" rel="stylesheet"/> |
|||
</head> |
|||
<body class="white-bg"> |
|||
<div id="app" class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|||
<form class="form-horizontal m" id="form-edit" th:object="${formData}"> |
|||
<input name="id" th:field="*{id}" type="hidden"> |
|||
<input name="taskId" th:field="*{taskId}" type="hidden"> |
|||
<input name="taskName" th:field="*{taskName}" type="hidden"> |
|||
<input name="instanceId" th:field="*{instanceId}" type="hidden"> |
|||
<input name="instanceType" th:field="*{instanceType}" type="hidden"> |
|||
<!--驳回调整允许更新内容--> |
|||
<input type="hidden" name="saveEntity" value="true" /> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">申请人:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="applyUserName" th:field="*{applyUserName}" class="form-control" type="text" readonly> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">申请时间:</label> |
|||
<div class="col-sm-8"> |
|||
<div class="input-group date"> |
|||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
|||
<input name="applyTime" th:value="${#dates.format(formData.applyTime, 'yyyy-MM-dd HH:mm')}" class="form-control" type="text" disabled> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label">标题:</label> |
|||
<div class="col-sm-8"> |
|||
<input name="title" th:field="*{applyTitle}" class="form-control" type="text" readonly> |
|||
</div> |
|||
</div> |
|||
<div class="form-group"> |
|||
<label class="col-sm-3 control-label" for="reApply">是否继续申请:</label> |
|||
<div class="col-sm-8"> |
|||
<select id="reApply" name="p_B_reApply" class="form-control m-b"> |
|||
<option value="true">重新申请</option> |
|||
<option value="false">结束流程</option> |
|||
</select> |
|||
</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" /> |
|||
<th:block th:include="include :: select2-js" /> |
|||
<script th:src="@{/js/activiti.js}"></script> |
|||
<script th:inline="javascript"> |
|||
var erpMaterial = [[${formData}]]; |
|||
var prefix = ctx + "purchase/purchaseOrder"; |
|||
var purchaseOrderCode = [[${purchaseOrder.purchaseOrderCode}]]; |
|||
var warehouseCode = [[${purchaseOrder.stockNo}]]; |
|||
var warehouseName = [[${purchaseOrder.stockName}]]; |
|||
var warehouseDetailAddress = [[${purchaseOrder.stockAddress}]]; |
|||
$("#form-gcjl-edit").validate({focusCleanup: true}); |
|||
function submitHandler() { |
|||
if ($.validate.form()) { |
|||
if ($('textarea[name="comment"]').val()) { |
|||
$('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val()); |
|||
} |
|||
var taskId = [[${taskId}]]; |
|||
$.operate.save(prefix + "/complete/" + taskId, $('#form-gcjl-edit').serialize()); |
|||
} |
|||
} |
|||
|
|||
var prefix = ctx + "purchase/purchaseOrder"; |
|||
var auditStatusDatas = [[${@dict.getType('auditStatus')}]]; |
|||
var useStatusDatas = [[${@dict.getType('useStatus')}]]; |
|||
var processMethodDatas = [[${@dict.getType('processMethod')}]]; |
|||
var materialUnitDatas = [[${@dict.getType('sysUnitClassDatas')}]]; |
|||
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]]; |
|||
$("#form-addPurchaseStorage-edit").validate({ focusCleanup: true}); |
|||
//生成的不同table的id集合 |
|||
var tableDatas = []; |
|||
$(function() { |
|||
// 假设qualityOrderCode已经定义或者可以通过某种方式获取到 |
|||
var purchaseOrderCode = [[${purchaseOrder.purchaseOrderCode}]]; // 这里需要实际赋值,比如从前端某个地方读取 |
|||
$.getJSON(prefix + "/detailListGroupedBySupplier?qualityOrderCode=" + purchaseOrderCode, function(data) { |
|||
for (var supplierCode in data) { |
|||
if (data.hasOwnProperty(supplierCode)) { |
|||
var supplierData = data[supplierCode]; |
|||
createTableForSupplier(supplierCode, supplierData); |
|||
} |
|||
} |
|||
}); |
|||
}); |
|||
function createTableForSupplier(supplierCode, supplierData) { |
|||
var tableId = 'bootstrap-table-' + supplierCode.replace(/[^a-z0-9]/gi, '_').toLowerCase(); |
|||
tableDatas.push(tableId); |
|||
var $tableWrapper = $('<div class="table-responsive mt-3"></div>'); |
|||
// 确保supplierData至少有一条记录,并从中提取供应商详细信息 |
|||
var supplierInfo = supplierData.length > 0 ? supplierData[0] : {}; // 默认为空对象,以防数据不存在 |
|||
// 构建含有额外供应商信息的标题字符串 |
|||
var headerTitle ='供应商'+'</br>'+supplierCode + ' - ' + supplierInfo.supplierName ; |
|||
var $header = $('<h4>' + headerTitle + '</h4>'); |
|||
var $table = $('<table id="' + tableId + '" class="table table-striped table-bordered"></table>'); |
|||
$table.bootstrapTable({ |
|||
data: supplierData, |
|||
columns: [ |
|||
{checkbox: false,visible: false}, |
|||
{title: '供应商ID',field: 'supplierCode',visible: false}, |
|||
{title: '料号',field: 'materialCode'}, |
|||
{title: '物料名称',field: 'materialName'}, |
|||
{title: '物料类型',field: 'materialType', |
|||
formatter: function (value,row, index) { |
|||
$.table.selectCategoryLabel(materialTypeDatas, value) |
|||
} |
|||
}, |
|||
{title: '物料图片地址',field: 'materialPhotourl', |
|||
formatter: function (value, row, index) { |
|||
$.table.imageView(value) |
|||
} |
|||
}, |
|||
{title: '物料描述',field: 'materialDescribe',}, |
|||
{title: '物料品牌',field: 'materialBrand',}, |
|||
{title: '物料单位',field: 'materialUnit', |
|||
formatter:function (value) { |
|||
return $.table.selectDictLabel(materialUnitDatas, value); |
|||
} |
|||
}, |
|||
{title: '物料加工方式',field: 'materialProcessMethod', |
|||
formatter:function (value) { |
|||
return $.table.selectDictLabel(processMethodDatas, value); |
|||
} |
|||
}, |
|||
{title: '计划采购数',field: 'materialNum',}, |
|||
{title: '实际采购数',field: 'materialRealNum',}, |
|||
{title: '交付时间',field: 'deliveryTime',}, |
|||
{title: '通知已到货数',field: 'notifyArriveNum', |
|||
formatter: function (value, row, index) { |
|||
if (value == null || value == '') { |
|||
return 0; |
|||
} |
|||
return value; |
|||
} |
|||
}, |
|||
{title: '已入库数',field: 'hasStorageNum', |
|||
formatter: function (value, row, index) { |
|||
if (value == null || value == '') { |
|||
return 0; |
|||
} |
|||
return value; |
|||
} |
|||
}, |
|||
{title: '通知到货数',field: 'notifyArriveNum', |
|||
formatter: function (value, row, index) { |
|||
return '<input type="number" min="0" oninput="validity.valid || (value = 0)" data-id="notifyArriveNum" class="form-control" name="notifyArriveNum" value="'+value+'"'; |
|||
} |
|||
} |
|||
] |
|||
}); |
|||
$tableWrapper.append($header).append($table); |
|||
$('#tablesContainer').append($tableWrapper); |
|||
} |
|||
$("input[name='arrivedTime']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
|
|||
$("input[name='deliveryInspectionTime']").datetimepicker({ |
|||
format: "yyyy-mm-dd", |
|||
minView: "month", |
|||
autoclose: true |
|||
}); |
|||
</script> |
|||
</body> |
|||
</html> |
Loading…
Reference in new issue