<!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; } </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="task-form"> <div class="select-list"> <ul> <li> 送货单号:<input type="text" name="code"/> </li> <li> 供 应 商:<input type="text" name="supplierCode"/> </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-warning btn-rounded btn-sm" onclick="$.form.reset('task-form')"><i class="fa fa-refresh"></i> 重置</a> </li> </ul> </div> </form> </div> <div class="btn-group hidden-xs" id="toolbar" role="group"> </div> <input type="hidden" id="headerId" name="headerId" th:value="${headerId}"/> <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="btn-group hidden-xs" id="toolbar1" role="group"> <input type="hidden" id="headerId" name="headerId" th:value="${headerId}"/> <a class="btn btn-outline btn-success btn-rounded" onclick="checkWarehouse()" shiro:hasPermission="srm:srmDetail:checkWarehouse"> <i class="fa fa-plus"></i> 选择仓库 </a> <a class="btn btn-outline btn-success btn-rounded" onclick="confirmQty()" shiro:hasPermission="srm:srmDetail:confirmQty"> <i class="fa fa-plus"></i> 默认数量 </a> <a class="btn btn-outline btn-success btn-rounded" onclick="confirm()" shiro:hasPermission="srm:srmDetail:confirm"> <i class="fa fa-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 warehouseWu = [[${@warehouseWu.getAllWarehouseWu()}]]; var supplier =[[${@SupplierService.getCode()}]]; var confirmQtyFlag = [[${@permission.hasPermi('srm:srmDetail:confirmQty')}]]; var prefix = ctx + "srm/srmHeaderNone"; var prefix1 = ctx + "srm/srmDetailNone"; // 限制行内编辑重复提交 var resubmit = new Date().getTime(); $(function() { var options = { url: prefix + "/list", createUrl: prefix + "/add", updateUrl: prefix + "/edit/{id}", removeUrl: prefix + "/remove", modalName: "送货单", sortName: "created", sortOrder: "desc", search: false, pageSize:50, columns: [{ checkbox: true }, { field : 'id', title : 'id' , visible:false }, { title: '操作', align: 'center', formatter: function(value, row, index) { var actions = []; actions.push('<a id="detail" class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\')"><i class="fa fa-list-ul"></i>明细</a> '); return actions.join(''); } }, { field : 'operator', title : '操作人', sortable: true }, { field : 'created', title : '生成时间', sortable: true }, { field : 'code', title : '送货单号', sortable: true }, { field : 'supplierCode', title : '供应商编码', sortable: true }, { field : 'supplierCode', title : '供应商名称', align: 'center', formatter: function(value, row, index) { var actions = []; $.each(supplier, function(index, dict) { if (dict.code == value) { actions.push("<span class='badge badge-info'>" + dict.name + "</span>"); return false; } }); return actions.join(''); } }, { field : 'mark', title : '唯一标识', sortable: false, visible:false }, { field : 'lastUpdatedBy', title : '更新用户', sortable: false, visible:false }, ] }; $.table.init(options); }); $("#bootstrap-table1").bootstrapTable({ sortable: true, //排序 showRefresh: true, //刷新 showToggle:true, //视图切换 clickToSelect: false, showColumns:true, //列选择 // detailView:true, showExport: true, //导出 exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据 modalName: "任务明细", iconSize: "outline", toolbar: "#toolbar1", contentType: "application/x-www-form-urlencoded", sortName: "id", sortOrder: "desc", columns: [{ checkbox: true }, { title: '操作', align: 'center', formatter: function(value, row, index) { var actions = []; if(row.enable == 0) { actions.push('<a class="btn btn-primary btn-xs ' + confirmQtyFlag + '" href="#" onclick="confirmConfirQty(\'' + row.id + '\')"><i class="fa fa-check"></i>确认数量</a>'); } return actions.join(''); } }, { field : 'id', title : 'id', sortable: true }, { field : 'headerId', title : 'headerId', visible:false }, { field : 'companyCode', title : '账套', sortable: true }, { field : 'uWarehouseName', title : '仓库', sortable: true, formatter: function(value, row, index) { var actions = []; if(row.enable == 0) { actions.push('<select onchange="selectListener(this,'+row["id"]+')">'); if (warehouseWu[row["companyCode"]] !== undefined && warehouseWu[row["companyCode"]].length>0) { warehouseWu[row["companyCode"]].forEach(item => { if (row["uWarehouseCode"] === item["uWarehouseCode"]) { actions.push('<option value="' + item["uWarehouseCode"] + '" selected>' + item["uWarehouseName"] + '</option>'); } else { actions.push('<option value="' + item["uWarehouseCode"] + '">' + item["uWarehouseName"] + '</option>'); } }) actions.push('</select>'); } } return actions.join(''); } }, { field : 'lineCode', title : '条码', sortable: true }, { field : 'materialCode', title : '存货编码', sortable: true }, { field : 'materialName', title : '物料名称', sortable:true }, { field : 'specification', title : '物料规格', sortable:true }, { field : 'qty', title : '数量' }, { field : 'confirmQty', title : '已到数量' }, { field : 'enable', title : '状态', visible:false }, // { // field : 'lastUpdate', // title : '最后修改时间' , // visible:false, // sortable:true // }, // { // field : 'lastUpdatedBy', // title : '更新用户' // } ], onClickCell: function(field, value, row, $element) { if (field==="confirmQty") { $element.attr('contenteditable', true); $element.blur(function () { let index = $element.parent().data('index'); let tdValue = $element.text(); if ((new Date().getTime()-resubmit)>1500) { resubmit = new Date().getTime() submitDelivery(row, tdValue); } }) } } }); function createtable(url,headerId) { $("#myTab li").removeClass("active"); $(".tab-pane").removeClass("in active"); $("#myTab li:eq(1)").addClass("active"); $("#tabDetail").addClass("in active"); $.ajax({ url:url, type: 'post', data:{ headerId:headerId }, success : function (value) { $("#bootstrap-table1").bootstrapTable('load', value.data); } }) } /*入库单列表-详细*/ function detail(headerId) { var url = ctx + 'srm/srmDetailNone/list'; headerIds = headerId; // 主单Id 再试下 createtable(url,headerId); } /* 选择仓库*/ function checkWarehouse() { 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 = prefix1 + "/checkWarehouse/" + ids; $.modal.open("选择仓库" , url); } function confirmConfirQty(id) { var url = prefix1 + "/confirmConfirQty?id="+id; $.modal.openFull("确认数量",url); } /*默认数量*/ function confirmQty() { var rows=$("#bootstrap-table1").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } $.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function() { var url = prefix1 + '/confirmQty'; var ids = ""; for(var i=0; i<rows.length; i++) { ids = ids + rows[i].id + "," } var data = { "ids": ids.substring(0, ids.length-1) }; localSubmit(url, "post", "json", data); }) } /*提交*/ function confirm() { var rows=$("#bootstrap-table1").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } $.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function() { var url = prefix1 + '/confirm'; var ids = ""; for(var i=0; i<rows.length; i++) { ids = ids + rows[i].id + "," } var data = { "ids": ids.substring(0, ids.length-1) }; localSubmit(url, "post", "json", data); }) } function localSubmit (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); detail(headerIds); } else { $.modal.alertError(result.msg) } $.modal.closeLoading() } }; $.ajax(config) } function submitDelivery(row,value){ formData = {} formData["headId"] = row["headId"] formData["id"] = row["id"] formData["materialCode"] = row["materialCode"] formData["materialName"] = row["materialName"] formData["qty"] = row["qty"] formData["confirmQty"] = value confirmAmount(formData) } function selectListener(event,id){ console.log("选择了:",event.value) selectWarehouse(event.value,id) } function confirmAmount(form) { $.ajax({ cache : true, type : "POST", url : prefix1+"/confirmConfirQty", data : form, async : false, error : function(request) { $.modal.alertError("请求失败!"); }, success : function(data) { // $.operate.saveSuccess(data); ajaxSuccess(data); } }); } function selectWarehouse(value,id) { $.ajax({ cache: true, type: "POST", url: prefix1 + "/checkWarehouse", data: { "ids":id, "uWarehouseCode":value, }, async : false, error : function(request) { $.modal.alertError("请求失败!"); }, success : function(data) { // $.operate.saveSuccess(data); ajaxSuccess(data); } }); } function ajaxSuccess(result) { if (result.code == web_status.SUCCESS) { $.modal.msgSuccess(result.msg); var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); window.parent.$.table.search(); $(parent.$("#detail")).click(); } else { $.modal.alertError(result.msg); } // $.modal.msgSuccess(result.msg); $.modal.closeLoading(); window.parent.detail(headerId) } </script> </body> </html>