| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- +(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);
|