自动化立体仓库 - WMS系统
zyx
2023-07-25 64c256128e8cf5c65e409c4682cf3c32466748b2
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,12 +9,34 @@
    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({
        url: baseUrl+"/docType/list/auth",
        headers: {'token': localStorage.getItem('token')},
        data: {
            limit: 9999
        },
        method: 'POST',
        success: function (res) {
            if (res.code === 200){
                let template = Handlebars.compile($('#docTypeTpl').html());
                $('#docType-query').html(template(res.data));
                layui.form.render('select');
            } else if (res.code === 403){
                top.location.href = baseUrl+"/";
            } else {
                layer.msg(res.msg, {icon: 2})
            }
        }
    })
    // 渲染表格
    var insTb = table.render({
    insTb = table.render({
        elem: '#order',
        url: baseUrl+'/order/head/page/auth',
        headers: {token: localStorage.getItem('token')},
@@ -20,8 +44,9 @@
        cellMinWidth: 100,
        cols: [[
            {type: 'numbers'},
            {field: 'orderNo', title: '单据编号'},
            {field: 'orderNo', title: '单据编号', templet: '#orderNoTpl'},
            {field: 'docType$', align: 'center', title: '类型',  minWidth: 160, width: 160},
            {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: 'settle$', align: 'center', title: '状态', templet: '#settleTpl',  minWidth: 160, width: 160},
@@ -62,12 +87,19 @@
        showEditModel();
    });
    // 导入销售单
    $("#importOrder").click(function () {
        $("#importExcel").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') {
@@ -98,12 +130,12 @@
                        cellMinWidth: 100,
                        cols: [[
                            {type: 'numbers'},
                            {field: 'matnr', title: '商品编码'},
                            {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: '单位'},
                            // {field: 'unit', title: '单位'},
                            // {
                            //     field: 'createTime$', title: '创建时间', sort: true, templet: function (d) {
                            //         return util.toDateString(d.createTime);
@@ -205,13 +237,13 @@
                    cellMinWidth: 100,
                    cols: [[
                        {type: 'numbers', title: '#'},
                        {field: 'matnr', title: '商品编码', width: 160},
                        {field: 'maktx', title: '商品名称', width: 200},
                        {field: 'batch', title: '批号', edit: true},
                        {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: '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'}
                    ]],
@@ -290,11 +322,10 @@
                    admin.open({
                        type: 1,
                        offset: '150px',
                        area: '480px',
                        area: '680px',
                        title: (exp ? '修改' : '添加') + '明细',
                        content: $('#matEditDialog').html(),
                        success: function (layero, dIndex) {
                            $(layero).children('.layui-layer-content').css('overflow', 'visible');
                            // 回显数据
                            form.val('matEditForm', exp);
                            // 表单提交事件
@@ -434,9 +465,116 @@
        });
    }
    // 任务追溯
    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});
}