From 6a31e3759855f9649a323d2a8dd0dfed0cc43319 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期二, 23 一月 2024 09:27:58 +0800
Subject: [PATCH] #

---
 src/main/webapp/static/js/order/order.js |  322 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 320 insertions(+), 2 deletions(-)

diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index 467301f..c00e96f 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -1,16 +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({
@@ -44,11 +51,12 @@
             {type: 'numbers'},
             {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',
@@ -79,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();
@@ -94,6 +170,53 @@
             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, data.orderNo, 4);
         } else if (layEvent === 'look') {
@@ -545,4 +668,199 @@
         ,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'},
+                                    {field: 'specs', 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