From 8e943b7104561c3b14cf223016698709c5ade4b5 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期二, 03 二月 2026 15:37:26 +0800
Subject: [PATCH] #pda料箱组托和换码

---
 src/main/webapp/static/js/pakStore/stockOut.js |  211 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 208 insertions(+), 3 deletions(-)

diff --git a/src/main/webapp/static/js/pakStore/stockOut.js b/src/main/webapp/static/js/pakStore/stockOut.js
index 26e727e..b4b7255 100644
--- a/src/main/webapp/static/js/pakStore/stockOut.js
+++ b/src/main/webapp/static/js/pakStore/stockOut.js
@@ -1,9 +1,214 @@
-var pageCurr;
-layui.use(['table','laydate', 'form'], function() {
+var locDetlLayerIdx;
+var locDetlData = [];
+function getCol() {
+    var cols = [
+        {field: 'count', align: 'center',title: I18n.t('outbound_quantity'), edit:'text', width: 130,  style:'color: blue;font-weight: bold'}
+        ,{field: 'anfme', align: 'center',title: I18n.t('inventory_quantity')}
+        ,{field: 'locNo$', align: 'center',title: I18n.t('location_no')}
+    ];
+    var dCols = [];
+    if (typeof getDetlCols === 'function') {
+        dCols = getDetlCols();
+    } else {
+        dCols = detlCols.slice();
+    }
+    arrRemove(dCols,  'field', 'anfme');
+    cols.push.apply(cols, dCols);
+    cols.push({fixed: 'right', title: I18n.t('operation'), align: 'center', toolbar: '#operate', width: 80})
+    return cols;
+}
+
+layui.config({
+    base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function() {
     var table = layui.table;
     var $ = layui.jquery;
     var layer = layui.layer;
-    var layDate = layui.laydate;
     var form = layui.form;
+    var admin = layui.admin;
+
+    tableIns = table.render({
+        elem: '#chooseData',
+        headers: {token: localStorage.getItem('token')},
+        data: [],
+        even: true,
+        toolbar: '#toolbar',
+        cellMinWidth: 50,
+        limit: 500,
+        cols: [getCol()],
+        text: {
+            none: typeof I18n !== 'undefined' ? I18n.t('no_data') : '鏆傛棤鐩稿叧鏁版嵁'
+        },
+        done: function(res, curr, count) {
+            limit();
+            getOutBound();
+            if (typeof I18n !== 'undefined') {
+                I18n.updatePage($('.layui-table-view'));
+            }
+        }
+    });
+
+    $(document).on('i18n:languageChanged', function() {
+        tableIns.reload({
+            cols: [getCol()]
+        });
+    });
+
+    // 椤甸潰淇敼
+    table.on('edit(chooseData)', function (obj) {
+        let index = obj.tr.attr("data-index");
+        let data = locDetlData[index];
+        let modify = true;
+        if (obj.field === 'count'){
+            let vle = Number(obj.value);
+            if (isNaN(vle)) {
+                layer.msg(I18n.t('please_enter_number'), {icon: 2});
+                modify = false;
+            } else {
+                if (vle <= 0) {
+                    layer.msg(I18n.t('quantity_must_be_greater_than_zero'), {icon: 2});
+                    modify = false;
+                }
+                if (vle > Number(data.anfme)) {
+                    layer.msg(I18n.t('outbound_qty_cannot_exceed_inventory_qty'), {icon: 2});
+                    modify = false;
+                }
+            }
+        }
+        if (modify) {
+            data[obj.field] = obj.value;
+        }
+        tableIns.reload({data: locDetlData});
+    });
+
+    // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+    table.on('toolbar(chooseData)', function (obj) {
+        switch (obj.event) {
+            case 'outbound':
+                if (locDetlData.length === 0){
+                    layer.msg(I18n.t('please_extract_inventory_item_first'), {icon: 2});
+                } else {
+                    var staNo = $("#staNoSelect").val();
+                    if (staNo === "" || staNo === null){
+                        layer.msg(I18n.t('please_select_outbound_station'), {icon: 2});
+                        return;
+                    }
+                    let param = {
+                        outSite: staNo,
+                        locDetls: locDetlData
+                    }
+                    $.ajax({
+                        url: baseUrl+"/plate/out/start",
+                        headers: {'token': localStorage.getItem('token')},
+                        data: JSON.stringify(param),
+                        contentType:'application/json;charset=UTF-8',
+                        method: 'POST',
+                        success: function (res) {
+                            if (res.code === 200){
+                                locDetlData = [];
+                                tableIns.reload({data: locDetlData,done:function (res) {
+                                    limit();
+                                    getOutBound();
+                                    if (typeof I18n !== 'undefined') {
+                                        I18n.updatePage($('.layui-table-view'));
+                                    }
+                                }});
+                                layer.msg(typeof I18n !== 'undefined' ? I18n.t(res.msg) : res.msg, {icon: 1});
+                            } else if (res.code === 403){
+                                top.location.href = baseUrl+"/";
+                            } else {
+                                layer.msg(res.msg, {icon: 2})
+                            }
+                        }
+                    });
+                }
+                break;
+        }
+    });
+
+    // 鐩戝惉琛屽伐鍏蜂簨浠�
+    table.on('tool(chooseData)', function(obj){
+        switch (obj.event) {
+            case 'remove':
+                let index = obj.tr.attr("data-index");
+                locDetlData.splice(index, 1);
+                tableIns.reload({data: locDetlData});
+                break;
+        }
+    });
+
+    // 鑾峰彇鍑哄簱鍙�
+    function getOutBound(){
+        $.ajax({
+            url: baseUrl+"/available/take/site",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            async: false,
+            success: function (res) {
+                if (res.code === 200){
+                    var tpl = $("#takeSiteSelectTemplate").html();
+                    var list = res.data;
+                    if (typeof I18n !== 'undefined') {
+                        $.each(list, function(index, item) {
+                            var desc = item.desc;
+                            var start = desc.indexOf('锛�');
+                            var end = desc.indexOf('锛�');
+                            if (start !== -1 && end !== -1) {
+                                var key = desc.substring(start + 1, end);
+                                var translated = I18n.t(key);
+                                if (translated !== key) {
+                                    item.desc = desc.substring(0, start + 1) + translated + desc.substring(end);
+                                }
+                            }
+                        });
+                    }
+                    $("#staNoSelect").html(Handlebars.compile(tpl)({data: list}));
+                    form.render('select');
+                } else if (res.code === 403){
+                    top.location.href = baseUrl+"/";
+                } else {
+                    layer.msg(typeof I18n !== 'undefined' ? I18n.t(res.msg) : res.msg, {icon: 2})
+                }
+            }
+        });
+    }
+
+
+    $(document).on('click','#mat-query', function () {
+        let loadIndex = layer.msg(I18n.t('requesting'), {icon: 16, shade: 0.01, time: false});
+        locDetlLayerIdx = layer.open({
+            type: 2,
+            title: false,
+            closeBtn: false,
+            maxmin: false,
+            area: ['90%', '85%'],
+            shadeClose: true,
+            content: 'locDetlQuery.html',
+            success: function(layero, index){
+                layer.close(loadIndex);
+            }
+        });
+    })
 
 })
+
+// 娣诲姞琛ㄦ牸鏁版嵁
+function addTableData(data) {
+    for (var i=0;i<data.length;i++){
+        let pass = false;
+        for (var j=0;j<locDetlData.length;j++){
+            if (data[i].matnr === locDetlData[j].matnr && data[i].batch === locDetlData[j].batch && data[i].locNo$ === locDetlData[j].locNo$) {
+                pass = true;
+                break;
+            }
+        }
+        if (pass) {
+            data.splice(i--, 1);
+        } else {
+            data[i]["count"] = data[i]["anfme"];
+        }
+    }
+    locDetlData.push.apply(locDetlData, data);
+    tableIns.reload({data: locDetlData});
+    layer.close(locDetlLayerIdx);
+}

--
Gitblit v1.9.1