|  | @@ -12,6 +12,7 @@ $(document).ready(function() {
 | 
	
		
			
				|  |  |          const ProjectTree = createDragTree(setting.treeSetting);
 | 
	
		
			
				|  |  |          ProjectTree.loadDatas(setting.source);
 | 
	
		
			
				|  |  |          const TableObj = $(setting.table);
 | 
	
		
			
				|  |  | +        let tenderTreeShowLevel;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          const Utils = {
 | 
	
		
			
				|  |  |              getRowTdHtml: function (node, tree) {
 | 
	
	
		
			
				|  | @@ -134,6 +135,22 @@ $(document).ready(function() {
 | 
	
		
			
				|  |  |                  postData('/subproj/move', { id: node.id, type }, function (result) {
 | 
	
		
			
				|  |  |                      Utils.refreshTreeTable(result);
 | 
	
		
			
				|  |  |                  });
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +            expandByLevel: function(level){
 | 
	
		
			
				|  |  | +                ProjectTree.expandByLevel(level);
 | 
	
		
			
				|  |  | +                for (const node of ProjectTree.nodes) {
 | 
	
		
			
				|  |  | +                    const tr = $(`tr[tree_id=${node.id}]`);
 | 
	
		
			
				|  |  | +                    if (node.expanded) {
 | 
	
		
			
				|  |  | +                        $('.fold-switch', tr).html(`<i class="fa fa-minus-square-o"></i>`);
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        $('.fold-switch', tr).html(`<i class="fa fa-plus-square-o"></i>`);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    if (node.visible) {
 | 
	
		
			
				|  |  | +                        tr.show();
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        tr.hide();
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -236,6 +253,49 @@ $(document).ready(function() {
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        const getChildrenLevel = function (node) {
 | 
	
		
			
				|  |  | +            let iLevel = node.tree_level || 1;
 | 
	
		
			
				|  |  | +            if (node.children && node.children.length > 0) {
 | 
	
		
			
				|  |  | +                for (const c of node.children) {
 | 
	
		
			
				|  |  | +                    iLevel = Math.max(iLevel, getChildrenLevel(c));
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return iLevel;
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        tenderTreeShowLevel = $.cs_showLevel({
 | 
	
		
			
				|  |  | +            selector: '#show-level',
 | 
	
		
			
				|  |  | +            levels: [
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    type: 'sort', count: 5, visible_count: function () {
 | 
	
		
			
				|  |  | +                        return ProjectTree.children.map(getChildrenLevel).reduce((x, y) => { return Math.max(x, y); }, 0) - 1;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                },
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    type: 'last', title: '最底层', visible: function () {
 | 
	
		
			
				|  |  | +                        const count = ProjectTree.children.map(getChildrenLevel).reduce((x, y) => { return Math.max(x, y); }, 0) - 1;
 | 
	
		
			
				|  |  | +                        return count > 0;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                },
 | 
	
		
			
				|  |  | +            ],
 | 
	
		
			
				|  |  | +            showLevel: function (tag) {
 | 
	
		
			
				|  |  | +                switch (tag) {
 | 
	
		
			
				|  |  | +                    case "1":
 | 
	
		
			
				|  |  | +                    case "2":
 | 
	
		
			
				|  |  | +                    case "3":
 | 
	
		
			
				|  |  | +                    case "4":
 | 
	
		
			
				|  |  | +                    case "5":
 | 
	
		
			
				|  |  | +                        Utils.expandByLevel(parseInt(tag));
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                    case "last":
 | 
	
		
			
				|  |  | +                        Utils.expandByLevel(20);
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                    default: return;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        tenderTreeShowLevel.initShowLevel();
 | 
	
		
			
				|  |  | +        tenderTreeShowLevel.refreshMenuVisible();
 | 
	
		
			
				|  |  |          return { ProjectTree, TableObj, ...Utils };
 | 
	
		
			
				|  |  |      })({
 | 
	
		
			
				|  |  |          treeSetting: { id: 'id', pid: 'tree_pid', level: 'tree_level', order: 'tree_order', rootId: '-1' },
 |