layui.config({ base: "/js/" }).use(['form', 'element', 'vue', 'layer', 'laydate', 'jquery', 'table', 'hhweb', 'utils', 'Universal', 'JsBarcode', 'jqprint'], function () { var form = layui.form, layer = layui.layer, element = layui.element, laydate = layui.laydate, $ = layui.jquery, table = layui.table, Universal = layui.Universal; var JsBarcode = layui.JsBarcode; var jqprint = layui.jqprint; var AreaName = 'shipment'; var TableName = 'ShipmentHeader'; var barcodeStyle = { format: "CODE128",//选择要使用的条形码类型 width: 1,//设置条之间的宽度 height: 45,//高度 displayValue: true,//是否在条形码下方显示文字 // text:"456",//覆盖显示的文本 // fontOptions:"bold italic",//使文字加粗体或变斜体 font: "monospace",//设置文本的字体fantasy textAlign: "center",//设置文本的水平对齐方式 textPosition: "bottom",//设置文本的垂直位置 textMargin: 1,//设置条形码和文本之间的间距 fontSize: 12,//设置文本的大小 background: "#ffffff",//设置条形码的背景 lineColor: "#000000",//设置条和文本的颜色。 margin: 1//设置条形码周围的空白边距 }; var vm = new Vue({ el: '#modifyForm' }); var vmq = new Vue({ el: '#panelSearch', data: { } }); //var mainList = { // NoData: function () { // return "<div id='background' style='width:100%;height:100%;background-image:url(../../images/NoData.png);background-repeat:no-repeat;background-size:cover;'>.</div>" // }, // mainList: function () { // table.reload('mainList', { // url: "/" + AreaName + "/" + TableName + "/Load" // , method: "post" // , text: { none: this.NoData() } // }); // } //}; var mainList = { NoData: function () { return "<div id='background' style='width:100%;height:100%;background-image:url(../../imagesData.png);background-repeat:no-repeat;background-size:cover;'>.</div>" }, mainList: function () { table.reload('mainList', { url: "/" + AreaName + "/" + TableName + "/Load" , method: "post" , text: { none: this.NoData() } , done: function (res, curr, count) { if (curr > 1 && res.data.length == 0) { table.reload('mainList', { page: { curr: 1 }// 修改页码 , text: { none: mainList.NoData() } }); } } }); } }; //编辑 var EditInfo = function (tabledata) { data = tabledata; vm.$set('$data', data); //表单修改时填充需修改的数据 var list = {}; $('.ClearSelector_' + TableName).each(function () { var selDom = ($(this)); if ($(selDom)[0].name.search("q") == -1) { list[$(selDom)[0].name] = data[$(selDom)[0].name] + ""; } }); //表单修改时填充需修改的数据 form.val('modifyForm', list); }; var selfbtn = { //自定义按钮 btnPrint: function () { var checkStatus = table.checkStatus('mainList'); var count = checkStatus.data.length; var myDate = new Date(); if (count == 1) { var data = checkStatus.data[0]; $("#PTime").text(myDate.toLocaleString()); $("#PCodeBar").text(JsBarcode("#PCodeBar", data.Code, barcodeStyle)); $("#PCode").text(data.Code); $("#PSourceCode").text(data.SourceCode); $("#PSupplierCode").text(data.SupplierCode); $("#PTotalQty").text(data.TotalQty); $("#PTotalLines").text(data.TotalLines); $.ajax({ url: "/shipment/ShipmentHeader/PrintShipmentDetailInfo", type: "POST", data: { sno: checkStatus.data[0].Code }, dataType: "json", success: function (result) { if (result) { table.render({ elem: '#PrintDetailData' , cols: [[ { field: 'MaterialCode', title: '物料编码', width: 140, align: 'left' }, { field: 'Name', title: '物料名称', width: 170, align: 'left', style: 'font-size:11px' }, { field: 'Batch', title: '批次', width: 100, align: 'left' }, { field: 'Lot', title: '批号', width: 80, align: 'center' }, { field: 'Qty', title: '数量', width: 80, align: 'center' }, { field: 'PBarCode', title: '物料条码', width: 153, unresize: true, align: 'left', templet: '<div><img id="MaterialCodeBarcode{{ d.LAY_TABLE_INDEX }}"></div>' } ]] , width: 730 , page: false , limit: result.data.length , data: result.data }); $.each(result.data, function (i, value) { JsBarcode("#MaterialCodeBarcode" + (value.LAY_TABLE_INDEX), value.MaterialCode, barcodeStyle); }); //弹窗打印 layer.open({ type: 1, // skin: 'layui-layer-molv', btnAlign: 'c', moveType: 1, //拖拽模式,0或者1 title: "出库单据打印", //不显示标题 area: ['750px', '700px'], //宽高 content: $('#printForm'), //捕获的元素 scrollbar: true, btn: ['打印', '关闭'], yes: function (index, layero) { $('#printForm').jqprint(); // layer.close(index); }, cancel: function (index) { layer.close(index); } }); } else { layer.alert("打印数据加载失败", { icon: 5, shadeClose: true, title: "错误信息" }); } }, error: function (XMLHttpRequest, textStatus, errorThrown) { layer.alert(errorThrown, { icon: 2, title: '提示' }); } }); } else layer.alert("请选择一条数据", { icon: 5, shadeClose: true, title: "错误信息" }); }, btnShipmentCheck: function () { var checkStatus = table.checkStatus('mainList'); var count = checkStatus.data.length; var myDate = new Date(); if (count == 1) { var data = checkStatus.data[0]; var index = layer.open({ type: 2, title: "复核确认", area: ['100%', '70%'], content: "/shipment/ShipmentCheck/?shipmentCode=" + data.Code, maxmin: true, }); layer.full(index); } else layer.alert("请选择一条数据进行复核", { icon: 5, shadeClose: true, title: "错误信息" }); } , btnDivide: function () { var checkStatus = table.checkStatus('mainList'); var count = checkStatus.data.length;//选中的行数 var data = checkStatus.data; //获取选中行的数据 if (count == 1) { if (data[0].LastStatus >= 250) { layer.alert("此单据已经分配完成,不可以再次分配!", { icon: 5, shadeClose: true, title: "错误信息" }); } else { var index = layer.open({ type: 2 , title: ['拣货分配', 'font-size:15px;color:dodgerblue;font-weight:bold'] , area: ['1000px', '600px'] , content: '/shipment/ShipmentContainerHeader/Index?ShipmentCode=' + data[0].Code , maxmin: true }); layer.full(index); } } else { layer.alert("手动分配一次只能分配一个单据,请选中一条需要分配的单据!", { icon: 5, shadeClose: true, title: "错误信息" }); } } , btnAutoDivide: function () { var checkStatus = table.checkStatus('mainList'); var count = checkStatus.data.length;//选中的行数 if (count > 0) { var data = checkStatus.data; //获取选中行的数据 layer.confirm('确定系统自动分配此单据?', { btn: ['确定', '取消'] }, function () { //自动分配数据写入任务表 $.ajax({ url: "/shipment/ShipmentHeader/AutoDivideContainer", type: "post", data: { shipmenthdlist: data}, dataType: "json", // async: false, success: function (result) { if (result.code == 200) { mainList.mainList(vm); layer.msg(result.msg, { icon: 1, shade: 0.4, time: 2000 }); } else { layer.alert('分配失败:' + result.msg, { icon: 5, shadeClose: true, title: "错误信息" }); } }, error: function (error) { layer.alert(error.responseText, { icon: 2, title: '提示' }); } }) }, function () { layer.close(); }); } else { layer.alert("请最少选中一条需要分配的单据!", { icon: 5, shadeClose: true, title: "错误信息" }); } }, DomConfig_ShipmentDetail: function (AddOrEditOrDelete, ds) { if (AddOrEditOrDelete in { Add: null, Edit: null, Delete: null }) { if (ds.LastStatus >= 250) { layer.alert("此主单据已经分配完成,不可以新增、修改、删除明细!", { icon: 5, shadeClose: true, title: "错误信息" }); return false; } else { return true; } } } }; var selector = { 'WarehouseType': { SelType: "FromDict", SelFrom: "warehouseType", SelModel: "WarehouseType", SelLabel: "DictLabel", SelValue: "DictValue", Dom: [$("[name='WarehouseType']"), $("[name='qWarehouseType']")] }, 'Type': { SelType: "FromDict", SelFrom: "shipmentType", SelModel: "Type", SelLabel: "DictLabel", SelValue: "DictValue", Dom: [$("[name='Type']"), $("[name='qType']")] }, 'FirstStatus': { SelType: "FromDict", SelFrom: "shipmentHeaderStatus", SelModel: "FirstStatus", SelLabel: "DictLabel", SelValue: "DictValue", Dom: [$("[name='FirstStatus']"), $("[name='qFirstStatus']")] }, 'LastStatus': { SelType: "FromDict", SelFrom: "shipmentHeaderStatus", SelModel: "LastStatus", SelLabel: "DictLabel", SelValue: "DictValue", Dom: [$("[name='LastStatus']"), $("[name='qLastStatus']")] }, 'UploadStatus': { SelType: "FromDict", SelFrom: "uploadStatus", SelModel: "UploadStatus", SelLabel: "DictLabel", SelValue: "DictValue", Dom: [$("[name='UploadStatus']"), $("[name='qUploadStatus']")] }, 'InventoryStatus': { SelType: "FromDict", SelFrom: "inventoryStatus", SelModel: "InventoryStatus", SelLabel: "DictLabel", SelValue: "DictValue", Dom: [$("[name='InventoryStatus']"), $("[name='qInventoryStatus']")] }, 'Status': { SelType: "FromDict", SelFrom: "shipmentHeaderStatus", SelModel: "Status", SelLabel: "DictLabel", SelValue: "DictValue" }, 'ShipTo': { SelType: "FromUrl", SelFrom: "/general/Customer/Load", SelModel: "ShipTo", SelLabel: "Name", SelValue: "Code", Dom: [$("[name='ShipTo']"), $("[name='qShipTo']")] }, 'Priority': { SelType: "FromDict", SelFrom: "priority", SelModel: "Priority", SelLabel: "DictLabel", SelValue: "DictValue", Dom: [$("[name='Priority']"), $("[name='qPriority']")] } }; //子表逻辑 var All = new Array(); var AreaNameDtlShipmentDetail = 'shipment'; var TableNameDtlShipmentDetail = 'ShipmentDetail'; //{子表字段:主表字段} var NameDtlShipmentDetail = { ShipmentCode: 'Code', ShipmentId: 'Id' , LastStatus: 'LastStatus' }; var vmDtlShipmentDetail = new Vue({ el: '#modifyFormDtl_' + TableNameDtlShipmentDetail }); var vmqDtlShipmentDetail = new Vue({ data: { ShipmentCode: '' }//, LastStatus: 'LastStatus' } }); //编辑 var EditInfoDtlShipmentDetail = function (tabledata) { data = tabledata; vmDtlShipmentDetail.$set('$data', tabledata); var list = {}; $('.ClearSelector_' + TableNameDtlShipmentDetail).each(function () { var selDom = ($(this)); if ($(selDom)[0].name.search("q") == -1) { list[$(selDom)[0].name] = data[$(selDom)[0].name] + ""; } }); //表单修改时填充需修改的数据 form.val('modifyFormDtl_' + TableNameDtlShipmentDetail, list); }; All.push({ AreaNameDtl: AreaNameDtlShipmentDetail, TableNameDtl: TableNameDtlShipmentDetail, vmqDtl: vmqDtlShipmentDetail, vmDtl: vmDtlShipmentDetail, EditInfoDtl: EditInfoDtlShipmentDetail, NameDtl: NameDtlShipmentDetail }); //子表逻辑 var AreaNameDtlCustomer = 'general'; var TableNameDtlCustomer = 'Customer'; //{子表字段:主表字段} var NameDtlCustomer = { Code: 'ShipTo' }; var vmDtlCustomer = new Vue({ el: '#modifyFormDtl_' + TableNameDtlCustomer }); var vmqDtlSupplier = new Vue({ data: { SourceCode: '', ReceiptCode: '' } }); //编辑 var EditInfoDtlSupplier = function (tabledata) { data = tabledata; vmDtlCustomer.$set('$data', tabledata); var list = {}; $('.ClearSelector_' + TableNameDtlCustomer).each(function () { var selDom = ($(this)); if ($(selDom)[0].name.search("q") == -1) { list[$(selDom)[0].name] = data[$(selDom)[0].name] + ""; } }); //表单修改时填充需修改的数据 form.val('modifyFormDtl_' + TableNameDtlCustomer, list); }; var vml = new Array({ vm: vm, vmq: vmq, vmDtlShipmentDetail: vmDtlShipmentDetail, vmDtlCustomer: vmDtlCustomer }); Universal.BindSelector($, form, vml, selector); Universal.mmain(AreaName, TableName, table, layer, element, laydate, $, vm, vmq, EditInfo, selfbtn, mainList, form); All.push({ AreaNameDtl: AreaNameDtlCustomer, TableNameDtl: TableNameDtlCustomer, vmqDtl: vmqDtlSupplier, vmDtl: vmDtlCustomer, EditInfoDtl: EditInfoDtlSupplier, NameDtl: NameDtlCustomer }); Universal.mainDtl(table, layer, element, $, selfbtn, All, form); });