/** * 物料分类的扩展属性的信息 * @author weidy **/ layui.define(['layer','element','form','table','util','platform/objectService/OsAttributeUtil'],function(exports){ var Class = function() { this.MODELNAME = "platform/basedoc/BdMaterialClassifyExtendAttr"; this.moduleKey = "BdMaterialClassifyExtendAttr"; this.id = 'BdMaterialClassifyExtendAttr'; this.sourceData = {}; this.backPath = configData.compatibility?path:configData.frameworkPath; this.url ={ controller:'materialClassifyController/', listExtendAttribute:'listExtendAttribute', refreshAllClassifyExtendAttribute:'listAllClassifyExtendAttribute' }; this.initExtendAttr = function (materialClassifyId,callback) { //从后台重新获取这个分类的属扩展信息 var that = this; if(!that.materialClassifyExtendAttr){ that.materialClassifyExtendAttr = []; } if($webUtil.isNotNull(materialClassifyId)){ if(that.materialClassifyExtendAttr[materialClassifyId]) { delete that.materialClassifyExtendAttr[materialClassifyId]; } $webUtil.post(that.url.controller + that.url.listExtendAttribute,{materialClassifyId:materialClassifyId},function(result){ if(result.success && result.data && result.data.length > 0){ that.materialClassifyExtendAttr[materialClassifyId] = result.data; if(callback){ callback(result.data); } }else{ if(!result.success){ $webUtil.showErrorMsg(result.msg); }else{ if(callback){ callback(result.data); } } } },function(xhr,error){ $webUtil.showErrorMsg("查询物料分类的扩展属性出现了错误,可能是因为服务器故障"); },that.backPath); }else{ if(callback){ callback({}); } } }; this.getExtendAttrByClassifyId = function (materialClassifyId) { //使用物料基本信息分类,获取对应的扩展属性 var that= this; if(!that.materialClassifyExtendAttr){ that.materialClassifyExtendAttr = []; } return that.materialClassifyExtendAttr[materialClassifyId]; }; this.refreshAllClassifyExtendAttribute = function () { //刷新所有的分类的扩展属性 var that = this; that.materialClassifyExtendAttr = []; $webUtil.post(that.url.controller + that.url.refreshAllClassifyExtendAttribute,{},function(result){ if(result.success){ //出来的是一个列表,需要转换一下 layui.each(result.data,function(_index,_item){ var thisBtmHasAttrs = []; if(_item.btmTypeId in that.materialClassifyExtendAttr){ thisBtmHasAttrs = that.materialClassifyExtendAttr[_item.btmTypeId]; } thisBtmHasAttrs.push(_item); that.materialClassifyExtendAttr[_item.btmTypeId] = thisBtmHasAttrs; }); }else{ $webUtil.showErrorMsg(result.msg); } },function(xhr,error){ $webUtil.showErrorMsg("查询物料分类的扩展属性出现了错误,可能是因为服务器故障"); },that.backPath); }; this.getFormItemsByClassifyId = function (materialClassifyId) { //获取表单的字段 var that = this; var attributes = that.getExtendAttrByClassifyId(materialClassifyId); var attrUtil = layui['platform/objectService/OsAttributeUtil']; return attrUtil.getFormItemsByAttributes(attributes); }; this.setExtendAttrToForm = function (formId,data,materialClassifyId) { //设置扩展属性到表单上 var that = this; var formValueForExtendAttr = data; if(data && data.extendAttrData) { var extendAttrs = that.getFormItemsByClassifyId(materialClassifyId); if (extendAttrs && extendAttrs.length > 0) { var attributes = {}; layui.each(extendAttrs, function (_index, _item) { attributes[_item.name.toLowerCase()] = _item.name; }); for (var key in data.extendAttrData) { if (attributes[key.toLowerCase()]) { var field = "ext_" + attributes[key.toLowerCase()]; formValueForExtendAttr[field] = data.extendAttrData[key]; } } } } layui.form.setValues(formValueForExtendAttr, formId); }; this.loadMaterialForForm = function (formId,oid,materialClassifyId,url,backPath) { //使用主键设置到表格上 var that = this; layui.form.load(formId,{ url:(url?url:'materialController/getObjectByOid'), backPath:(backPath?backPath:that.backPath), method:'get', params:{ oid:oid }, setValueListener:function(data){ if(data){ that.setExtendAttrToForm(formId,data,materialClassifyId); } } }); }; }; var cs = new Class(); exports(cs.MODELNAME,cs); });