From 405e94c5d08e89c9bf2bd0820d39ceeaa049211d Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期三, 16 十月 2024 08:11:11 +0800
Subject: [PATCH] 流水记录表

---
 src/main/webapp/static/js/order/order.js |  298 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 282 insertions(+), 16 deletions(-)

diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index 0922b2f..79fc2a1 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -1,4 +1,6 @@
 var insTbCount = 0;
+var admin;
+var insTb
 layui.config({
     base: baseUrl + "/static/layui/lay/modules/"
 }).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate'], function () {
@@ -7,9 +9,10 @@
     var form = layui.form;
     var table = layui.table;
     var util = layui.util;
-    var admin = layui.admin;
+    admin = layui.admin;
     var xmSelect = layui.xmSelect;
     var layDate = layui.laydate;
+    var laytpl = layui.laytpl;
 
     // 娓叉煋鎼滅储妯℃澘
     $.ajax({
@@ -33,7 +36,7 @@
     })
 
     // 娓叉煋琛ㄦ牸
-    var insTb = table.render({
+    insTb = table.render({
         elem: '#order',
         url: baseUrl+'/order/head/page/auth',
         headers: {token: localStorage.getItem('token')},
@@ -41,12 +44,25 @@
         cellMinWidth: 100,
         cols: [[
             {type: 'numbers'},
-            {field: 'orderNo', title: '鍗曟嵁缂栧彿'},
-            {field: 'docType$', align: 'center', title: '绫诲瀷',  minWidth: 160, width: 160},
+            {field: 'defNumber', align: 'center', title: '鎿嶄綔绯荤粺鍙�', hide: false, width: 120},
+            {field: '鎿嶄綔鍗曟嵁', align: 'center', title: '鎿嶄綔鍗曟嵁', hide: true},
+            {field: '鎿嶄綔绫诲瀷', align: 'center', title: '鎿嶄綔绫诲瀷', hide: true},
+            {field: 'orderNo', title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl'},
+            //{field: 'itemName', align: 'center', title: '鏍哥畻涓讳綋'},
+            {field: 'docType$', align: 'center', title: '鍗曟嵁绫诲瀷'},
+            //{field: 'defNumber', align: 'center', title: '涓氬姟绫诲瀷'},
+            //{field: 'postFee', align: 'center', title: '鎬绘暟閲�',  minWidth: 130, width: 130},
             {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160},
-            {field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200},
+            {field: 'createTime$', title: '鍒涘缓鏃堕棿'},
+            {field: 'shipCode', align: 'center',title: '鍒跺崟浜�', hide: false},
             {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl',  minWidth: 160, width: 160},
             {field: 'memo', align: 'center',title: '澶囨敞', hide: true},
+            {field: 'orderTime', align: 'center',title: '鍗曟嵁鏃ユ湡', hide: true},
+            {field: 'cstmrName', align: 'center',title: '渚涘簲鍟�/瀹㈡埛缂栫爜', hide: true},
+            {field: 'tel', align: 'center',title: '浠撳簱', hide: true},
+            {field: 'operMemb', align: 'center',title: '鍑哄叆搴撶被鍒�', hide: true},
+            {field: 'salesman', align: 'center',title: '閮ㄩ棬', hide: true},
+
             {align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 180}
         ]],
         request: {
@@ -83,16 +99,29 @@
         showEditModel();
     });
 
+    // 瀵煎叆閿�鍞崟
+    $("#importOrder").click(function () {
+        $("#importExcel").trigger("click");
+    });
+
+     $("#orderCheckBtn").click(function () {
+            $("#importExcel2").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 === 'complete') {
             doModify(data.id, 4);
+        } else if (layEvent === 'report'){
+            doReport(data.id);
         } else if (layEvent === 'look') {
             var $a = $(obj.tr).find('a[lay-event="look"]');
             var offset = $a.offset();
@@ -101,7 +130,7 @@
             layer.open({
                 type: 1,
                 title: false,
-                area: '820px',
+                area: '1100px',
                 offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'],
                 shade: .01,
                 shadeClose: true,
@@ -119,12 +148,12 @@
                         cellMinWidth: 100,
                         cols: [[
                             {type: 'numbers'},
-                            {field: 'matnr', title: '鍟嗗搧缂栫爜'},
+                            {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160},
                             {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160},
-                            {field: 'batch', title: '搴忓垪鐮�'},
+                            //{field: 'batch', title: '鎵瑰彿'},
                             {field: 'anfme', title: '鏁伴噺'},
                             {field: 'qty', title: '浣滀笟鏁伴噺', style: 'font-weight: bold'},
-                            {field: 'unit', title: '鍗曚綅'},
+                            // {field: 'unit', title: '鍗曚綅'},
                             // {
                             //     field: 'createTime$', title: '鍒涘缓鏃堕棿', sort: true, templet: function (d) {
                             //         return util.toDateString(d.createTime);
@@ -132,7 +161,12 @@
                             // },
                             // {field: 'inQty', title: '宸插叆搴撻噺'},
                             // {field: 'color', title: '棰滆壊'},
-                            {field: 'specs', title: '瑙勬牸'}
+                            //{field: 'specs', title: '瑙勬牸鍨嬪彿'},
+                            {field: 'unit', title: '璁¢噺鍗曚綅'},
+                            //{field: 'manu', title: '琛屽彿'},
+                            {field: 'threeCode', title: '閿�鍞崟鍙�'},
+                            {field: 'deadTime', title: '鑷敱椤�'},
+                            {field: 'processSts$', title: '宸ュ簭'}
                         ]],
                         request: {
                             pageName: 'curr',
@@ -159,13 +193,14 @@
         }
     });
 
+
     // 鏄剧ず琛ㄥ崟寮圭獥
     function showEditModel(expTpe) {
         admin.open({
             type: 1,
             title: (expTpe ? '淇敼' : '娣诲姞') + '鍗曟嵁',
             content: $('#editDialog').html(),
-            area: '1300px',
+            area: '1600px',
             success: function (layero, dIndex) {
                 $(layero).children('.layui-layer-content').css('overflow', 'visible');
                 var isExpAdd = !expTpe;
@@ -222,25 +257,56 @@
                     headers: {token: localStorage.getItem('token')},
                     data: xxDataList,
                     page: true,
-                    height: '350px;',
+                    //height: '350px;',
                     cellMinWidth: 100,
+
+                    css: [ // 璁剧疆鍗曞厓鏍兼牱寮�
+                        // 鍙栨秷榛樿鐨勬孩鍑洪殣钘忥紝骞惰缃�傚綋楂樺害
+                        '.layui-table-cell{height: 50px; line-height: 40px;}',
+                        '.layui-table-cell .layui-colorpicker{width: 38px; height: 38px;}',
+                        '.layui-table-cell select{height: 36px; padding: 0 5px;}'
+                    ].join(''),
                     cols: [[
                         {type: 'numbers', title: '#'},
                         {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160},
-                        {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200},
+                        {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160},
                         {field: 'batch', title: '搴忓垪鐮�', edit: true},
                         {field: 'specs', title: '瑙勬牸'},
                         {field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
+                        {field: 'threeCode', title: '閿�鍞鍗曞彿(淇敼)', style: 'color: blue;font-weight: bold', edit: 'text', minWidth: 110, width: 110},
+                        {field: 'deadTime', title: '閿�鍞鍗曡鍙�(淇敼)', style: 'color: blue;font-weight: bold', edit: 'text', minWidth: 110, width: 110},
+                        {field: 'processSts', title: '宸ュ簭', templet: function (d) {
+                            var select = `<select class="layui-select" name="processSts" data-state=${d.processSts} lay-filter="processStsSelect" data-value=${d.processSts} id=${d.id}>
+                                            <option value="">閫夋嫨鐘舵��</option>
+                                            <option value="1">寰呭姞宸�</option>
+                                            <option value="2">宸插姞宸�</option>
+                                            <option value="3">鏃犻渶鍔犲伐</option>
+                                        </select>`;
+                            return select;
+                            }},
                         // {field: 'inQty', title: '宸插叆搴撻噺',  minWidth: 100, width: 100},
-                        {field: 'unit', title: '鍗曚綅', width: 80},
+                        // {field: 'unit', title: '鍗曚綅', width: 80},
                         {field: 'memo', title: '澶囨敞' , edit: true},
                         {align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'}
                     ]],
-                    done: function (res) {
+                    done: function (res,curr, count) {
                         $(layero).find('.layui-table-view').css('margin', '0');
+                        $(".layui-table-body").css('overflow','visible');
+                        $(".layui-table-box").css('overflow','visible');
+                        $(".layui-table-view").css('overflow','visible');
+
+                        var tableElem = this.elem.next('.layui-table-view');
+                        count || tableElem.find('.layui-table-header').css('overflow', 'auto');
+                        layui.each(tableElem.find('select[name="processSts"]'), function (index, item) {
+                            var elem = $(item);
+                            elem.val(elem.data('state')).parents('div.layui-table-cell').css('overflow', 'visible');
+                        });
+
+                        form.render();//鍒锋柊琛ㄥ崟
                     },
                     size: ''
                 };
+
                 if (!isExpAdd) {
                     $.ajax({
                         url: baseUrl+"/order/detl/all/auth?orderId=" + expTpe.id,
@@ -282,9 +348,24 @@
                         });
                     }
                 });
+                // 宸ュ叿鏉$偣鍑讳簨浠�
+                form.on('select(processStsSelect)', function (obj) {
+                    console.log(obj)
+                    var id = obj.elem.id
+                    var val = obj.value
+                    for (let item of xxDataList) {
+                        if (item.id == id) {
+                            item.processSts = val
+                        }
+                    }
+                });
                 // 鏄庣粏鏁版嵁淇敼
                 table.on('edit(formSSXMTable)', function (obj) {
-                    let index = obj.tr.attr("data-index");
+                    let index = 0;
+                    for (let k in xxDataList) {
+                        if (obj.data.id === xxDataList[k].id)
+                            index = k
+                    }
                     let data = xxDataList[index];
                     if (obj.field === 'anfme'){
                         let vle = Number(obj.value);
@@ -417,6 +498,40 @@
         });
     }
 
+    // 涓婁紶瀹℃牳鍗曟嵁
+    function doReport(orderId) {
+        layer.confirm('纭畾瑕佷笂浼犲崟鎹悧锛�', {
+            shade: .1,
+            skin: 'layui-layer-admin'
+        }, function (i) {
+            layer.close(i);
+            layer.load(2);
+            $.ajax({
+                url: baseUrl+"/order/report/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 doModify(orderId, settle) {
         layer.confirm('纭畾瑕佹墜鍔ㄥ畬缁撳悧锛�', {
@@ -454,9 +569,160 @@
         });
     }
 
+    // 浠诲姟杩芥函
+    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});
+}
+
+
+function upload2(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/import2/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});
+}

--
Gitblit v1.9.1