/**
|
* 物料分类的扩展属性的信息
|
* @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);
|
});
|