Files
ziqim/Yangcai365_web/manage/zinc/js/mercolumn_2018102301.js
T
2025-02-20 14:59:35 +08:00

213 lines
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);