Nesting.js 7.14 KB
let action = null;
layui.config({
    base: "/js/",
    version: 1222
}).use(['ztree', 'system'], function () {
    var form = layui.form,
        $ = layui.jquery,
        element = layui.element,
        table = layui.table,
        system = layui.system,
        sendData = {},
        u = new system.u(),
        areaName = "Material",
        tableName = "Nesting",
        app = null;

    action = {

        //套料计算
        BtnNestingCalculation: function (sysU, toolbarId, obj) {

            var cutDetailIds = "";

            //工单
            var checkStatus2 = table.checkStatus('leftDownList');
            if (checkStatus2.data.length > 0) {
                var Ids = [];
                for (var i = 0; i < checkStatus2.data.length; i++) {
                    Ids.push(checkStatus2.data[i].id);
                }
                cutDetailIds = Ids.join(",");
            }

            sendData.cutDetailIds = cutDetailIds;

            var ajaxConfig = {
                data: sendData,
                type: "post",
                url: `/${areaName}/${tableName}/NestingCalculation`,
                success: function (result) {
                    if (sysU.successBefore(result)) return;
                    app.methods.initTableMiddle(result.data.cutplanList);
                    app.methods.initTableRightDown(result.data.notWorkOrderList);
                    $('table').attr({ "lay-size": "sm" });

                    layer.msg(result.msg, { icon: 6, shade: 0.4, time: 1000 });
                }
            };
            sysU.ajax(ajaxConfig);
        },

        //保存套料方案
        BtnSaveCutPlan: function (sysU, toolbarId, obj) {

            var cutDetailIds = "";

            //工单
            var checkStatus2 = table.checkStatus('leftDownList');
            if (checkStatus2.data.length > 0) {
                var Ids = [];
                for (var i = 0; i < checkStatus2.data.length; i++) {
                    Ids.push(checkStatus2.data[i].id);
                }
                cutDetailIds = Ids.join(",");
            }

            sendData.cutDetailIds = cutDetailIds;

            var ajaxConfig = {
                data: sendData,
                type: "post",
                url: `/${areaName}/${tableName}/SaveNestingProgramme`,
                success: function (result) {
                    if (sysU.successBefore(result)) return;
                    app.methods.initTableMiddle(result.data.Middle);
                    app.methods.initTableRightDown(result.data.RightDown);
                    $('table').attr({ "lay-size": "sm" });

                    layer.msg(result.msg, { icon: 6, shade: 0.4, time: 1000 });
                }
            };
            sysU.ajax(ajaxConfig);
        },

        //所有动作成功之后
        actionSuccess: (falg, index = 1) => {
            if (falg === "add" || falg === "edit" || falg === "delete" || falg === "upload") {
            } else if (falg === "refresh") {
                app.methods.initTableLeftDown();
            }
            $('table').attr({ "lay-size": "sm" });
        }
    }

    app = {
        data: {
            //工单
            colsLeftDown: [[
                { checkbox: true, fixed: true, isAll: true },
                { field: "id", width: 85, title: "ID" },
                { field: "workOrderCode", width: 150, title: "工单号" },

                { field: "cutMaterCode", width: 150, title: "物料编码" },
                { field: "cuttingLength", width: 150, title: "切割长度" }
            ]],
            tableObjLeftDown: null,
            tableElemLeftDown: "leftDownList",
            //套料数据
            colsMiddle: [[
                { field: "id", width: 85, title: "序号"},
                { field: "materialCode", width: 85, title: "物料编码" },
                { field: "pipeLength", width: 85, title: "管材长度(mm)" },
                { field: "lossCount", width: 80, title: "利用率%" },
                { field: "oddmentsLength", width: 80, title: "余料长度(mm)" },

                { field: "iwpNo", width: 160, title: "工单号" },
                { field: "barCode", width: 85, title: "追踪码" },
                { field: "cuttingLength", width: 110, title: "切割长度(mm)" },

            ]],
            tableObjMiddle: null,
            tableElemMiddle: "middleList",
            //未套料工单
            colsRightDown: [[
                { field: "id", width: 85, title: "ID" },
                { field: "workOrderCode", width: 150, title: "工单号" },

                { field: "cutMaterCode", width: 150, title: "物料编码" },
                { field: "cuttingLength", width: 150, title: "切割长度" }
            ]],
            tableObjRightDown: null,
            tableElemRightDown: "rightDownList",

            contentLeft: $(".content-left"),
            contentRight: $(".content-right"),
            selectOption: {
                //返回的数据 用于后续操作
                selectData: {

                }
            }
        },
        methods: {
            //工单
            initTableLeftDown: function (options) {
                var planTime = $("#planTime").val();
                var where = { planTime: planTime };
                //if (options != undefined) $.extend(where, options);
                let opt = {
                    cols: u.columnRecord(app.data.tableElemLeftDown, app.data.colsLeftDown),
                    elem: "#" + app.data.tableElemLeftDown,
                    url: `/${areaName}/${tableName}/GetCutterInfo`,
                    height: "full-431",
                    page: false,
                    where: where,
                }
                app.data.tableObjLeftDown = u.initTable(opt);
            },
            //套料方案
            initTableMiddle: function (data) {
                let opt = {
                    cols: u.columnRecord(app.data.tableElemMiddle, app.data.colsMiddle),
                    elem: "#" + app.data.tableElemMiddle,
                    even: true,
                    //height: "full-96",
                    data: data,
                    limit: Number.MAX_VALUE
                };
                app.data.tableObjMiddle = table.render(opt);
               
            },
            //未套料工单
            initTableRightDown: function (data) {
                let opt = {
                    cols: u.columnRecord(app.data.tableElemRightDown, app.data.colsRightDown),
                    elem: "#" + app.data.tableElemRightDown,
                    even: true,
                    height: "full-431",
                    data: data,
                    limit: Number.MAX_VALUE
                }
                app.data.tableObjRightDown = table.render(opt);
            },

            initFrom: function () {
                var height = u.getFrameHeight() - 60;
                app.data.contentLeft.height(height);
                app.data.contentRight.height(height);
            }
        },
        registerEvent: function () {
            system.queryExtend();
        },
        init: function () {
            app.methods.initFrom();
            app.methods.initTableLeftDown();
            app.registerEvent();
        }
    };
    app.init();
});