/**
* 参照的配置
* @author weidy
* @date 2022-04-05
*/
layui.define(['layer'],function(exports){
var ReferConfig = function(){
this.backPath = (configData.compatibility?path:configData.objectServicePath);
this.url = 'btmTypeController/gridAttributesByBtmId';
};
/**
* 显示参照窗口的时候
* @param referConfig 参照相关的配置
*/
ReferConfig.prototype.showReferDialog = function (config){
//只需要设置默认的值,调用VciWebReferGrid即可
var that = this;
//全部都是页面上处理
//基本信息,列的信息,查询的字段配置
//查询条件
var filter = config.filter,
name = config.name,
title = config.title,
valueInfo = '',
isMuti = config.isMuti,
target = config.target,
value = config.value,
text = config.text;
if(filter.indexOf('.')>-1){
filter=filter.split('.')[0]+'-'+filter.split('.')[1];
}
if(name.indexOf('.')>-1){
name=name.split('.')[0]+'-'+name.split('.')[1];
}
var options = config.options;
var referFilter = filter+"_" + name;
var referIndex = $webUtil.dialog({
title:'参照配置',
btn:['确定', '清空内容','取消'],
content:'
' +
'' +
'' +
''+
'' +
'' +
'
' +
'',
fullScreen:true,
yes:function(index,layero){
var selectValue = that.getSelectValue(filter,name,isMuti);
if(selectValue){
target.setValue(filter,name,selectValue.value,selectValue.rawValue,true,selectValue.allValues);
layer.close(referIndex);
}
},
success:function(layero){
var defaultValues={};
if($webUtil.isNotNull(config.value)){
defaultValues=eval("(" + config.value + ")")
}else if($webUtil.isNotNull(config.text)){
defaultValues=eval("(" + config.text + ")")
}else {
defaultValues.type='default'
}
that.initForm(referFilter,config,defaultValues);
that.initFormType(referFilter,config,defaultValues);
that.initWhereTable(referFilter,config,defaultValues);
if(defaultValues.type == 'default' || defaultValues.type == 'grid'){
that.initTable(referFilter,config,defaultValues);
$("[layui-filter='column_toolbar_" + referFilter + "']").show();
}
$("[layui-filter='toolbar_" + referFilter + "_ADDATTR']").unbind('click').click(function (){
var values = layui.form.getValues('form_'+referFilter);
if($webUtil.isNull(values['referType'])){
$webUtil.showErrorMsg("请输入参照的业务类型");
return false;
}
layui.use('platform/objectService/OsAttributeForBtmRefer',function (){
var attrRefer = layui['platform/objectService/OsAttributeForBtmRefer'];
attrRefer.showReferDialog({
filter:referFilter+"_attr",
name:name + "_attr",
title:'选择显示字段',
isMuti:true,
target: that,
options: {
where: {
btmTypeId: values['referType'],
hasDefaultAttr:true
}
}
});
});
});
$("[layui-filter='toolbar_" + referFilter + "_ADDWHERE']").unbind('click').click(function (){
var values = layui.form.getValues('form_'+referFilter);
if($webUtil.isNull(values['referType'])){
$webUtil.showErrorMsg("请输入参照的业务类型");
return false;
}
layui.use('platform/objectService/OsAttributeForBtmRefer',function (){
var attrRefer = layui['platform/objectService/OsAttributeForBtmRefer'];
attrRefer.showReferDialog({
filter:referFilter+"_attr",
name:name + "_attr",
title:'选择查询条件',
isMuti:true,
target: {
setValue: function (filter,name,value,rawValue,closeDialog,allValues){
var referFilter = filter.substring(0,filter.length-5);
var tableData = [];
layui.each(allValues,function (_index,_item){
var record = {
field:_item.id,type:'',typeText:'等于',value:''
}
tableData.push(record)
});
layui.table.addData("where_" + referFilter, tableData);
}
},
options: {
where: {
btmTypeId: values['referType'],
hasDefaultAttr:true
}
}
});
});
});
},
btn2: function (layero) {
target.setValue(filter,name,'','',true);
},
btn3: function (layero) {
layer.close(referIndex);
}
});
};
ReferConfig.prototype.setValue = function (filter,name,value,rawValue,closeDialog,allValues){
//选择属性的时候的回调
var that = this;
var referFilter = filter.substring(0,filter.length-5);
var tableData = [];
layui.each(allValues,function (_index,_item){
var record = {
field: _item.id,
title: _item.name,
fieldType: _item.attrDataType,
fieldTypeText: {
VTBoolean:"布尔型",
VTClob: "长文本",
VTDate:"日期",
VTDateTime:"日期时间",
VTTime:"时间",
VTLong:"长整型",
VTDouble:"金额/双精度",
VTInteger:"整形",
VTFilePath:"文件",
VTString:"字符串"
}[_item.attrDataType],
sort: "false",
sortField: _item.id,
width: _item.attributeLength
}
tableData.push(record)
});
layui.table.addData("column_" + referFilter, tableData);
};
ReferConfig.prototype.initTable = function (referFilter,config,defaultValues){
var that = this;
var table = layui.table;
var height = ($webUtil.isNotNull(config.options.height) && config.options.height*1>1) ?(config.options.height*1-400): 260 ;
if(height<300){
height = 260;
}
if(!defaultValues.tableConfig){
defaultValues.tableConfig= {
cols: [{
field: 'id',
title: '编号',
fieldType: 'text',
fieldTypeText: '文本框',
sort: "true",
sortField: 'id',
width: '150',
isquery: true,
}, {
field: 'name',
title: '名称',
fieldType: 'text',
fieldTypeText: '文本框',
sort: "true",
sortField: 'name',
width: '180',
isquery: true,
}], queryColumns: [{
field: 'id',
title: '编号',
fieldType: 'text',
fieldTypeText: '文本框',
sort: "true",
sortField: 'id',
width: '150',
isquery: true,
}, {
field: 'name',
title: '名称',
fieldType: 'text',
fieldTypeText: '文本框',
sort: "true",
sortField: 'name',
width: '180',
isquery: true,
}]
}
}
var options = {
elem: '#column_' + referFilter,
id: 'column_' + referFilter,
data:defaultValues.tableConfig.cols,
limit:-1,
selectMode: table.selectMode.muti,
cols: [[table.getIndexColumn(), {
field:'field',
title:'列字段(*)',
width:150,
edit:'text'
},{
field:'title',
title:'列名(*)',
edit:'text',
width: 170
}, {
field: 'fieldTypeText',
title: '字段类型(*)',
edit: 'select',
editConfig: {
comboxKey: 'fieldTypeForLayui',
valueField:'fieldType',
comboxConfig: {
data: [{key: 'text', value: '文本框'}, {key: 'combox', value: '下拉菜单'}, {key: 'radio',value: '单选'}, {key: 'swtich', value: '开关'}, {key: 'date', value: '时间'}, {key: 'textarea', value: '文本域'}]
}
},
width: 80
},{
field:'sort',
title:'列表可排序',
width: 70,
data: [{key: "true", value: "是"}, {key: "false", value: "否"}],
templet: function (d) {
return '';
}
},{
field:'sortField',
title: '排序字段',
width: 100,
edit: 'text'
},{
field: 'width',
title: '字段宽度',
width: 70,
edit: 'text'
},{
field: 'fixedText',
title: '列固定位置',
edit: 'select',
editConfig: {
comboxKey:'fixedForLayui',
valueField:'fixed',
comboxConfig: {
data: [{key: '', value: '不固定'}, {key: 'left', value: '左边'}, {key: 'right', value: '右边'}]
}
},
width: 90
},{
field: 'templet',
title: 'js显示代码',
width: 320,
edit: 'text'
},{
field: 'options',
title: '操作',
width: 180,
templet:function (d){
if(d.isquery) {
return '取消快速查询移除';
}else{
return '快速查询移除';
}
}
}]],
//height: height,
remoteSort:false,
done: function (res, cur, total) {
layui.form.on('switch(sortflag)', function(obj){
var tr=$(obj.othis).parents('tr');
var data= layui.table.getData('column_' + referFilter)[tr.attr('data-index')]
data[this.name]=obj.elem.checked
//layui.table.changeRecord(tableId,tr.attr('data-index'),data);
$(obj.othis).parents('td').addClass('layui-table-edit_notsubmit')
});
table.on('tool(column_' + referFilter + ')', function (obj) {
var data = obj.data;//当前选择行的数据
var layEvent = obj.event;//点的是什么按钮
if (layEvent == 'USEQUERY') {
that.USEQUERY(data,referFilter,config);
data.isquery=true;
layui.table.changeRecord('column_' + referFilter,obj.index,data)
}
if (layEvent == 'UNUSEQUERY') {
that.UNUSEQUERY(data,referFilter,config);
data.isquery=false;
layui.table.changeRecord('column_' + referFilter,obj.index,data)
}
if(layEvent == 'REMOVEFIELD'){
that.UNUSEQUERY(data,referFilter,config);
table.removeData('column_' + referFilter,data[table.config.indexName]);
}
});
}
};
table.render(options);
var toolbatr = $("[layui-filter='query_toolbar_" + referFilter + "']");
if(toolbatr){
toolbatr.empty();
layui.each(defaultValues.tableConfig.queryColumns,function (i,item){
toolbatr.append('' + item.title + '');
})
}
};
ReferConfig.prototype.initWhereTable = function (referFilter,config,defaultValues){
var that = this;
var table = layui.table;
var whereData=[];
if(defaultValues.where){
layui.each(defaultValues.where,function (i,item){
if($webUtil.startWith(item,'>=')){
whereData.push({field:i,value:item.replace('>=',''),type:'>=',typeText:'大于等于'})
}else if($webUtil.startWith(item,'<=')){
whereData.push({field:i,value:item.replace('<=',''),type:'<=',typeText:'小于等于'})
}else if($webUtil.startWith(item,'!=')){
whereData.push({field:i,value:item.replace('!=',''),type:'!=',typeText:'不等于'})
}else if($webUtil.startWith(item,'>')){
whereData.push({field:i,value:item.replace('>',''),type:'>',typeText:'大于'})
}else if($webUtil.startWith(item,'<')){
whereData.push({field:i,value:item.replace('<',''),type:'<',typeText:'小于'})
}else if($webUtil.startWith(item,'*') && $webUtil.endWith(item,'*')){
whereData.push({field:i,value:item.replace('*','').replace('*',''),type:'like',typeText:'包含'})
}else {
whereData.push({field:i,value:item,type:'',typeText:'等于'})
}
})
}
table.render({
elem: '#where_' + referFilter,
id: 'where_' + referFilter,
data:whereData,
limit:-1,
selectMode: table.selectMode.muti,
cols: [[table.getIndexColumn(), {
field:'field',
title:'筛选字段',
width:150,
edit:'text'
}, {
field:'typeText',
title: '筛选类型',
width: 100,
edit: 'select',
editConfig: {
comboxKey:'whereTypeForLayui',
valueField:'type',
comboxConfig: {
data: [{key: 'like', value: '包含'}, {key: '', value: '等于'}, {key: '>', value: '大于'}, {key: '<', value: '小于'}, {key: '!=', value: '不等于'}, {key: '>=', value: '大于等于'}, {key: '<=', value: '小于等于'}]
}
}
},{
field:'value',
title:'筛选值',
edit:'text',
width: 170
},{
field: 'options',
title: '操作',
width: 80,
templet:function (d){
return '移除';
}
}]],
remoteSort:false,
done: function (res, cur, total) {
table.on('tool(where_' + referFilter + ')', function (obj) {
var data = obj.data;//当前选择行的数据
var layEvent = obj.event;//点的是什么按钮
if(layEvent == 'REMOVEFIELD'){
table.removeData('where_' + referFilter,data[table.config.indexName]);
}
});
}
});
};
ReferConfig.prototype.USEQUERY = function (data,referFilter,config){
var that = this;
var toolbatr = $("[layui-filter='query_toolbar_" + referFilter + "']");
if(toolbatr){
var fieldSpan = toolbatr.find("span[data-id='" + data.field + "']");
if(fieldSpan.length==0){
toolbatr.append('' + data.title + '');
}
}
};
ReferConfig.prototype.UNUSEQUERY = function (data,referFilter,config){
var that = this;
var toolbatr = $("[layui-filter='query_toolbar_" + referFilter + "']");
if(toolbatr){
var fieldSpan = toolbatr.find("span[data-id='" + data.field + "']");
if(fieldSpan.length>0){
fieldSpan.remove()
}
}
};
/**
* 初始化表单
* @param referFilter
* @param config
*/
ReferConfig.prototype.initForm = function (referFilter,config,defaultValues) {
var that = this;
var form = layui.form;
//动态计算个数
var screenWidth = webUtil.getDialogScreenWidth({fullScreen: true});
var preWidth = 360;
//忘记form里面为啥要减去1了,不敢改
var defaultColumnOneRow = (screenWidth - screenWidth % preWidth) / preWidth;
var btmId = config.options.btmTypeId;
if(config && config.options && config.options.formValues && config.options.useFormKey){
btmId = config.options.formValues[config.options.useFormKey];
defaultValues.referType=btmId;
defaultValues.referTypeName=config.options.formValues[config.options.useFormText];
if(webUtil.isNull(defaultValues.referTypeName)){
defaultValues.referTypeName=defaultValues.referType;
}
}
form.addItems('form_' + referFilter, that.getFormItems(config,btmId),
function () {
form.setValues(defaultValues, 'form_' + referFilter);
form.on('select(type)', function (data) {
form.removeItems("formtype_" + referFilter, [], true)
var values=form.getValues('form_' + referFilter);
form.addItems("formtype_" + referFilter, that.getFormTypeItems(config, data.value,values.referType), function () {
form.setValues(defaultValues, "formtype_" + referFilter);
}, {}, {defaultColumnOneRow: defaultColumnOneRow, labelWidth: 160})
if (data.value == 'grid' || data.value == 'default') {
$("[layui-filter='column_toolbar_" + referFilter + "']").show();
defaultValues.type = data.value;
that.initTable(referFilter, config, defaultValues);
} else {
$("[layui-filter='column_toolbar_" + referFilter + "']").hide();
layui.table.destory('column_' + referFilter);
}
})
form.on('select(form_' + referFilter + ')', function (data) {
if (data.name == 'referType') {
var values = form.getValues("form_" + referFilter);
if (values.type == 'grid' || values.type == 'default' || values.type == 'tree') {
form.setValues({sortField:''}, "formtype_" + referFilter);
form.changeItems('formtype_' + referFilter, {
field: 'sortField',
title: '排序字段',
tooltips: '查询数据时的排序字段',
showField: 'sortField',
type: 'refer',
referConfig: {
textField: 'id',
type: 'platform/objectService/OsAttributeForBtmRefer',
isMuti: false,
where: {
btmTypeId: data.value,
hasDefaultAttr: true
}
}
})
}
}
})
}, {}, {defaultColumnOneRow: defaultColumnOneRow, labelWidth: 160});
};
ReferConfig.prototype.initFormType = function (referFilter,config,defaultValues){
var that = this;
var form = layui.form;
//动态计算个数
var screenWidth = webUtil.getDialogScreenWidth({fullScreen: true});
var preWidth = 430;
//忘记form里面为啥要减去1了,不敢改
var defaultColumnOneRow = (screenWidth - screenWidth % preWidth) / preWidth ;
form.addItems('formtype_'+referFilter, that.getFormTypeItems(config,defaultValues.type,defaultValues.referType),
function () {
form.setValues(defaultValues, 'formtype_'+referFilter);
}, {}, {defaultColumnOneRow: defaultColumnOneRow, labelWidth: 160});
};
ReferConfig.prototype.getFormItems = function (config,btmId){
var that = this;
var form = layui.form;
return [{
field:'line1',
type: 'line',
text: '基本信息'
},{
field: 'referType',
title: '参照的业务类型',
tooltips: '参照数据查询的业务类型',
required: true,
defaultValue:btmId,
showField:'referTypeName',
type:'refer',
referConfig:{
valueField:'id',
type:'platform/objectService/OsBtmTypeRefer'
},
readOnly: $webUtil.isNotNull(btmId)
}, {
field: 'textField',
title: '显示的属性',
tooltips: '选择数据后,显示到字段上的信息所属的属性,一般都是name,如果是多个属性使用逗号分割,如id,name',
required: true,
defaultValue: 'name'
}, {
field: 'valueField',
title: '存储值的属性',
tooltips: '选择数据后,保存到数据库里的属性,一般都是oid或者id,如果是多个属性使用逗号分割,如oid,id',
required: true,
defaultValue: 'oid'
},{
field: 'type',
title:'参照窗口类型',
tooltips:'default:默认的参照窗口样式; stand:UI上下文配置的方式; classify:分类+档案的显示; 自定义的参照直接写js的组件路径;tree:树形展示;grid:列表展示',
defaultValue: 'default',
type:'combox',
editable:true,
comboxKey: 'referDialogType',
data:[{key:"default",value: "默认样式"},{key:'stand',value: "平台配置"},{key:"tree",value: "树形"},{key:'grid',value: '列表'},
{key:"refer/OrgDepartmentRefer",value: "部门树"},{key:"refer/OrgDepartmentGridRefer",value: "部门列表"},{key:"refer/SmUserRefer",value: "用户"},
{key:"refer/SmUserGridRefer",value: "用户列表"},{key:"refer/SmRoleRefer",value: "角色列表"},{key:"refer/OrgDutyRefer",value: "职务"}
,{key:(configData.compatibility?'':'refer/SmWorkTypeRefer'),value: "工种"},{key:(configData.compatibility?"refer/WfProcessTemplateRefer":''),value: "流程模板"}],
url:"bdSelectInputController/listByFlag",
backPath:that.backPath,
extraParams:{
namespace:'referDialogType',
flag:'referDialogType'
},
required: true
},{
field:'url',
title:'自定义的后台路径',
tooltips: '通常为空;如果是列表,后台必须返回DataGrid,如果是树,后台必须返回List'
},{
field: 'backPath',
title: '服务的地址',
tooltips: '通常为空,在支持微服务或者分布式部署的时候才配置'
},{
field: 'method',
title: '请求后台的协议方式',
defaultValue: 'GET',
type:'combox',
comboxKey: 'httpMethodInRefer',
data:[{key:'GET',value: "GET"},{key:'PUT',value: "PUT"},{key:'POST',value: "POST"}],
tooltips: 'HTTP的协议方式,支持POST,PUT,GET,一般都是GET'
},{
field: 'height',
title: '窗口显示的高度',
tooltips: '默认空着,设置后表示强制显示这样的高度'
},{
field: 'useFormKey',
title: '过滤(级联)属性',
tooltips: '获取表单上的其他属性的属性的值来过滤,或者使用某个属性来级联选择'
},{
field: 'paramForFormKey',
title: '过滤属性请求参数',
tooltips: '使用过滤属性时,发送给后台的请求参数'
}, {
field: 'isMuti',
title: '是否多选',
defaultValue: 'false',
type: 'truefalse'
},{
field: 'mapFields',
title: '映射其他属性',
tooltips: '选择数据后,将选择的数据拷贝到表单里的其他属性,书写格式为{当前表单上的属性:选择数据里的属性,xxxxx:yyyy}',
useAllWidth:true,
inputWidth:760
}];
};
ReferConfig.prototype.getFormTypeItems = function (config,formtype,referType) {
var that = this;
var items = []
var btmId = config.options.btmTypeId;
if(config && config.options && config.options.formValues && config.options.useFormKey){
btmId = config.options.formValues[config.options.useFormKey];
}
if(referType){
btmId=referType;
}
if (formtype == 'default') {
items = [{
field: 'line2',
type: 'line',
text: '默认参照的配置(下方列表)'
}, {
field: 'limit',
title: '每页显示条数',
tooltips: '分页时每页显示的数量,不分页填-1',
defaultValue: '15'
}, {
field: 'sortField',
title: '排序字段',
tooltips: '查询数据时的排序字段',
showField:'sortField',
type:'refer',
referConfig:{
textField:'id',
type:'platform/objectService/OsAttributeForBtmRefer',
isMuti:false,
where: {
btmTypeId: btmId,
hasDefaultAttr: true
}
}
}, {
field: 'sortType',
title: '排序类型',
tooltips: '查询数据时的排序类型',
type: 'combox',
comboxKey: 'sortType',
data: [{key: 'asc', value: '升序'}, {key: 'desc', value: '降序'}]
}]
}else if (formtype == 'grid') {
items = [{
field: 'line2',
type: 'line',
text: '列表参照的配置(下方列表)'
}, {
field: 'limit',
title: '每页显示条数',
tooltips: '分页时每页显示的数量,不分页填-1',
defaultValue: '15'
}, {
field: 'sortField',
title: '排序字段',
tooltips: '查询数据时的排序字段',
showField:'sortField',
type:'refer',
referConfig:{
textField:'id',
type:'platform/objectService/OsAttributeForBtmRefer',
isMuti:false,
where: {
btmTypeId: btmId,
hasDefaultAttr: true
}
}
}, {
field: 'sortType',
title: '排序类型',
tooltips: '查询数据时的排序类型',
type: 'combox',
comboxKey: 'sortType',
data: [{key: 'asc', value: '升序'}, {key: 'desc', value: '降序'}]
}]
} else if (formtype == 'tree') {
items = [{
field: 'line2',
type: 'line',
text: '树形参照信息'
}, {
field: 'parentFieldName',
required: true,
title: '树形的上级属性',
tooltips: '树形展示的时候,上下级关系查找的属性。'
}, {
field: 'parentUsedField',
title: '上级属性值对应属性',
defaultValue: 'oid',
tooltips: '上级属性存储的值,是上级数据的什么属性。一般都是oid'
}, {
field: 'parentValue',
title: '根节点的值',
tooltips: '树形展示的时候,上级的值'
}, {
field: 'loadType',
title: '树加载方式',
defaultValue: 'all',
type: 'combox',
comboxKey: 'treeLoadType',
data: [{key: 'all', value: '全部'}, {key: 'node', value: '逐级加载'}]
}, {
field: 'onlyLeaf',
title: '是否只能选择叶子节点',
tooltips: '是tree的方式时,是否只能选择叶子节点',
defaultValue: 'false',
type: 'truefalse'
}, {
field: 'sortField',
title: '排序字段',
tooltips: '查询数据时的排序字段',
showField:'sortField',
type:'refer',
referConfig:{
textField:'id',
type:'platform/objectService/OsAttributeForBtmRefer',
isMuti:true,
where: {
btmTypeId: btmId,
hasDefaultAttr: true
}
}
}, {
field: 'sortType',
title: '排序类型',
tooltips: '查询数据时的排序类型',
type: 'combox',
comboxKey: 'sortType',
data: [{key: 'asc', value: '升序'}, {key: 'desc', value: '降序'}]
}]
} else if (formtype == 'stand') {
items = [{
field: 'line2',
type: 'line',
text: 'stand(平台配置)参照'
}, {
field: 'referContent',
title: '参照的UI上下文',
tooltips: '只有参照窗口类型是stand时才必须设置,且在stand类型下才能生效'
}, {
field: 'displayTable',
title: '平台的表格编号',
tooltips: '与参照的UI上下文互斥,只有参照窗口类型是stand时才必须设置,且在stand类型下才能生效'
}]
}
return items;
};
ReferConfig.prototype.getSelectValue = function(filter,name,isMuti){
var that = this;
var form = layui.form;
var table = layui.table;
var referFilter = filter+"_" + name;
if (form.validata('form_'+referFilter) && form.validata('formtype_'+referFilter)) {
var values = form.getValues('form_' + referFilter, true);
var typevalues = form.getValues('formtype_' + referFilter, true);
$.extend(values,typevalues);
var tableData = table.getData('column_' + referFilter,true);
debugger;
var whereData = table.getData('where_' + referFilter,true);
var selectValue = {};
if(values.type=='grid' || values.type=='default'){
var toolbatr = $("[layui-filter='query_toolbar_" + referFilter + "']");
var queryColumns=[]
if(toolbatr){
var fieldSpan = toolbatr.find("span[data-id]");
layui.each(fieldSpan,function (i,item){
for(var j=0;j0){
values.where={}
layui.each(whereData,function (i,item){
if(item.field && item.field!=''){
if(item.type=='like'){
values.where[item.field]="*" +item.value + "*"
}else{
values.where[item.field]=item.type+item.value
}
}
})
}else{
delete values.where
}
if($webUtil.isNotNull(typevalues.sortField)){
values.remoteSort=true;
var sortType=typevalues.sortType
if(typevalues.sortField.indexOf(',')!=-1){
sortType=[]
layui.each(typevalues.sortField.split(','),function (i,item){
sortType.push(typevalues.sortType)
})
sortType=sortType.join(',')
}
values.initSort = {
field: typevalues.sortField
, type: sortType
}
}else{
values.remoteSort=false
delete values.initSort
}
selectValue = {
value: JSON.stringify(values),
rawValue: JSON.stringify(values),
allValues: values
};
//console.log(selectValue)
return selectValue;
}
};
var rg = new ReferConfig();
exports('referConfig',rg);
});