/**
* 主数据的模板参照的基础页面
* @author weidy
* @date 2022-2-17
*/
layui.define(['layer','element','form','table'],function(exports){
var Class = function(){
this.MODELNAME = "mdm/refer/CodeClassTemplateRefer";
this.moduleKey = "CodeClassTemplateRefer";
this.backPath = (configData.compatibility?path:configData.mdmService);
this.url = {
classController:'codeClassifyController/',
classTree:'referTree',
tempController:'codeClassifyTemplateController/',
tempReferDataGrid:'codeClassifyTemplateController/gridCodeClassifyTemplate'
};
this.displayType = {
codeClassify:'codeClassify'
};
this.displayTypeTitle = {
codeClassify:{
title:'主题库分类',
url:'codeClassifyController/referTree',
queryField:'conditionMap["codeClassifyOid"]',
queryGridUrl:'codeClassifyTemplateController/gridCodeClassifyTemplate'
}
};
this.defaultConfig = {
displayType:[this.displayType.codeClassify],//默认显示的是部门和角色与用户
textField:'name',
valueField:'oid'
};
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.tempReferDataGrid);
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:'
',
typeHtml.join(''),
'
',
];
$("#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);
});
}
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.tempReferDataGrid),
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,
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 = '
';
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);
});