From ce697013e8b5d43bffafc3f3e4500c62316917b5 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期六, 26 十月 2024 14:22:34 +0800 Subject: [PATCH] # --- src/main/webapp/static/js/order/order.js | 434 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 419 insertions(+), 15 deletions(-) diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js index cde08e5..532fc96 100644 --- a/src/main/webapp/static/js/order/order.js +++ b/src/main/webapp/static/js/order/order.js @@ -1,15 +1,23 @@ var insTbCount = 0; +var tableCache2 = []; layui.config({ base: baseUrl + "/static/layui/lay/modules/" -}).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate'], function () { +}).extend({ + notice: 'notice/notice', +}).use(['layer', 'form', 'table','upload','element', 'util', 'admin', 'xmSelect', 'laydate', 'tableMerge', 'notice'], function () { var $ = layui.jquery; var layer = layui.layer; var form = layui.form; var table = layui.table; var util = layui.util; + var upload = layui.upload; var admin = layui.admin; var xmSelect = layui.xmSelect; var layDate = layui.laydate; + var laytpl = layui.laytpl; + var tableMerge = layui.tableMerge; + var notice = layui.notice; + var element = layui.element; // 娓叉煋鎼滅储妯℃澘 $.ajax({ @@ -41,13 +49,14 @@ cellMinWidth: 100, cols: [[ {type: 'numbers'}, - {field: 'orderNo', title: '鍗曟嵁缂栧彿'}, + {field: 'orderNo', title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl'}, {field: 'docType$', align: 'center', title: '绫诲瀷', minWidth: 160, width: 160}, + {field: 'tkType', align: 'center', title: 'TK', minWidth: 160, width: 160,hide: true}, {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160}, {field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200}, {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160}, {field: 'memo', align: 'center',title: '澶囨敞', hide: true}, - {align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 180} + {align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 240} ]], request: { pageName: 'curr', @@ -78,6 +87,74 @@ insTb.reload({where: data.field, page: {curr: 1}}); }); + //澶氭枃浠跺垪琛� + var uploadListIns = upload.render({ + elem: '#data-btn-file2' + ,elemList: $('#data-btn-file3') //鍒楄〃鍏冪礌瀵硅薄 + ,url: baseUrl+'/order/insert/labelUp/file/auth' + ,accept: 'file' + ,multiple: true + ,number: 10 + ,auto: false + ,bindAction: '#testListAction' + ,choose: function(obj){ + // 璧嬪�� + this.data.orderId=$('.layui-layer-title').text() + var that = this; + var files = this.files = obj.pushFile(); //灏嗘瘡娆¢�夋嫨鐨勬枃浠惰拷鍔犲埌鏂囦欢闃熷垪 + //璇诲彇鏈湴鏂囦欢 + obj.preview(function(index, file, result){ + var tr = $(['<tr id="upload-'+ index +'">' + ,'<td>'+ file.name +'</td>' + ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>' + ,'<td><div class="layui-progress" lay-filter="progress-demo-'+ index +'"><div class="layui-progress-bar" lay-percent=""></div></div></td>' + ,'<td>' + ,'<button class="layui-btn layui-btn-xs demo-reload layui-hide">閲嶄紶</button>' + // ,'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">鍒犻櫎</button>' + ,'</td>' + ,'</tr>'].join('')); + + //鍗曚釜閲嶄紶 + tr.find('.demo-reload').on('click', function(){ + obj.upload(index, file); + }); + + //鍒犻櫎 + tr.find('.demo-delete').on('click', function(){ + delete files[index]; //鍒犻櫎瀵瑰簲鐨勬枃浠� + tr.remove(); + uploadListIns.config.elem.next()[0].value = ''; //娓呯┖ input file 鍊硷紝浠ュ厤鍒犻櫎鍚庡嚭鐜板悓鍚嶆枃浠朵笉鍙�� + }); + + that.elemList.append(tr); + element.render('progress'); //娓叉煋鏂板姞鐨勮繘搴︽潯缁勪欢 + }); + } + ,done: function(res, index, upload){ //鎴愬姛鐨勫洖璋� + var that = this; + //if(res.code == 0){ //涓婁紶鎴愬姛 + var tr = that.elemList.find('tr#upload-'+ index) + ,tds = tr.children(); + tds.eq(3).html(''); //娓呯┖鎿嶄綔 + delete this.files[index]; //鍒犻櫎鏂囦欢闃熷垪宸茬粡涓婁紶鎴愬姛鐨勬枃浠� + return; + //} + this.error(index, upload); + } + ,allDone: function(obj){ //澶氭枃浠朵笂浼犲畬姣曞悗鐨勭姸鎬佸洖璋� + console.log(obj) + } + ,error: function(index, upload){ //閿欒鍥炶皟 + var that = this; + var tr = that.elemList.find('tr#upload-'+ index) + ,tds = tr.children(); + tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //鏄剧ず閲嶄紶 + } + ,progress: function(n, elem, e, index){ //娉ㄦ剰锛歩ndex 鍙傛暟涓� layui 2.6.6 鏂板 + element.progress('progress-demo-'+ index, n + '%'); //鎵ц杩涘害鏉°�俷 鍗充负杩斿洖鐨勮繘搴︾櫨鍒嗘瘮 + } + }); + // 娣诲姞 $("#orderAddBtn").click(function () { showEditModel(); @@ -89,10 +166,59 @@ var layEvent = obj.event; if (layEvent === 'edit') { showEditModel(data); + } else if (layEvent === 'wrkTrace') { + showWrkTrace(data.id); } else if (layEvent === 'del') { doDel(data.id); + } else if (layEvent === 'labelUp') { + //涓婁紶鏍囩 + // 鎵撳紑寮圭獥 + // 鏋勫缓甯﹀弬鏁扮殑鍐呭 + layer.open({ + area: '1020px', + type: 1, + title: '涓婁紶鏂囦欢-'+data.id, + content: $('#myModal') + }); + // 鑾峰彇璺緞涓嬬殑鏂囦欢鍒楄〃锛屼娇鐢� jQuery 鐨� ajax 鏂规硶 + $.ajax({ + url: baseUrl+'/order/view/labelUp/file/auth', + data:{ + orderId:data.id + }, + success: function(response) { + if (response.code==200){ + var targetTable = document.getElementById("data-btn-file3"); + targetTable.innerHTML = ''; + // 灏嗚幏鍙栧埌鐨勬枃浠跺垪琛ㄦ坊鍔犲埌鏂囦欢闃熷垪涓繘琛屾樉绀� + response.data.forEach(function(file,index) { + // 鍒涘缓tr鍏冪礌 + var tr = document.createElement("tr"); + tr.id = "upload-"+index; + tr.innerHTML = '<td>' + file.name + '</td>' + + '<td>' + (file.size / 1024).toFixed(1) + 'kb</td>' + + '<td><div class="layui-progress" lay-filter="progress-demo-' + index + '"><div class="layui-progress-bar" lay-percent=""></div></div></td>' + + '<td>' + + '<button class="layui-btn layui-btn-xs demo-reload layui-hide">閲嶄紶</button>' + // + '<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">鍒犻櫎</button>' + + '</td>'; + + // 灏唗r鍏冪礌娣诲姞鍒扮洰鏍噒able涓� + targetTable.appendChild(tr); + }); + }else { + console.log('Failed to get file list error.'); + } + }, + error: function() { + console.log('Failed to get file list.'); + } + }); + } else if (layEvent === 'refundLoc') { + //閫�搴� + pakoutPreview([data.id]); } else if (layEvent === 'complete') { - doModify(data.id, 4); + doModify(data.id, data.orderNo, 4); } else if (layEvent === 'look') { var $a = $(obj.tr).find('a[lay-event="look"]'); var offset = $a.offset(); @@ -101,7 +227,7 @@ layer.open({ type: 1, title: false, - area: '820px', + area: '1020px', offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'], shade: .01, shadeClose: true, @@ -119,12 +245,12 @@ cellMinWidth: 100, cols: [[ {type: 'numbers'}, - {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, + {field: 'matnr', title: '瑙勬牸', width: 160}, {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160}, - {field: 'batch', title: '搴忓垪鐮�'}, + {field: 'batch', title: '绠卞彿'}, {field: 'anfme', title: '鏁伴噺'}, - {field: 'workQty', title: '浣滀笟鏁伴噺'}, - {field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold'}, + // {field: 'workQty', title: '浣滀笟鏁伴噺'}, + // {field: 'unit', title: '鍗曚綅'}, // { // field: 'createTime$', title: '鍒涘缓鏃堕棿', sort: true, templet: function (d) { @@ -133,7 +259,9 @@ // }, // {field: 'inQty', title: '宸插叆搴撻噺'}, // {field: 'color', title: '棰滆壊'}, - {field: 'specs', title: '瑙勬牸'} + {field: 'specs', title: '鎺ュご'}, + {field: 'qty$', title: '鐘舵��', style: 'font-weight: bold'}, + {field: 'source$', title: '鏄惁纭', style: 'font-weight: bold'} ]], request: { pageName: 'curr', @@ -188,6 +316,10 @@ layer.msg('鏄庣粏淇敼鏁伴噺涓嶅悎娉�', {icon: 2}); return false; } + if (nList[xi].anfme < nList[xi].workQty){ + layer.msg('鏁伴噺涓嶈兘灏忎簬宸蹭綔涓氭暟閲�', {icon: 2}); + return false; + } } layer.load(2); $.ajax({ @@ -227,12 +359,12 @@ cellMinWidth: 100, cols: [[ {type: 'numbers', title: '#'}, - {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, + {field: 'matnr', title: '瑙勬牸', width: 160}, {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200}, - {field: 'batch', title: '搴忓垪鐮�', edit: true}, - {field: 'specs', title: '瑙勬牸'}, + {field: 'batch', title: '绠卞彿', edit: true}, + {field: 'specs', title: '鎺ュご'}, {field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110}, - // {field: 'inQty', title: '宸插叆搴撻噺', minWidth: 100, width: 100}, + {field: 'workQty', title: '浣滀笟鏁伴噺', minWidth: 100, width: 100}, // {field: 'unit', title: '鍗曚綅', width: 80}, {field: 'memo', title: '澶囨敞' , edit: true}, {align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'} @@ -268,6 +400,10 @@ if (layEvent === 'edit') { showEditModel2(data); } else if (layEvent === 'del') { + if(data.workQty > 0){ + layer.msg("宸插瓨鍦ㄤ綔涓氭暟閲忥紝涓嶈兘鍒犻櫎", {icon: 2}); + return; + } layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', { shade: .1, skin: 'layui-layer-admin' @@ -295,6 +431,14 @@ } else { if (vle <= 0) { layer.msg("鏁伴噺蹇呴』澶т簬闆�", {icon: 2}); + // data[obj.field] = 0; + // insTbSSXM.reload({data: xxDataList}); + return false; + } + if(obj.value < data.workQty){ + layer.msg("杈撳叆鏁伴噺涓嶈兘灏忎簬浣滀笟涓暟閲�", {icon: 2}); + // data[obj.field] = 0; + // insTbSSXM.reload({data: xxDataList}); return false; } } @@ -419,7 +563,7 @@ } // 淇敼璁㈠崟鐘舵�� - function doModify(orderId, settle) { + function doModify(orderId, orderNo, settle) { layer.confirm('纭畾瑕佹墜鍔ㄥ畬缁撳悧锛�', { shade: .1, skin: 'layui-layer-admin' @@ -433,6 +577,7 @@ headers: {'token': localStorage.getItem('token')}, data: { id: orderId, + orderNo: orderNo, settle: settle }, method: 'POST', @@ -455,9 +600,268 @@ }); } + // 浠诲姟杩芥函 + function showWrkTrace(orderId) { + let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false}); + $.ajax({ + url: baseUrl+"/order/wrk/trace/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + orderId: orderId + }, + method: 'POST', + success: function (res) { + layer.close(loadIndex); + if (res.code === 200){ + laytpl(wrkTraceDialog.innerHTML).render(res.data, function (html) { + admin.open({ + type: 1, + title: '浠诲姟杩芥函', + area: ['800px', '450px'], + shadeClose: true, + content: html, + success: function (layero, dIndex) { + $(layero).children('.layui-layer-content').css('overflow', 'visible'); + /** 缁熻鍥捐〃 */ + var traceCharts = echarts.init(document.getElementById('wrkTraceCharts')); + var traceOptions = { + title: { + text: '鎬婚噺/浣滀笟/瀹屾垚', x: 'center', y: '38%', + textStyle: {fontSize: 18, color: '#262626', fontWeight: 'normal'}, + subtextStyle: {fontSize: 36, color: '#10B4E8'}, + itemGap: 20 + }, + color: ['#10B4E8', '#E0E0E0', '#FF0000'], + tooltip: {trigger: 'item'}, + series: [{name: '绠卞瓙鏁伴噺', type: 'pie', radius: ['75%', '80%'], label: {normal: {show: false}}}] + }; + traceCharts.setOption(traceOptions); + // 璧嬪�� + traceCharts.setOption({ + title: { + subtext: res.data.totalQty+"/"+res.data.wrkQty+"/"+res.data.endQty + }, + series: [ + { + data: [ + {name: '宸蹭綔涓�', value: res.data.wrkQty}, + {name: '鏈綔涓�', value: res.data.totalQty-res.data.wrkQty-res.data.lackQty}, + {name: '搴撳瓨涓嶈冻', value: res.data.lackQty}, + ] + } + ] + }); + } + }); + }); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + } + layDate.render({ elem: '.layui-laydate-range' ,type: 'datetime' ,range: true }); + + function pakoutPreview(ids) { + let loadIndex = layer.load(2); + $.ajax({ + url: baseUrl + "/out/refund/loc/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: ['1500px', '700px'] + ,shade: 0.5 + ,shadeClose: false + ,btn: ['鐢熸垚閫�搴撳崟', '绋嶅悗澶勭悊'] + ,btnAlign: 'c' + ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1 + ,content: $('#pakoutPreviewBox').html() + ,success: function(layero, index){ + stoPreTabIdx = table.render({ + elem: '#stoPreTab', + data: res.data, + height: 520, + page: false, + limit: Number.MAX_VALUE, + cellMinWidth: 100, + cols: [[ + {type: 'checkbox'}, + // {type: 'checkbox', merge: ['orderNo']}, + {field: 'orderNo', title: '鍗曟嵁缂栧彿', align: 'center'}, + // {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'}, + {field: 'title', title: '鍟嗗搧', align: 'center', width: 350}, + // {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350}, + {field: 'batch', title: '绠卞彿', align: 'center'}, + {field: 'model', title: '鍗峰彿', align: 'center', hide: false}, + {field: 'specs', title: '鎺ュご', align: 'center'}, + // {field: 'brand', title: '鏈ㄧ绫诲瀷', align: 'center'}, + {field: 'brand$', title: '鏈ㄧ绫诲瀷', align: 'center'}, + {field: 'zpallet', title: '鎵樼洏鐮�', align: 'center'}, + {field: 'anfme', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'}, + {field: 'count', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'}, + {field: 'locNo', title: '璐т綅', align: 'center', width: 100, templet: '#locNoTpl'}, + {field: 'tkType$', title: 'TK鏍囪', align: 'center', width: 100}, + // {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'); + }, + }) + } + + } + ,yes: function(index, layero){ + //鎸夐挳銆愰��搴撱�戠殑鍥炶皟 + pakout(tableCache2, index); + tableCache2 = [] + } + ,btn2: function(index, layero){ + //鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟 + layer.close(index) + tableCache2 = [] + //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴 + } + }); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + + // 澶嶉�夋浜嬩欢 + table.on('checkbox(stoPreTab)', function(obj){ + tableCache2.push(obj.data) + }); + } + + function pakout(tableCache, layerIndex) { + // let loadIndex = layer.load(2); + notice.msg('姝e湪鐢熸垚鍑哄簱浠诲姟......', {icon: 4}); + $.ajax({ + url: baseUrl + "/out/refund/loc/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}) + } + } + }); + } }); -- Gitblit v1.9.1