<!DOCTYPE HTML> <html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> <meta charset="utf-8"> <head th:include="include :: header"></head> <style> #toolbar1{ display: inline-block; /*position: absolute; margin: 10px auto;*/ line-height: 34px; } .btn-default { color: #333; background-color: #fff; border-color: #ccc } .isShow{ display: none; } </style> <body class="gray-bg"> <div class="container-div"> <div class="row"> <div class="col-sm-12 select-info"> <ul id="myTab" class="nav nav-tabs"> <li class="active"><a href="#tabHeader" data-toggle="tab">主表</a></li> <li><a href="#tabDetail" data-toggle="tab">明细</a></li> </ul> <div id="myTabContent" class="tab-content"> <div class="tab-pane fade in active" id="tabHeader"> <div class="col-sm-12 select-info"> <form id="receiptHeader-form"> <div class="select-list"> <ul> <li> 入库单号:<input type="text" name="code"/> </li> <li> 上游单号:<input type="text" name="sourceCode"/> </li> <li> 货主:<select id="companyCode" name="companyCode" th:with="list=${@companyService.getCode()}"> <option th:each="item : ${list}" th:text="${item['name']}" th:value="${item['code']}" th:attr = " code = ${item['code']}"></option> </select> </li> <li> <!--入库类型:<input type="text" name="sourceCode"/>--> 入库类型:<select name="type" th:with="type=${@receiptTypeService.getType()}"> <option value="">所有</option> <option th:each="e : ${type}" th:text="${e['name']}" th:value="${e['code']}"></option></select> </li> <li> 供 应 商:<input type="text" name="supplierCode"/> </li> <li> <!--头 状 态:<input type="text" name="firstStatus"/>--> 头 状 态:<select name="firstStatus" th:with="firstStatus=${@dict.getType('receiptHeaderStatus')}"> <option value="">所有</option> <option th:each="e : ${firstStatus}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option></select> </li> <li> <!--尾 状 态:<input type="text" name="lastStatus"/>--> 尾 状 态:<select name="lastStatus" th:with="lastStatus=${@dict.getType('receiptHeaderStatus')}"> <option value="">所有</option> <option th:each="e : ${lastStatus}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option></select> </li> <li class="time"> <label>创建时间: </label> <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[createdBegin]"/> <span>-</span> <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[createdEnd]"/> </li> <li> <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a> <!--<a class="btn btn-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="receipt:receiptHeader:export"><i class="fa fa-download"></i> 导出</a>--> </li> </ul> </div> </form> </div> <div class="btn-group hidden-xs" id="toolbar" role="group"> <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="receipt:receiptHeader:add"> <i class="fa fa-plus"></i> 新增 </a> <a class="btn btn-outline btn-default btn-rounded" onclick="submitReview()" shiro:hasPermission="receipt:receiptHeader:add"> <i class="fa fa-fighter-jet"></i> 提交审核 </a> <a class="btn btn-outline btn-primary btn-rounded" onclick="approval()" shiro:hasPermission="receipt:receiptHeader:add"> <i class="fa fa-level-up"></i> 审核通过 </a> <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="receipt:receiptHeader:remove"> <i class="fa fa-trash-o"></i> 删除 </a> </div> <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> </div> <div class="tab-pane fade" id="tabDetail"> <div class="col-sm-12 select-info"> <form id = "shipmentHeadForm" > <ul id="tabHead" class="nav nav-tabs"> <li class="active"><a href="#tabBase" data-toggle="tab">基础数据</a></li> <li role="presentation" ><a href="#tabCustomer" data-toggle="tab">客户信息</a></li> </ul> <div class="tab-content"> <div class="tab-pane in active" id="tabBase"> <div class="select-list"> <ul> <!--<input type="hidden" name="warehouseId" id = "shipmentWarehouseId">--> <li>入库单id:<input type="text" name="receiptId" id="receiptId"></li> <li>入库单号:<input type="text" name="receiptCode" id="receiptCode"></li> <li>货主编码: <input type="text" name="receiptCompanyCode" id="receiptCompanyCode"> </li> <li>上游系统单号:<input type="text" name="receiptSourceCode" id="receiptSourceCode"></li> <li>上游平台:<input type="text" name="receiptSourcePlatform" id="receiptSourcePlatform"></li> <li> <!--入库类型:<input type="text" name="sourceCode"/>--> 入库类型:<select name="type" th:with="type=${@receiptTypeService.getType()}"> <option value="">所有</option> <option th:each="e : ${type}" th:text="${e['name']}" th:value="${e['code']}"></option></select> </li> <li>总数量:<input type="text" name="receiptTotalQty" id="receiptTotalQty"></li> <li>总行数:<input type="text" name="receiptTotalLines" id="receiptTotalLines"></li> <li>单据头状态:<input type="text" name="receiptFirstStatus" id="receiptFirstStatus"></li> <li>单据尾状态:<input type="text" name="receiptLastStatus" id="receiptLastStatus"></li> </ul> </div> </div> <div class="tab-pane fade" id="tabCustomer"> <div class="select-list"> <ul> <li>供应商编码:<input type="text" name="receiptSupplierCode" id="receiptSupplierCode"></li> <li>入库预约时间:<input type="text" name="receiptAppointmentTime" id="receiptAppointmentTime"></li> </ul> </div> </div> </div> </form> </div> <div class="btn-group hidden-xs" id="toolbar1" role="group" style="position:relative;"> <a class="btn btn-outline btn-success btn-rounded" onclick="add()" shiro:hasPermission="receipt:receiptDetail:add"> <i class="fa fa-plus"></i> 新增 </a> <a class="btn btn-outline btn-danger btn-rounded" onclick="batRemove()" shiro:hasPermission="receipt:receiptDetail:remove"> <i class="fa fa-trash-o"></i> 删除 </a> <a class="btn btn-outline btn-primary btn-rounded to-receive" onclick="Toreceiving(receiptCode)" shiro:hasPermission="receipt:receiving:add"> <i class="fa fa-cart-plus"></i> 收货 </a> </div> <table id="bootstrap-table1" data-mobile-responsive="true" class="table table-bordered table-hover"></table> </div> </div> </div> </div> </div> <div th:include="include :: footer"></div> <script th:inline="javascript"> var printFlag = [[${@permission.hasPermi('receipt:receiptHeader:report')}]]; var editFlag = [[${@permission.hasPermi('receipt:receiptHeader:edit')}]]; var removeFlag = [[${@permission.hasPermi('receipt:receiptHeader:remove')}]]; var addFlag= [[${@permission.hasPermi('receipt:receiptHeader:add')}]]; var prefix = ctx + "receipt/receiptHeader"; var detailPrefix = ctx + "receipt/receiptDetail"; var datas = [[${@dict.getType('sys_normal_disable')}]]; var receiptTypes = [[${@dict.getType('receiptType')}]]; var receiptHeaderStatus = [[${@dict.getType('receiptHeaderStatus')}]]; var uploadStatus = [[${@dict.getType('uploadStatus')}]]; var detailCreateUrl = detailPrefix+"/add"; var detailUpdateUrl = detailPrefix + "/edit/{id}"; var detailRemoveUrl = detailPrefix+"/remove"; var inventoryStatus = [[${@dict.getType('inventoryStatus')}]]; var isVirtualBoms = [[${@dict.getType('isVirtualBom')}]]; var receiptId = ''; var receiptCode = ''; $(function() { var options = { url: prefix + "/list", createUrl: prefix + "/add", updateUrl: prefix + "/edit/{id}", removeUrl: prefix + "/remove", modalName: "入库单", sidePagination:"server", search: false, pageSize: 50, columns: [{ checkbox: true }, { field : 'id', title : '入库单id', sortable:true }, { field : 'createdBy', title : '创建用户', sortable:true }, { field : 'referCode', title : '关联单号', sortable:true }, { field : 'referType', title : '关联订单类型' }, { field : 'code', title : '入库单号', visible:false }, { field : 'companyCode', title : '货主编码', visible:false }, { field : 'warehouseCode', title : '仓库编码', visible:false }, { field : 'receiptType', title : '入库类型', align: 'center', formatter: function(value, row, index) { var actions = []; $.each(receiptTypes, function(index, dict) { if (dict.code == value) { actions.push("<span class='badge badge-info'>" + dict.name + "</span>"); return false; } }); return actions.join(''); } }, { field : 'scheduledArriveDate', title : '预计到达日期', sortable:true }, { field : 'actualArriveDate', title : '实际到达日期' }, { field : 'startCheckinDatetime', title : '开始收货日期' }, { field : 'endCheckinDatetime', title : '结束收货日期' }, { field : 'recvDock', title : '月台货位' }, { field : 'closedAt', title : '关闭时间', visible : false }, { field : 'closedBy', title : '强制关闭用户', visible :false }, { field : 'totalQty', title : '总数量' }, { field : 'totalLines', title : '总行数' }, { field : 'remark', title : '备注', visible : false }, { field : 'uploadStatus', title : '上传状态', visible:false }, { field : 'receiptNote', title : '入库单备注', visible:false }, { field : 'locked', title : '锁定', visible:false }, { field : 'lockedBy', title : '锁定用户', visible:false }, { field : 'firstStatus', title : '头状态', align: 'center', formatter: function(value, row, index) { return $.table.selectDictLabel(receiptHeaderStatus, value); } }, { field : 'lastStatus', title : '尾状态', align: 'center', formatter: function(value, row, index) { return $.table.selectDictLabel(receiptHeaderStatus, value); } }, { field : 'created', title : '创建时间', sortable:true }, { field : 'lastUpdated', title : '最后修改时间', visible:false, sortable:true }, { field : 'lastUpdatedBy', title : '更新用户', visible:false, }, { field : 'userDef2', title : '自定义字段2', visible: false }, { field : 'userDef3', title : '自定义字段3' , visible: false }, { title: '操作', align: 'center', formatter: function(value, row, index) { var actions = []; actions.push('<a id="table_edit" class="btn btn-success btn-xs ' + printFlag + '" href="#" onclick="receiptPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> '); if (row.lastStatus >= 200) actions.push('<a style="background: #b5bdc0" class="btn btn-default btn-xs" onclick="Toreceiving(\''+ row.code + '\')"><i class="fa fa-list-ul"></i>列表</a> '); if (row.firstStatus < 100) actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')" ><i class="fa fa-edit"></i>编辑</a> '); if (row.lastStatus < 200) actions.push('<a class="btn btn-primary btn-xs to-receive" ' +addFlag+ ' onclick="Toreceiving(\''+ row.code + '\')"><i class="fa fa-cart-plus"></i>收货</a> '); if (row.firstStatus < 120) actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a>'); return actions.join(''); } }] }; $.table.init(options); }); $("#bootstrap-table1").bootstrapTable({ // url: detailPrefix + "/list", createUrl: detailPrefix + "/add", updateUrl: detailPrefix + "/edit/{id}", removeUrl: detailPrefix + "/remove", // search: true, //搜索 sortable: true, //排序 showRefresh: true, //刷新 showToggle:true, //视图切换 clickToSelect: true, showColumns:true, //列选择 // detailView:true, showExport: true, //导出 exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据 modalName: "入库明细", sortName: "lastUpdated", sortOrder: "desc", iconSize: "outline", toolbar: "#toolbar1", contentType: "application/x-www-form-urlencoded", pagination: true, // 是否显示分页(*) pageNumber: 1, // 初始化加载第一页,默认第一页 pageSize: 50, // 每页的记录行数(*) pageList: [10, 25, 50, 100], // 可供选择的每页的行数(*) onRefresh: function(){ loadDetail(); }, columns: [{ checkbox: true }, { field : 'id', title : 'id' }, { field : 'receiptCode', title : '入库单编码' }, { field : 'materialCode', title : '物料编码' }, { field : 'materialName', title : '物料名称' }, { field : 'materialSpec', title : '物料规格' }, { field : 'materialUnit', title : '物料单位' }, { field : 'supplierCode', title : '供应商编码' }, { field : 'batch', title : '批次' }, { field : 'lot', title : '批号' , visible:false }, { field : 'qcCheck', title : '是否质检' }, { field : 'projectNo', title : '项目号' }, { field : 'manufactureDate', title : '生产日期' , visible:false }, { field : 'expirationDate', title : '失效日期' , visible:false }, { field : 'agingDate', title : '入库日期' , visible:false }, { field : 'totalQty', title : '总数量' }, { field : 'openQty', title : '未收数量' }, { field : 'referCode', title : 'ERP单号', visible : false }, { field : 'referId', title : 'ERP内部号', visible : false }, { field : 'referLineNum', title : 'ERP行号', visible : false }, { field : 'locatingRule', title : '定位规则' }, { field : 'inventorySts', title : '库存状态', visible : false }, { field : 'itemListPrice', title : '标价' }, { field : 'itemNetPrice', title : '净价' }, { field : 'price', title : '单价' , visible:false }, { field : 'isVirtualBom', title : '是否虚拟套件', formatter: function(value, row, index) { return $.table.selectDictLabel(isVirtualBoms, value); } }, { field : 'created', title : '创建时间' }, { field : 'createdBy', title : '创建用户', visible:false }, { field : 'lastUpdated', title : '最后修改时间', visible:false }, { field : 'lastUpdatedBy', title : '更新用户' , visible:false }, { field : 'userDef1', title : '自定义字段1' , visible:false }, { field : 'userDef2', title : '自定义字段2' , visible:false }, { field : 'userDef3', title : '自定义字段3' , visible:false }, { title: '操作', align: 'center', events:'operateEvents', formatter: function(value, row, index) { var actions = []; actions.push('<a id="table_edit" class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a>'); return actions.join(''); } }] }); /* 入库单列表-详细 */ function detail(id, code) { receiptId = id; receiptCode=code; $("#myTab li").removeClass("active"); $("#tabHeader").removeClass("in active"); $("#myTab li:eq(1)").addClass("active"); $("#tabDetail").addClass("in active"); // $("#tabBase").addClass("in active"); loadDetail(); } /* 入库单列表-详细 */ function loadDetail() { $.ajax({ url:ctx + 'receipt/receiptDetail/list', type:"post", data:{ receiptId:receiptId, }, success:function (value) { $("#bootstrap-table1").bootstrapTable('load',value.data); } }); $.ajax({ url: ctx + "receipt/receiptHeader/getReceiptHeader", type:"post", data:{ id:receiptId }, success:function (value) { $('#receiptId').val(value.data.id); $('#receiptCode').val(value.data.code); receiptCode=value.data.code; $('#receiptCompanyId').val(value.data.companyId); $('#receiptCompanyCode').val(value.data.companyCode); $('#receiptSourceCode').val(value.data.sourceCode); $('#receiptSourcePlatform').val(value.data.sourcePlatform); // $('#receiptType').val(receiptTypes.filter(function (e) {return e.dictValue==value.data.type})[0].dictLabel); $('#receiptTotalQty').val(value.data.totalQty); $('#receiptTotalLines').val(value.data.totalLines); // $('#receiptFirstStatus').val(receiptHeaderStatus.filter(function (e) {return e.dictValue==value.data.firstStatus})[0].dictLabel); // $('#receiptLastStatus').val(receiptHeaderStatus.filter(function (e) {return e.dictValue==value.data.lastStatus})[0].dictLabel); $('#receiptSupplierCode').val(value.data.supplierCode); $('#receiptAppointmentTime').val(value.data.appointmentTime); } }) } /* 打印 */ function receiptPrint(id) { var url = prefix + "/report/" + id; $.modal.open("入库单打印" , url); } /* 新增主表 */ function add() { if (receiptId == '') { $.modal.open("未选择入库单" , "404.html"); } else { var url = detailPrefix + "/add/" + receiptId + "/" + receiptCode; $.modal.open("添加" + $.table._option.modalName, url); } } /* 编辑主表 */ function edit(id) { var url = detailUpdateUrl.replace("{id}", id); $.modal.open("修改入库单明细" , url); } /* 单个删除主表 */ function remove(id) { $.modal.confirm("确定删除该条入库单明细信息吗?", function() { var url = $.common.isEmpty(id) ? detailRemoveUrl : detailRemoveUrl.replace("{id}", id); var data = { "ids": id }; submit(url, "post", "json", data); }); } /* 批量删除主表 */ function batRemove() { var rows=$("#bootstrap-table1").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } $.modal.confirm("确认要删除选中的" + rows.length + "条数据吗?", function() { var url = detailRemoveUrl; var ids = ""; for(var i=0; i<rows.length; i++) { ids = ids + rows[i].id + "," } var data = { "ids": ids.substring(0, ids.length-1) }; submit(url, "post", "json", data); }); } //提交 function submit(url, type, dataType, data) { $.modal.loading("正在处理中,请稍后..."); var config = { url: url, type: type, dataType: dataType, data: data, success: function(result) { if (result.code == web_status.SUCCESS) { $.modal.msgSuccess(result.msg); loadDetail(); } else { $.modal.alertError(result.msg); } $.modal.closeLoading(); } }; $.ajax(config) } /* 打印*/ function receiptDetailPrint() { var rows=$("#bootstrap-table1").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } var ids = ""; for(var i=0; i<rows.length; i++) { ids = ids + rows[i].id + "," } var url = detailPrefix + "/report/" + ids; $.modal.open("入库铭牌打印" , url); } /* 收货 */ function Toreceiving(code) { let storage=window.localStorage; storage.receiving_code=code; createMenuItem(ctx + "receipt/receiving","入库组盘"); parent.$('.tabReload').click(); } /* 点击明细面板 */ $("#myTab li:eq(1)").click(function () { if (receiptId == '') { receiptId = $("#bootstrap-table tr:eq(1) td:eq(1)").text(); } detail(receiptId, ""); }); /* 点击主表面板 */ $("#myTab li:eq(0)").click(function () { $.ajax({ url: prefix + "/list", type:"post", success:function (value) { $("#bootstrap-table").bootstrapTable('refresh', value.data); } }) }); function submitReview(){ var rows=$("#bootstrap-table").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } var url = prefix+"/submitReview"; var ids = ""; for(var i=0; i<rows.length; i++) { ids = ids + rows[i].id + "," } var data = { "ids": ids.substring(0, ids.length-1) }; $.operate.submit(url, "post", "json", data); } function approval() { var rows=$("#bootstrap-table").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } var url = prefix+"/approval"; var ids = ""; for(var i=0; i<rows.length; i++) { ids = ids + rows[i].id + "," } var data = { "ids": ids.substring(0, ids.length-1),"approval": 100 }; $.operate.submit(url, "post", "json", data); } </script> </body> </html>