/**
* 供应商参照
* @author weidy
* @date 2021-1-10
*/
layui.define(['layer','element','vciWebReferGrid'],function(exports){
var ReferGrid = function(){
this.backPath = (configData.compatibility?path:configData.frameworkPath);
this.displayType = {
classify:'classify',
importtance:'importtance'
};
this.displayTypeTitle = {
classify:{
title:'基本分类',
url:'supplierClassifyController/referTreeSupplierClassify',
queryField:'conditionMap["pkSupplierClassify"]',
queryUserUrl:'supplierController/referDataGrid'
},
importtance:{
title:'重要度',
url:'supplierImporttanceController/referTreeImportance',
queryField:'conditionMap["pkSupplierImporttance"]',
queryUserUrl:'supplierController/referDataGrid'
}
};
};
ReferGrid.prototype.showReferDialog = function (referConfig){
var that = this;
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);
}
that.viewSupplierInDialog(baseOptions);
};
ReferGrid.prototype.viewSupplierInDialog = function (options){
var that = this;
options.supplierUrl = $webUtil.getValueFromObj(options,['url','referUrl'],'supplierController/referDataGrid');
options.textField = $webUtil.getValueFromObj(options,['textField'],"name");
options.valueField = $webUtil.getValueFromObj(options,['valueField'],"oid");
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:'
',
'
',
'
'
];
$("#referGrid_toolbar_"+ filter ).html(html.join(''));
$("#referGrid_toolbar_"+filter+" .layui-layout-border").css({'height':'96%'});
that.showTree(that.displayType.classify,filter,name);
that.showTree(that.displayType.importtance,filter,name);
var tableId = 'referGrid_' + filter + '_' + name;
var table = layui.table;
var isMuti = options.isMuti;
var requestData = {};
//可以定义表格了
table.render({
elem: '#referGrid_' + filter + '_' + name,
id: tableId,
url: (options.supplierUrl ? options.supplierUrl : that.url.dataGrid),
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: 120
}, {
field: 'name',
title: '供应商名称',
sort:true,
width: 150
}, {
field: 'pkSupplierClassifyText',
title: '基本分类',
sort:true,
width: 90
}, {
field: 'pkSupplierAdmittanceText',
title: '准入状态',
sort:true,
width: 85
}, {
field: 'pkSupplierImporttanceText',
title: '重要度',
sort:true,
width: 85
}, {
field: 'rateInfo',
title: '当前评分',
sort:true,
width: 85
}, {
field: 'contactor',
title:'联系人',
width: 150,
templet:function (d){
return (d.contactor||'') + " " + d.contacts;
}
},{
field: 'secretGradeText',
title: '密级',
width: 60,
hidden: (!configData.controllerSecret)
}
]]
});
var queryColumns = [ {
field: 'id',
title: '供应商编号'
}, {
field: 'name',
title: '供应商名称'
}];
that.showSearchHtml(queryColumns,tableId,filter,name,requestData);
};
ReferGrid.prototype.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),
loadType:tree.loadType.all,
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);
};
ReferGrid.prototype.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].queryUserUrl;
layui.table.reload(tableId,{
url:tableUrl,
where:where
});
};
ReferGrid.prototype.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
}
);
});
}
};
ReferGrid.prototype.destory = function (filter,name) {
//销毁
var that = this;
if($('#referGrid_' + filter + '_' + name)){
$('#referGrid_' + filter + '_' + name).remove();
}
};
ReferGrid.prototype.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 rg = new ReferGrid();
exports('platform/basedoc/BdSupplierRefer',rg);
});