From b70f35dcded8c09b253c17923cb7b4d944ede9cb Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期四, 28 九月 2023 08:02:48 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/OrderController.java | 17 + src/main/java/com/zy/asrs/controller/LocDetlController.java | 2 src/main/webapp/static/js/locDetlGroup/locDetlGroup2.js | 2 src/main/webapp/static/js/order/orderLog.js | 617 ++++++++++++++++++++++++++++++++++++ src/main/webapp/views/order/orderLog.html | 311 ++++++++++++++++++ src/main/java/com/zy/asrs/controller/OrderDetlController.java | 22 + 6 files changed, 969 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java index acb9beb..304007b 100644 --- a/src/main/java/com/zy/asrs/controller/LocDetlController.java +++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java @@ -48,7 +48,7 @@ return R.ok(); } - @RequestMapping(value = "/locDetl/{id}/auth") + @RequestMapping(value = "/locDetl/{id}/authv2") @ManagerAuth public R get(@PathVariable("id") String id) { return R.ok(locDetlService.selectById(String.valueOf(id))); diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java index d3390f0..1b8c877 100644 --- a/src/main/java/com/zy/asrs/controller/OrderController.java +++ b/src/main/java/com/zy/asrs/controller/OrderController.java @@ -54,6 +54,8 @@ @Autowired private LocDetlService locDetlService; @Autowired + private OrderLogService orderLogService; + @Autowired private MatService matService; @RequestMapping(value = "/order/nav/list/auth") @@ -338,6 +340,21 @@ return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper)); } + @RequestMapping(value = "/order/list/log/auth") + @ManagerAuth + public R listLog(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + EntityWrapper<OrderLog> wrapper = new EntityWrapper<>(); + wrapper.orderBy("create_time"); + excludeTrash(param); + convert(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + return R.ok(orderLogService.selectPage(new Page<>(curr, limit), wrapper)); + } + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ for (Map.Entry<String, Object> entry : map.entrySet()){ String val = String.valueOf(entry.getValue()); diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java index 1c3cd11..fc7aa95 100644 --- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java +++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java @@ -10,6 +10,8 @@ import com.core.common.DateUtils; import com.core.common.R; import com.zy.asrs.entity.OrderDetl; +import com.zy.asrs.entity.OrderDetlLog; +import com.zy.asrs.service.OrderDetlLogService; import com.zy.asrs.service.OrderDetlService; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; @@ -25,6 +27,9 @@ @Autowired private OrderDetlService orderDetlService; + + @Autowired + private OrderDetlLogService orderDetlLogService; @RequestMapping(value = "/orderDetl/{id}/auth") @ManagerAuth @@ -49,6 +54,23 @@ return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper)); } + @RequestMapping(value = "/orderDetl/list/log/auth") + @ManagerAuth + public R listLog(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + EntityWrapper<OrderDetlLog> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { + wrapper.orderBy("create_time", false); + } + wrapper.eq("status", 1); + return R.ok(orderDetlLogService.selectPage(new Page<>(curr, limit), wrapper)); + } + @RequestMapping(value = "/orderDetl/pakout/list/auth") @ManagerAuth public R pakoutList(@RequestParam(defaultValue = "1")Integer curr, diff --git a/src/main/webapp/static/js/locDetlGroup/locDetlGroup2.js b/src/main/webapp/static/js/locDetlGroup/locDetlGroup2.js index 477d6a5..44120c5 100644 --- a/src/main/webapp/static/js/locDetlGroup/locDetlGroup2.js +++ b/src/main/webapp/static/js/locDetlGroup/locDetlGroup2.js @@ -388,7 +388,7 @@ }; $.ajax({ - url: baseUrl + "/locDetl/" + name + "/auth", + url: baseUrl + "/locDetl/" + name + "/authv2", headers: {'token': localStorage.getItem('token')}, data: top.reObject(data), method: 'POST', diff --git a/src/main/webapp/static/js/order/orderLog.js b/src/main/webapp/static/js/order/orderLog.js new file mode 100644 index 0000000..0337c7f --- /dev/null +++ b/src/main/webapp/static/js/order/orderLog.js @@ -0,0 +1,617 @@ +var insTbCount = 0; +var admin; +var insTb +layui.config({ + base: baseUrl + "/static/layui/lay/modules/" +}).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate'], function () { + var $ = layui.jquery; + var layer = layui.layer; + var form = layui.form; + var table = layui.table; + var util = layui.util; + admin = layui.admin; + var xmSelect = layui.xmSelect; + var layDate = layui.laydate; + var laytpl = layui.laytpl; + + // 娓叉煋鎼滅储妯℃澘 + $.ajax({ + url: baseUrl+"/docType/list/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + limit: 9999 + }, + method: 'POST', + success: function (res) { + if (res.code === 200){ + let template = Handlebars.compile($('#docTypeTpl').html()); + $('#docType-query').html(template(res.data)); + layui.form.render('select'); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + + // 娓叉煋琛ㄦ牸 + insTb = table.render({ + elem: '#order', + url: baseUrl+'/order/list/log/auth', + headers: {token: localStorage.getItem('token')}, + page: true, + cellMinWidth: 100, + cols: [[ + {type: 'numbers'}, + {field: 'orderNo', title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl'}, + {field: 'docType$', align: 'center', title: '绫诲瀷', minWidth: 160, width: 160}, + {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: 280} + ]], + request: { + pageName: 'curr', + pageSize: 'limit' + }, + parseData: function (res) { + return { + 'code': res.code, + 'msg': res.msg, + 'count': res.data.total, + 'data': res.data.records + } + }, + response: { + statusCode: 200 + }, + done: function (res, curr, count) { + limit(); + if (res.code === 403) { + top.location.href = baseUrl+"/"; + } + insTbCount = count; + } + }); + + // 鎼滅储 + form.on('submit(tbSearch)', function (data) { + insTb.reload({where: data.field, page: {curr: 1}}); + }); + + // 娣诲姞 + $("#orderAddBtn").click(function () { + showEditModel(); + }); + + // 瀵煎叆閿�鍞崟 + $("#importOrder").click(function () { + $("#importExcel").trigger("click"); + }); + + // 宸ュ叿鏉$偣鍑讳簨浠� + table.on('tool(order)', function (obj) { + var data = obj.data; + 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 === 'exportData') { + doExport(obj); + } else if (layEvent === 'complete') { + doModify(data.id, 4); + } else if (layEvent === 'look') { + var $a = $(obj.tr).find('a[lay-event="look"]'); + var offset = $a.offset(); + var top = offset.top; + var left = offset.left; + layer.open({ + type: 1, + title: false, + area: '820px', + offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'], + shade: .01, + shadeClose: true, + fixed: false, + content: '<table id="lookSSXMTable" lay-filter="lookSSXMTable"></table>', + success: function (layero) { + table.render({ + elem: '#lookSSXMTable', + headers: {token: localStorage.getItem('token')}, + url: baseUrl+'/orderDetl/list/log/auth', + where: { + order_id: data.id + }, + page: true, + cellMinWidth: 100, + cols: [[ + {type: 'numbers'}, + {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 280}, + {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 150}, + // {field: 'batch', title: '鎵瑰彿'}, + {field: 'specs', title: '瑙勬牸', width: 180}, + {field: 'anfme', title: '鏁伴噺', width: 70}, + {field: 'qty', title: '浣滀笟鏁伴噺', style: 'font-weight: bold', width: 90} + // {field: 'unit', title: '鍗曚綅'}, + // { + // field: 'createTime$', title: '鍒涘缓鏃堕棿', sort: true, templet: function (d) { + // return util.toDateString(d.createTime); + // }, width: 180 + // }, + // {field: 'inQty', title: '宸插叆搴撻噺'}, + // {field: 'color', title: '棰滆壊'}, + ]], + request: { + pageName: 'curr', + pageSize: 'limit' + }, + parseData: function (res) { + return { + 'code': res.code, + 'msg': res.msg, + 'count': res.data.total, + 'data': res.data.records + } + }, + response: { + statusCode: 200 + }, + done: function () { + $(layero).find('.layui-table-view').css('margin', '0'); + }, + size: '' + }); + } + }); + } + }); + + // 鏄剧ず琛ㄥ崟寮圭獥 + function showEditModel(expTpe) { + admin.open({ + type: 1, + title: (expTpe ? '淇敼' : '娣诲姞') + '鍗曟嵁', + content: $('#editDialog').html(), + area: '1300px', + success: function (layero, dIndex) { + $(layero).children('.layui-layer-content').css('overflow', 'visible'); + var isExpAdd = !expTpe; + // 鍥炴樉鏁版嵁 + form.val('editForm', expTpe); + if (expTpe) { + $('#orderNo').attr("disabled", "disabled"); + } + // 琛ㄥ崟鎻愪氦浜嬩欢 + form.on('submit(orderEditSubmit)', function (data) { + // 缁勮鏁版嵁 + if (xxDataList.length <= 0) { + layer.tips('璇锋坊鍔犲崟鎹槑缁�', '#matAddBtnComment', {tips: [1, '#ff4c4c']}); + return false; + } + let nList = admin.util.deepClone(xxDataList); + for (let xi = 0; xi < nList.length; xi++) { + if (nList[xi].anfme <= 0){ + layer.msg('鏄庣粏淇敼鏁伴噺涓嶅悎娉�', {icon: 2}); + return false; + } + } + layer.load(2); + $.ajax({ + url: baseUrl+"/order/form/" + (isExpAdd?"add":"modify") + "/auth", + headers: {'token': localStorage.getItem('token')}, + data: JSON.stringify({ + orderId: Number(data.field.id), + docType: Number(data.field.docType), + orderNo: data.field.orderNo, + orderDetlList: nList + }), + contentType:'application/json;charset=UTF-8', + method: 'POST', + success: function (res) { + layer.closeAll('loading'); + if (res.code === 200){ + layer.close(dIndex); + $(".layui-laypage-btn")[0].click(); + layer.msg(res.msg, {icon: 1}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + return false; + }); + // 鏄庣粏琛ㄦ牸 + var xxDataList = []; + var tbOptions = { + elem: '#formSSXMTable', + headers: {token: localStorage.getItem('token')}, + data: xxDataList, + page: true, + height: '350px;', + cellMinWidth: 100, + cols: [[ + {type: 'numbers', title: '#'}, + {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 280}, + {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 150}, + // {field: 'batch', title: '鎵瑰彿', edit: true}, + {field: 'specs', title: '瑙勬牸', width: 180}, + {field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 100}, + {field: 'sum', title: '搴撳瓨鏁伴噺', style: 'color: red;font-weight: bold', minWidth: 110, width: 100}, + // {field: 'inQty', 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'} + ]], + done: function (res) { + $(layero).find('.layui-table-view').css('margin', '0'); + }, + size: '' + }; + if (!isExpAdd) { + $.ajax({ + url: baseUrl+"/order/detl/all/auth?orderId=" + expTpe.id, + headers: {'token': localStorage.getItem('token')}, + method: 'GET', + async: false, + success: function (res) { + if (res.code === 200){ + xxDataList = res.data; + tbOptions.data = xxDataList; + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + } + var insTbSSXM = table.render(tbOptions); + // 宸ュ叿鏉$偣鍑讳簨浠� + table.on('tool(formSSXMTable)', function (obj) { + var data = obj.data; + var layEvent = obj.event; + if (layEvent === 'edit') { + showEditModel2(data); + } else if (layEvent === 'del') { + layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', { + shade: .1, + skin: 'layui-layer-admin' + }, function (i) { + layer.close(i); + for (var j = 0; j < xxDataList.length; j++) { + if (xxDataList[j].matnr === data.matnr && xxDataList[j].batch === data.batch) { + xxDataList.splice(j, 1); + break; + } + } + insTbSSXM.reload({data: xxDataList, page: {curr: 1}}); + }); + } + }); + // 鏄庣粏鏁版嵁淇敼 + table.on('edit(formSSXMTable)', function (obj) { + let index = obj.tr.attr("data-index"); + let data = xxDataList[index]; + if (obj.field === 'anfme'){ + let vle = Number(obj.value); + if (isNaN(vle)) { + layer.msg("璇疯緭鍏ユ暟瀛�", {icon: 2}); + return false; + } else { + if (vle <= 0) { + layer.msg("鏁伴噺蹇呴』澶т簬闆�", {icon: 2}); + return false; + } + } + } + data[obj.field] = obj.value; + insTbSSXM.reload({data: xxDataList}); + }); + + $('#matAddBtnComment').click(function () { + showEditModel2(); + }); + + // 鏄剧ず娣诲姞鏄庣粏琛ㄥ崟寮圭獥 + function showEditModel2(exp) { + admin.open({ + type: 1, + offset: '150px', + area: '680px', + title: (exp ? '淇敼' : '娣诲姞') + '鏄庣粏', + content: $('#matEditDialog').html(), + success: function (layero, dIndex) { + // 鍥炴樉鏁版嵁 + form.val('matEditForm', exp); + // 琛ㄥ崟鎻愪氦浜嬩欢 + form.on('submit(matEditSubmit)', function (data) { + let selectList = matXmSelect.getValue(); + for (let i = 0; i<selectList.length; i++) { + let item = selectList[i]; + // 鏌ヨ鐗╂枡璇︽儏 + $.ajax({ + url: baseUrl+"/mat/covert/"+btoa(item.value)+"/auth", + headers: {'token': localStorage.getItem('token')}, + method: 'GET', + async: false, + success: function (res) { + if (res.code === 200){ + var bige=true; + for (var j = 0; j < xxDataList.length; j++) { + if (xxDataList[j].matnr === res.data.matnr && xxDataList[j].batch === res.data.batch) { + bige=false; + break; + } + } + if (bige){ + xxDataList.push(res.data); + insTbSSXM.reload({data: xxDataList, page: {curr: 1}}); + } + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + } + layer.close(dIndex); + return false; + }); + // 娓叉煋鐗╂枡閫夋嫨 + var matXmSelect = xmSelect.render({ + el: '#mat', + style: { + width: '340px', + }, + autoRow: true, + toolbar: { show: true }, + filterable: true, + remoteSearch: true, + remoteMethod: function(val, cb, show){ + $.ajax({ + url: baseUrl+"/mat/all/get/kv", + headers: {'token': localStorage.getItem('token')}, + data: { + condition: val + }, + method: 'POST', + success: function (res) { + if (res.code === 200){ + cb(res.data) + } else { + cb([]); + layer.msg(res.msg, {icon: 2}); + } + } + }); + } + }) + // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯 + $(layero).children('.layui-layer-content').css('overflow', 'visible'); + layui.form.render('select'); + } + }); + } + + } + }); + } + + // 鍒犻櫎鍗曟嵁 + function doDel(orderId) { + layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', { + shade: .1, + skin: 'layui-layer-admin' + }, function (i) { + layer.close(i); + layer.load(2); + $.ajax({ + url: baseUrl+"/order/delete/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + orderId: orderId + }, + method: 'POST', + success: function (res) { + layer.closeAll('loading'); + if (res.code === 200){ + if (insTbCount === 0) { + insTb.reload({page: {curr: 1}}); + } else { + $(".layui-laypage-btn")[0].click(); + } + layer.msg(res.msg, {icon: 1}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + }); + } + + // 瀵煎嚭鍗曟嵁 + function doExport(obj) { + layer.confirm('纭畾瀵煎嚭Excel鍚楋紵', { + shade: .1, + }, function (i) { + var titles=['璁㈠崟鍙�','鍟嗗搧缂栧彿','鍟嗗搧鍚嶇О','瑙勬牸','璁㈠崟鏁伴噺','浣滀笟鏁伴噺']; + $.ajax({ + url: baseUrl+"/order/exportOrder/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + orderId: obj.data.id + }, + method: 'POST', + success: function (res) { + layer.closeAll(); + if (res.code === 200){ + var tableName = '璁㈠崟 ' + res.data[0][0] + table.exportFile(titles,res.data,'xls',tableName); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + }); + } + + // 淇敼璁㈠崟鐘舵�� + function doModify(orderId, settle) { + layer.confirm('纭畾瑕佹墜鍔ㄥ畬缁撳悧锛�', { + shade: .1, + skin: 'layui-layer-admin' + }, function (i) { + layer.close(i); + layer.load(2); + $.ajax({ + url: baseUrl+"/order/update/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + id: orderId, + settle: settle + }, + method: 'POST', + success: function (res) { + layer.closeAll('loading'); + if (res.code === 200){ + if (insTbCount === 0) { + insTb.reload({page: {curr: 1}}); + } else { + $(".layui-laypage-btn")[0].click(); + } + layer.msg(res.msg, {icon: 1}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + }); + } + + // 浠诲姟杩芥函 + 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.wrkQty+"/"+res.data.totalQty + }, + 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 upload(obj){ + if(!obj.files) { + return; + } + var file = obj.files[0]; + admin.confirm('纭瀵煎叆 [' + file.name +'] 鏂囦欢鍚楋紵', function (index) { + layer.load(1, {shade: [0.1,'#fff']}); + var url = baseUrl + "/order/excel/import/auth"; + var form = new FormData(); + form.append("file", file); + let xhr = new XMLHttpRequest(); + xhr.open("post", url, true); + xhr.setRequestHeader('token', localStorage.getItem('token')); + xhr.onload = uploadComplete; + xhr.onerror = uploadFailed; + xhr.onloadend = function () { + layer.closeAll('loading'); + }; + // xhr.upload.onprogress = progressFunction; + xhr.upload.onloadstart = function(){ + ot = new Date().getTime(); + oloaded = 0; + }; + xhr.send(form); + }, function(index){ + }); +} +function uploadComplete(evt) { + let res = JSON.parse(evt.target.responseText); + if(res.code === 200) { + layer.msg(res.msg, {icon: 1}); + insTb.reload({page: {curr: 1}}); + } else { + alert(res.msg); + // layer.msg(res.msg, {icon: 2}); + } +} +function uploadFailed(evt) { + let res = JSON.parse(evt.target.responseText); + alert(res.msg); + // layer.msg(res.msg, {icon: 2}); +} diff --git a/src/main/webapp/views/order/orderLog.html b/src/main/webapp/views/order/orderLog.html new file mode 100644 index 0000000..d87882d --- /dev/null +++ b/src/main/webapp/views/order/orderLog.html @@ -0,0 +1,311 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title></title> + <meta name="renderer" content="webkit"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> + <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> + <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> + <link rel="stylesheet" href="../../static/css/cool.css" media="all"> + <!-- <link rel="stylesheet" href="../../static/css/common.css" media="all">--> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + <style> + .wrk-trace { + color: green; + cursor: pointer; + margin-left: 6px; + font-size: 18px; + } + + .layui-timeline:first-child .layui-timeline-item { + margin-top: 30px; + } + + .btn-add { + display: none; + } + .btn-edit { + display: none; + } + .btn-complete { + display: none; + } + .btn-delete { + display: none; + } + </style> +</head> +<body> + +<!-- 姝f枃寮�濮� --> +<div class="layui-fluid"> + <div class="layui-card"> + <div class="layui-card-body"> + <!-- 琛ㄦ牸椤堕儴宸ュ叿鏍� --> + <div class="layui-form toolbar"> + <div class="layui-form-item"> + <div class="layui-inline"> + <div class="layui-input-inline mr0"> + <input name="order_no" class="layui-input" type="text" placeholder="杈撳叆鍗曟嵁缂栧彿"/> + </div> + </div> + <div class="layui-inline" style="width: 300px"> + <div class="layui-input-inline"> + <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <select name="doc_type" id="docType-query"> + </select> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <select name="settle"> + <option value="">閫夋嫨鐘舵��</option> + <option value="1">寰呭鐞�</option> + <option value="2">浣滀笟涓�</option> + <option value="4">宸插畬鎴�</option> + <option value="6">涓婃姤瀹屾垚</option> + </select> + </div> + </div> + <div class="layui-inline"> + <button class="layui-btn icon-btn" lay-filter="tbSearch" lay-submit> + <i class="layui-icon"></i>鎼滅储 + </button> + <button id="orderAddBtn" class="layui-btn icon-btn btn-add"> + <i class="layui-icon"></i>娣诲姞 + </button> + <button id="importOrder" class="layui-btn icon-btn btn-add"> + <i class="layui-icon layui-icon-upload"></i> 瀵煎叆璁㈠崟 + </button> + <input style="display:none" id="importExcel" type="file" onchange="upload(this)" > + </div> + </div> + </div> + <table id="order" lay-filter="order"></table> + </div> + </div> + <div class="layui-card"> + <div class="layui-card-body"> + 鍏ュ簱閫氱煡鍗曪細鐢盓RP鎻愪緵鍗曟嵁缂栧彿銆佺被鍨嬨�佸崟鎹椂闂村強鐗╂枡鏄庣粏锛岀敓鎴愬叆搴撲綔涓氬崟锛屼负缁存姢绯荤粺楂樺彲鐢紝鐢ㄦ埛鍙嚜琛屾坊鍔犲叆搴撻�氱煡鍗曟暟鎹紝瀹屾垚鐙珛鐨勫叆搴撲綔涓氥�� + <span class="text-danger">鎵嬪姩娣诲姞鏃讹紝璇锋鏌ュ崟鎹紪鍙锋槸鍚﹀湪ERP绯荤粺涓凡瀛樺湪锛岄伩鍏嶅彂鐢熸暟鎹敊璇棶棰樸��</span> + </div> + </div> +</div> +<!-- 琛ㄦ牸鎿嶄綔鍒� --> +<script type="text/html" id="operate"> + {{# if (d.settle == 1 || d.settle == 2) { }} + <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a> + {{# if (d.settle == 2) { }} + <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">瀹岀粨</a> + {{# } }} + {{# } }} + <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">鍒犻櫎</a> + <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="exportData">瀵煎嚭</a> +</script> +<!-- 琛ㄦ牸鎿嶄綔鍒� --> +<script type="text/html" id="tbLook"> + <span class="layui-text"> + <a href="javascript:;" lay-event="look"> + <i class="layui-icon" style="font-size: 12px;"></i> 鏌ョ湅鍗曟嵁鏄庣粏 + </a> + </span> +</script> +<script type="text/html" id="orderNoTpl"> + {{d.orderNo}} + {{# if(d.settle > 1 && d.settle !== 3){ }} + + {{# } }} + <i class="layui-icon layui-icon-about wrk-trace" lay-tips="鏌ョ湅浠诲姟杩芥函" lay-direction="2" lay-offset="-10px,0px" lay-event="wrkTrace"></i> +</script> +<script type="text/html" id="settleTpl"> + <span name="settle" + {{# if( d.settle === 1){ }} + class="layui-badge layui-badge-red" + {{# }else if(d.settle === 2){ }} + class="layui-badge layui-badge-green" + {{# }else if(d.settle === 3){ }} + class="layui-badge layui-badge-gray" + {{# }else if(d.settle === 4){ }} + class="layui-badge layui-badge-blue" + {{# }else if(d.settle === 5){ }} + class="layui-badge layui-badge-gray" + {{# }else if(d.settle === 6){ }} + class="layui-badge layui-badge-gray" + {{# } }} + >{{d.settle$}}</span> +</script> +<!-- 琛ㄥ崟寮圭獥 --> +<script type="text/html" id="editDialog"> + <form id="editForm" lay-filter="editForm" class="layui-form model-form"> + <input name="id" type="hidden"/> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曟嵁绫诲瀷锛�</label> + <div class="layui-input-block cool-auto-complete"> + <input class="layui-input" name="docType" placeholder="璇疯緭鍏ュ崟鎹被鍨�" style="display: none"> + <input id="docType$" name="docType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ崟鎹被鍨�" onfocus=this.blur() lay-verType="tips" lay-verify="required"> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="docTypeQueryBydocType" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="docTypeQueryBydocTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曟嵁缂栧彿锛�</label> + <div class="layui-input-block"> + <input id="orderNo" name="orderNo" placeholder="杈撳叆鍗曟嵁缂栧彿" type="text" class="layui-input" maxlength="20" lay-verType="tips" lay-verify="required"/> + </div> + </div> + <div class="layui-form-item" style="position: relative;"> + <label class="layui-form-label">鍗曟嵁鏄庣粏锛�</label> + <div class="layui-input-block"> + <table id="formSSXMTable" lay-filter="formSSXMTable"></table> + </div> + <button class="layui-btn layui-btn-sm icon-btn" id="matAddBtnComment" + style="position: absolute; left: 20px;top: 60px;padding: 0 5px;" type="button"> + <i class="layui-icon"></i>娣诲姞鏄庣粏 + </button> + </div> + <div class="layui-form-item text-right"> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> + <button class="layui-btn" lay-filter="orderEditSubmit" lay-submit>淇濆瓨</button> + </div> + </form> +</script> +<!-- 琛ㄦ牸鎿嶄綔鍒� --> +<script type="text/html" id="formSSXMTableBar"> + <!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">淇敼</a>--> + <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">鍒犻櫎</a> +</script> +<!-- 琛ㄥ崟寮圭獥 --> +<script type="text/html" id="matEditDialog"> + <form id="matEditForm" lay-filter="matEditForm" class="layui-form model-form"> + <input name="experimentId" type="hidden"/> + <div class="layui-form-item" style="float: left"> + <label class="layui-form-label">鐗╂枡 - 澶氶��</label> + <div class="layui-input-block"> + <div id="mat" name="mat"> + </div> + </div> + </div> + <div class="layui-form-item text-right" style="display: inline-block; margin-left: 35px"> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> + <button class="layui-btn" lay-filter="matEditSubmit" lay-submit>淇濆瓨</button> + </div> + </form> +</script> + +<!-- 璁㈠崟浠诲姟杩芥函 --> +<script id="wrkTraceDialog" type="text/html" style="position: relative"> + <div style="position: absolute; top: 0; left: 0;"> + <div class="layui-card" style="overflow: hidden;"> + <div class="layui-card-header" style="text-align: center;width: 80%;font-weight: inherit;font-size: 18px">{{ d.orderNo }}</div> + <div class="layui-card-body"> + <div id="wrkTraceCharts" style="height: 300px;width: 400px;transform: translateX(-10%);"></div> + </div> + </div> + </div> + <div class="layui-row" > + <div class="layui-col-md5"> + <h1 style="opacity: 0;">Hello World</h1> + </div> + <div class="layui-col-md7" style=""> + {{# if(d.list.length > 0){ }} + <ul class="layui-timeline" style="height: 400px; overflow: scroll;"> + {{# layui.each(d.list, function(index, item){ }} + <li class="layui-timeline-item"> + <i class="layui-icon layui-timeline-axis"></i> + <div class="layui-timeline-content layui-text"> + <div class="layui-timeline-title"> + <h3 class="inline-block"> + {{ item.wrkNo }} + + {{# if(item.wrkMast.ioType < 100){ }} + <span class="layui-badge layui-bg-blue" style="line-height: 20px;"> + {{ item.wrkMast.ioType$ }} + </span> + {{# } }} + + {{# if(item.wrkMast.ioType > 100){ }} + <span class="layui-badge layui-bg-orange" style="line-height: 20px;"> + {{ item.wrkMast.ioType$ }} + </span> + {{# } }} + + + {{# if(item.wrkMast.wrkSts < 14){ }} + <span class="layui-badge layui-bg-red" style="line-height: 20px;"> + {{ item.wrkMast.wrkSts$ }} + </span> + {{# } }} + + {{# if(item.wrkMast.wrkSts >= 14){ }} + <span class="layui-badge layui-bg-green" style="line-height: 20px;"> + {{ item.wrkMast.wrkSts$ }} + </span> + {{# } }} + + </h3>  + {{ item.wrkMast.ioTime$ }} + </div> + + <table class="layui-table" lay-skin="nob" style="width: 80%"> + <thead> + <tr style="background: none"> + <td>No.</td> + <td>鍟嗗搧缂栧彿</td> + <td>鏁伴噺</td> + </tr> + </thead> + <tbody> + {{# layui.each(item.wrkDetls, function(idx, wrkDetl){ }} + <tr> + <td><span class="layui-badge layui-bg-cyan">{{ idx+1 }}</span></td> + <td>{{ wrkDetl.matnr }}</td> + <td style="font-weight: bold">{{ wrkDetl.anfme }}</td> + </tr> + {{# }); }} + </tbody> + </table> + + <hr class="layui-border-cyan" style="width: 90%; opacity: .6;"> + </div> + </li> + {{# }); }} + </ul> + {{# } else { }} + <div style="height: 350px;display: flex;justify-content: center;align-items: center;"> + <h2 style="font-weight: bold;letter-spacing: 2px">鏆傛棤浠诲姟</h2> + </div> + {{# } }} + </div> + </div> +</script> + +<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> +<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script> +<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/echarts/echarts.min.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/order/orderLog.js" charset="utf-8"></script> + +<script type="text/template" id="docTypeTpl"> + <option value="">閫夋嫨绫诲瀷</option> + {{#each records}} + <option value="{{docId}}">{{docName}}</option> + {{/each}} +</script> +</body> + +</html> + -- Gitblit v1.9.1