From 32700bf6d8abe8935e3dad6433584ac7cf03f87c Mon Sep 17 00:00:00 2001
From: admin <841110950@qq.com>
Date: 星期一, 30 八月 2021 08:40:03 +0800
Subject: [PATCH] 1.0.4

---
 src/main/webapp/static/js/waitMatout/waitMatout.js |  580 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 384 insertions(+), 196 deletions(-)

diff --git a/src/main/webapp/static/js/waitMatout/waitMatout.js b/src/main/webapp/static/js/waitMatout/waitMatout.js
index 2cfa8d7..40a9fbc 100644
--- a/src/main/webapp/static/js/waitMatout/waitMatout.js
+++ b/src/main/webapp/static/js/waitMatout/waitMatout.js
@@ -1,47 +1,29 @@
-var pageCurr;
 layui.config({
     base: baseUrl + "/static/layui/lay/modules/"
-}).use(['table','laydate', 'form', 'admin'], function(){
-    var table = layui.table;
+}).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate'], function () {
     var $ = layui.jquery;
     var layer = layui.layer;
-    var layDate = layui.laydate;
     var form = layui.form;
+    var table = layui.table;
+    var util = layui.util;
     var admin = layui.admin;
+    var xmSelect = layui.xmSelect;
+    var layDate = layui.laydate;
 
-    // 鏁版嵁娓叉煋
-    tableIns = table.render({
+    // 娓叉煋琛ㄦ牸
+    var insTb = table.render({
         elem: '#waitMatout',
+        url: baseUrl+'/waitMatout/head/page/auth',
         headers: {token: localStorage.getItem('token')},
-        url: baseUrl+'/waitMatout/list/auth',
         page: true,
-        limit: 16,
-        limits: [16, 30, 50, 100, 200, 500],
-        toolbar: '#toolbar',
-        cellMinWidth: 50,
+        cellMinWidth: 100,
         cols: [[
-            {type: 'checkbox'}
-            ,{field: 'billNo', align: 'center',title: '鍗曟嵁缂栧彿'}
-            ,{field: 'seqNo', align: 'center',title: '搴忓彿'}
-            ,{field: 'billType$', align: 'center',title: '鍗曟嵁绫诲瀷'}
-            ,{field: 'matNo', align: 'center',title: '鐗╂枡缂栫爜'}
-            ,{field: 'matName', align: 'center',title: '鐗╂枡鍚嶇О'}
-            ,{field: 'qty', align: 'center',title: '鏁伴噺'}
-            ,{field: 'specs', align: 'center',title: '瑙勬牸'}
-            ,{field: 'unit', align: 'center',title: '鍗曚綅'}
-            ,{field: 'size', align: 'center',title: '灏哄', hide: true}
-            ,{field: 'color', align: 'center',title: '棰滆壊', hide: true}
-            ,{field: 'weight', align: 'center',title: '鍗曢噸', hide: true}
-            ,{field: 'memo', align: 'center',title: '澶囨敞', hide: true}
-            ,{field: 'outQty', align: 'center',title: '宸插嚭搴撻噺'}
-            ,{field: 'linkErp$', align: 'center',title: 'ERP杩炵嚎'}
-            ,{field: 'ioStatus$', align: 'center',title: '瀹屾垚鐘舵��'}
-            ,{field: 'ioTime$', align: 'center',title: '瀹屾垚鏃堕棿', hide: true}
-            ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳',event: 'modiUser', style: 'cursor:pointer', hide: true}
-            ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', hide: true}
-            ,{field: 'appeUser$', align: 'center',title: '寤烘。浜哄憳',event: 'appeUser', style: 'cursor:pointer', hide: true}
-            ,{field: 'appeTime$', align: 'center',title: '寤烘。鏃堕棿', hide: true}
-            ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+            {type: 'numbers'},
+            {field: 'billNo', title: '鍗曟嵁缂栧彿', sort: true},
+            {field: 'billType$', align: 'center', title: '绫诲瀷',  minWidth: 160, width: 160},
+            {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160},
+            {field: 'appeTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200},
+            {align: 'center', title: '鎿嶄綔', toolbar: '#operate', minWidth: 130, width: 130}
         ]],
         request: {
             pageName: 'curr',
@@ -58,124 +40,176 @@
         response: {
             statusCode: 200
         },
-        done: function(res, curr, count) {
+        done: function (res, curr, count) {
             if (res.code === 403) {
                 top.location.href = baseUrl+"/";
             }
-            pageCurr=curr;
-            limit();
         }
     });
 
-    // 鐩戝惉鎺掑簭浜嬩欢
-    table.on('sort(waitMatout)', function (obj) {
-        var searchData = {};
-        $.each($('#search-box [name]').serializeArray(), function() {
-            searchData[this.name] = this.value;
-        });
-        searchData['orderByField'] = obj.field;
-        searchData['orderByType'] = obj.type;
-        tableIns.reload({
-            where: searchData,
-            page: {curr: 1}
-        });
+    // 鎼滅储
+    form.on('submit(waitMatoutSearch)', function (data) {
+        insTb.reload({where: data.field, page: {curr: 1}});
     });
 
-    // 鐩戝惉澶村伐鍏锋爮浜嬩欢
-    table.on('toolbar(waitMatout)', function (obj) {
-        var checkStatus = table.checkStatus(obj.config.id).data;
-        switch(obj.event) {
-            case 'addData':
-                showEditModel();
-                break;
-            case 'deleteData':
-               if (checkStatus.length === 0) {
-                   layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
-                   return;
-               }
-               var ids = checkStatus.map(function (d) {
-                   return d.seqNo;
-               });
-               del(ids);
-               break;
-            case 'exportData':
-                layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
-                    var titles=[];
-                    var fields=[];
-                    obj.config.cols[0].map(function (col) {
-                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
-                            titles.push(col.title);
-                            fields.push(col.field);
+    // 娣诲姞
+    $("#waitMatoutAddBtn").click(function () {
+        showEditModel();
+    });
+
+    // 宸ュ叿鏉$偣鍑讳簨浠�
+    table.on('tool(waitMatout)', function (obj) {
+        var data = obj.data;
+        var layEvent = obj.event;
+        console.log(obj)
+        if (layEvent === 'edit') {
+            showEditModel(data);
+        } else if (layEvent === 'del') {
+            doDel(data.billNo);
+        } 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: '800px',
+                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+'/waitMatout/list/auth',
+                        where: {
+                            bill_no: data.billNo
+                        },
+                        page: true,
+                        cellMinWidth: 100,
+                        cols: [[
+                            {type: 'numbers'},
+                            {field: 'matNo', title: '鐗╂枡缂栫爜'},
+                            {field: 'matName', title: '鐗╂枡鍚嶇О', width: 160},
+                            {field: 'qty', title: '鏁伴噺', width: 90},
+                            {
+                                field: 'createTime$', title: '鍒涘缓鏃堕棿', sort: true, templet: function (d) {
+                                    return util.toDateString(d.createTime);
+                                },  width: 180
+                            },
+                            {field: 'outqty', title: '宸插嚭搴撻噺'},
+                            {field: 'color', title: '棰滆壊'},
+                            {field: 'specs', 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) {
+
+        //matOut ajax
+        // var DataList = [];
+        // $.ajax({
+        //     url: baseUrl+"/waitMatout/list/auth2?billNo=" + expTpe.billNo,
+        //     headers: {'token': localStorage.getItem('token')},
+        //     contentType:'application/json;charset=UTF-8',
+        //     method: 'POST',
+        //     success: function (res) {
+        //         console.log(res)
+        //         var list=res.data.records;
+        //         for (let i = 0; i < list.length; i++) {
+        //             DataList.push(list[i]);
+        //         }
+        //     }
+        // })
+        // console.log(DataList)
+
+        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) {
+                    $('#billNo').attr("disabled", "disabled");
+                }
+                // 琛ㄥ崟鎻愪氦浜嬩欢
+                form.on('submit(waitMatoutEditSubmit)', function (data) {
+                    console.log(data)
+                    // 缁勮鏁版嵁
+                    if (xxDataList.length <= 0) {
+                        layer.tips('璇锋坊鍔犲崟鎹槑缁�', '#matAddBtnComment', {tips: [1, '#ff4c4c']});
+                        return false;
+                    }
+                    var param = [];
+                    var nList = admin.util.deepClone(xxDataList);
+                    console.log(nList)
+                    for (var xi = 0; xi < nList.length; xi++) {
+                        if (nList[xi].outQty > 0 ) {
+
+                        } else if (nList[xi].qty > 0) {
+                            param.push({
+                                billNo: data.field.billNo,
+                                billType: data.field.billType,
+                                matNo: nList[xi].matNo,
+                                matName: nList[xi].matName,
+                                color: nList[xi].color,
+                                size: nList[xi].size,
+                                specs: nList[xi].specs,
+                                memo: nList[xi].memo,
+                                unit: nList[xi].unit,
+                                outQty: nList[xi].outQty,
+                                qty: nList[xi].qty,
+                            })
                         }
-                    });
-                    var exportData = {};
-                    $.each($('#search-box [name]').serializeArray(), function() {
-                        exportData[this.name] = this.value;
-                    });
-                    var param = {
-                        'waitMatout': exportData,
-                        'fields': fields
-                    };
+                    }
+                    if (param.length === 0) {
+                        layer.msg('鍗曟嵁鏄庣粏鏁伴噺涓嶅悎娉�', {icon: 2});
+                        return false;
+                    }
+                    layer.load(2);
                     $.ajax({
-                        url: baseUrl+"/waitMatout/export/auth",
+                        url: baseUrl+"/waitMatout/" + (isExpAdd?"add":"modify") + "/auth",
                         headers: {'token': localStorage.getItem('token')},
                         data: JSON.stringify(param),
-                        dataType:'json',
                         contentType:'application/json;charset=UTF-8',
                         method: 'POST',
                         success: function (res) {
-                            layer.closeAll();
-                            if (res.code === 200) {
-                                table.exportFile(titles,res.data,'xls');
-                            } else if (res.code === 403) {
-                                top.location.href = baseUrl+"/";
-                            } else {
-                                layer.msg(res.msg, {icon: 2})
-                            }
-                        }
-                    });
-                });
-                break;
-        }
-    });
-
-    // 鐩戝惉琛屽伐鍏蜂簨浠�
-    table.on('tool(waitMatout)', function(obj){
-        var data = obj.data;
-        switch (obj.event) {
-            case 'edit':
-                showEditModel(data);
-                break;
-            case "del":
-                var ids = [data.seqNo];
-                del(ids);
-                break;
-        }
-    });
-
-    /* 寮圭獥 - 鏂板銆佷慨鏀� */
-    function showEditModel(mData) {
-        admin.open({
-            type: 1,
-            area: '600px',
-            title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
-            content: $('#editDialog').html(),
-            success: function (layero, dIndex) {
-                layDateRender();
-                form.val('detail', mData);
-                form.on('submit(editSubmit)', function (data) {
-                    var loadIndex = layer.load(2);
-                    $.ajax({
-                        url: baseUrl+"/waitMatout/"+(mData?'update':'add')+"/auth",
-                        headers: {'token': localStorage.getItem('token')},
-                        data: data.field,
-                        method: 'POST',
-                        success: function (res) {
-                            layer.close(loadIndex);
+                            layer.closeAll('loading');
                             if (res.code === 200){
                                 layer.close(dIndex);
+                                insTb.reload({page: {curr: 1}});
                                 layer.msg(res.msg, {icon: 1});
-                                tableReload();
                             } else if (res.code === 403){
                                 top.location.href = baseUrl+"/";
                             }else {
@@ -185,33 +219,233 @@
                     })
                     return false;
                 });
-                $(layero).children('.layui-layer-content').css('overflow', 'visible');
-                layui.form.render('select');
+                // 鏄庣粏琛ㄦ牸
+                var xxDataList = [];
+                var tbOptions = {
+                    elem: '#formSSXMTable',
+                    headers: {token: localStorage.getItem('token')},
+                    data: xxDataList,
+                    page: true,
+                    height: '350px;',
+                    cellMinWidth: 100,
+                    cols: [[
+                        {type: 'numbers'},
+                        {field: 'matNo', title: '鐗╂枡缂栫爜'},
+                        {field: 'matName', title: '鐗╂枡鍚嶇О', width: 160},
+                        {field: 'specs', title: '瑙勬牸', width: 160},
+                        {field: 'color', title: '棰滆壊', width: 160},
+                        {field: 'size', title: '灏哄', width: 160},
+                        {field: 'qty', title: '淇敼鏁伴噺', style: 'color: blue;font-weight: bold', edit: true, minWidth: 100, width: 100},
+                        {field: 'unit', title: '鍗曚綅', width: 160},
+                        {field: 'memo', title: '澶囨敞' , edit: true, width: 160},
+                        {field: 'outQty', title: '宸插嚭搴撻噺' , width: 160},
+                        {align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80}
+                    ]],
+                    done: function (res) {
+                        var list= res.data
+                        $(layero).find('.layui-table-view').css('margin', '0');
+                    },
+                    size: ''
+                };
+                if (!isExpAdd) {
+                    $.ajax({
+                        url: baseUrl+"/waitMatout/detl/list/auth?billNo=" + expTpe.billNo,
+                        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].matNo === data.matNo) {
+                                    xxDataList.splice(j, 1);
+                                    break;
+                                }
+                            }
+                            insTbSSXM.reload({data: xxDataList, page: {curr: 1}});
+                        });
+                    }
+                });
+                // 鏁伴噺淇敼
+                table.on('edit(formSSXMTable)', function (obj) {
+                    debugger;
+                    if (obj.field=='memo'){
+                        let vle = obj.value;
+                        for (var i=0;i<xxDataList.length;i++) {
+                            if (xxDataList[i]["matNo"] === obj.data.matNo) {
+                                xxDataList[i]["memo"] = vle;
+                                break;
+                            }
+                        }
+                    }else if (obj.field=='qty'){
+                        let vle = Number(obj.value);
+                        if (isNaN(vle)) {
+                            layer.msg("璇疯緭鍏ユ暟瀛�");
+                        } else {
+                            if (vle > 0) {
+                                for (var i=0;i<xxDataList.length;i++) {
+                                    if (xxDataList[i]["matNo"] === obj.data.matNo) {
+                                        xxDataList[i]["qty"] = vle;
+                                        break;
+                                    }
+                                }
+                            } else {
+                                layer.msg("鏁伴噺蹇呴』澶т簬闆�");
+                            }
+                        }
+                    }
+
+                    insTbSSXM.reload({data: xxDataList});
+                });
+                //
+                $('#matAddBtnComment').click(function () {
+                    showEditModel2();
+                });
+
+                // 鏄剧ず娣诲姞鏄庣粏琛ㄥ崟寮圭獥
+                function showEditModel2(exp) {
+                    admin.open({
+                        type: 1,
+                        offset: '150px',
+                        area: '480px',
+                        title: (exp ? '淇敼' : '娣诲姞') + '鏄庣粏',
+                        content: $('#matEditDialog').html(),
+                        success: function (layero, dIndex) {
+                            $(layero).children('.layui-layer-content').css('overflow', 'visible');
+                            // 鍥炴樉鏁版嵁
+                            form.val('matEditForm', exp);
+                            // 琛ㄥ崟鎻愪氦浜嬩欢
+                            form.on('submit(matEditSubmit)', function (data) {
+                                var existMats = [];
+                                xxDataList.forEach(function(elem) {
+                                    existMats.push(elem.matNo);
+                                });
+                                var selectList = matXmSelect.getValue();
+                                for (var i = 0; i<selectList.length; i++) {
+                                    var item = selectList[i];
+                                    if (existMats.indexOf(item.value) === -1) {
+                                        // 鏌ヨ鐗╂枡璇︽儏
+                                        $.ajax({
+                                            url: baseUrl+"/matCode/"+item.value+"/auth",
+                                            headers: {'token': localStorage.getItem('token')},
+                                            method: 'GET',
+                                            async: false,
+                                            success: function (res) {
+                                                if (res.code === 200){
+                                                    var mat = res.data;
+                                                    console.log(mat)
+                                                    xxDataList.push({
+                                                        matNo: mat.matNo,
+                                                        matName: mat.matName,
+                                                        color:mat.color,
+                                                        size:mat.size,
+                                                        specs:mat.specs,
+                                                        memo: mat.memo,
+                                                        unit: mat.unit,
+                                                        outQty: mat.outQty,
+                                                        qty: 0.0
+                                                    });
+                                                    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 del(ids) {
-        layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
-            skin: 'layui-layer-admin',
-            shade: .1
+
+    // 鍒犻櫎鍗曟嵁
+    function doDel(billNo) {
+        layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', {
+            shade: .1,
+            skin: 'layui-layer-admin'
         }, function (i) {
             layer.close(i);
-            var loadIndex = layer.load(2);
+            layer.load(2);
+
             $.ajax({
                 url: baseUrl+"/waitMatout/delete/auth",
                 headers: {'token': localStorage.getItem('token')},
-                data: {ids: ids},
+                data: {
+                    billNo: billNo
+                },
+                // contentType:'application/json;charset=UTF-8',
                 method: 'POST',
                 success: function (res) {
-                    layer.close(loadIndex);
+                    layer.closeAll('loading');
                     if (res.code === 200){
+                        insTb.reload({page: {curr: 1}});
                         layer.msg(res.msg, {icon: 1});
-                        tableReload();
                     } else if (res.code === 403){
                         top.location.href = baseUrl+"/";
-                    } else {
+                    }else {
                         layer.msg(res.msg, {icon: 2});
                     }
                 }
@@ -219,55 +453,9 @@
         });
     }
 
-    // 鎼滅储
-    form.on('submit(search)', function (data) {
-        pageCurr = 1;
-        tableReload(false);
+    layDate.render({
+        elem: '.layui-laydate-range'
+        ,type: 'datetime'
+        ,range: true
     });
-
-    // 閲嶇疆
-    form.on('submit(reset)', function (data) {
-        pageCurr = 1;
-        clearFormVal($('#search-box'));
-        tableReload(false);
-    });
-
-    // 鏃堕棿閫夋嫨鍣�
-    function layDateRender() {
-        layDate.render({
-        elem: '#ioTime\\$',
-        type: 'datetime'
-        });
-        layDate.render({
-        elem: '#modiTime\\$',
-        type: 'datetime'
-        });
-        layDate.render({
-        elem: '#appeTime\\$',
-        type: 'datetime'
-        });
-        layDate.render({
-            elem: '.layui-laydate-range'
-            ,type: 'datetime'
-            ,range: true
-        });
-    }
-    layDateRender();
-
-});
-
-// 鍏抽棴鍔ㄤ綔
-$(document).on('click','#data-detail-close', function () {
-    parent.layer.closeAll();
-});
-
-function tableReload(child) {
-    var searchData = {};
-    $.each($('#search-box [name]').serializeArray(), function() {
-        searchData[this.name] = this.value;
-    });
-    tableIns.reload({
-        where: searchData,
-        page: {curr: pageCurr}
-     });
-}
+});
\ No newline at end of file

--
Gitblit v1.9.1