213 rivejä
5.9 KiB
JavaScript
213 rivejä
5.9 KiB
JavaScript
+(function(Z)
|
|
{
|
|
//BEGIN
|
|
var Mercolumn = window.Mercolumn = {};
|
|
Mercolumn.initPageColumn = function (layoutCode, layoutName)
|
|
{
|
|
if (!layoutName || !layoutCode)
|
|
return false;
|
|
|
|
var _tr_ = Z('tr[data-layoutCode=\''+layoutCode+'\']');
|
|
if (!_tr_)
|
|
{
|
|
console.error("["+layoutCode+"]" + "元素查询异常")
|
|
return false;
|
|
}
|
|
|
|
var _tr = _tr_[0];
|
|
if (!_tr)
|
|
{
|
|
console.log("["+layoutCode+"]" + "未找到元素")
|
|
return false;
|
|
}
|
|
|
|
var cells = _tr.cells;
|
|
var nameArr = [];
|
|
var columns = [];
|
|
Z.each(cells, function(td, i){
|
|
var columnName = td.innerText;
|
|
columnName = Z.S.trim(columnName);
|
|
if (Z.V.isNotEmptyBlank(columnName))//有效列名信息
|
|
{
|
|
nameArr[i] = columnName;
|
|
columns[i] = columnName;
|
|
}
|
|
});
|
|
|
|
if (nameArr.length == 0)
|
|
{
|
|
console.log("["+layoutCode+"]" + "找不到列信息")
|
|
return false;
|
|
}
|
|
|
|
var init_success = false;
|
|
try
|
|
{
|
|
var ajax = new Z.Ajax();
|
|
ajax.setSync();
|
|
ajax.setClassName("MercolumnPresenter");
|
|
ajax.setMethodName("initPageLayoutColumn");
|
|
ajax.addParam("layoutCode", layoutCode);
|
|
ajax.addParam("layoutName", layoutName);
|
|
ajax.addParam("sysColumns", Z.AR.toString(nameArr, ","));
|
|
ajax.setFailure(function(){
|
|
console.error("初始化页面信息列异常:"+this.responseText)
|
|
});
|
|
ajax.setSuccess(function()
|
|
{
|
|
init_success = true;
|
|
});
|
|
ajax.execute();
|
|
}catch(e)
|
|
{
|
|
console.log(e)
|
|
}
|
|
return init_success;
|
|
}
|
|
|
|
Mercolumn.doQueryColumns = function(layoutCode)
|
|
{
|
|
if (!layoutCode)
|
|
return [];
|
|
|
|
var _tr_ = Z('tr[data-layoutCode=\''+layoutCode+'\']');
|
|
if (!_tr_)
|
|
{
|
|
console.error("["+layoutCode+"]" + "元素查询异常")
|
|
return [];
|
|
}
|
|
|
|
var _tr = _tr_[0];
|
|
if (!_tr)
|
|
{
|
|
console.log("["+layoutCode+"]" + "未找到元素")
|
|
return [];
|
|
}
|
|
|
|
|
|
var cells = _tr.cells;
|
|
var nameArr = [];
|
|
var columns = {};
|
|
Z.each(cells, function(td, i){
|
|
var columnName = td.innerText;
|
|
columnName = Z.S.trim(columnName);
|
|
if (Z.V.isNotEmptyBlank(columnName))//有效列名信息
|
|
{
|
|
nameArr[i] = columnName;
|
|
columns[columnName] = i;
|
|
}
|
|
});
|
|
|
|
return columns;
|
|
}
|
|
|
|
Mercolumn.doShowMerPageColumn = function (layoutCode, layoutName, orgId)
|
|
{
|
|
var init_success = Mercolumn.initPageColumn(layoutCode, layoutName);//初始化
|
|
if (!init_success)
|
|
return;//初始化失败了不设置
|
|
|
|
var pageColumns = Mercolumn.doQueryColumns(layoutCode);
|
|
if (!orgId || orgId == -1)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
try
|
|
{
|
|
var ajax = new Z.Ajax();
|
|
ajax.setClassName("MercolumnPresenter");
|
|
ajax.setMethodName("doQueryMerPageLayoutColumns");
|
|
ajax.addParam("orgId", orgId);
|
|
ajax.addParam("layoutCode", layoutCode);
|
|
ajax.setFailure(function(){
|
|
console.error("设置隐藏商户信息列异常:"+this.responseText);
|
|
});
|
|
ajax.setSuccess(function(){
|
|
var obj = Z.J.toObject(this.responseText);
|
|
var dataList = obj.dataList;
|
|
console.log(obj);
|
|
if (!dataList || dataList.length == 0 || !dataList[0])
|
|
return;
|
|
|
|
var merColsNames = Z.AR.toArray(dataList[0].merColumns, ",")
|
|
var mercolumsIndex=[];
|
|
|
|
//查询影藏列下标
|
|
var hideIndexs = [];
|
|
for (var colsName in pageColumns)
|
|
{
|
|
if (Z.AR.contains(merColsNames, colsName))
|
|
{
|
|
var ind = pageColumns[colsName];
|
|
mercolumsIndex[colsName] = ind;
|
|
hideIndexs.push(ind);
|
|
}
|
|
}
|
|
|
|
console.log("mercolumsIndex:");
|
|
console.log(mercolumsIndex);
|
|
console.log(hideIndexs);
|
|
|
|
//查询标记隐藏表标头
|
|
var _tr_ = Z('tr[data-layoutCode=\''+layoutCode+'\']');
|
|
if (!_tr_ || _tr_ .length == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var parentWidth = 0;
|
|
var scrollWidth = 0;
|
|
var table = _tr_.parent()[0]
|
|
if (Z.S.equalsIgnoreCase(table.tagName, "tbody"))
|
|
{
|
|
table = Z(table).parent();
|
|
scrollWidth = table[0].scrollWidth;
|
|
var elem = table.parent()[0];
|
|
parentWidth = elem.clientWidth-table[0].offsetLeft*2;
|
|
}
|
|
|
|
//计算隐藏宽度
|
|
var cutWidth = 0;
|
|
var thead = _tr_[0];
|
|
var _cells_ = thead.cells;
|
|
for(var ci = 0; ci < _cells_.length; ci++)
|
|
{
|
|
if (!Z.AR.contains(hideIndexs, ci*1))
|
|
{
|
|
var td = _cells_[ci];
|
|
cutWidth += td.scrollWidth;
|
|
}
|
|
}
|
|
|
|
//隐藏列
|
|
var trs = table.find("tr");
|
|
for (var i=0; i<trs.length; i++)
|
|
{
|
|
var cols = trs[i].cells;
|
|
for(var ci = 0; ci < cols.length; ci++)
|
|
{
|
|
if (!Z.AR.contains(hideIndexs, ci*1))
|
|
{
|
|
Z(cols[ci]).hide();
|
|
}
|
|
}
|
|
}
|
|
|
|
//重新设置table宽度
|
|
var table_width = scrollWidth - cutWidth;
|
|
if (table_width < parentWidth)
|
|
table_width = parentWidth
|
|
|
|
table[0].style.width = table_width + "px";
|
|
|
|
});
|
|
ajax.execute();
|
|
}catch (e)
|
|
{
|
|
console.log(e)
|
|
}
|
|
}
|
|
|
|
//END
|
|
})(zhiqim); |