|  |  | 
 |  |  | var insTbCount = 0; | 
 |  |  | var printMatCodeNos = []; | 
 |  |  | var selectedData = []; | 
 |  |  | var selectType = 'one'; | 
 |  |  | var queryWhere = {}; | 
 |  |  | layui.config({ | 
 |  |  |     base: baseUrl + "/static/layui/lay/modules/" | 
 |  |  | }).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate'], function () { | 
 |  |  | 
 |  |  |         page: true, | 
 |  |  |         cellMinWidth: 100, | 
 |  |  |         cols: [[ | 
 |  |  |             {type: 'numbers'}, | 
 |  |  |             {type: 'checkbox'}, | 
 |  |  |             {type: 'numbers', title: '序号'}, | 
 |  |  |             {field: 'orderNo', title: '单据编号'}, | 
 |  |  |             {field: 'docType$', align: 'center', title: '类型',  minWidth: 160, width: 160}, | 
 |  |  |             {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}, | 
 |  |  |             {field: 'cstmrName', align: 'center',title: '客户名称'}, | 
 |  |  |             {field: 'itemName', align: 'center',title: '调拨到'}, | 
 |  |  |             {field: 'memo', align: 'center',title: '备注', hide: true}, | 
 |  |  |             {field: 'createBy$', align: 'center', title: '操作员',  minWidth: 160, width: 160}, | 
 |  |  |             {align: 'center', title: '操作', toolbar: '#operate', width: 260} | 
 |  |  |         ]], | 
 |  |  |         request: { | 
 |  |  | 
 |  |  |             if (res.code === 403) { | 
 |  |  |                 top.location.href = baseUrl+"/"; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             var selectedOrderNos = selectedData.map(item => item.orderNo); | 
 |  |  |             var indexArr = [] | 
 |  |  |  | 
 |  |  |             res.data.forEach(function (item,index) { | 
 |  |  |                   if (selectedOrderNos.includes(item.orderNo)) { | 
 |  |  |                       indexArr.push(index) | 
 |  |  |                   } | 
 |  |  |             }) | 
 |  |  |             // 重新渲染 | 
 |  |  |             table.setRowChecked('order',{ | 
 |  |  |                 index: indexArr | 
 |  |  |             }); | 
 |  |  |             insTbCount = count; | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     table.on('checkbox(order)', function (obj) { | 
 |  |  |         if (obj.type === 'all' && obj.checked) { | 
 |  |  |             selectType = 'all' | 
 |  |  |         } else if (obj.type === 'one' && obj.checked) { | 
 |  |  |             selectType = 'one' | 
 |  |  |             selectedData.push(obj.data); // 选中时保存数据 | 
 |  |  |         } else if (obj.type === 'one' && !obj.checked && obj.index !== undefined) { | 
 |  |  |             selectType = 'one' | 
 |  |  |             selectedData = selectedData.filter(item => item.orderNo !== obj.data.orderNo); // 取消时移除数据 | 
 |  |  |         } else if (obj.type === 'all' && !obj.checked && obj.index === undefined) { | 
 |  |  |             selectType = 'one' | 
 |  |  |             selectedData = []; | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     // 搜索 | 
 |  |  |     form.on('submit(tbSearch)', function (data) { | 
 |  |  |         insTb.reload({where: data.field, page: {curr: 1}}); | 
 |  |  |         queryWhere = data.field | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     // 导出 | 
 |  |  |     form.on('submit(exportAll)', function (data) { | 
 |  |  |         layer.confirm('确定导出Excel吗', {shadeClose: true}, function () { | 
 |  |  |             layer.closeAll(); | 
 |  |  |             layer.load(1, {shade: [0.1, '#fff']}); | 
 |  |  |             var reqData = {}; | 
 |  |  |             reqData.type = selectType; | 
 |  |  |             if (reqData.type === 'one') { | 
 |  |  |                 reqData.orderNoList = selectedData.map(item => item.orderNo); | 
 |  |  |             } else { | 
 |  |  |                 if (Object.keys(queryWhere).length === 0) { | 
 |  |  |                     reqData.queryWhere = { | 
 |  |  |                         create_time: "", | 
 |  |  |                         cstmr_name: "", | 
 |  |  |                         doc_type: "", | 
 |  |  |                         oper_memb: "", | 
 |  |  |                         order_no: "", | 
 |  |  |                         settle: "" | 
 |  |  |                     } | 
 |  |  |                 } else { | 
 |  |  |                     reqData.queryWhere = queryWhere | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             $.ajax({ | 
 |  |  |                 url: baseUrl + "/order/definedExcelExport/auth", | 
 |  |  |                 headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                 data: JSON.stringify(reqData), | 
 |  |  |                 contentType: 'application/json;charset=UTF-8', | 
 |  |  |                 method: 'POST', | 
 |  |  |                 xhrFields: { | 
 |  |  |                     responseType: 'blob'  // 处理返回的文件流 | 
 |  |  |                 }, | 
 |  |  |                 success: function (res) { | 
 |  |  |                     var link = document.createElement('a'); | 
 |  |  |                     link.href = URL.createObjectURL(res);  // 使用 Blob 对象生成临时 URL | 
 |  |  |                     link.download = new Date().getTime() + '.xlsx';  // 设置下载的文件名 | 
 |  |  |                     document.body.appendChild(link); | 
 |  |  |                     link.click();  // 触发下载 | 
 |  |  |                     document.body.removeChild(link); | 
 |  |  |                 } | 
 |  |  |             }); | 
 |  |  |             layer.closeAll('loading'); | 
 |  |  |         }); | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     // 添加 | 
 |  |  | 
 |  |  |     } | 
 |  |  |     function addPakOut(expTpe) { | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl+"/ManPakOut/add/auth", | 
 |  |  |             url: baseUrl+"/pakout/add/auth", | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             data: JSON.stringify({ | 
 |  |  |                 docType: Number(20), | 
 |  |  | 
 |  |  |             } | 
 |  |  |         }) | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     // 工具条点击事件 | 
 |  |  |     table.on('tool(order)', function (obj) { | 
 |  |  | 
 |  |  |                             {type: 'numbers'}, | 
 |  |  |                             {field: 'matnr', title: '商品编码', width: 160}, | 
 |  |  |                             {field: 'maktx', title: '商品名称', width: 160}, | 
 |  |  |  | 
 |  |  |                             {field: 'batch', title: '批号'}, | 
 |  |  |                             {field: 'anfme', title: '数量'}, | 
 |  |  |                             // {field: 'workQty', title: '作业数量'}, | 
 |  |  |                             {field: 'workQty', title: '作业数量'}, | 
 |  |  |                             {field: 'qty', title: '完成数量', style: 'font-weight: bold'}, | 
 |  |  |                             // {field: 'unit', title: '单位'}, | 
 |  |  |                             // { | 
 |  |  | 
 |  |  |                             // }, | 
 |  |  |                             // {field: 'inQty', title: '已入库量'}, | 
 |  |  |                             // {field: 'color', title: '颜色'}, | 
 |  |  |                             {field: 'specs', title: '规格'} | 
 |  |  |                             // {field: 'specs', title: '规格'}, | 
 |  |  |                         ]], | 
 |  |  |                         request: { | 
 |  |  |                             pageName: 'curr', | 
 |  |  | 
 |  |  |                     }); | 
 |  |  |                 } | 
 |  |  |             }); | 
 |  |  |         } | 
 |  |  |         else if (layEvent === 'printExcel'){ | 
 |  |  |             printExcel(data); | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  | 
 |  |  |                         return false; | 
 |  |  |                     } | 
 |  |  |                     let nList = admin.util.deepClone(xxDataList); | 
 |  |  |                     console.log(nList); | 
 |  |  |                     for (let xi = 0; xi < nList.length; xi++) { | 
 |  |  |                         if (nList[xi].anfme <= 0){ | 
 |  |  |                             layer.msg('明细修改数量不合法', {icon: 2}); | 
 |  |  |                             layer.msg('明细数量不合法', {icon: 2}); | 
 |  |  |                             return false; | 
 |  |  |                         } | 
 |  |  |                         // if (nList[xi].batch == null || nList[xi].batch == ""){ | 
 |  |  |                         //     layer.msg('批次不合法', {icon: 2}); | 
 |  |  |                         //     return false; | 
 |  |  |                         // } | 
 |  |  |                         if (nList[xi].anfme < nList[xi].workQty){ | 
 |  |  |                             layer.msg('数量不能小于已作业数量', {icon: 2}); | 
 |  |  |                             return false; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     layer.load(2); | 
 |  |  |                     $.ajax({ | 
 |  |  |                         url: baseUrl+"/order/form/" + (isExpAdd?"add":"modify") + "/auth", | 
 |  |  | 
 |  |  |                             orderId: Number(data.field.id), | 
 |  |  |                             docType: Number(data.field.docType), | 
 |  |  |                             orderNo: data.field.orderNo, | 
 |  |  |                             cstmr: data.field.cstmr, | 
 |  |  |                             cstmrName: data.field.cstmrName, | 
 |  |  |                             tel: data.field.tel, | 
 |  |  |                             number: data.field.number, | 
 |  |  |                             itemName: data.field.itemName, | 
 |  |  |                             orderDetlList: nList | 
 |  |  |                         }), | 
 |  |  |                         contentType:'application/json;charset=UTF-8', | 
 |  |  | 
 |  |  |                         {type: 'numbers', title: '#'}, | 
 |  |  |                         {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: 'qty', title: '作业数量',  minWidth: 100, width: 100}, | 
 |  |  |                         {field: 'batch', title: '批次', edit: true}, | 
 |  |  |                         {field: 'anfme', title: '数量(修改)kg', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110}, | 
 |  |  |  | 
 |  |  |                         // {field: 'payment', title: '货物状态',align: 'center', templet: '#payment'}, | 
 |  |  |                         {field: 'qty', title: '作业数量kg',  minWidth: 100, width: 100}, | 
 |  |  |                         // {field: 'unit', title: '单位', width: 80}, | 
 |  |  |                         {field: 'memo', title: '备注' , edit: true}, | 
 |  |  |                         {align: 'center', title: '操作', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'} | 
 |  |  |                     ]], | 
 |  |  |                     done: function (res) { | 
 |  |  |                     done: function (res, curr, count) { | 
 |  |  |                         $(layero).find('.layui-table-view').css('margin', '0'); | 
 |  |  |                         var options = this; | 
 |  |  |  | 
 |  |  |                         // 获取当前行数据 | 
 |  |  |                         table.getRowData = function(elem){ | 
 |  |  |                             var index = $(elem).closest('tr').data('index'); | 
 |  |  |                             return table.cache[options.id][index] || {}; | 
 |  |  |                         }; | 
 |  |  |  | 
 |  |  |                         $('.select-primary').on('change', function(){ | 
 |  |  |                             var value = this.value; // 获取选中项 value | 
 |  |  |                             var data = table.getRowData(this); | 
 |  |  |                             console.log(value); | 
 |  |  |                             xxDataList.forEach(res => { | 
 |  |  |                                 if (data.id === res.id){ | 
 |  |  |                                     console.log(res) | 
 |  |  |                                     res.payment = value; | 
 |  |  |                                 } | 
 |  |  |                             }) | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                         }); | 
 |  |  |                     }, | 
 |  |  |                     size: '' | 
 |  |  |                 }; | 
 |  |  |  | 
 |  |  |                 if (!isExpAdd) { | 
 |  |  |                     $.ajax({ | 
 |  |  |                         url: baseUrl+"/order/detl/all/auth?orderId=" + expTpe.id, | 
 |  |  | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     data[obj.field] = obj.value; | 
 |  |  |                     insTbSSXM.reload({data: xxDataList}); | 
 |  |  |                     insTbSSXM.reloadData({data: xxDataList,scrollPos: true}); | 
 |  |  |                 }); | 
 |  |  |  | 
 |  |  |                 $('#matAddBtnComment').click(function () { | 
 |  |  | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     // 删除单据 | 
 |  |  |     function doDel(orderId) { | 
 |  |  | 
 |  |  |         ,type: 'datetime' | 
 |  |  |         ,range: true | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     function printExcel(data){ | 
 |  |  |         layer.confirm('确定导出Excel吗', {shadeClose: true}, function(){ | 
 |  |  |             layer.closeAll(); | 
 |  |  |             layer.load(1, {shade: [0.1,'#fff']}); | 
 |  |  |             location.href = baseUrl+"/order/printExport/auth?orderNo="+data.orderNo; | 
 |  |  |             layer.closeAll('loading'); | 
 |  |  |         }); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | }); |