/**
|
* Created by weidy
|
* 物料/工具基本信息选择面板
|
*/
|
|
layui.define(['layer','element','form','table','platform/basedoc/BdMaterialClassifyExtendAttr'],function(exports){
|
var Class = function(){
|
this.MODULE_NAME = "platform/basedoc/BdMaterialSelectPanel";
|
this.moduleKey = "BdMaterialSelectPanel";
|
this.id='BdMaterialSelectPanel';
|
this.sourceData = {};
|
this.columns = [];
|
this.backPath = configData.compatibility?path:configData.frameworkPath;
|
this.controlSecret = true;
|
this.url={
|
classifyTree:'materialClassifyController/referTree',
|
controller:'materialController/',
|
referDataGrid:'referDataGrid',
|
getObjectByOid:'getObjectByOid'
|
};
|
this.config = {};
|
this.getContent=function(filter){
|
//返回这个组件的基础html
|
var that = this;
|
var html = [
|
'<div class="layui-layout-border" materialSelectFilter ="',filter , '">',
|
'<div class="layui-vci-deptTree" style="width:200px;float: left;background-color:#ffffff;">',
|
that.getClassifyToolbarHtml(filter),
|
'<label class="layui-icon layui-icon-tree" style="color:red;">物料/工具基本分类</label>',
|
'<ul layui-filter="tree_',filter,'"></ul>',
|
'</div>',
|
'<div class="layui-center" style="display:block;position:fixed;margin-top:0px;margin-left:205px;">',
|
that.getToolbarHtml(filter),
|
'<table id="table_', filter , '" lay-filter="',filter , '" style="overflow-x:auto;"></table>',
|
'</div>'];
|
html.push('</div>');
|
return html.join("");
|
};
|
this.getToolbarHtml =function(filter){
|
var that = this;
|
var html = [
|
'<div layui-filter="toolbar_',filter, '" class="layui-btn-container">',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',filter,'_SELECT" style="display:none;"><i class="layui-icon layui-icon-ok-circle"></i>确认选择</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',filter,'_refresh"><i class="layui-icon layui-icon-refresh"></i>刷新</button>',
|
'<div class="layui-input-inline" style="position: relative;"><div id="selectWrapForIE" style="display:none"></div>',
|
'<label class="layui-form-label" style="width: 100px;font-size:14px;padding: 5px;">显示所有版本:</label>',
|
'<div class="layui-unselect layui-form-switch" lay-skin="_switch" style="margin-top:0px" id="switch_',filter,'"><em>否</em><i></i></div>',
|
'</div>',
|
'<div id="toolbar_column_',filter ,'" style="display:none;"></div>',
|
'</div>'
|
].join("");
|
return html;
|
};
|
this.getClassifyToolbarHtml = function(filter){
|
var that = this;
|
var html = [
|
'<div layui-filter="toolbar_classify_',filter, '" class="layui-btn-container">',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_classify_',filter,'_refreshClassify"><i class="layui-icon layui-icon-refresh"></i>刷新</button>',
|
'</div>'
|
].join("");
|
return html;
|
};
|
this.init=function(filter,options){//基础的html被添加后,再执行初始化
|
if(!filter){
|
$webUtil.showErrorMsg("前端程序错误,这个是通用组件,请必须设置filter");
|
return false;
|
}
|
var that = this;
|
that.config[filter] = options;
|
var table = layui.table;
|
$webUtil.copyConfig(that,that.moduleKey);
|
$webUtil.bindDefultButtonLisenter(that, filter);
|
$webUtil.bindDefultButtonLisenter(that, "classify_" + filter);
|
that.materialExtendAttr = layui['platform/basedoc/BdMaterialClassifyExtendAttr'];
|
if(options.selectMode = table.selectMode.multiple){
|
var selectButton = $("[layui-filter='toolbar_" + filter + "_SELECT']");
|
selectButton.show();
|
selectButton.unbind('click').click(function(e){
|
that.SELECTMATERTIAL(filter);
|
layui.stope(e);
|
});
|
}
|
|
//初始化
|
that.classifyTreeInit(filter,function () {
|
if(options.materialClassifyId){
|
that.materialExtendAttr.initExtendAttr(options.materialClassifyId,function() {
|
that.queryExtendAttr(options, false);
|
});
|
}
|
that.initMainTable(filter,
|
function () {
|
$webUtil.createSearchHtml({
|
id: '编号',
|
code:'图号',
|
name:'名称',
|
specification:'规格',
|
brand:'品牌',
|
material:'材质',
|
applyProduct:'适用产品',
|
supplier:'制造/供应商',
|
revisionValue:'版本号'
|
}, $('[layui-filter="toolbar_' + filter + '"]'), filter);
|
}
|
);
|
});
|
$("#switch_" + filter).unbind('click').click(function () {
|
var thisObject = $(this);
|
if(thisObject.hasClass("layui-form-onswitch")){
|
//说明现在点的是,需要修改为否
|
thisObject.removeClass("layui-form-onswitch");
|
thisObject.find("em").html("否");
|
table.reload("table_"+filter,{
|
where:{
|
"conditionMap['${queryAllRevision}']":false
|
}
|
})
|
}else{
|
thisObject.addClass("layui-form-onswitch");
|
thisObject.find("em").html("是");
|
table.reload("table_"+filter,{
|
where:{
|
"conditionMap['${queryAllRevision}']":true
|
}
|
})
|
}
|
});
|
};
|
this.classifyTreeInit = function(filter,callback){
|
//初始化分类树
|
var that = this;
|
var tree = layui.tree;
|
var options = that.config[filter];
|
options.fristTreeLoad = false;
|
tree.init("tree_" + filter, $('[layui-filter="tree_' + filter + '"]'), {
|
url: that.url.classifyTree,
|
backPath: that.backPath,
|
extraParams: {
|
isMuti: (options.selectMode == layui.table.selectMode.multiple)?true:false,
|
parentValue:options.materialClassify?options.materialClassify:'',
|
isQueryAllColumn: true
|
},
|
treeFilter: filter,
|
click: function (item, elem, treeOptions) {
|
options.currentItemOid = item.oid;
|
options.currentItemAttributes = item.attributes;
|
that.config[filter] = options;
|
that.showMaterialByClassify(filter,item.attributes);
|
},
|
done:function (filter,children) {
|
if(!options.fristTreeLoad &&callback){
|
callback();
|
}
|
options.fristTreeLoad = true;
|
}
|
});
|
};
|
this.showMaterialByClassify = function (filter,classifyAttributes) {
|
var that =this;
|
var table = layui.table;
|
that.materialExtendAttr.initExtendAttr(classifyAttributes.id,function() {
|
table.reload("table_" + filter, {
|
where: {
|
materialClassify: classifyAttributes.oid
|
}
|
});
|
});
|
};
|
this.initMainTable = function (filter,callback) {
|
var that = this;
|
var columns = that.checkColumns(filter);
|
var table = layui.table;
|
var options = that.config[filter];
|
var limit = 20;
|
if(options.height){
|
if(options.height<399){
|
limit = 10;
|
}else if(options.height >599 && options.height <799){
|
limit = 20;
|
}else if(options.height>799){
|
limit = 30;
|
}
|
}
|
options.fristMainLoad = false;
|
//主列表中列。
|
table.render({
|
elem: '#table_' + filter,
|
id: 'table_' + filter,
|
url: that.backPath + that.url.controller + that.url.referDataGrid,
|
page: {
|
limit: limit,
|
page: 1
|
},
|
height:(options.height?options.height:600),
|
cols: [columns],
|
done:function(res,cur,total){
|
if(!options.fristMainLoad ){
|
if(callback) {
|
callback();
|
}
|
table.on('tool(' + filter + ')',function(obj){
|
var data = obj.data;//当前选择行的数据
|
var layEvent = obj.event;//点的是什么按钮
|
if(layEvent == 'viewInfo'){
|
that.showMaterialByOid(filter,data.oid,options);
|
}
|
});
|
}
|
options.fristMainLoad = true;
|
that.config[filter] = options;
|
},
|
rowClick:function(thisTableFilter,record){
|
record['materialFlag'] = true;
|
if(record.materialClassifyId != options.materialClassifyId){
|
options.materialClassifyId = record.materialClassifyId;
|
options.extendAtts = null;
|
that.materialExtendAttr.initExtendAttr( options.materialClassifyId,function () {
|
//先获取一下扩展属性的内容,
|
that.queryExtendAttr(options,false);
|
if(options.selectClick){
|
options.selectClick(filter,record,that.config[filter]);
|
}
|
});
|
}else {
|
//先获取一下扩展属性的内容,
|
that.queryExtendAttr(options, false);
|
if (options.selectClick) {
|
options.selectClick(filter, record, that.config[filter]);
|
}
|
}
|
}
|
});
|
document.getElementById("toolbar_column_" + filter).innerHTML = '<a class="layui-btn layui-btn-intable" lay-event="viewInfo">查看</a>';
|
};
|
|
this.advancedQuery = function(){
|
var that = this;
|
var dynamicCondition = layui.dynamicCondition;
|
$('[layui-filter="toolbar_' + that.id + '"]').append('<div id="toolbar'+ that.id+'" class="layui-inline"></div>');
|
var dataFields = that.columns;
|
that.serinorQueryInstance = dynamicCondition.create({
|
fields : dataFields//查询字段
|
,tableId:"table_"+that.id//需要查询的表格
|
,type:"complex" //type:"simple"/"complex" 查询的方法 暂时写死为 complex
|
,conditionTextId:"#toolbar"+that.id//高级查询 按钮所在的div
|
,popupShowQueryBtn: true//显示高级查询按钮
|
,queryCallBack:function(requestData){//查询之后的callback
|
//console.log(JSON.stringify(requestData))
|
}
|
});
|
};
|
|
this.showMaterialByOid =function (filter,oid,options) {
|
var that = this;
|
if(!oid){
|
return false;
|
}
|
var formFilter = "view_" + filter;
|
var form = layui.form;
|
var addSaveIndex = layer.open({
|
type:1,
|
title: '查看物料/工具基本信息',
|
skin: 'layui-layer-lan',
|
content: '<form id="form_' + formFilter + '" lay-filter="' + formFilter + '" class="layui-form" style="margin-top:5px" ></form>',
|
fullScreen:true,
|
resizing: function (layero) {
|
form.doResize(formFilter);
|
},
|
success: function (layero) {
|
form.addItems(formFilter,that.getFormItems(true,options),function () {
|
that.materialExtendAttr.loadMaterialForForm(formFilter,oid,options.currentItemAttributes.id);
|
}
|
, {}
|
, {
|
defaultColumnOneRow: 3
|
});
|
}
|
});
|
};
|
this.getFormItems = function(readOnly,options){
|
var that = this;
|
var items = [{
|
name:'materialClassify',
|
text:'物料/工具分类',
|
type:'refer',
|
showField: 'materialClassifyText',
|
required:true,
|
readOnly:readOnly,
|
referConfig:{
|
type:'tree',
|
url: that.url.referClassifyTree,
|
backPath:that.backPath,
|
textField:'id,name',
|
valueField:'oid',
|
isMuti:false
|
}
|
},{
|
name:'id',
|
text:'物料/工具编号',
|
readOnly:readOnly,
|
required:true
|
},{
|
name:'code',
|
readOnly:readOnly,
|
text:'图号'
|
},{
|
name:'name',
|
text:'名称',
|
readOnly:readOnly,
|
required:true
|
},{
|
name:'revisionValue',
|
readOnly:readOnly,
|
text:'版本'
|
},{
|
name:'unitOfMeasurement',
|
text:'计量单位',
|
readOnly:readOnly
|
},{
|
name:'specification',
|
readOnly:readOnly,
|
text:'规格'
|
},{
|
name:'brand',
|
readOnly:readOnly,
|
text:'品牌'
|
},{
|
name:'material',
|
readOnly:readOnly,
|
text:'材质'
|
},{
|
name:'applyProduct',
|
readOnly:readOnly,
|
text:'适用产品'
|
},{
|
name:'supplier',
|
text:'制造/供应商',
|
readOnly:readOnly
|
},layui.vciWebComboxStore.getSecretObject(that.controlSecret)];
|
that.queryExtendAttr(options,readOnly);
|
if(options.extendAtts){
|
items = items.concat(options.extendAtts);
|
}
|
items.push({
|
name:'materialLife',
|
text:'寿命',
|
readOnly:readOnly
|
},{
|
name:'checkFlag',
|
text:'是否定检',
|
type:'truefalse',
|
readOnly:readOnly,
|
required:true
|
},{
|
name:'checkCycleType',
|
text:'定检周期类型',
|
type:'combox',
|
comboxKey:'lifeCountType',
|
readOnly:readOnly,
|
defaultValue:'check_day'
|
},{
|
name:'checkCycle',
|
text:'定检周期',
|
readOnly:readOnly,
|
verify:'number'
|
},{
|
name:'alertCycle',
|
text:'定检提醒时间/数',
|
readOnly:readOnly,
|
verify:'number'
|
},{
|
name:'checkContent',
|
text:'定检内容',
|
type:'textarea',
|
readOnly:readOnly,
|
textWidth: 870
|
},{
|
name:'description',
|
type:'textarea',
|
textWidth:870,
|
readOnly:readOnly,
|
text:'备注'
|
});
|
return items;
|
};
|
this.queryExtendAttr = function (options,readOnly) {
|
var that = this;
|
if(!options.extendAtts){
|
var extendAttrs = that.materialExtendAttr.getFormItemsByClassifyId((options.currentItemAttributes && options.currentItemAttributes.id)?options.currentItemAttributes.id:options.materialClassifyId);
|
if(extendAttrs && extendAttrs.length > 0){
|
layui.each(extendAttrs,function (_index,_item) {
|
_item.name = "ext_" + _item.name;
|
if(readOnly){
|
_item.readOnly = readOnly;
|
}
|
});
|
options.extendAtts = extendAttrs;
|
}
|
}else{
|
//修改readOnly
|
if(options.extendAtts){
|
layui.each(options.extendAtts,function (_index,_item) {
|
if(readOnly){
|
_item.readOnly = readOnly;
|
}else{
|
delete _item.readOnly;
|
}
|
});
|
}
|
}
|
};
|
this.checkColumns = function(filter){
|
var that = this;
|
var table = layui.table;
|
return [table.getIndexColumn(),table.getCheckColumn(),{
|
field:'id',
|
title:'物料/工具编号 名称 (版本)',
|
width:330,
|
templet:function(d){
|
return d.id + ' ' + d.name + ' (' + d.revisionValue + ')' ;
|
}
|
},{
|
field:'code',
|
title:'图号',
|
width:120
|
},{
|
field:'checkFlag',
|
title:'定检',
|
templet:function (d) {
|
if(d.checkFlag == 'true' || d.checkFlag == true){
|
return d.checkCycle + "(" + d.checkCycleTypeText +")";
|
}else{
|
return "";
|
}
|
},
|
width:70
|
},{
|
title:'操作',
|
field:'options',
|
width:50,
|
fixed:'right',
|
toolbar: '#toolbar_column_' + filter
|
}];
|
};
|
this.refreshClassify = function (event,thisButton) {
|
var that = this;
|
var filter = $(thisButton).attr("layui-filter");
|
filter = filter.replace("_refreshClassify","").replace("toolbar_classify_","");
|
layui.tree.reload("tree_" + filter);
|
};
|
this.refresh = function(event,thisButton){
|
var that = this;
|
var filter = $(thisButton).attr("layui-filter");
|
filter = filter.replace("_refresh","").replace("toolbar_","");
|
layui.table.reload('table_' + filter,{});
|
};
|
this.SELECTMATERTIAL = function (filter) {
|
var that= this;
|
var selectData = layui.table.checkStatus("table_" + filter).data;
|
var options = that.config[filter];
|
that.queryExtendAttr(options,false);
|
if(selectData && selectData.length>0){
|
layui.each(selectData,function (_index,_item) {
|
_item['materialFlag'] = true;
|
});
|
}
|
if(options.multipleSelectListener){
|
options.multipleSelectListener(filter,selectData,options);
|
}
|
};
|
};
|
var cs = new Class();
|
exports(cs.MODULE_NAME,cs);
|
});
|