var action = null; layui.config({ base: "/js/", version: 111 }).use(['system'], function () { var form = layui.form, $ = layui.jquery, system = layui.system, u = new system.u(), table = layui.table, areaName = 'production', tableName = 'ProductionOrder'; action = { rowData: null, addOptions: function () { var options = { fromId: "#modifyForm form", url: `/${areaName}/${tableName}/Ins`, submit: "submit(fromAdd)", area: ["800px", "550px"], maxmin: false, } document.getElementById("detailBom").style = "display:none"; document.getElementById("requestDate").value = new Date().format("yyyy-MM-dd"); app.methods.initTableDetail("", 20); app.methods.initTableBom(""); document.getElementById("tableOne").click(); return options; }, editOptions: function (data) { var options = { fromId: "#modifyForm form", url: `/${areaName}/${tableName}/Upd`, submit: "submit(fromUpdate)", area: ["800px", "830px"], maxmin: false, } if (data.status > 10) { options.btn = ["关闭"]; options.title = " - 仅供查看"; } else { options.title = ""; } document.getElementById("detailBom").style = "display:"; return options; }, deleteOptions: function () { var options = { url: `/${areaName}/${tableName}/DelByIds`, keyId: "id", refresh: true, deleteCount:1, } return options; }, btnDeleteAll: function (u, toolbarId) { var checkStatus = {}; if (!table.checkStatus) { checkStatus["data"] = [action.rowData]; } else { checkStatus = table.checkStatus(toolbarId); } var keys=[]; checkStatus.data.forEach(function (data) { keys.push(data.keys); }) var ajaxConfig = { url: `/${areaName}/${tableName}/DelAllByIds`, type: "POST", data: { keys: keys }, isDataFilter: false,//不特殊处理调用api返回的数据 success: function (result) { if (u.successBefore(result)) return false; layer.msg(result.Message, { icon: 1, time: 3000 }) action.actionSuccess(); app.data.tableIns.reload("mainList", {}); } }; u.ajax(ajaxConfig); }, 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; }, editBefore: function (data, callBack) { form.val("modifyForm", data); //console.log(data); document.getElementById("requestDate").value = data.requestDate.substring(0, 10); app.methods.initTableDetail(data.keys, data.status); document.getElementById("tableOne").click(); //callBack是回调函数,如果editBefore有ajax 放在成功之后 if (callBack != null) callBack(); }, editSaveBefore: function (data, callBack) { if (callBack != null) callBack(); }, addBefore: function (callBack) { var nowTime = new Date(); $("#planStartTime").val(nowTime.format("yyyy-MM-dd 00:00:01")) nowTime = nowTime.setDate(nowTime.getDate() + 1); $("#planEndTime").val(new Date(nowTime).format("yyyy-MM-dd 23:59:59")) //callBack是回调函数,如果editBefore有ajax 放在成功之后 if (callBack != null) callBack(); }, addSaveBefore: function (data, callBack) { if (data.field.processRouteKeys == "" || data.field.processRouteKeys.processName) { layer.alert("选择的产品没有绑定工艺路线,请在【生产设置=>工艺路线】中绑定产品!", { icon: u.config.iconoError, shadeClose: true, title: "错误信息" }); return false } if (data.field.lineCode == "") { layer.alert("选择的工艺路线没有绑定线体,请核实!", { icon: u.config.iconoError, shadeClose: true, title: "错误信息" }); return false } if (callBack != null) callBack(); }, rowClickOptions: function (obj) { if (obj.data.bodyKeys == undefined) { var options = { isDefault: true, targetTableId: app.data.tableElem, tabfilter: "tableTabBody", tabId: 2, customFn: app.methods.initTableDesc } return options; } else { var options = { isDefault: true, targetTableId: app.data.tableElemDetail, tabfilter: "tableTabBody", tabId: 4, customFn: app.methods.initTableBom } return options; } }, selectProduct: function () { var height = 600; u.openPage({ area: ["1100px", height + "px"], title: "选择产品", btn: ['选择', '关闭'], checkTableRowDataCount: 1, iframeAddHeight:true, type: 2, yesCallBackFn: function (data, callBack) { if (data.length > 0) { document.getElementById("productCode").value = data[0].productCode; document.getElementById("productName").value = data[0].productName; document.getElementById("productHeadKeys").value = data[0].keys; var ajaxConfig = { data: { productCode: data[0].productCode }, url: `/configure/BaseProcessProductRel/Load`, success: function (result) { if (u.successBefore(result)) return false; var processRouteKeys = document.getElementById("processRouteKeys"); var processName = document.getElementById("processName"); var lineCode = document.getElementById("lineCode"); processRouteKeys.value = ""; processName.value = ""; lineCode.value = ""; if (result.Result.length > 0) { processRouteKeys.value = result.Result[0].processHeadKeys; processName.value = result.Result[0].processName; lineCode.value = result.Result[0].lineCode; } } }; u.ajax(ajaxConfig); } if (callBack != null) callBack(); }, content: `/configure/ProductHeader/Index?selectColKeyCustom=productCode&page=ProductionOrder&productCode=${document.getElementById("productCode").value}`, }, action) }, btnComplete: function (sysU, toolbarId) { var checkStatus = {}; if (!table.checkStatus) { checkStatus["data"] = [action.rowData]; } else { checkStatus = table.checkStatus(toolbarId); } var selectRow = checkStatus.data.length;//选中的行数 if (selectRow === 0 || selectRow > 1) { layer.alert("请选择一条数据", { icon: sysU.config.iconoError, shadeClose: true, title: "错误信息" }); return false; } if (checkStatus.data[0].status == 10) { layer.confirm(`是否完成【${checkStatus.data[0].planCode}】工单编制?【完成后不能更改】`, function (index) { var ajaxConfig = { data: { planCode: checkStatus.data[0].planCode }, url: `/${areaName}/${tableName}/Complete`, success: function (result) { if (u.successBefore(result)) return false; layer.msg("工单编制成功!", { icon: sysU.config.iconoOk, shade: 0.4, time: sysU.config.msgOpenTime }); action.actionSuccess("refresh"); } }; u.ajax(ajaxConfig); layer.close(index); }); } else { layer.alert("只有初始状态才能完成工单编制!", { icon: sysU.config.iconoError, shadeClose: true, title: "错误信息" }); } }, //所有动作成功之后 actionSuccess: (falg) => { u.refreshTable(app, u, null, falg); } } var app = { data: { cols: [[ { checkbox: true, fixed: true }, { field: "id", width: 80, hide: true, title: "Id" }, { field: "keys", width: 80, hide: true, title: "keys" }, { field: "planCode", width: 150, title: "工单编号" }, { field: "planName", width: 150, title: "工单名称" }, { field: "productCode", width: 150, title: "产品编码" }, { field: "productName", width: 150, title: "产品名称" }, { field: "processRouteKeys", width: 150, hide: true, title: "工艺路线keys" }, { field: "processName", width: 150, title: "工艺路线名称" }, { field: "quantity", width: 80, title: "生产数量" }, { field: "batchCode", width: 100, title: "批次号" }, { field: "requestDate", width: 120, title: "需求日期", templet: function (d) { return d.requestDate.substring(0, 10) } }, { field: "planStartTime", width: 150, title: "计划开始时间" }, { field: "planEndTime", width: 150, title: "计划结束时间" }, { field: "parentKeys", width: 100, hide: true, title: "父节点keys" }, { field: "lineCode", width: 100, title: "线体编号" }, { field: "status", width: 100, title: "单据状态", templet: function (d) { return d.status == 10 ? "初始" : d.status == 20 ? "已确认" : "未知" } }, { field: "projectCode", width: 100, title: "项目编码" }, { field: "projectName", width: 100, title: "项目名称" }, { field: "lineNo", width: 100, title: "管线号/图纸号" }, { field: "designUrl", width: 100, title: "图纸URL" }, { field: "designNo", width: 100, title: "图纸页码" }, { field: "edition", width: 100, title: "工艺路线版本" }, { field: "factoryCode", width: 100, title: "工厂编码" }, { field: "remark", width: 100, title: "备注" }, { field: "createTime", width: 150, title: "创建时间" }, { field: "createBy", width: 150, title: "创建用户" }, { field: "updateTime", width: 150, title: "更新时间" }, { field: "updateBy", width: 150, title: "更新用户" } ]], colsDesc: [[ { field: "id", width: 80, hide: true, title: "Id" }, { field: "bodyKeys", width: 80, hide: true, title: "bodyKeys" }, { field: "proPlanHeadKeys", width: 80, hide: true, title: "proPlanHeadKeys" }, { field: "workOrderCode", width: 200, title: "工单明细编号" }, { field: "workOrderName", width: 200, title: "工单明细名称" }, { field: "lineCode", width: 200, title: "线体编号" }, { field: "productCode", width: 200, title: "产品编码" }, { field: "productName", width: 200, title: "产品名称" }, { field: "quantity", width: 100, title: "预计使用量" }, { field: "createTime", width: 150, title: "创建时间" }, { field: "createBy", width: 150, title: "创建用户" }, { field: "updateTime", width: 150, title: "更新时间" }, { field: "updateBy", width: 150, title: "更新用户" } ]], colsDetail: [[ { field: "id", width: 80, hide: true, title: "Id" }, { field: "bodyKeys", width: 80, hide: true, title: "bodyKeys" }, { field: "proPlanHeadKeys", width: 80, hide: true, title: "proPlanHeadKeys" }, { field: "workOrderCode", width: 200, title: "工单明细编号" }, { field: "workOrderName", width: 200, title: "工单明细名称", edit: "text" }, { field: "quantity", width: 100, title: "预计使用量" }, ]], colsDetailNoEdit: [[ { field: "id", width: 80, hide: true, title: "Id" }, { field: "bodyKeys", width: 80, hide: true, title: "bodyKeys" }, { field: "proPlanHeadKeys", width: 80, hide: true, title: "proPlanHeadKeys" }, { field: "workOrderCode", width: 200, title: "工单明细编号" }, { field: "workOrderName", width: 200, title: "工单明细名称" }, { field: "quantity", width: 100, title: "预计使用量" }, ]], colsBom: [[ { checkbox: true, fixed: true }, { field: "id", width: 80, hide: true, title: "Id" }, { field: "bodyKeys", width: 80, hide: true, title: "bodyKeys" }, { field: "proPlanHeadKeys", width: 80, hide: true, title: "proPlanHeadKeys" }, { field: "proPlanDetailKeys", width: 80, hide: true, title: "proPlanDetailKeys" }, { field: "materialCode", width: 120, title: "物料编码" }, { field: "materialName", width: 120, title: "物料名称" }, { field: "detailSN", width: 200, title: "detailSN", edit: "text" }, { field: "spec", width: 80, title: "规格" }, { field: "unit", width: 80, title: "单位" }, { field: "quantity", width: 80, title: "预计使用量" }, ]], colsBomNoEdit: [[ { checkbox: true, fixed: true }, { field: "id", width: 80, hide: true, title: "Id" }, { field: "bodyKeys", width: 80, hide: true, title: "bodyKeys" }, { field: "proPlanHeadKeys", width: 80, hide: true, title: "proPlanHeadKeys" }, { field: "proPlanDetailKeys", width: 80, hide: true, title: "proPlanDetailKeys" }, { field: "materialCode", width: 120, title: "物料编码" }, { field: "materialName", width: 120, title: "物料名称" }, { field: "detailSN", width: 200, title: "detailSN" }, { field: "spec", width: 80, title: "规格" }, { field: "unit", width: 80, title: "单位" }, { field: "quantity", width: 80, title: "预计使用量" }, ]], tableStatus: 0, tableIns: null, tableDesc: null, tableDetailIns: null, tableDetailBomIns: null, tableElem: "mainList", tableElemDesc: "mainListDesc", tableElemDetail: "mainListDetail", tableElemBom: "mainListBom", selectOption: { //返回的数据 用于后续操作 selectData: { } } }, methods: { initTable: function () { let options = { elem: "#" + app.data.tableElem, url: `/${areaName}/${tableName}/Load`, cols: u.columnRecord(app.data.tableElem, app.data.cols), toolbar: '#toolbarTable', height: "full-56" } app.data.tableIns = u.initTable(options); }, initTableDesc: function (obj) { let options = { elem: "#" + app.data.tableElemDesc, url: `/${areaName}/${tableName}/LoadDetail`, cols: u.columnRecord(app.data.tableElemDesc, app.data.colsDesc), toolbar: '', height: "full-56", where: { keys: obj.data.keys } } app.data.tableDesc = u.initTable(options); }, initTableDetail: function (keys, status) { app.data.tableStatus = status; let options = { elem: "#" + app.data.tableElemDetail, url: `/${areaName}/${tableName}/LoadDetail`, cols: u.columnRecord(app.data.tableElem, status == 20 ? app.data.colsDetailNoEdit : app.data.colsDetail), toolbar: '', editExtend: function (value, field, data) { u.ajax({ data: data, loading: '', url: `/${areaName}/${tableName}/UpdDetail`, }); }, height: "full-400", where: { keys: keys } } app.data.tableDetailIns = u.initTable(options); }, initTableBom: function (obj) { let options = { elem: "#" + app.data.tableElemBom, url: `/${areaName}/${tableName}/LoadBom`, cols: u.columnRecord(app.data.tableElem, app.data.tableStatus == 20 ? app.data.colsBomNoEdit : app.data.colsBom), toolbar: '', editExtend: function (value, field, data) { u.ajax({ data: data, loading: '', url: `/${areaName}/${tableName}/UpdDetailBom`, }); }, height: "full-400", where: { bodyKeys: obj != "" ? obj.data.bodyKeys : "" } } app.data.tableDetailBomIns = u.initTable(options); }, initFrom: function () { u.initSelect(app.data.selectOption); document.getElementById("mainList").style.height = Number(document.getElementById("mainList").style.height) - 20 } }, registerEvent: function () { }, init: function () { app.methods.initTable(); app.methods.initFrom(); app.registerEvent(); } }; app.init(); });