| var baseUrl = "/bfwms"; | 
|   | 
| // 详情窗口-高度 | 
| var detailHeight = '80%'; | 
| // 详情窗口-宽度 | 
| var detailWidth = '90%'; | 
|   | 
| // 非空判断 | 
| function isEmpty(obj){ | 
|     return typeof obj == "undefined" || obj == null || obj === ""; | 
| } | 
|   | 
| // let loadIndex = layer.msg('请求中...', {icon: 16, shade: 0.01, time: false}); | 
| //       layer.close(loadIndex); | 
|   | 
| // 时间 ==>> 字符串 | 
| function dateToStr(date, millisecond) { | 
|     var time = new Date(date); | 
|     var y = time.getFullYear(); | 
|     var M = time.getMonth() + 1; | 
|     M = M < 10 ? ("0" + M) : M; | 
|     var d = time.getDate(); | 
|     d = d < 10 ? ("0" + d) : d; | 
|     var h = time.getHours(); | 
|     h = h < 10 ? ("0" + h) : h; | 
|     var m = time.getMinutes(); | 
|     m = m < 10 ? ("0" + m) : m; | 
|     var s = time.getSeconds(); | 
|     s = s < 10 ? ("0" + s) : s; | 
|     if (!millisecond) { | 
|         return y + "-" + M + "-" + d + " " + h + ":" + m + ":" + s; | 
|     } else { | 
|         var p = time.getMilliseconds(); | 
|         if (p < 10) { | 
|             p = "00" + p; | 
|         } | 
|         if (p <  100) { | 
|             p = "0" + p; | 
|         } | 
|         return y + "-" + M + "-" + d + " " + h + ":" + m + ":" + s + "," + p; | 
|     } | 
| } | 
|   | 
| // 字符串 ===>> 时间 | 
| function strToDate(str) { | 
|     var t = Date.parse(str); | 
|     if (!isNaN(t)) { | 
|         return new Date(Date.parse(str.replace(/-/g, "/"))); | 
|     } else { | 
|         return null; | 
|     } | 
| } | 
|   | 
| // 清理对象null值 | 
| function reObject(data) { | 
|     for (var obj in data) { | 
|         if (data[obj]===null){ | 
|             delete data[obj]; | 
|         } | 
|     } | 
|     return data; | 
| } | 
|   | 
| /** | 
|  * disabled 属性转换 | 
|  */ | 
| function convertDisabled(el, param) { | 
|     el.each(function () { | 
|         $(this).attr("disabled", param); | 
|     }); | 
| } | 
|   | 
| // 权限 | 
| function limit(child){ | 
|     if (child == null){ | 
|         child = false; | 
|     } | 
|     var param = (child?parent.window:window).location.href.split("?")[1]; | 
|     if (null != param) { | 
|         var resourceId = param.split("=")[1]; | 
|         $.ajax({ | 
|             url: baseUrl+"/power/menu/"+resourceId+"/auth", | 
|             headers: {'token': localStorage.getItem('token')}, | 
|             method: 'GET', | 
|             async: false, | 
|             success: function (res) { | 
|                 if (res.code === 200){ | 
|                     for(var i = 0, len = res.data.length; i < len; i++) { | 
|                         (child?parent:window).$('#'+res.data[i].code).css("display", "inline-block"); | 
|                         (child?parent:window).$('.'+res.data[i].code).css("display", "inline-block"); | 
|                     } | 
|                 } else if (res.code === 403){ | 
|                     top.location.href = baseUrl+"/"; | 
|                 } else { | 
|                     layer.msg(res.msg) | 
|                 } | 
|             } | 
|         }); | 
|     } | 
| } | 
|   | 
|   | 
| // http请求 | 
| !function (n) { | 
|     "use strict"; | 
|   | 
|     var http = { | 
|         toAjax: function (params) { | 
|             $.ajax(params); | 
|         }, | 
|         get: function (url, data, callback) { | 
|             http.toAjax({ | 
|                 method: 'GET', | 
|                 url: url, | 
|                 data: data, | 
|                 dataType: 'json', | 
|                 header: {'token': localStorage.getItem('token')}, | 
|                 timeout: 10000, | 
|                 cache: false, | 
|                 success: function (res) { | 
|                     if (res.code === 200){ | 
|                         callback(res); | 
|                     } else if (res.code === 403){ | 
|                         top.location.href = baseUrl+"/"; | 
|                     }  else { | 
|                         layer.msg(res.msg); | 
|                     } | 
|                 }, | 
|                 error: function (res, type) { | 
|   | 
|                 } | 
|             }) | 
|         }, | 
|         // 默认表单 | 
|         post: function (url, param, callback, type) { | 
|             var headerType; | 
|             if (type === 'json') { | 
|                 headerType = {'Content-Type': 'application/json'} | 
|             } else { | 
|                 headerType = {'Content-Type': 'application/x-www-form-urlencoded'} | 
|             } | 
|             headerType['token'] = localStorage.getItem('token'); | 
|             http.toAjax({ | 
|                 method: 'POST', | 
|                 url: url, | 
|                 data: param, | 
|                 dataType: 'json', | 
|                 headers: headerType, | 
|                 timeout: 10000, | 
|                 cache: false, | 
|                 success: function (res) { | 
|                     if (res.code === 200){ | 
|                         callback(res); | 
|                     } else if (res.code === 403){ | 
|                         top.location.href = baseUrl+"/"; | 
|                     }  else { | 
|                         layer.msg(res.msg); | 
|                     } | 
|                 }, | 
|                 error: function (res, type) { | 
|   | 
|                 } | 
|             }) | 
|         }, | 
|     }; | 
|     "function" == typeof define && define.amd ? define(function () { | 
|         return http | 
|     }) : "object" == typeof module && module.exports ? module.exports = http : n.http = http | 
| }(this); | 
|   | 
| /*************************************************************************************************************/ | 
| /********************************************** 物料业务抽象 ***************************************************/ | 
| /*************************************************************************************************************/ | 
|   | 
| function arrRemove(arr, key, val) { | 
|     for(var i=arr.length-1; i>=0; i--){ | 
|         if(arr[i][key] === val){ | 
|             arr.splice(i,1); | 
|         } | 
|     } | 
| } | 
|   | 
| var matCols = [ | 
|     {field: 'matnr', align: 'center',title: '商品编号', width: 180} | 
|     // {field: 'id', align: 'center',title: 'ID'} | 
|     // ,{field: 'uuid', align: 'center',title: '编号'} | 
|     // ,{field: 'tagId$', align: 'center',title: '所属归类'} | 
|     ,{field: 'specs', align: 'center',title: '规格', width: 200} | 
|     ,{field: 'maktx', align: 'center',title: '商品名称'} | 
|     // ,{field: 'name', align: 'center',title: '别名'} | 
|     ,{field: 'model', align: 'center',title: '代码', hide: true} | 
|     ,{field: 'color', align: 'center',title: '颜色', hide: true} | 
|     ,{field: 'brand', align: 'center',title: '品牌', hide: true} | 
|     ,{field: 'unit', align: 'center',title: '单位', hide: true} | 
|     ,{field: 'price', align: 'center',title: '单价', hide: true} | 
|     ,{field: 'sku', align: 'center',title: 'sku', hide: true} | 
|     ,{field: 'units', align: 'center',title: '单位量', hide: true} | 
|     ,{field: 'barcode', align: 'center',title: '条码', hide: true} | 
|     ,{field: 'origin', align: 'center',title: '产地', hide: true} | 
|     ,{field: 'manu', align: 'center',title: '厂家', hide: true} | 
|     ,{field: 'manuDate', align: 'center',title: '生产日期', hide: true} | 
|     ,{field: 'itemNum', align: 'center',title: '品项数', hide: true} | 
|     ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true} | 
|     ,{field: 'weight', align: 'center',title: '单箱净重', hide: true} | 
|     ,{field: 'length', align: 'center',title: '单箱毛重', hide: true} | 
|     ,{field: 'volume', align: 'center',title: '单箱体积', hide: true} | 
|     ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true} | 
|     ,{field: 'supp', align: 'center',title: '供应商', hide: true} | 
|     ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true} | 
|     ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true} | 
|     ,{field: 'deadTime', align: 'center',title: '保质期', hide: true} | 
|     ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true} | 
|     ,{field: 'source$', align: 'center',title: '制购', hide: true} | 
|     ,{field: 'check$', align: 'center',title: '要求检验', hide: true} | 
|     ,{field: 'danger$', align: 'center',title: '危险品', hide: true} | 
|     // ,{field: 'status$', align: 'center',title: '状态'} | 
|     // ,{field: 'createBy$', align: 'center',title: '添加人员'} | 
|     // ,{field: 'createTime$', align: 'center',title: '添加时间'} | 
|     ,{field: 'updateBy$', align: 'center',title: '修改人员', hide: true} | 
|     ,{field: 'updateTime$', align: 'center',title: '修改时间', hide: true} | 
|     ,{field: 'memo', align: 'center',title: '备注', hide: true} | 
|     ,{field: 'storeMax$', align: 'center',title: '库存上限'} | 
|     ,{field: 'storeMin$', align: 'center',title: '库存下限'} | 
|     ,{field: 'storeMaxDate$', align: 'center',title: '库龄上限(天)'} | 
|     ,{field: 'inoutEveryday$', align: 'center',title: '高频', width: 60} | 
|   | 
| ] | 
|   | 
| var detlCols = [ | 
|     {field: 'matnr', align: 'center',title: '商品编号', sort:true} | 
|     ,{field: 'specs', align: 'center',title: '规格'} | 
|     ,{field: 'maktx', align: 'center',title: '商品名称', sort:true} | 
|     ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false} | 
|     ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true} | 
|     ,{field: 'anfme', align: 'center',title: '数量'} | 
|     ,{field: 'zpallet', align: 'center',title: '托盘条码'} | 
|   | 
|     ,{field: 'model', align: 'center',title: '代码', hide: true} | 
|     ,{field: 'color', align: 'center',title: '颜色', hide: true} | 
|     ,{field: 'brand', align: 'center',title: '品牌', hide: true} | 
|     ,{field: 'unit', align: 'center',title: '单位', hide: true} | 
|     ,{field: 'price', align: 'center',title: '单价', hide: true} | 
|     ,{field: 'sku', align: 'center',title: 'sku', hide: true} | 
|     ,{field: 'units', align: 'center',title: '单位量', hide: true} | 
|     ,{field: 'barcode', align: 'center',title: '条码', hide: true} | 
|     ,{field: 'origin', align: 'center',title: '产地', hide: true} | 
|     ,{field: 'manu', align: 'center',title: '厂家', hide: true} | 
|     ,{field: 'manuDate', align: 'center',title: '生产日期', hide: true} | 
|     ,{field: 'itemNum', align: 'center',title: '品项数', hide: true} | 
|     ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true} | 
|     ,{field: 'weight', align: 'center',title: '单箱净重', hide: true} | 
|     ,{field: 'length', align: 'center',title: '单箱毛重', hide: true} | 
|     ,{field: 'volume', align: 'center',title: '单箱体积', hide: true} | 
|     ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true} | 
|     ,{field: 'supp', align: 'center',title: '供应商', hide: true} | 
|     ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true} | 
|     ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true} | 
|     ,{field: 'deadTime', align: 'center',title: '保质期', hide: true} | 
|     ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true} | 
|     ,{field: 'source$', align: 'center',title: '制购', hide: true} | 
|     ,{field: 'check$', align: 'center',title: '要求检验', hide: true} | 
|     ,{field: 'danger$', align: 'center',title: '危险品', hide: true} | 
| ] |