let action = null,
    app = null;
layui.config({
    base: "/js/",
    version: 1
}).use(['system', 'JsBarcode', 'jqprint', "vue"], function () {
    var form = layui.form,
        $ = layui.jquery,
        element = layui.element,
        table = layui.table,
        system = layui.system,
        sysU = new system.u(),
        sendData = null,
        areaName = "wo",
        tableName = "WorkOrder",
        vueApp = null,
        app = null,
        selectStationCodeVal = null,
        rowData = null,
        rowDataDetail = null;
    action = {
        addOptions: function () {
            var options = {
                fromId: "#modifyForm form",
                url: `/${areaName}/${tableName}/Ins`,
                submit: "submit(fromAdd)"
            }
            return options;
        },

        addOptionsDesc: function () {
            var options = {
                fromId: "#modifyFormDesc form",
                url: `/${areaName}/${tableName}/InsDesc`,
                content: $('#modifyFormDesc'),
                submit: "submit(fromAddDesc)"
            }

            return options;
        },

        editOptions: function () {
            var options = {
                fromId: "#modifyForm form",
                url: `/${areaName}/${tableName}/Upd`,
                submit: "submit(fromUpdate)"
            }
            return options;
        },

        editOptionsDesc: function () {
            var options = {
                fromId: "#modifyFormDesc form",
                url: `/${areaName}/${tableName}/UpdDesc`,
                content: $('#modifyFormDesc'),
                submit: "submit(fromUpdateDesc)"
            }
            return options;
        },

        deleteOptions: function () {
            var options = {
                url: `/${areaName}/${tableName}/DelByKeys`,
                keyId: "keys",
                titleConfirmDelete: "确定要删除所选信息吗(对应的明细数据也会删除)?"
            }
            return options;
        },

        deleteOptionsDesc: function () {
            var options = {
                url: `/${areaName}/${tableName}/DelByKeys`,
                keyId: "keys"
            }
            return options;
        },

        exportOptions: function () {
            var options = {
                fromId: "listForm",
                url: `/${areaName}/${tableName}/Export`,
                isDefault: true,
                excelCols: {
                    head: app.data.cols,
                    body: app.data.colsDesc
                }
            }
            return options;
        },

        queryOptions: function () {
            var options = {
                resetFrom: "form[lay-filter=listForm]",
                fromId: "listForm",
                urlExport: `/${areaName}/${tableName}/Export`,
                urlQuery: `/${areaName}/${tableName}/Load`,
                mainTable: app.data.tableIns
            }
            return options;
        },

        uploadOptions: function () {
            var options = {
                url: `/${areaName}/${tableName}/Import`
            }
            return options;
        },

        rowClickOptions: function () {
            var options = {
                isDefault: true,
                targetTableId: app.data.tableElem,
                tabfilter: "tableTabBody",
                tabId: 2,
                customFn: app.methods.initTableDesc
            }
            return options;
        },

        editBefore: function (data, callBack) {
            form.val("modifyForm", data);
            //callBack是回调函数,如果editBefore有ajax 放在成功之后
            if (callBack != null) callBack();
        },

        editSaveBefore: function (data, callBack) {
            if (callBack != null) callBack();
        },

        editBeforeDesc: function (data, callBack) {
            form.val("modifyFormDesc", data);
            //callBack是回调函数,如果editBefore有ajax 放在成功之后
            if (callBack != null) callBack();
        },
        editSaveBeforeDesc: function (data, callBack) {
            if (callBack != null) callBack();
        },

        addBefore: function (callBack) {
            //callBack是回调函数,如果editBefore有ajax 放在成功之后
            if (callBack != null) callBack();
        },

        addBeforeDesc: function (callBack) {
            //callBack是回调函数,如果editBefore有ajax 放在成功之后
            if (callBack != null) callBack();
        },

        addSaveBefore: function (data, callBack) {
            if (callBack != null) callBack();
        },


        //当前行表格双击事件处理
        customTableRowClick: function (obj, tableId) {
            if (tableId == app.data.tableElem) {
                rowData = obj.data;
            }
        },

        //时间线
        btnOprTimeLine: function (sU, toolbarId, obj) {
            var checkStatus = table.checkStatus(toolbarId);
            if (checkStatus.data.length != 1) {
                layer.alert(sysU.config.titleSelectOne, { icon: sysU.config.iconoError, shadeClose: true, title: sysU.config.titleSelectOne });
                return;
            }
            var ajaxConfig = {
                data: { headKeys: checkStatus.data[0].keys },
                url: `/${areaName}/${tableName}/LoadDesc`,
                success: function (data) {
                    vueApp.noProductiontime = [];
                    if (sU.successBefore(data)) return;
                    vueApp.oprTimeLineList = data.Result;
                    layer.open({
                        type: 1,
                        title: `信息【${checkStatus.data[0].productHeaderCode}】`,
                        content: $("#timeline"),
                        area: ['1000px', '580px']
                    });
                }
            };
            sU.ajax(ajaxConfig);
        },
        //工序任务明细物料
        btnMater: function (sU, detailId, obj) {
            var checkStatus = table.checkStatus(detailId);
            if (checkStatus.data.length != 1) {
                layer.alert(sysU.config.titleSelectOne, { icon: sysU.config.iconoError, shadeClose: true, title: sysU.config.titleSelectOne });
                return;
            }
            var data = checkStatus.data[0];
            console.log(`MaterDetail?headkey='${data.headKeys}'&bodyKey='${data.bodyKeys}'`);
            layer.open({
                type: 2,
                title: `${data.oprSequenceName} - ${data.materialName}`,
                content: `MaterDetail?headKey=${data.headKeys}&bodyKey=${data.bodyKeys}`,
                area: ['1000px', '580px']
            });
        },

        //报工MOM
        btnWorkReport: function (sysU, toolbarId, obj) {
            var checkStatus = table.checkStatus(toolbarId);
            if (checkStatus.data.length != 1) {
                layer.alert(sysU.config.titleSelectOne, { icon: sysU.config.iconoError, shadeClose: true, title: sysU.config.titleSelectOne });
                return;
            }
            var sendData = checkStatus.data[0].keys;
            //弹出框提示报工作业信息数据,后提交报工数据到MOM
            var ajaxConfig = {
                data: { headKey: sendData },
                url: `/${areaName}/${tableName}/WorkReport`,
                success: function (data) {
                    console.info(data);
                    if (sysU.successBefore(data)) return false;

                    layer.confirm(data.Message, { icon: 3, title: '提示' }, function (index) {
                        var ajaxConfig = {
                            data: { headKey: sendData, IsValdate: false },
                            url: `/${areaName}/${tableName}/WorkReport`,
                            success: function (result) {
                                if (sysU.successBefore(result)) return;
                                layer.msg(sysU.config.titleActionSuccess, { icon: sysU.config.iconoOk, shade: 0.4, time: sysU.config.msgOpenTime });
                                if (action["actionSuccess"] !== undefined) action["actionSuccess"].call(null, "Desc");
                                table.reload("mainList");
                            }
                        };
                        sysU.ajax(ajaxConfig);
                        layer.close(index);
                    });
                }
            };
            sysU.ajax(ajaxConfig);
        },

        //质检报告
        btnReworkCheck: function (sysU, toolbarId, obj) {
            var checkStatus = table.checkStatus(toolbarId),
                data = checkStatus.data;
            if (data.length !== 1) {
                layer.msg(sysU.config.titleSelectOne);
                return false;
            }
            layer.open({
                title: "质检报告-工单编码【" + data[0].workOrderCode + "】",
                type: 2,
                area: ['1000px', '600px'],
                content: "/quality/ReworkCheck/Index?page=WorkOrder&headCode=" + data[0].workOrderCode
            });
        },

        //收货
        btnReceipt: function (sysU, toolbarId, obj) {
            var checkStatus = table.checkStatus(toolbarId),
                data = checkStatus.data;
            if (data.length !== 1) {
                layer.msg(sysU.config.titleSelectOne);
                return false;
            }
            layer.open({
                title: "收货-工单编码【" + data[0].workOrderCode + "】,注意:切换页码之前请先保存当前页已修改的数据",
                type: 2,
                area: ['1000px', '600px'],
                content: `Receipt?headKey=${data[0].keys}`
            });
        },

        //收货统计
        btnReceiptStatistics: function (sysU, toolbarId, obj) {
            var checkStatus = table.checkStatus(toolbarId),
                data = checkStatus.data;
            if (data.length !== 1) {
                layer.msg(sysU.config.titleSelectOne);
                return false;
            }

            layer.open({
                title: "收货统计-工单编码【" + data[0].workOrderCode + "】,注意:“合计”只统计当前页码的数据",
                type: 2,
                area: ['1000px', '600px'],
                content: `ReceiptStatistics?headKey=${data[0].keys}`
            });
        },

        //工序数据录入和开工
        btnEnteringWorkReport: function (sU, toolbarId, obj) {
            debugger
            $("#complete form")[0].reset();

            var checkStatus = table.checkStatus(toolbarId);
            if (checkStatus.data.length != 1) {
                layer.alert(sysU.config.titleSelectOne, { icon: sysU.config.iconoError, shadeClose: true, title: sysU.config.titleSelectOne });
                return;
            }
            if (checkStatus.data[0].workReportStatus > window.top.EnumWorkReportStatus["开工已报工"]) {
                layer.alert("当前工序已开工并报工!", { icon: 2, shadeClose: true, title: "错误提示" });
                return;
            }
            var checkData = checkStatus.data[0];
            var id = checkData.id;
            var headKeys = checkData.headKeys;
            var bodyKeys = checkData.bodyKeys;
            if (checkData.actualStartTime == null) {
                $("#actualStartTime").val(new Date().format("yyyy-MM-dd hh:mm:ss"));
            } else {
                $("#actualStartTime").val(checkData.actualStartTime);
            }

            rowDataDetail = checkData;
            //加载工位
            app.data.selectOption.stationCode.SelFrom = `/configure/Station/LoadStationCodeByworkCenterCode?workCenterCode=${checkData.workCenterCode}&lineCode=${rowData.lineCode}`;
            sysU.initSelect(app.data.selectOption, function () {
                //给表单赋值
                form.val("complete", {
                    stationCode: checkData.stationCode
                });
                // 模拟select点击事件
                setTimeout(() => {
                    //$("#stationCode").next().find('.layui-select-title input').click();
                    $("#stationCode").next().find('.layui-anim').children(`dd[lay-value="${checkData.stationCode}"]`).click();
                }, 1000);
            });

            //加载 工序物料消耗、设备工艺参数 文本下拉框表格
            app.methods.initSelect();
            //加载物料表格
            app.methods.initGetMaterialInfo(checkData);

            layer.open({
                type: 1,
                title: "工序数据录入和开工,工序任务头表ID:【" + rowData.id + "】",
                content: $("#complete"),
                btn: ['保存', "关闭"],
                area: ['800px', '580px'],
                yes: function (index, layero) {
                    debugger
                    var Material = sysU.getTableAllData("WorkOrderMaterialUseLog");
                    var Equipment = sysU.getTableAllData("mainListEquipmentProcessTemplate");
                    var actualStartTime = document.getElementById("actualStartTime").value;
                    if (actualStartTime == "") {
                        layer.alert(`请选择开始时间!`, { icon: sysU.config.iconoError, shadeClose: true, title: sysU.config.titleOpen });
                        return;
                    }
                    //if (selectStationCodeVal == null || selectStationCodeVal == "") {
                    //    layer.alert(`请选择工位!`, { icon: sysU.config.iconoError, shadeClose: true, title: sysU.config.titleOpen });
                    //    return;
                    //}
                    var ajaxConfig = {
                        data: {
                            headKeys: headKeys,
                            bodyKeys: bodyKeys,
                            id: id,
                            actualStartTime: actualStartTime,
                            Material: Material,
                            Equipment: Equipment,
                            stationCode: rowDataDetail.stationCode
                        },
                        url: `/${areaName}/${tableName}/UpdateProcess`,
                        success: function (result) {
                            if (sysU.successBefore(result)) return;
                            layer.msg(result.Message, { icon: 6, shade: 0.4, time: sysU.config.msgOpenTimeLong });
                            layer.confirm(sysU.config.titleWorkReport, { icon: 3, title: '提示' }, function (idnex) {
                                var ajaxConfig = {
                                    data: { headKey: rowData.keys },
                                    url: `/${areaName}/${tableName}/WorkReport`,
                                    success: function (data) {
                                        console.info(data);
                                        if (sysU.successBefore(data)) return false;

                                        layer.confirm(data.Message, { icon: 3, title: '提示' }, function (index) {
                                            var ajaxConfig = {
                                                data: { headKey: rowData.keys, IsValdate: false },
                                                url: `/${areaName}/${tableName}/WorkReport`,
                                                success: function (result) {
                                                    if (sysU.successBefore(result)) return;
                                                    layer.msg(sysU.config.titleActionSuccess, { icon: sysU.config.iconoOk, shade: 0.4, time: sysU.config.msgOpenTime });
                                                    if (action["actionSuccess"] !== undefined) action["actionSuccess"].call(null, "Desc");
                                                }
                                            };
                                            sysU.ajax(ajaxConfig);
                                            layer.close(index);
                                        });
                                    }
                                };
                                sysU.ajax(ajaxConfig);
                            });
                            sysU.refreshTable(app, sysU, sendData, "btnCompletionDesc");
                        }
                    };
                    sysU.ajax(ajaxConfig);
                    layer.close(index);
                }
            });
        },


        //完工
        btnCompletion: function (sU, toolbarId, obj) {
            debugger
            $("#CompletionOfProcess form")[0].reset();

            var checkStatus = table.checkStatus(toolbarId);
            if (checkStatus.data.length != 1) {
                layer.alert(sysU.config.titleSelectOne, { icon: sysU.config.iconoError, shadeClose: true, title: sysU.config.titleSelectOne });
                return;
            }
            if (checkStatus.data[0].workReportStatus > window.top.EnumWorkReportStatus["开工已报工"]) {
                layer.alert("当前工序已完工或者无需处理", { icon: 2, shadeClose: true, title: "错误提示" });
                return;
            }
            if (checkStatus.data[0].state < window.top.EnumOrderBodyStatus.生产中) {
                layer.alert("必须先开工在完工", { icon: 2, shadeClose: true, title: "错误提示" });
                return;
            }
            var checkData = checkStatus.data[0];
            var id = checkData.id;
            var headKeys = checkData.headKeys;
            if (checkData.actualEndTime == null) {
                $("#actualEndTime").val(new Date().format("yyyy-MM-dd hh:mm:ss"));
            } else {
                $("#actualEndTime").val(checkData.actualStartTime);
            }
            layer.open({
                type: 1,
                title: "完工,工序任务头表ID:【" + rowData.id + "】",
                content: $("#CompletionOfProcess"),
                btn: ['保存', '关闭'],
                area: ['400px', '300px'],
                yes: function (index, layero) {
                    var actualEndTime = document.getElementById("actualEndTime").value;
                    var ajaxConfig = {
                        data: {
                            headKeys: headKeys,
                            id: id,
                            actualEndTime: actualEndTime
                        },
                        url: `/${areaName}/${tableName}/WorkComplete`,
                        success: function (result) {
                            if (sysU.successBefore(result)) return;
                            layer.msg(result.Message, { icon: 6, shade: 0.4, time: sysU.config.msgOpenTimeLong });
                            layer.confirm(sysU.config.titleWorkReport, { icon: 3, title: '提示' }, function (idnex) {
                                var ajaxConfig = {
                                    data: { headKey: rowData.keys },
                                    url: `/${areaName}/${tableName}/WorkReport`,
                                    success: function (data) {
                                        console.info(data);
                                        if (sysU.successBefore(data)) return false;

                                        layer.confirm(data.Message, { icon: 3, title: '提示' }, function (index) {
                                            var ajaxConfig = {
                                                data: { headKey: rowData.keys, IsValdate: false },
                                                url: `/${areaName}/${tableName}/WorkReport`,
                                                success: function (result) {
                                                    if (sysU.successBefore(result)) return;
                                                    layer.msg(sysU.config.titleActionSuccess, { icon: sysU.config.iconoOk, shade: 0.4, time: sysU.config.msgOpenTime });
                                                    if (action["actionSuccess"] !== undefined) action["actionSuccess"].call(null, "Desc");
                                                }
                                            };
                                            sysU.ajax(ajaxConfig);
                                            layer.close(index);
                                        });
                                    }
                                };
                                sysU.ajax(ajaxConfig);
                            });
                            sysU.refreshTable(app, sysU, sendData, "btnCompletionDesc");
                        }
                    };
                    if (document.getElementById("actualEndTime").value == "") {
                        layer.alert(`请选择结束时间!`, { icon: sysU.config.iconoError, shadeClose: true, title: sysU.config.titleOpen });
                        return;
                    }

                    sysU.ajax(ajaxConfig);
                    layer.close(index);
                }
            });
        },

        //点击下拉框获取工位编码
        stationCodeFromEvent: function (data) {
            debugger
            if (data.value == "") {
                layer.msg("请选择工位");
                return false;
            }
            selectStationCodeVal = data.value;
            rowDataDetail["stationCode"] = selectStationCodeVal;
            app.methods.initGetEquipmentInfo(rowDataDetail);
        },

        qcCodePrintOptions: () => {
            var options = {
                qrCodeValueKey: "productHeaderCode",
                //【qrcodeElem】 是要修改的内容其他的不要变 id 的变量值不需要变 
                customFn: (sysU, parameter, selectData) => {
                    //qcCodeValue:产品编码#供应商编码#生产计划号#3位流水号
                    var supplierCode = "EZ8100";
                    for (var i = 0; i < selectData.length; i++) {
                        var qcCodeValue = `${selectData[i]["productHeaderCode"]}#${supplierCode}#${selectData[i]["planCode"]}#001`,
                            qrcodeId = "qrcode" + i,
                            qrcodeHeadId = "qrcodeHead" + i,
                            qrCodeElem = `<div  id="${qrcodeHeadId}"  class="qcCode"  style="width: 227px; height: 151px;">
                                              <div class="qr-head">
                                                 <div class="qr-head-log">
                                                    <label class="lal-padingLeft qr-font12">${supplierCode}</label>
                                                    <img src="../../../images/qr/leishaLogQr.png" style="width:70px; height: 23px;padding-right: 4px;"/>
                                                 </div>
                                                   <div class="qr-head-content">
                                                     <label class="lal-padingLeft qr-font12">${selectData[i]["productName"]}</label>
                                                     <label style="padding-right: 4px;">自制</label>
                                                 </div>
                                               </div>
                                                <div class="qr-body qrCode-flex" style="justify-content: space-between;">
                                                 <div class="qr-body-left qr-font12">
                                                    <label class="lal-padingLeft"  style="display: inline-block;padding-top:8px">${selectData[i]["productHeaderCode"]}</label>
                                                    <div class="qrCode-flex" style='margin-top: 20px;'>
                                                         <label style="display: inline-block;padding-top:8px" class="lal-padingLeft">${selectData[i]["planCode"]}</label> 
                                                         <label style="display: inline-block;padding-top:8px ;padding-left: 20px;">001</label>
                                                    </div>
                                                 </div>
                                                   <div class="qr-body-right">
                                                        <div id="${qrcodeId}" ></div>
                                                   </div>
                                               </div>
                                          </div>`;
                        parameter["width"] = 400;
                        parameter["height"] = 400;
                        sysU.qRCodeWirtDom(parameter, qrCodeElem, qrcodeId, qcCodeValue);
                        $(".qr-body-right img").css("height", 71);
                    }
                    return true;
                }
            }
            return options;
        },

        //操作记录
        btnOperationRecord: function (data, toolbarId) {
            var checkStatus = table.checkStatus(toolbarId);
            if (checkStatus.data.length != 1) {
                layer.alert(sysU.config.titleSelectOne, { icon: sysU.config.iconoError, shadeClose: true, title: sysU.config.titleSelectOne });
                return;
            }
            var workOrderHeadKeys = checkStatus.data[0].keys;
            var url = `/wo/BusWorkorderDetailOperation/Index?headKey=${workOrderHeadKeys}`;
            var index = layer.open({
                title: "操作记录-工单编码【" + checkStatus.data[0].workOrderCode + "】",
                type: 2,
                area: ['1000px', '600px'],
                content: url
            });
        },

        //所有动作成功之后
        actionSuccess: (falg, curr = 1) => {
            sysU.refreshTable(app, sysU, sendData, falg);
        }
    }

    app = {
        data: {
            cols: [[
                { checkbox: true, fixed: true },
                { field: "id", width: 80, hide: true, title: " id" },
                { field: "keys", width: 150, hide: true, title: "keys" },
                { field: "processHeadKeys", width: 150, hide: true, title: "工艺路线keys" },
                { field: "workOrderCode", width: 180, title: "工单编码", hide: true, },
                { field: 'planCode', width: 150, title: '生产计划号' },

                { field: 'projectCode', width: 150, title: '项目编码', hide: true, },
                { field: 'projectName', width: 150, title: '项目名称' },
                { field: "productHeaderCode", width: 150, title: "产品编码", hide: true },
                { field: "productName", width: 150, title: "产品名称" },
                { field: "lineCode", width: 150, hide: true, title: "产线编码", hide: true },

                { field: "lineName", width: 180, title: "线体", hide: true },
                { field: 'state', width: 100, title: '任务状态', templet: function (obj) { return "".GetState(window.top.EnumOrderHeadStatus, obj.state) } },
                { field: 'nowOprSequenceCode', width: 150, title: '当前工序', hide: true },
                { field: 'oprSequenceName', width: 150, title: '工序名称' },
                { field: 'nowStationCode', width: 100, title: '当前工位' },

                { field: 'nextOprSequenceCode', width: 150, title: '下个工序', hide: true },
                { field: 'nextStationCode', width: 100, title: '下个工位', hide: true },
                { field: 'isScrap', width: 100, title: '是否报废', templet: function (obj) { return obj.isScrap == true ? "是" : "否" } },
                { field: 'line_no', width: 100, title: '管线号' },
               


                { field: "planStartTime", width: 150, title: "计划开始时间" },
                { field: "planEndTime", width: 150, title: "计划结束时间" },
                { field: "actualStartTime", width: 150, title: "实际开始时间" },
                { field: "actualEndTime", width: 150, title: "实际结束时间" },
                { field: "otherOrderCode", width: 150, hide: true, title: "外部编码" },

                { field: "plmeId", width: 150, hide: true, title: "plmeId" },
                { field: "createTime", width: 150, title: "创建时间" },
                { field: "createBy", width: 150, title: "创建用户" },
                { field: "updateTime", width: 150, title: "更新时间" },
                { field: "updateBy", width: 150, title: "更新用户" }
            ]],
            colsDesc: [[
                { checkbox: true, fixed: true },
                { field: "id", width: 80, title: "id", hide: true },
                { field: "bodyKeys", width: 150, hide: true, title: "工单明细标识" },
                { field: "headKeys", width: 150, hide: true, title: "工单头标识" },
                { field: "serialNumber", width: 80, hide: true, title: "序号" },
                { field: "serialNumberName", width: 80, title: "序号" },
                
                { field: "workCenterCode", width: 100, title: "工作中心" },
                { field: "stationCode", width: 150, title: "工位编码" },
                { field: "oprSequenceCode", width: 150, hide: true, title: "工序编码" },
                { field: "oprSequenceName", width: 150, title: "工序名称" },

                { field: "equipmentCode", width: 150, title: "设备编码" },
                { field: "state", width: 100, title: "状态", templet: function (obj) { return "".GetState(window.top.EnumOrderBodyStatus, obj.state) } },
                { field: "workReportStatus", width: 100, title: "报工状态", templet: function (obj) { return "".GetState(window.top.EnumWorkReportStatus, obj.workReportStatus) } },

                { field: "weldNo", width: 100, title: "焊口号" },
                { field: "materialCode", width: 150, title: "物料编码" },
                { field: "materialName", width: 150, title: "物料名称" },
                { field: "weldType", width: 100, title: "焊口形式" },
                { field: "cuttingLength", width: 120, title: "管段切割长度" },
                { field: "barCode", width: 50, title: "管段条码" },

                { field: "partCode", width: 100, title: "管段号" },
                { field: "batchNo", width: 120, title: "批次号" },
                {
                    field: 'designUrl', width: 150, title: '图纸URL', event: "openBlank", templet: function (d) {
                        return `<a target="blank" href="#" data-href="${d.designUrl}" style="color: cornflowerblue;text-decoration: underline;cursor:pointer">${d.designUrl}</a>`;
                    }
                },
                { field: "designNo", width: 120, title: "图纸页码" },

                { field: "planStartTime", width: 150, title: "计划开始时间" },
                { field: "planEndTime", width: 150, title: "计划结束时间" },
                { field: "actualStartTime", width: 150, title: "实际开始时间" },
                { field: "actualEndTime", width: 150, title: "实际结束时间" },
                { field: "isRework", width: 100, title: "是否返工", templet: function (obj) { return obj.isRework == true ? "是" : "否" } },

                { field: "createTime", width: 150, title: "创建时间" },
                { field: "createBy", width: 150, title: "创建用户" },
                { field: "updateTime", width: 150, title: "更新时间" },
                { field: "updateBy", width: 150, title: "更新用户" }
            ]],
            urlTable: `/${areaName}/${tableName}/Load`,
            tableIns: null,
            tableInsDesc: null,
            tableElem: "mainList",
            tableElemDesc: "mainListDesc",

            tableInsComplete: null,
            tableElemComplete: "WorkOrderMaterialUseLog",
            colsComplete: [[
                { field: "id", width: 80, title: "id", hide: true },
                { field: "key", width: 80, title: "Keys", hide: true },
                { field: "materialCode", width: 150, title: "物料编码" },
                { field: "materialName", width: 150, title: "物料名称" },
                { field: "qyt", width: 80, title: "数量" },
                { field: "crux", width: 100, title: "精追件标识", templet: '#cruxLabel' },
                { field: "createTime", width: 170, title: "创建时间" },
                { field: "createBy", width: 150, title: "创建用户" },
                { field: "remarks", width: 150, title: "备注" },
                { fixed: 'right', title: '操作', width: 70, minWidth: 70, toolbar: '#MaterialUseLog' }
            ]],
            dataElemComplete: [],

            tableInsEquipmentProcessTemplate: null,
            tableElemEquipmentProcessTemplate: "mainListEquipmentProcessTemplate",
            colsEquipmentProcessTemplate: [[
                { field: "id", width: 80, title: "id", hide: true },
                { field: "key", width: 80, title: "key", hide: true },
                { field: "device_information", width: 150, title: "设备信息" },
                { field: "processing_steps", width: 150, title: "加工步骤" },
                { field: "processing_parameters", width: 150, title: "加工参数名称" },
                { field: "processing_results", width: 150, title: "加工参数执行结果" },

                { field: "createTime", width: 170, title: "创建时间" },
                { field: "createBy", width: 150, title: "创建用户" },
                { field: "remarks", width: 150, title: "备注" },
                { fixed: 'right', title: '操作', width: 70, minWidth: 70, toolbar: '#EquipmentProcessTemplate' }
            ]],
            dataElemEquipmentProcessTemplate: [],

            selectOption: {
                stationCode: {
                    SelType: "FromUrl",
                    SelFrom: "/configure/Station/LoadStationCodeByworkCenterCode",
                    SelLabel: "workStationName",
                    SelValue: "workStationCode",
                    Dom: [$("[name='stationCode']")]
                },
                //返回的数据 用于后续操作
                selectData: {

                }
            }
        },
        methods: {
            initTable: function (options) {
                var config = {};
                if (options != undefined) $.extend(config, options);
                let opt = {
                    cols: sysU.columnRecord(app.data.tableElem, app.data.cols),
                    elem: "#" + app.data.tableElem,
                    url: `/${areaName}/${tableName}/Load`,
                    toolbar: '#toolbarTable',
                    height: 'full-55',
                    where: config
                }
                app.data.tableIns = sysU.initTable(opt);
            },
            initTableDesc: function (obj) {
                sendData = { headKeys: obj.data.keys }
                let opt = {
                    cols: sysU.columnRecord(app.data.tableElemDesc, app.data.colsDesc),
                    elem: "#" + app.data.tableElemDesc,
                    url: `/${areaName}/${tableName}/LoadDesc`,
                    height: 'full-55',
                    toolbar: '#toolbarTableDesc',
                    limit: 0,
                    page: false,
                    where: sendData
                }
                app.data.tableInsDesc = sysU.initTable(opt);
            },
            initFrom: function () {

            },

            initVue: function () {
                vueApp = new Vue({
                    el: '#timeline',
                    data: {
                        oprTimeLineList: []
                    },
                    methods: {

                    }
                });
            },

            //工序物料消耗、设备工艺参数 文本下拉框表格
            initSelect() {
                var opt = {
                    elem: ".stationCodeTemp",
                    checkedKey: "keys",
                    doneKey: {
                        key: "keys",
                        lableValue: ""
                    },
                    searchKey: "materialCode",
                    searchName: "物料编码",
                    doneExtend: function (elem, data, $nowElem) {
                        for (var i = 0; i < data.data.length; i++) {
                            var selectData = {
                                id: data.data[i].id,
                                keys: data.data[i].keys,
                                materialCode: data.data[i].materialCode,

                                materialName: data.data[i].materialName,
                                qyt: data.data[i].qyt,
                                remarks: data.data[i].remarks,

                                createTime: data.data[i].createTime,
                                createBy: data.data[i].createBy
                            };
                            if (app.data.dataElemComplete.length > 0) {
                                var isExt = app.data.dataElemComplete.contains(selectData.materialCode, "materialCode");
                                if (isExt) {
                                    layer.alert(`工序任务物料消耗列表已存在相同的物料编码【${selectData.materialCode}】请不要重复添加!`, { icon: sysU.config.iconoError, shadeClose: true, title: sysU.config.titleOpen });
                                    return false;
                                }
                            }
                            app.data.dataElemComplete.push(selectData);
                        }

                        app.methods.initTableLocalMaterialUseLog(app.data.dataElemComplete);
                        element.tabChange("tabComplete", "1");
                    }
                };
                sysU.initMaterialUseLogSelect(opt);

                var opt1 = {
                    elem: ".device_information",
                    checkedKey: "keys",
                    doneKey: {
                        key: "keys",
                        lableValue: ""
                    },
                    searchKey: "device_information",
                    searchName: "设备编码",
                    doneExtend: function (elem, data, $nowElem) {
                        for (var i = 0; i < data.data.length; i++) {
                            var selectData = {
                                id: data.data[i].id,
                                keys: data.data[i].keys,
                                device_information: data.data[i].device_information,

                                processing_steps: data.data[i].processing_steps,
                                processing_parameters: data.data[i].processing_parameters,
                                processing_results: data.data[i].processing_results,

                                remarks: data.data[i].remarks,
                                createTime: data.data[i].createTime,
                                createBy: data.data[i].createBy
                            };
                            if (app.data.dataElemEquipmentProcessTemplate.length > 0) {
                                var isExt = app.data.dataElemEquipmentProcessTemplate.contains(selectData.device_information, "device_information");
                                if (isExt) {
                                    layer.alert(`设备工艺参数列表已存在相同的设备信息【${selectData.device_information}】请不要重复添加!`, { icon: sysU.config.iconoError, shadeClose: true, title: sysU.config.titleOpen });
                                    return false;
                                }
                            }
                            app.data.dataElemEquipmentProcessTemplate.push(selectData);
                        }
                        app.methods.initTableLocalEquipmentProcessTemplate(app.data.dataElemEquipmentProcessTemplate);
                        element.tabChange("tabComplete", "2");
                    }
                };
                sysU.initEquipmentProcessTemplateSelect(opt1);

            },


            //动态获取设备参数
            initGetEquipmentInfo: function (checkData) {
                var ajaxConfig = {
                    data: {
                        entity: checkData
                    },
                    url: `/${areaName}/${tableName}/GetEquipmentInfo`,
                    success: function (result) {
                        if (sysU.successBefore(result)) return;
                        if (result.Result[0] == null) {
                            app.data.dataElemEquipmentProcessTemplate = [];
                            app.methods.initTableLocalEquipmentProcessTemplate(app.data.dataElemEquipmentProcessTemplate);
                            return false;
                        }
                        app.data.dataElemEquipmentProcessTemplate = [];
                        for (var i = 0; i < result.Result.length; i++) {
                            app.data.dataElemEquipmentProcessTemplate.push(result.Result[0]);
                        }
                        app.methods.initTableLocalEquipmentProcessTemplate(app.data.dataElemEquipmentProcessTemplate);
                    }
                };
                sysU.ajax(ajaxConfig);
            },

            //动态获取物料消耗
            initGetMaterialInfo: function (checkData) {
                var ajaxConfig = {
                    data: {
                        entity: checkData
                    },
                    url: `/${areaName}/${tableName}/GetMaterialInfo`,
                    success: function (result) {
                        if (sysU.successBefore(result)) return;
                        if (result.Result[0] == null) {
                            app.data.dataElemComplete = [];
                            app.methods.initTableLocalMaterialUseLog(app.data.dataElemComplete);
                            return false;
                        }
                        app.data.dataElemComplete = [];
                        for (var i = 0; i < result.Result.length; i++) {
                            app.data.dataElemComplete.push(result.Result[i]);
                        }
                        app.methods.initTableLocalMaterialUseLog(app.data.dataElemComplete);
                    }
                };
                sysU.ajax(ajaxConfig);
            },

            initTableLocalMaterialUseLog: function (data, options) {
                var config = {};
                if (options != undefined) $.extend(config, options);
                let opt = {
                    cols: sysU.columnRecord(app.data.tableElemComplete, app.data.colsComplete),
                    elem: "#" + app.data.tableElemComplete,
                    data: data,
                    height: '356',
                    where: config
                }

                app.data.tableInsComplete = sysU.initTableLocal(opt);
                table.on(`tool(${app.data.tableElemComplete})`, function (obj) {
                    if (obj.event === "del") {
                        layer.confirm(`你确定删除【${obj.data.materialCode}】行么?`, function (index) {
                            app.data.dataElemComplete.removeByVal("id", obj.data.id);
                            obj.del();
                            layer.close(index);
                        });
                    }
                });
            },

            initTableLocalEquipmentProcessTemplate: function (data, options) {
                var config = {};
                if (options != undefined) $.extend(config, options);
                let opt = {
                    cols: sysU.columnRecord(app.data.tableElemEquipmentProcessTemplate, app.data.colsEquipmentProcessTemplate),
                    elem: "#" + app.data.tableElemEquipmentProcessTemplate,
                    data: data,
                    height: '356',
                    where: config
                }
                app.data.tableInsEquipmentProcessTemplate = sysU.initTableLocal(opt);
                table.on(`tool(${app.data.tableElemEquipmentProcessTemplate})`, function (obj) {
                    if (obj.event === "del") {
                        layer.confirm(`你确定删除【${obj.data.device_information}】行么?`, function (index) {
                            app.data.dataElemEquipmentProcessTemplate.removeByVal("id", obj.data.id);
                            obj.del();
                            layer.close(index);
                        });
                    }
                });
            }
        },
        registerEvent: function () {

        },

        init: function () {
            var sendDataWhere = form.val("listForm")
            app.methods.initTable(sendDataWhere);
            app.registerEvent();
            app.methods.initFrom();
            app.methods.initVue();

        }
    };
    app.init();
});