8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png
树形设置固定列 V8
admin 12小时前

树形设置固定一列

app.hrefMethod = function(NODE_ID, key,colname) {
  Cs.info(NODE_ID);
  Cs.info(key);
  
  zj_type=colname==='流入'?'0':colname==='流出'?'1':'3';
  
  app.detail_window.show();
      app.xwl.I_BUSI_DATE.setValue(key);
      app.xwl.I_ZJ_TYPE.setValue(zj_type);
      app.xwl.I_BUSINESS_ID.setValue(NODE_ID);
 
      app.xwl.seekBtn.fireEvent('click');
};

app.lockTreeFirstColumn = function() {
    var grid = app.dataGrid;
    if (!grid || !grid.rendered) return;
    try {
        var hdrCt = grid.headerCt;
        var view = grid.getView();
        if (!hdrCt || !view) return;
        
        // 给当前 grid 根元素加唯一标记类名,CSS 选择器加前缀避免影响其他表格
        grid.el.addCls('grid-locked-col');
        
        // 注入 CSS:仅作用于带 grid-locked-col 类的表格
        Ext.get('treegrid-locked-style')?.remove();
        var s = document.createElement('style');
        s.id = 'treegrid-locked-style';
        s.type = 'text/css';
        s.appendChild(document.createTextNode(
            '.grid-locked-col .x-grid-header-ct{overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important;}' +
            '.grid-locked-col .x-grid-header-ct::-webkit-scrollbar{height:0!important;display:none!important;}' +
            '.grid-locked-col .x-grid-cell:first-child{position:sticky!important;left:0!important;z-index:999!important;background:#fff!important;border-right:2px solid #d0d0d0!important;}' +
            '.grid-locked-col .x-grid-cell:first-child .x-grid-cell-inner{background:#fff!important;}'
        ));
        document.head.appendChild(s);
        
        // 找到第一个可见表头,用 transform 随滚动偏移校正位置
        var firstHdr = hdrCt.el.down('.x-column-header:not(.x-column-header-hidden)');
        if (!firstHdr) return;
        
        // 设表头背景色避免透明穿透
        firstHdr.dom.style.background = '#E7E8EB';// 'inherit';
        
        var adjustHeader = function() {
            var sl = hdrCt.el.dom.scrollLeft || 0;
            firstHdr.dom.style.transform = 'translateX(' + sl + 'px)';
            firstHdr.dom.style.zIndex = '100';
        };
        
        // 初始执行 + 每次滚动校正
        adjustHeader();
        view.getEl().on('scroll', adjustHeader);
        
        Cs.info('lockTreeFirstColumn OK');
    } catch(e) {
        Cs.info('lockTreeFirstColumn error:', e);
    }
};

app.trade = {};

然后再设置

// // var grid = Ext.ComponentQuery.query('treepanel#dataGrid')[0]; 
// var grid=app.viewport1.queryById('dataGrid');

// Cs.info('grid:',grid);
// var originalColumns = grid.initialConfig.columns;
// // var originalColumns = grid.headerCt.getGridColumns();

// Cs.info('originalColumns:',originalColumns);

// Cs.info('G:',Wb.getColumns(grid));


// Cs.info('S:',store);

// Cs.info(app.trade);
// Cs.info(app.trade['20260506'].monthay_cn);

var columns_new = [];

var item_name={
      text: '项目',
      width: 250,
      dataIndex: 'INDEX_NAME',
      xtype: "treecolumn"
    };
columns_new.push(item_name);
columns_new.push({
      text: 'INDEX_ID',
      width: 150,
      hidden: true,
      dataIndex: 'INDEX_ID'
    });
columns_new.push({
      text: 'PARENT_INDEX_ID',
      width: 150,
      hidden: true,
      dataIndex: 'PARENT_INDEX_ID'
    });



Cs.info(records.childNodes);
var rec=records.childNodes[0].data;
 var regex = /^\d{8}$/;
 var groups = {};
Wb.each(rec, function(k, v) {
 
  if (regex.test(k)===true)
  { 
     // Cs.info('k',k);
    var key = k.substring(0, 8);
        
        if (!groups[key]) {
            groups[key] =  {
      text: app.trade[key].weekday_cn,
      width: 100,
      items:[]
    }
            ;
        }
        
//     var lastChar = k.slice(-1); // 获取最后一个字符
//     var col_name;
    
//     if (lastChar === 'A') {
//         col_name = '日初活期';
//     } else if (lastChar === 'B') {
//         col_name = '流入';
//     } else if (lastChar === 'C') {
//         col_name = '流出';
//     } else {
//         col_name = '日终活期';
//     }
        groups[key].items.push(
        {
      text: app.trade[key].monthay_cn,
      width: 100,
      align: "right",
      format: "#,##0.00",
           renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
//              if(col_name=='日初活期'||col_name=='日终活期')
//                return Wb.format(value,'#,##0.00');
             
             NODE_ID=record.data.INDEX_ID;
// //              Cs.info('---A',NODE_ID.length);
//              if (NODE_ID.length!=32)
//                 return Wb.format(value,'#,##0.00');
             
                if (!value)
                  value = '0';

                return (
                  '<a method="hrefMethod" style="color:grey" onclick="Wb.invoke(this,\'' + NODE_ID + '\',\'' + key + '\',\''+ key+'\');"href="javascript:void(0);">' + Ext.util.Format.number(value, '#,##0.00') + '</a>'
                );
              },
      dataIndex: k
    }
        );
  
  }
  
 
});

 Cs.info(groups);

Wb.each(groups, function(k,v) {
columns_new.push(v);
// Cs.info('v',v);  
});

app.dataGrid.reconfigure(app.dataGrid.store, columns_new);
setTimeout(app.lockTreeFirstColumn, 150);
setTimeout(function() {
    var grid = app.dataGrid;
//     var view = grid.getView();
//     var viewEl = view.el;
  
//      viewEl.on('click', function(event, target) {
//         var cell = Ext.get(target).up('.x-grid-cell-first');
//         if (cell) {
//             var row = cell.up('.x-grid-row');
//             var record = view.getRecord(row);
            
//             if (record) {
//                 var indexId = record.get('INDEX_ID');
//                 var busi_month = app.panel1.queryById('I_BUSI_MONTH').getValue();
//                 var title = record.get('INDEX_NAME');
//                 Cs.info('点击的INDEX_ID:', indexId);
//                 Cs.info('月份:', busi_month);
//                 Cs.info('标题:', title);
//                 app.detail_window.show();
//                 app.detail_window.setTitle('标题');
//             }
//         }
//     });
    
    // 恢复树展开状态
    var data = grid.getRootNode();
    data.cascadeBy(function(child) {
        if (child.data.PARENT_INDEX_ID == '-1') {
            child.expand(false);
        }
        if (!(child.data.root)&& child.data.PARENT_INDEX_ID!='-1') {
            child.collapse();
        }
    });
}, 100);
最新回复 (0)
    • 朕弟分享 | 专注小众,乐于分享!
      2
          
返回
发新帖 搜索 反馈 回顶部