/**
|
* 模板属性参照的基础页面
|
* @author weidy
|
* @date 2022-4-4
|
*/
|
layui.define(['layer','element','form','table'],function(exports){
|
var Class = function(){
|
this.MODELNAME = "mdm/refer/CodeClassTemplateAttrRefer";
|
this.moduleKey = "CodeClassTemplateAttrRefer";
|
this.backPath = (configData.compatibility?path:configData.mdmService);
|
this.url = {
|
tempController:'codeClassifyTemplateController/',
|
tempReferTree:'codeClassifyTemplateController/referTree',
|
attrController:'codeClassifyTempAttrController/',
|
attrReferDataGrid:'codeClassifyTempAttrController/refDataGrid'
|
};
|
this.displayType = {
|
template:'template'
|
};
|
this.displayTypeTitle = {
|
template:{
|
title:'分类模板',
|
url:'codeClassifyTemplateController/referTree',
|
queryField:'conditionMap["classifytemplateoid"]',
|
queryGridUrl:'codeClassifyTempAttrController/refDataGrid'
|
}
|
};
|
this.defaultConfig = {
|
displayType:[this.displayType.template],//默认显示的是部门和角色与用户
|
textField:'name',
|
valueField:'id'
|
};
|
this.showReferDialog = function (referConfig){
|
var filter = referConfig.filter,
|
name = referConfig.name,
|
title = referConfig.title,
|
target = referConfig.target,
|
value = referConfig.value,
|
text = referConfig.text;
|
var options = referConfig.options;
|
var baseOptions = {};
|
for(var key in options){
|
baseOptions[key] = options[key];
|
}
|
baseOptions.filter = filter;
|
baseOptions.name = name;
|
baseOptions.value = value;
|
baseOptions.text = text;
|
baseOptions.title = title;
|
baseOptions.setValue = function (filter,name,value,rawValue,isClose,selectRecords){
|
target.setValue(filter,name,value,rawValue,isClose,selectRecords);
|
}
|
this.viewUserInDialog(baseOptions);
|
};
|
|
/**
|
* 直接显示选择的对话框,这个经常在点击按钮后的功能里使用
|
* @param options 配置的信息,包含如下属性
|
* filter ,标识
|
* name ,标识名称
|
* setValue:function (filter,name,value,rawValue,isClose,allSelectValues) {} 设置值的回调
|
* @returns 窗口的索引号
|
*/
|
this.viewUserInDialog = function (options) {
|
//在对话框中选择用户
|
var that = this;
|
options = $.extend(that.defaultConfig,options);
|
options.queryGridUrl = $webUtil.getValueFromObj(options,['url','referUrl'],that.url.attrReferDataGrid);
|
options.textField = $webUtil.getValueFromObj(options,['textField'],that.defaultConfig.textField);
|
options.valueField = $webUtil.getValueFromObj(options,['valueField'],that.defaultConfig.valueField);
|
var filter = options.filter;
|
var name = options.name;
|
var valueInfo = ($webUtil.isNotNull(options.text)?("已设置的值为[" +options.text +"]"):'未设置值');
|
var referIndex = $webUtil.dialog({
|
title:(options.title?options.title:'请选择分类模板的属性'),
|
btn:['确定','取消'],
|
content:'<div id="referGrid_toolbar_' + filter + '" layui-filter="referGrid_toolbar_' + filter + '" class="layui-table-toolbar referGrid_toolbar_'+filter+'" style="height:560px;"></div>',
|
area:[(($webUtil.isNotNull(options.width) && options.width*1>1) ?options.width*1 : 1050) +'px',
|
(($webUtil.isNotNull(options.height) && options.height*1>1) ?options.height*1 : 670) + 'px'],
|
btnBefore:valueInfo,
|
yes:function(index,layero){
|
var selectValue = that.getSelectValue(filter,name);
|
if(selectValue){
|
options.setValue(filter,name,selectValue.value,selectValue.rawValue,true,selectValue.allValues);
|
layer.close(referIndex);
|
}
|
},
|
success:function(layero){
|
that.showGrid(filter,name,options);
|
}
|
});
|
return referIndex;
|
};
|
this.setConfig=function(filter,name,options){
|
var that = this;
|
if(!that.referConfig){
|
that.referConfig = {};
|
}
|
that.referConfig[filter + "_" + name] = options;
|
};
|
this.getConfig=function(filter,name){
|
var that = this;
|
if(!that.referConfig){
|
that.referConfig = {};
|
}
|
if((filter + "_" + name) in that.referConfig){
|
return that.referConfig[filter + "_" + name];
|
}
|
};
|
this.showGrid =function (filter,name,options) {
|
//显示
|
var that = this;
|
that.setConfig(filter,name,options);
|
var contentFilter = filter + "_" + name;
|
var typeHtml=['<div data-options="region:\'west\',split:true,minWidth:40,maxWidth:600" style="width:350px;background-color:#ffffff;display:',options.onlyTable?'none':'block','">',
|
'<div lay-filter="referTree_' + contentFilter + '" class="layui-tab layui-tab-card" lay-allowClose="false" style="margin-top: 0">',
|
'<ul class="layui-tab-title" lay-allowClose="false">'];
|
var tabHtml = [];
|
var tabContentHtml = [];
|
if(options.displayType) {
|
layui.each(options.displayType, function (_index, _item) {
|
tabHtml.push('<li ' + ((!options.favUser&&_index == 0)?' class="layui-this" ':'') + '>' + that.displayTypeTitle[_item].title + '</li>');
|
tabContentHtml.push([
|
'<div class="layui-tab-item layui-show">',
|
'<ul layui-filter="', _item, '_', contentFilter, '" style="border:0px solid #6886ff;overflow-x:auto"></ul>',
|
'</div>'].join(''));
|
});
|
}
|
typeHtml.push(tabHtml.join(''));
|
typeHtml.push('</ul>');
|
typeHtml.push('<div class="layui-tab-content">');
|
typeHtml.push(tabContentHtml.join(''));
|
typeHtml.push( '</div>');
|
typeHtml.push( '</div>');
|
typeHtml.push('</div>');
|
var content= [
|
'<div class="layui-layout-border vciWebReferGridInDojo easyui-layout" data-options="fit:true" style="">',
|
typeHtml.join(''),
|
'<div class="layui-layout" data-options="region:\'center\'">',
|
'<div layui-filter="referGrid_toolbar_',contentFilter, '" class="layui-btn-container">',//主列表的按钮
|
'</div>',
|
'<div class="layui-center">',
|
'<table class="layui-table layui-referGrid" lay-size="sm" lay-even layui-filter="referGrid_' + contentFilter + '" id="referGrid_' + contentFilter + '" ></table>',//主列表
|
'</div>',
|
'</div>',
|
];
|
$("#referGrid_toolbar_"+ filter ).html(content.join(''));
|
$('.vciWebReferGridInDojo').css({'width':$("#referGrid_toolbar_"+ filter ).parent().width()-10}).layout();
|
if(options.displayType) {
|
layui.each(options.displayType, function (_index, _item) {
|
that.showTree(_item ,filter,name);
|
});
|
}else {
|
$('.vciWebReferGridInDojo').layout('remove','west');
|
}
|
var tableId = 'referGrid_' + filter + '_' + name;
|
var table = layui.table;
|
var isMuti = options.isMuti;
|
var requestData = options.where || {};
|
//可以定义表格了
|
table.render({
|
elem:'#referGrid_' + filter + '_' + name,
|
id:tableId,
|
url:(options.queryGridUrl?options.queryGridUrl:that.url.attrReferDataGrid),
|
page:{
|
limit: 15,
|
page: 1
|
},
|
backPath:(options.backPath?options.backPath:that.backPath),
|
height: '475px',
|
where:requestData,
|
method:'get',
|
selectMode:(isMuti?table.selectMode.muti:table.selectMode.single),
|
cols:[[table.getIndexColumn(),table.getCheckColumn(),
|
{
|
field: 'id',
|
title: '属性英文编号',
|
sort:true,
|
width: 150
|
}, {
|
field: 'name',
|
title: '属性中文名称',
|
sort:true,
|
width: 200
|
},{
|
field: 'revisionValue',
|
title: '版本',
|
sort: true,
|
width: 90
|
},{
|
field:'description',
|
title:'描述',
|
sort:true,
|
width:150
|
}]]
|
});
|
var queryColumns = [ {
|
field: 'id',
|
title: '属性英文名称'
|
}, {
|
field: 'name',
|
title: '属性中文名称'
|
}];
|
that.showSearchHtml(queryColumns,tableId,filter,name,requestData);
|
};
|
this.showTree = function (displayType,filter,name) {
|
var that = this;
|
var tree = layui.tree;
|
var requestData = {};
|
var options = that.getConfig(filter,name);
|
var url = that.displayTypeTitle[displayType].url;
|
//显示tree
|
var treeOptions = {
|
url:url,
|
extraParams:requestData,
|
treeFilter:filter,
|
treeName:name,
|
showSearch:true,
|
loadType:layui.tree.loadType.all,
|
backPath:(options.backPath?options.backPath:that.backPath),
|
click:function(item,elem,treeOptions){
|
that.treeDoClick(item,elem,treeOptions,displayType,filter,name);
|
return false;
|
}
|
};
|
tree.init(displayType + "_" + filter+'_'+name,$('[layui-filter="'+ displayType + "_" + filter+'_'+name + '"]'),treeOptions);
|
};
|
this.treeDoClick = function (item,elem,option,displayType,filter,name) {
|
var that = this;
|
var tableId = 'referGrid_' + filter + '_' + name;
|
var where = {};
|
where[that.displayTypeTitle[displayType].queryField] = item.oid;
|
var tableUrl = that.displayTypeTitle[displayType].queryGridUrl;
|
layui.table.reload(tableId,{
|
url:tableUrl,
|
where:where
|
});
|
};
|
this.showSearchHtml = function (queryColumns,tableId,filter,name,requestData) {
|
var that = this;
|
var table = layui.table;
|
var toolbarElem = $('[layui-filter="referGrid_toolbar_' + filter + '_' + name +'"]');
|
if(queryColumns){
|
var toolbarHtml = '<div class="layui-form-item" style="height:24px;margin:5px 5px 0 5px;display:inline-block"> '
|
+ '<div class="layui-input-inline" style="height:24px;line-height:24px;width:120px;min-width: 120px"><select name="referGrid_search_'+ filter + '_' + name +'" style="height:24px;width:120px;font-size:15px;">';
|
layui.each(queryColumns,function(_index,queryRecord){
|
toolbarHtml += '<option value="' + queryRecord.field + '" >' + queryRecord.title + '</option>';
|
});
|
toolbarHtml += '</select></div>';
|
toolbarHtml += '<div class="layui-input-inline"><input type="text" style="height:24px;font-size:14px;" name="referGrid_searchvalue_'+ filter + '_' + name +'" placeholder="输入值后回车进行模糊查询" class="layui-input" ></div>';
|
toolbarHtml += '<div class="layui-input-inline" ><button class="layui-btn" style="height:24px;line-height:24px;margin: 0" name="referGrid_searchbtn_'+ filter + '_' + name +'" >查询</button></div>';
|
toolbarHtml += '</div>';
|
toolbarElem.html(toolbarHtml);
|
layui.form.render('select');
|
$('[name="referGrid_searchvalue_' + filter + "_" + name + '"]').keydown(function (e){
|
if(e.keyCode == 13){
|
var searchField = $(this).parent().parent().find('select').val();
|
var searchValue = $(this).val();
|
searchValue = "*" + searchValue + "*";
|
requestData['conditionMap["' + searchField + '"]'] = searchValue;
|
table.reload(
|
tableId, {
|
where: requestData
|
}
|
);
|
}
|
});
|
$('[name="referGrid_searchbtn_'+ filter + '_' + name +'"]').click(function(){
|
var searchField = $(this).parent().parent().find('select').val();
|
var searchValue = $(this).parent().parent().find('[name="referGrid_searchvalue_' + filter + '_' + name + '"]').val();
|
searchValue = "*" + searchValue + "*";
|
requestData['conditionMap["' + searchField + '"]'] = searchValue;
|
table.reload(
|
tableId, {
|
where: requestData
|
}
|
);
|
});
|
}
|
};
|
this.destory = function (filter,name) {
|
//销毁
|
var that = this;
|
if($('#referGrid_' + filter + '_' + name)){
|
$('#referGrid_' + filter + '_' + name).remove();
|
}
|
};
|
this.getSelectValue = function (filter,name) {
|
var that = this;
|
var table = layui.table;
|
var selectValue = {};
|
var checkStatus = table.checkStatus('referGrid_' + filter + "_" + name);
|
var options = that.getConfig(filter,name);
|
if(checkStatus.data.length>0){
|
if(!options.isMuti && checkStatus.data.length > 1){
|
$webUtil.showErrorMsg("只能选择一条数据");
|
return false;
|
}
|
var value = "";
|
var rawValue = "";
|
options.valueField = options.valueField?options.valueField:that.defaultConfig.valueField;
|
options.textField = options.textField?options.textField:that.defaultConfig.textField;
|
var isMutiValue = (options.valueField.indexOf(",")>-1);
|
var isMutiRaw = (options.textField.indexOf(",")>-1);
|
layui.each(checkStatus.data,function(_index,item){
|
if(isMutiValue){
|
var valueFieldArray = options.valueField.split(",");
|
layui.each(valueFieldArray,function(_indexField,_itemField){
|
value += item[_itemField] + (options.valueSep?options.valueSep:' ');
|
});
|
value+= ",";
|
}else {
|
value += item[options.valueField] + ",";
|
}
|
if(isMutiRaw) {
|
var rawFieldArray = options.textField.split(",");
|
layui.each(rawFieldArray,function(_indexField,_itemField){
|
rawValue += item[_itemField] + (options.textSep?options.textSep:' ');
|
});
|
rawValue+= ",";
|
}else{
|
rawValue += item[options.textField] + ",";
|
}
|
});
|
if($webUtil.endWith(value,",")){
|
value = value.substring(0,value.length - 1);
|
}
|
if($webUtil.endWith(rawValue,",")){
|
rawValue = rawValue.substring(0,rawValue.length -1);
|
}
|
selectValue = {
|
value : value,
|
rawValue : rawValue,
|
allValues: checkStatus.data
|
};
|
return selectValue;
|
}else{
|
return false;
|
}
|
};
|
};
|
var cs = new Class();
|
exports(cs.MODELNAME,cs);
|
});
|