From 404b6b108e16b7fcfd35cd97e2d536a1116948af Mon Sep 17 00:00:00 2001 From: pjb <123456> Date: 星期四, 13 六月 2024 08:12:24 +0800 Subject: [PATCH] # 修改出库时选中的明细还未入库或者已全部出库或者没有剩余可出重量 --- src/main/webapp/static/js/order/out.js | 397 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 252 insertions(+), 145 deletions(-) diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js index dcd4433..21099b0 100644 --- a/src/main/webapp/static/js/order/out.js +++ b/src/main/webapp/static/js/order/out.js @@ -4,7 +4,7 @@ base: baseUrl + "/static/layui/lay/modules/" }).extend({ notice: 'notice/notice', -}).use(['table','laydate', 'form', 'util', 'admin', 'notice', 'treeTable', 'xmSelect'], function(){ +}).use(['table','laydate', 'form', 'util', 'admin', 'notice', 'treeTable', 'xmSelect', 'tableMerge', 'tableX' , 'laytpl'], function(){ var table = layui.table; var $ = layui.jquery; var layer = layui.layer; @@ -15,41 +15,30 @@ var notice = layui.notice; var treeTable = layui.treeTable; var xmSelect = layui.xmSelect; + var tableMerge = layui.tableMerge; + var tableX = layui.tableX; + var laytpl = layui.laytpl; insTb2 = table.render({ elem: '#orderDetlTable', headers: {token: localStorage.getItem('token')}, - url: baseUrl+'/orderDetl/list/auth', + url: baseUrl+'/orderDetl/pakout/list/auth', page: true, limit: 15, limits: [15, 30, 50, 100, 200, 500], toolbar: '#orderDetToolbar', height: 'full-120', + where: {order_id: 9999999999}, cols: [[ {type: 'checkbox'} ,{type: 'numbers', title: '#'} ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl', width: 160} ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜', width: 160} ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', width: 200} - ,{field: 'batch', align: 'center',title: '鎵瑰彿'} - ,{field: 'specs', align: 'center',title: '瑙勬牸'} - ,{field: 'anfme', align: 'center',title: '鏁伴噺'} - ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'} - // ,{field: 'name', align: 'center',title: '鍚嶇О'} - // ,{field: 'model', align: 'center',title: '鍨嬪彿'} + ,{field: 'anfme', align: 'center',title: '鎬绘暟閲�', style: 'font-weight: bold'} + ,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'} ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true} ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true} - // ,{field: 'supplier', align: 'center',title: '渚涘簲鍟�'} - // ,{field: 'unitPrice', align: 'center',title: '鍗曚环'} - // ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'} - // ,{field: 'count', align: 'center',title: '鏁伴噺'} - // ,{field: 'weight', align: 'center',title: '閲嶉噺'} - // ,{field: 'status$', align: 'center',title: '鐘舵��'} - // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'} - // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'} - // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'} - // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'} - // ,{field: 'memo', align: 'center',title: '澶囨敞'} ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 160} ]], request: { @@ -75,6 +64,7 @@ limit(); } }); + /* 琛ㄦ牸2鎼滅储 */ form.on('submit(sensorTbSearch)', function (data) { insTb2.reload({where: data.field, page: {curr: 1}}); @@ -82,9 +72,17 @@ }); /* 琛ㄦ牸2澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */ - table.on('toolbar(sensorTable)', function (obj) { - if (obj.event === 'add') { // 娣诲姞 - showEditModel() + table.on('toolbar(orderDetlTable)', function (obj) { + + var checkStatus = table.checkStatus(obj.config.id).data; + if (obj.event === 'pakoutPreview') { // 娣诲姞 + if (checkStatus.length === 0) { + layer.msg('璇烽�夋嫨鑷冲皯涓�鏉″嚭搴撴槑缁�', {icon: 2}); + return; + } + pakoutPreview(checkStatus.map(function (d) { + return d.id; + })); } else if (obj.event === 'del') { // 鍒犻櫎 var checkRows = table.checkStatus('sensorTable'); if (checkRows.data.length === 0) { @@ -99,140 +97,225 @@ }); /* 琛ㄦ牸2宸ュ叿鏉$偣鍑讳簨浠� */ - table.on('tool(sensorTable)', function (obj) { + table.on('tool(orderDetlTable)', function (obj) { + console.log(obj); var data = obj.data; switch (obj.event) { - case 'detl': - top.sensorByDetl = data.id; + // 鍑哄簱 + case 'pakoutPreview': + pakoutPreview([data.id]) break; - // 缂栬緫 - case 'edit': - showEditModel(data); - break; - // 鍒犻櫎 - case 'del': - var ids = [data.id]; - doDelSensor({ids: ids}); - break; - // 鍩虹偣瀹氫綅 - case 'lbs': - notice.msg('璇锋眰涓�...', {icon: 4, position: "topCenter"}); - var param = { - uuid: data.uuid, - event: obj.event - }; - $.ajax({ - url: baseUrl+"/main/command/v1/auth", - headers: {'token': localStorage.getItem('token')}, - data: JSON.stringify(param), - contentType:'application/json;charset=UTF-8', - method: 'POST', - success: function (res) { - notice.destroy(); - if (res.code === 200){ - admin.open({ - title: '缁堢鍝嶅簲', - url: 'callback.html', - area: '360px', - data: { - request: param, - response: res.data - }, - tpl: true - }); - } else if (res.code === 403){ - top.location.href = baseUrl+"/"; - }else { - layer.msg(res.msg, {icon: 2}); - } - } - }) - break } }); - // 璁惧鏄庣粏灞曞紑鍥炶皟 - window.onSensorDetlDialog = function () { - }; - - - /* 鏄剧ず琛ㄥ崟寮圭獥 */ - function showEditModel(mData) { - admin.open({ - type: 1, - area: '900px', - title: (mData ? '淇敼' : '娣诲姞') + '璁惧', - content: $('#editDialog').html(), - success: function (layero, dIndex) { - // 鍥炴樉琛ㄥ崟鏁版嵁 - form.val('detail', mData); - // 鍦板浘瀹氫綅鍥炴樉 - if (mData) { - setTimeout(function () { - $("#mapIframe")[0].contentWindow.position(mData.lon, mData.lat); - }, 500) - } - // 琛ㄥ崟鎻愪氦浜嬩欢 - form.on('submit(editSubmit)', function (data) { - data.field.sensorModel = insXmSel.getValue('valueStr'); - if (isEmpty(data.field.hostId)) { - layer.msg('璇烽�夋嫨鎵�灞為」鐩�', {icon: 2}); - return false; - } - data.field.lon = $("#mapIframe").contents().find("#lon").val(); - data.field.lat = $("#mapIframe").contents().find("#lat").val(); - data.field.city = $("#mapIframe").contents().find("#city").val(); - if (isEmpty(data.field.lon) || isEmpty(data.field.lat)) { - layer.msg('璁惧涓嶅湪瀹氫綅', {icon: 2}); - return false; - } - var loadIndex = layer.load(2); - $.ajax({ - url: baseUrl+"/sensor/"+(mData?'update':'add')+"/auth?sensorType="+sensorType, - headers: {'token': localStorage.getItem('token')}, - data: data.field, - method: 'POST', - success: function (res) { - layer.close(loadIndex); - if (res.code === 200){ - layer.close(dIndex); - layer.msg(res.msg, {icon: 1}); - $(".layui-laypage-btn")[0].click(); - } else if (res.code === 403){ - top.location.href = baseUrl+"/"; - }else { - layer.msg(res.msg, {icon: 2}); + function pakoutPreview(ids) { + let loadIndex = layer.load(2); + $.ajax({ + url: baseUrl + "/out/pakout/preview/auth", + headers: {'token': localStorage.getItem('token')}, + contentType: 'application/json;charset=UTF-8', + data: JSON.stringify(ids), + method: 'POST', + success: function (res) { + layer.close(loadIndex); + var tableCache; + if (res.code === 200){ + layer.open({ + type: 1 + ,title: false + ,closeBtn: false + ,offset: '50px' + ,area: ['1200px', '700px'] + ,shade: 0.5 + ,shadeClose: false + ,btn: ['绔嬪嵆鍑哄簱', '绋嶅悗澶勭悊'] + ,btnAlign: 'c' + ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1 + ,content: $('#pakoutPreviewBox').html() + ,success: function(layero, index){ + console.log(res.data); + stoPreTabIdx = table.render({ + elem: '#stoPreTab', + data: res.data, + height: 520, + page: false, + limit: Number.MAX_VALUE, + cellMinWidth: 100, + cols: [[ + // {type: 'checkbox', merge: ['orderNo']}, + {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'}, + {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350}, + {field: 'hostId', title: 'id', align: 'center'}, + // { title: '鍓╀綑闇�姹傞噺', align: 'center' , width: 120, toolbar: '#checkNeedQty'}, + // {field: 'anfme', title: '瀹為檯鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'}, + { title: '鍑哄簱鏁伴噺', align: 'center',field: 'anfme', width: 90, style: 'font-weight: bold; color: red'}, + {field: 'locNo', title: '璐т綅', align: 'center', width: 100, templet: '#locNoTpl'}, + {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'}, + // {type: 'checkbox', merge: ['locNo']}, + ]], + done: function (res) { + tableMerge.render(this); + $('.layui-table-body.layui-table-main').css("overflow", "auto"); + tableCache = tableData = table.cache.stoPreTab; + } + }); + // 淇敼鍑哄簱绔� + form.on('select(tbBasicTbStaNos)', function (obj) { + let index = obj.othis.parents('tr').attr("data-index"); + let data = tableCache[index]; + for (let i = 0; i<tableCache.length; i++) { + if (tableCache[i].locNo === data.locNo) { + tableCache[i]['staNo'] = Number(obj.elem.value); + } + } + obj.othis.children().find("input").css("color", "blue"); + return false; + }); + // 鎵归噺淇敼鍑哄簱绔� + form.on('submit(batchModifySta)', function () { + let stoPreTabData = layui.table.checkStatus('stoPreTab').data; + if (stoPreTabData.length < 1) { + layer.msg("璇疯嚦灏戦�夋嫨涓�鏉′互涓婂悎骞舵暟鎹�", {icon: 7}); + return false; + } + modifySta(stoPreTabData); + }); + // 鎵归噺淇敼鍑哄簱绔� - 绔欑偣閫夋嫨 + function modifySta(stoPreTabData) { + // 鍑哄簱绔欏彇浜ら泦 + let staBatchSelectVal = []; + for(let i = 0; i<stoPreTabData.length; i++) { + let staNos = stoPreTabData[i].staNos; + if (staNos !== null) { + if (staBatchSelectVal.length === 0) { + staBatchSelectVal = staNos; + } else { + staBatchSelectVal = staBatchSelectVal.filter(val => + { + return new Set(staNos).has(val) + } + ) + } + } + } + if (staBatchSelectVal.length === 0) { + layer.msg("鍑哄簱绔欐病鏈変氦闆嗭紝鏃犳硶鎵归噺淇敼", {icon: 2}); + return; + } + admin.open({ + type: 1, + area: '300px', + offset: 'auto', + title: '璇烽�夋嫨绔欑偣', + content: $('#staBatchSelectDialog').html(), + success: function (layero, ddIndex) { + // 娓叉煋涓嬫媺妗� + let template = Handlebars.compile($('#batchStaSelectTpl').html()); + $('#batchSelectStaBox').html(template({list: staBatchSelectVal})); + // 纭 + form.on('submit(staBatchSelectConfirm)', function (obj) { + let loadIdx = layer.load(2); + let batchSta = Number(obj.field.batchSta); + let arr = []; + for (let j = 0; j<stoPreTabData.length; j++) { + for (let i = 0; i<tableCache.length; i++) { + if (tableCache[i].orderNo === stoPreTabData[j].orderNo + && tableCache[i].matnr === stoPreTabData[j].matnr + && tableCache[i].locNo === stoPreTabData[j].locNo) { + tableCache[i]['staNo'] = batchSta; + arr.push(i); + } + } + } + stoPreTabIdx.reload({data: tableCache}); + arr.forEach(item => { + $('div[lay-id=stoPreTab] tr[data-index="' + item + '"] .order-sta-select').val(batchSta); + }); + layui.form.render('select'); + arr.forEach(item => { + $('div[lay-id=stoPreTab] tr[data-index="' + item + '"] .layui-select-title').find("input").css("color", "blue"); + }); + layer.close(loadIdx); layer.close(ddIndex); + return false; + }); + // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯 + $(layero).children('.layui-layer-content').css('overflow', 'visible'); + layui.form.render('select'); + }, + }) } + } - }) - return false; - }); - // 娓叉煋涓嬫媺鏍� - var insXmSel = xmSelect.render({ - el: '#modelSel', - height: '250px', - data: modelTb.options.data, - initValue: mData&&mData.sensorModel ? [mData.sensorModel] : [], - model: {label: {type: 'text'}}, - prop: { - name: 'name', - value: 'id' - }, - radio: true, - clickClose: true, - tree: { - show: true, - indent: 15, - strict: false, - expandedKeys: true - } - }); - // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯 - $(layero).children('.layui-layer-content').css('overflow', 'visible'); - layui.form.render('select'); + ,yes: function(index, layero){ + //鎸夐挳銆愮珛鍗冲嚭搴撱�戠殑鍥炶皟 + //pakout(tableCache, index); + pakout2(tableCache, index); + } + ,btn2: function(index, layero){ + //鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟 + layer.close(index) + //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴 + } + }); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + } + + function pakout(tableCache, layerIndex) { + // let loadIndex = layer.load(2); + notice.msg('姝e湪鐢熸垚鍑哄簱浠诲姟......', {icon: 4}); + $.ajax({ + url: baseUrl + "/out/pakout/auth", + headers: {'token': localStorage.getItem('token')}, + contentType: 'application/json;charset=UTF-8', + data: JSON.stringify(tableCache), + method: 'POST', + success: function (res) { + notice.destroy(); + if (res.code === 200) { + layer.close(layerIndex); + layer.msg(res.msg, {icon: 1}); + insTb.reload({where: null}); + insTb2.reload({where: null, page: {curr: 1}}); + } else if (res.code === 403) { + top.location.href = baseUrl + "/"; + } else { + layer.msg(res.msg, {icon: 2}) + } } }); } + + function pakout2(tableCache, layerIndex) { + // let loadIndex = layer.load(2); + notice.msg('姝e湪鐢熸垚鎷h揣鍗�......', {icon: 4}); + $.ajax({ + url: baseUrl + "/out/pakout2/auth", + headers: {'token': localStorage.getItem('token')}, + contentType: 'application/json;charset=UTF-8', + data: JSON.stringify(tableCache), + method: 'POST', + success: function (res) { + notice.destroy(); + if (res.code === 200) { + layer.close(layerIndex); + layer.msg(res.msg, {icon: 1}); + insTb.reload({where: null}); + insTb2.reload({where: null, page: {curr: 1}}); + } else if (res.code === 403) { + top.location.href = baseUrl + "/"; + } else { + layer.msg(res.msg, {icon: 2}) + } + } + }); + } + /* 鍒犻櫎璁㈠崟 */ @@ -274,6 +357,8 @@ }) }) + window.pakoutPreview = pakoutPreview; + }); function tableReload(child) { @@ -289,3 +374,25 @@ }); } +/** + * 涓�閿嚭搴� + */ +function autoOut(orderId) { + let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false}); + $.ajax({ + url: baseUrl + "/out/pakout/orderDetlIds/auth", + headers: {'token': localStorage.getItem('token')}, + data: { orderId : orderId }, + method: 'POST', + success: function (res) { + layer.close(loadIndex); + if (res.code === 200){ + pakoutPreview(res.data); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}); + } + } + }) +} -- Gitblit v1.9.1