自动化立体仓库 - WMS系统
#
tzsk
2024-05-31 b97ab3e077df3665663eb3a5b0c23d54c83a5548
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,7 +9,7 @@
    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;
@@ -34,7 +36,7 @@
    })
    // 渲染表格
    var insTb = table.render({
    insTb = table.render({
        elem: '#order',
        url: baseUrl+'/order/head/page/auth',
        headers: {token: localStorage.getItem('token')},
@@ -43,11 +45,20 @@
        cols: [[
            {type: 'numbers'},
            {field: 'orderNo', title: '单据编号', templet: '#orderNoTpl'},
            {field: 'docType$', align: 'center', title: '类型',  minWidth: 160, width: 160},
            {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: '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},
            {field: 'shipCode', align: 'center',title: '制单人', hide: true},
            {align: 'center', title: '操作', toolbar: '#operate', width: 180}
        ]],
        request: {
@@ -84,6 +95,11 @@
        showEditModel();
    });
    // 导入销售单
    $("#importOrder").click(function () {
        $("#importExcel").trigger("click");
    });
    // 工具条点击事件
    table.on('tool(order)', function (obj) {
        var data = obj.data;
@@ -96,6 +112,8 @@
            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();
@@ -104,8 +122,8 @@
            layer.open({
                type: 1,
                title: false,
                area: '820px',
                offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'],
                area: '1460px',
                offset: [top + 'px', (left - 900 + $a.outerWidth()) + 'px'],
                shade: .01,
                shadeClose: true,
                fixed: false,
@@ -122,9 +140,9 @@
                        cellMinWidth: 100,
                        cols: [[
                            {type: 'numbers'},
                            {field: 'matnr', title: '商品编码', width: 160},
                            {field: 'maktx', title: '商品名称', width: 160},
                            {field: 'batch', title: '序列码'},
                            {field: 'matnr', title: '存货编码', width: 160},
                            {field: 'maktx', title: '存货名称', width: 160},
                            {field: 'batch', title: '批号'},
                            {field: 'anfme', title: '数量'},
                            {field: 'qty', title: '作业数量', style: 'font-weight: bold'},
                            // {field: 'unit', title: '单位'},
@@ -135,7 +153,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: 'itemNum', title: '行唯一标识'}
                        ]],
                        request: {
                            pageName: 'curr',
@@ -229,11 +252,13 @@
                    cellMinWidth: 100,
                    cols: [[
                        {type: 'numbers', title: '#'},
                        {field: 'matnr', title: '商品编码', width: 160},
                        {field: 'maktx', title: '商品名称', width: 200},
                        {field: 'matnr', title: '存货编码', width: 160},
                        {field: 'maktx', title: '存货名称', width: 200},
                        {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: true, minWidth: 110, width: 110},
                        {field: 'deadTime', title: '销售订单行号(修改)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
                        // {field: 'inQty', title: '已入库量',  minWidth: 100, width: 100},
                        // {field: 'unit', title: '单位', width: 80},
                        {field: 'memo', title: '备注' , edit: true},
@@ -420,6 +445,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('确定要手动完结吗?', {
@@ -527,3 +586,46 @@
        ,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});
}