| 
					
				 | 
			
			
				@@ -22,12 +22,43 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (thousandth) sjsSettingObj.setTpThousandthFormat(xmjSpreadSetting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     SpreadJsObj.initSheet(unitSheet, unitSpreadSetting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const filterUnitTree = createNewPathTree('filter', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        id: 'ledger_id', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pid: 'ledger_pid', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        order: 'order', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        level: 'level', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rootId: -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fullPath: 'full_path', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const unitTreeObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        getFilterUnitTree: function (unitTree) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const filter = $('#unit-filter').val(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!filter || unitTree.nodes.length === 0) return unitTree; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            filterUnitTree.clearDatas(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const filterPath = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (const node of unitTree.nodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ((node.code && node.code.indexOf(filter) >= 0) || (node.b_code && node.b_code.indexOf(filter) >= 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    || (node.name && node.name.indexOf(filter) >= 0) || (node.pos_name && node.pos_name.indexOf(filter) >= 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    filterPath.push(node.full_path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (const node of unitTree.nodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (const fp of filterPath) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (fp.indexOf(node.full_path) >= 0 || node.full_path.indexOf(fp) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        filterUnitTree.addData(node, ['id', 'ledger_id', 'ledger_pid', 'order', 'level', 'full_path', 'pos_name', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            'code', 'b_code', 'name', 'unit', 'unit_price', 'quantity', 'total_price', 'drawing_code_merge', 'memo_merge']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            filterUnitTree.sortTreeNode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return filterUnitTree; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         loadCurUnitData: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const node = SpreadJsObj.getSelectObject(xmjSheet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             SpreadJsObj.resetTopAndSelect(unitSheet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (node && node.unitTree) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                SpreadJsObj.loadSheetData(unitSheet, SpreadJsObj.DataType.Tree, node.unitTree); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SpreadJsObj.loadSheetData(unitSheet, SpreadJsObj.DataType.Tree, unitTreeObj.getFilterUnitTree(node.unitTree)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 SpreadJsObj.initSheet(unitSheet, unitSpreadSetting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -55,7 +86,6 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 n.unitTree.loadDatas(n.unitTreeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log(xmjTree); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         SpreadJsObj.loadSheetData(xmjSheet, SpreadJsObj.DataType.Tree, xmjTree); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         unitTreeObj.loadCurUnitData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -170,6 +200,10 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         xmjSpread.refresh(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         unitSpread.refresh(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('#unit-filter').bind('keydown', function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const evt = window.event || e; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (e.keyCode == 13) unitTreeObj.loadCurUnitData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 显示层次 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (function (select, sheet) { 
			 |