| New file | 
 |  |  | 
 |  |  |  | 
 |  |  | var matData = []; | 
 |  |  | var cstmrVal; | 
 |  |  | var itemVal; | 
 |  |  |  | 
 |  |  | function getCol() { | 
 |  |  |     var cols = [ | 
 |  |  |         {field: 'count', align: 'center',title: '出库数量', edit:'text', width: 130,  style:'color: blue;font-weight: bold'} | 
 |  |  |     ]; | 
 |  |  |     arrRemove(matCols,  'field', 'anfme'); | 
 |  |  |     cols.push.apply(cols, matCols); | 
 |  |  |     cols.push( | 
 |  |  |             {field: 'stock', align: 'center',title: '库存余量', style: 'font-weight: bold'}, | 
 |  |  |             {fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:65} | 
 |  |  |         ) | 
 |  |  |     return cols; | 
 |  |  | } | 
 |  |  | layui.config({ | 
 |  |  |     base: baseUrl + "/static/layui/lay/modules/" | 
 |  |  | }).extend({ | 
 |  |  |     notice: 'notice/notice', | 
 |  |  | }).use(['table','laydate', 'form', 'admin', 'notice', 'xmSelect'], function() { | 
 |  |  |     var table = layui.table; | 
 |  |  |     var $ = layui.jquery; | 
 |  |  |     var layer = layui.layer; | 
 |  |  |     var form = layui.form; | 
 |  |  |     var notice = layui.notice; | 
 |  |  |     var layDate = layui.laydate; | 
 |  |  |     var admin = layui.admin; | 
 |  |  |     var xmSelect = layui.xmSelect; | 
 |  |  |  | 
 |  |  |     tableIns = table.render({ | 
 |  |  |         elem: '#chooseData', | 
 |  |  |         headers: {token: localStorage.getItem('token')}, | 
 |  |  |         data: [], | 
 |  |  |         limit: 100, | 
 |  |  |         even: true, | 
 |  |  |         toolbar: '#toolbar', | 
 |  |  |         cellMinWidth: 50, | 
 |  |  |         cols: [getCol()], | 
 |  |  |         done: function(res, curr, count) { | 
 |  |  |             limit(); | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     // 页面修改 | 
 |  |  |     table.on('edit(chooseData)', function (obj) { | 
 |  |  |         updateMatData(obj.data.locNo, obj.data.matnr, Number(obj.value)); | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     // 监听头工具栏事件 | 
 |  |  |     table.on('toolbar(chooseData)', function (obj) { | 
 |  |  |         var data = matData; | 
 |  |  |         switch (obj.event) { | 
 |  |  |             case 'createDoc': | 
 |  |  |                 if (data.length === 0){ | 
 |  |  |                     notice.error({ | 
 |  |  |                         title: '消息通知', | 
 |  |  |                         message: '请添加物料' | 
 |  |  |                     }); | 
 |  |  |                 } else { | 
 |  |  |                     var success = true; | 
 |  |  |                     for (var i=0;i<matData.length;i++) { | 
 |  |  |                         if (matData[i].count <= 0) { | 
 |  |  |                             notice.error({ | 
 |  |  |                                 title: '消息通知', | 
 |  |  |                                 message: matData[i].matnr + '物料数量必须大于零!' | 
 |  |  |                             }); | 
 |  |  |                             success = false; | 
 |  |  |                             return false; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     var index = layer.load(1, {shade: [0.1,'#000']}); | 
 |  |  |                     // 单据类型 | 
 |  |  |                     var docTypeData; | 
 |  |  |                     $.ajax({ | 
 |  |  |                         url: baseUrl+"/work/docType/all/get", | 
 |  |  |                         headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                         data:{docClass: 1}, | 
 |  |  |                         method: 'POST', | 
 |  |  |                         async: false, | 
 |  |  |                         success: function (res) { | 
 |  |  |                             if (res.code === 200){ | 
 |  |  |                                 docTypeData = res; | 
 |  |  |                             } else { | 
 |  |  |                                 layer.msg(res.msg, {icon: 2}) | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     }); | 
 |  |  |                     var tpl1 = $('#docTypeSelectTpl').html(); | 
 |  |  |                     var template1 = Handlebars.compile(tpl1); | 
 |  |  |                     var html1 = template1(docTypeData); | 
 |  |  |                     $("#docType").html(html1); | 
 |  |  |  | 
 |  |  |                     // 客户 | 
 |  |  |                     var cstmrData; | 
 |  |  |                     // $.ajax({ | 
 |  |  |                     //     url: baseUrl+"/work/cstmr/all/get", | 
 |  |  |                     //     headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                     //     method: 'POST', | 
 |  |  |                     //     async: false, | 
 |  |  |                     //     success: function (res) { | 
 |  |  |                     //         if (res.code === 200){ | 
 |  |  |                     //             cstmrData = res; | 
 |  |  |                     //         } else { | 
 |  |  |                     //             layer.msg(res.msg, {icon: 2}) | 
 |  |  |                     //         } | 
 |  |  |                     //     } | 
 |  |  |                     // }); | 
 |  |  |                     // var tpl2 = $('#cstmrSelectTpl').html(); | 
 |  |  |                     // var template2 = Handlebars.compile(tpl2); | 
 |  |  |                     // var html2 = template2(cstmrData); | 
 |  |  |                     // $("#cstmr").html(html2); | 
 |  |  |                     // 单选 | 
 |  |  |                     $.ajax({ | 
 |  |  |                         url: baseUrl+"/work/cstmr/all/get/kv", | 
 |  |  |                         headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                         method: 'POST', | 
 |  |  |                         async: false, | 
 |  |  |                         success: function (res) { | 
 |  |  |                             if (res.code === 200){ | 
 |  |  |                                 cstmrData = res.data; | 
 |  |  |                             } else { | 
 |  |  |                                 layer.msg(res.msg, {icon: 2}) | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     }); | 
 |  |  |                     cstmrVal = xmSelect.render({ | 
 |  |  |                         el: '#cstmr', | 
 |  |  |                         radio: true, | 
 |  |  |                         clickClose: true, | 
 |  |  |                         filterable: true, | 
 |  |  |                         create: function(val, arr){ | 
 |  |  |                             if(arr.length === 0){ | 
 |  |  |                                 return { | 
 |  |  |                                     name:  val, | 
 |  |  |                                     value: val | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         }, | 
 |  |  |                         model: { | 
 |  |  |                             icon: 'hidden', | 
 |  |  |                             label: { | 
 |  |  |                                 type: 'text', | 
 |  |  |                             } | 
 |  |  |                         }, | 
 |  |  |                         data: cstmrData | 
 |  |  |                     }) | 
 |  |  |  | 
 |  |  |                     // 项目 | 
 |  |  |                     var itemData; | 
 |  |  |                     // $.ajax({ | 
 |  |  |                     //     url: baseUrl+"/work/item/all/get", | 
 |  |  |                     //     headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                     //     method: 'POST', | 
 |  |  |                     //     async: false, | 
 |  |  |                     //     success: function (res) { | 
 |  |  |                     //         if (res.code === 200){ | 
 |  |  |                     //             itemData = res; | 
 |  |  |                     //         } else { | 
 |  |  |                     //             layer.msg(res.msg, {icon: 2}); | 
 |  |  |                     //         } | 
 |  |  |                     //     } | 
 |  |  |                     // }); | 
 |  |  |                     // var tpl3 = $('#itemSelectTpl').html(); | 
 |  |  |                     // var template3 = Handlebars.compile(tpl3); | 
 |  |  |                     // var html3 = template3(itemData); | 
 |  |  |                     // $("#item").html(html3); | 
 |  |  |                     $.ajax({ | 
 |  |  |                         url: baseUrl+"/work/item/all/get/kv", | 
 |  |  |                         headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                         method: 'POST', | 
 |  |  |                         async: false, | 
 |  |  |                         success: function (res) { | 
 |  |  |                             if (res.code === 200){ | 
 |  |  |                                 itemData = res.data; | 
 |  |  |                             } else { | 
 |  |  |                                 layer.msg(res.msg, {icon: 2}); | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     }); | 
 |  |  |                     itemVal = xmSelect.render({ | 
 |  |  |                         el: '#item', | 
 |  |  |                         radio: true, | 
 |  |  |                         clickClose: true, | 
 |  |  |                         filterable: true, | 
 |  |  |                         create: function(val, arr){ | 
 |  |  |                             if(arr.length === 0){ | 
 |  |  |                                 return { | 
 |  |  |                                     name:  val, | 
 |  |  |                                     value: val | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         }, | 
 |  |  |                         model: { | 
 |  |  |                             icon: 'hidden', | 
 |  |  |                             label: { | 
 |  |  |                                 type: 'text', | 
 |  |  |                             } | 
 |  |  |                         }, | 
 |  |  |                         data: itemData | 
 |  |  |                     }) | 
 |  |  |  | 
 |  |  |                     // 弹窗 | 
 |  |  |                     layer.close(index); | 
 |  |  |                     if (success) { | 
 |  |  |                         admin.open({ | 
 |  |  |                             type: 1, | 
 |  |  |                             title: '单据填充', | 
 |  |  |                             offset: '100px', | 
 |  |  |                             area: ['360px'], | 
 |  |  |                             shade: 0.3, | 
 |  |  |                             content: $('#getOrderNo'), | 
 |  |  |                             success: function(layero, index){ | 
 |  |  |                                 layer.iframeAuto(index); | 
 |  |  |                                 $(layero).children('.layui-layer-content').css('overflow', 'visible'); | 
 |  |  |                                 layui.form.render('select'); | 
 |  |  |                             }, | 
 |  |  |                             cancel: function () { | 
 |  |  |                                 $('#orderNo').val(''); | 
 |  |  |                             } | 
 |  |  |                         }); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 break; | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     // // 多选 | 
 |  |  |     // var demo1 = xmSelect.render({ | 
 |  |  |     //     el: '#demo1', | 
 |  |  |     //     filterable: true, | 
 |  |  |     //     create: function(val, arr){ | 
 |  |  |     //         if(arr.length === 0){ | 
 |  |  |     //             return { | 
 |  |  |     //                 name:  val, | 
 |  |  |     //                 value: val | 
 |  |  |     //             } | 
 |  |  |     //         } | 
 |  |  |     //     }, | 
 |  |  |     //     data: [ | 
 |  |  |     //         {name: '张三', value: 1, selected: true}, | 
 |  |  |     //         {name: '李四', value: 2}, | 
 |  |  |     //         {name: '王五', value: 3, disabled: true}, | 
 |  |  |     //     ] | 
 |  |  |     // }) | 
 |  |  |  | 
 |  |  |     // 监听行工具事件 | 
 |  |  |     table.on('tool(chooseData)', function(obj){ | 
 |  |  |         var data = obj.data; | 
 |  |  |         switch (obj.event) { | 
 |  |  |             case 'remove': | 
 |  |  |                 for (var i = matData.length - 1; i >= 0; i--) { | 
 |  |  |                     if (matData[i].matnr === data.matnr) { | 
 |  |  |                         matData.splice(i, 1); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 tableIns.reload({data: matData,done:function (res) { | 
 |  |  |                     limit(); | 
 |  |  |                 }}); | 
 |  |  |                 break; | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     // 开始生成拣货单 | 
 |  |  |     form.on('submit(confirm)', function (data) { | 
 |  |  |         var matDetls = []; | 
 |  |  |         matData.forEach(function(elem) { | 
 |  |  |             matDetls.push({ | 
 |  |  |                 matnr: elem.matnr | 
 |  |  |                 , count: elem.count | 
 |  |  |             }); | 
 |  |  |         }); | 
 |  |  |         var req = JSON.stringify({ | 
 |  |  |             docType: data.field.docType | 
 |  |  |             , orderNo: data.field.orderNo | 
 |  |  |             , orderTime: data.field.orderTime | 
 |  |  |             , item: itemVal.getValue()[0] ? itemVal.getValue()[0].name : null | 
 |  |  |             , cstmr: cstmrVal.getValue()[0] ? cstmrVal.getValue()[0].name : null | 
 |  |  |             , list: matDetls | 
 |  |  |         }) | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl+"/work/order/init", | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             data: req, | 
 |  |  |             contentType:'application/json;charset=UTF-8', | 
 |  |  |             method: 'POST', | 
 |  |  |             success: function (res) { | 
 |  |  |                 if (res.code === 200){ | 
 |  |  |                     notice.success({ | 
 |  |  |                         title: '消息通知', | 
 |  |  |                         message: res.msg | 
 |  |  |                     }); | 
 |  |  |                     top.layui.layer.close(top.popupRight); | 
 |  |  |                 } else if (res.code === 403){ | 
 |  |  |                     top.location.href = baseUrl+"/"; | 
 |  |  |                 } else { | 
 |  |  |                     notice.error({ | 
 |  |  |                         title: '消息通知', | 
 |  |  |                         message: res.msg | 
 |  |  |                     }); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |     }) | 
 |  |  |  | 
 |  |  |     function updateMatData(locNo, matnr, count) { | 
 |  |  |         if (isNaN(count)) { | 
 |  |  |             notice.error({ | 
 |  |  |                 title: '消息通知', | 
 |  |  |                 message: '请输入数字' | 
 |  |  |             }); | 
 |  |  |         } else { | 
 |  |  |             if (count > 0) { | 
 |  |  |                 for (var i=0;i<matData.length;i++){ | 
 |  |  |                     if (matData[i]["matnr"] === matnr){ | 
 |  |  |                         matData[i]["count"] = count; | 
 |  |  |                         break; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } else { | 
 |  |  |                 notice.error({ | 
 |  |  |                     title: '消息通知', | 
 |  |  |                     message: '数量必须大于零' | 
 |  |  |                 }); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         tableIns.reload({data: matData,done:function (res) { | 
 |  |  |             limit(); | 
 |  |  |         }}); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     layDate.render({ | 
 |  |  |         elem: '#orderTime', | 
 |  |  |         trigger: 'click', | 
 |  |  |         type: 'date' | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  | }) | 
 |  |  |  | 
 |  |  | // 提取物料 | 
 |  |  | var matDetlLayerIdx; | 
 |  |  | function getMatDetl() { | 
 |  |  |     matDetlLayerIdx = layer.open({ | 
 |  |  |         type: 2, | 
 |  |  |         title: '提取出库物料', | 
 |  |  |         maxmin: true, | 
 |  |  |         area: [top.detailWidth, top.detailHeight], | 
 |  |  |         shadeClose: true, | 
 |  |  |         content: 'matQueryBox.html', | 
 |  |  |         success: function(layero, index){ | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | // 添加表格数据 | 
 |  |  | function addTableData(data) { | 
 |  |  |     for (var i=0;i<data.length;i++){ | 
 |  |  |         let pass = false; | 
 |  |  |         for (var j=0;j<matData.length;j++){ | 
 |  |  |             if (data[i].matnr === matData[j].matnr) { | 
 |  |  |                 pass = true; | 
 |  |  |                 break; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if (pass) { | 
 |  |  |             data.splice(i--, 1); | 
 |  |  |         } else { | 
 |  |  |             data[i]["count"] = 0; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |     matData.push.apply(matData, data); | 
 |  |  |     tableIns.reload({data: matData}); | 
 |  |  |     layer.close(matDetlLayerIdx); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | function initOrderNo() { | 
 |  |  |     $.ajax({ | 
 |  |  |         url: baseUrl+"/work/orderNo/init", | 
 |  |  |         headers: {'token': localStorage.getItem('token')}, | 
 |  |  |         async: false, | 
 |  |  |         method: 'GET', | 
 |  |  |         success: function (res) { | 
 |  |  |             if (res.code === 200){ | 
 |  |  |                 $('#orderNo').val(res.data) | 
 |  |  |             } else if (res.code === 403){ | 
 |  |  |                 top.location.href = baseUrl+"/"; | 
 |  |  |             } else { | 
 |  |  |                 notice.error({ | 
 |  |  |                     title: '消息通知', | 
 |  |  |                     message: res.msg | 
 |  |  |                 }); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  | } |