| 
															
																@@ -35,46 +35,86 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), 'tree', ledgerTree); 
															 | 
															
															 | 
															
																     SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), 'tree', ledgerTree); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																     const treeOperationObj = { 
															 | 
															
															 | 
															
																     const treeOperationObj = { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        refreshOperationValid: function (sheet, selections) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const setObjEnable = function (obj, enable) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                if (enable) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    obj.removeClass('disabled'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    obj.addClass('disabled'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            }; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const row = selections[0].row; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const tree = sheet.zh_tree; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if (!tree) { return; } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const node = sheet.zh_tree.nodes[row]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            setObjEnable($('#delete'), node); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            setObjEnable($('#up-move'), node && node.order > 1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            setObjEnable($('#down-move'), node && !tree.isLastSibling(node)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            setObjEnable($('#up-level'), tree.getParent(node)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            setObjEnable($('#down-level'), node && node.order > 1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         * 新增节点 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         * @param spread 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         addNode: function (spread) { 
															 | 
															
															 | 
															
																         addNode: function (spread) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const self = this; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const sheet = spread.getActiveSheet(); 
															 | 
															
															 | 
															
																             const sheet = spread.getActiveSheet(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const row = sheet.getSelections()[0].row; 
															 | 
															
															 | 
															
																             const row = sheet.getSelections()[0].row; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const tree = sheet.zh_tree; 
															 | 
															
															 | 
															
																             const tree = sheet.zh_tree; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (!tree) { return; } 
															 | 
															
															 | 
															
																             if (!tree) { return; } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            const node = spread.zh_tree.nodes[row]; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const node = sheet.zh_tree.nodes[row]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (!node) { return; } 
															 | 
															
															 | 
															
																             if (!node) { return; } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																             SpreadJsObj.massOperationSheet(sheet, function () { 
															 | 
															
															 | 
															
																             SpreadJsObj.massOperationSheet(sheet, function () { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                tree.addNode('add-node', node, function (newNodes) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    newNodes.sort(function (a, b) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        const aIndex = tree.nodes.indexOf(a); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        const bIndex = tree.nodes.indexOf(b); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        return aIndex - bIndex; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    }); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    for (const node of newNodes) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        const index = tree.nodes.indexOf(node); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        sheet.addRows(index, 1); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                tree.baseOperation('base-operation', node, 'add', function (result) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    const newNodes = result.create; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    if (newNodes) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        newNodes.sort(function (a, b) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            const aIndex = tree.nodes.indexOf(a); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            const bIndex = tree.nodes.indexOf(b); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            return aIndex - bIndex; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        for (const node of newNodes) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            const index = tree.nodes.indexOf(node); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            sheet.addRows(index, 1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     } 
															 | 
															
															 | 
															
																                     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    self.refreshOperationValid(sheet, sheet.getSelections()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 }); 
															 | 
															
															 | 
															
																                 }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             }); 
															 | 
															
															 | 
															
																             }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }, 
															 | 
															
															 | 
															
																         }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         * 删除选中节点 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         * @param spread 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         deleteNode: function (spread) { 
															 | 
															
															 | 
															
																         deleteNode: function (spread) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const self = this; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const sheet = spread.getActiveSheet(); 
															 | 
															
															 | 
															
																             const sheet = spread.getActiveSheet(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const row = sheet.getSelections()[0].row; 
															 | 
															
															 | 
															
																             const row = sheet.getSelections()[0].row; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const tree = sheet.zh_tree; 
															 | 
															
															 | 
															
																             const tree = sheet.zh_tree; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (!tree) { return; } 
															 | 
															
															 | 
															
																             if (!tree) { return; } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            const node = spread.zh_tree.nodes[row]; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const node = sheet.zh_tree.nodes[row]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (!node) { return; } 
															 | 
															
															 | 
															
																             if (!node) { return; } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const count = ledgerTree.getPosterity(node).length; 
															 | 
															
															 | 
															
																             const count = ledgerTree.getPosterity(node).length; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            tree.deleteNode('delete-node', node, function () { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            tree.baseOperation('base-operation', node, 'delete', function (result) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 sheet.deleteRows(row, count + 1); 
															 | 
															
															 | 
															
																                 sheet.deleteRows(row, count + 1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                self.refreshOperationValid(sheet, sheet.getSelections()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             }); 
															 | 
															
															 | 
															
																             }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }, 
															 | 
															
															 | 
															
																         }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         * 上移选中节点 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         * @param spread 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         upMove: function (spread) { 
															 | 
															
															 | 
															
																         upMove: function (spread) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const self = this; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const sheet = spread.getActiveSheet(); 
															 | 
															
															 | 
															
																             const sheet = spread.getActiveSheet(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const sel = sheet.getSelections()[0]; 
															 | 
															
															 | 
															
																             const sel = sheet.getSelections()[0]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const row = sel.row; 
															 | 
															
															 | 
															
																             const row = sel.row; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -85,15 +125,22 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const node = tree.nodes[row]; 
															 | 
															
															 | 
															
																             const node = tree.nodes[row]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (!node) { return; } 
															 | 
															
															 | 
															
																             if (!node) { return; } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            tree.upMoveNode('up-move', node, function (datas) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                for (const data of datas) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            tree.baseOperation('base-operation', node, 'up-move', function (result) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                for (const data of result.update) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     SpreadJsObj.reLoadRowData(sheet, tree.nodes.indexOf(data), tree.getPosterity(data).length + 1); 
															 | 
															
															 | 
															
																                     SpreadJsObj.reLoadRowData(sheet, tree.nodes.indexOf(data), tree.getPosterity(data).length + 1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 } 
															 | 
															
															 | 
															
																                 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 sheet.setSelection(tree.nodes.indexOf(node), sel.col, sel.rowCount, sel.colCount); 
															 | 
															
															 | 
															
																                 sheet.setSelection(tree.nodes.indexOf(node), sel.col, sel.rowCount, sel.colCount); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                self.refreshOperationValid(sheet, sheet.getSelections()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 //sheet.moveTo(row, -1, tree.nodes.indexOf(node), -1, tree.getPosterity(node).length + 1, -1, GC.Spread.Sheets.CopyToOptions.value); 
															 | 
															
															 | 
															
																                 //sheet.moveTo(row, -1, tree.nodes.indexOf(node), -1, tree.getPosterity(node).length + 1, -1, GC.Spread.Sheets.CopyToOptions.value); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             }); 
															 | 
															
															 | 
															
																             }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }, 
															 | 
															
															 | 
															
																         }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         * 下移选中节点 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         * @param spread 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         downMove: function (spread) { 
															 | 
															
															 | 
															
																         downMove: function (spread) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const self = this; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const sheet = spread.getActiveSheet(); 
															 | 
															
															 | 
															
																             const sheet = spread.getActiveSheet(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const sel = sheet.getSelections()[0]; 
															 | 
															
															 | 
															
																             const sel = sheet.getSelections()[0]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const row = sel.row; 
															 | 
															
															 | 
															
																             const row = sel.row; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -104,14 +151,21 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const node = tree.nodes[row]; 
															 | 
															
															 | 
															
																             const node = tree.nodes[row]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (!node) { return; } 
															 | 
															
															 | 
															
																             if (!node) { return; } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            tree.downMoveNode('down-move', node, function (datas) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                for (const data of datas) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            tree.baseOperation('base-operation', node, 'down-move', function (result) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                for (const data of result.update) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     SpreadJsObj.reLoadRowData(sheet, tree.nodes.indexOf(data), tree.getPosterity(data).length + 1); 
															 | 
															
															 | 
															
																                     SpreadJsObj.reLoadRowData(sheet, tree.nodes.indexOf(data), tree.getPosterity(data).length + 1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 } 
															 | 
															
															 | 
															
																                 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 sheet.setSelection(tree.nodes.indexOf(node), sel.col, sel.rowCount, sel.colCount); 
															 | 
															
															 | 
															
																                 sheet.setSelection(tree.nodes.indexOf(node), sel.col, sel.rowCount, sel.colCount); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                self.refreshOperationValid(sheet, sheet.getSelections()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             }); 
															 | 
															
															 | 
															
																             }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }, 
															 | 
															
															 | 
															
																         }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         * 升级选中节点 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         * @param spread 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         upLevel: function (spread) { 
															 | 
															
															 | 
															
																         upLevel: function (spread) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const self = this; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const sheet = spread.getActiveSheet(); 
															 | 
															
															 | 
															
																             const sheet = spread.getActiveSheet(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const row = sheet.getSelections()[0].row; 
															 | 
															
															 | 
															
																             const row = sheet.getSelections()[0].row; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -121,11 +175,18 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const node = tree.nodes[row]; 
															 | 
															
															 | 
															
																             const node = tree.nodes[row]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (!node) { return; } 
															 | 
															
															 | 
															
																             if (!node) { return; } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            tree.upLevelNode('up-level', node, function () { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            tree.baseOperation('base-operation', node, 'up-level', function (result) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 sheet.repaint(); 
															 | 
															
															 | 
															
																                 sheet.repaint(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                self.refreshOperationValid(sheet, sheet.getSelections()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             }); 
															 | 
															
															 | 
															
																             }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }, 
															 | 
															
															 | 
															
																         }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         * 降级选中节点 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         * @param spread 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         downLevel: function (spread) { 
															 | 
															
															 | 
															
																         downLevel: function (spread) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const self = this; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const sheet = spread.getActiveSheet(); 
															 | 
															
															 | 
															
																             const sheet = spread.getActiveSheet(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const row = sheet.getSelections()[0].row; 
															 | 
															
															 | 
															
																             const row = sheet.getSelections()[0].row; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -135,12 +196,17 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const node = tree.nodes[row]; 
															 | 
															
															 | 
															
																             const node = tree.nodes[row]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (!node) { return; } 
															 | 
															
															 | 
															
																             if (!node) { return; } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            tree.downLevelNode('down-level', node, function () { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            tree.baseOperation('base-operation', node, 'down-level', function (result) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 sheet.repaint(); 
															 | 
															
															 | 
															
																                 sheet.repaint(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                self.refreshOperationValid(sheet, sheet.getSelections()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             }); 
															 | 
															
															 | 
															
																             }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     }; 
															 | 
															
															 | 
															
																     }; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    ledgerSpread.bind(GC.Spread.Sheets.Events.SelectionChanged, function (e, info) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        treeOperationObj.refreshOperationValid(info.sheet, info.newSelections); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     // 绑定 删除等 顶部按钮 
															 | 
															
															 | 
															
																     // 绑定 删除等 顶部按钮 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     $('#delete').click(function () { 
															 | 
															
															 | 
															
																     $('#delete').click(function () { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         treeOperationObj.deleteNode(ledgerSpread); 
															 | 
															
															 | 
															
																         treeOperationObj.deleteNode(ledgerSpread); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -157,6 +223,7 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     $('#down-level').click(function () { 
															 | 
															
															 | 
															
																     $('#down-level').click(function () { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         treeOperationObj.downLevel(ledgerSpread); 
															 | 
															
															 | 
															
																         treeOperationObj.downLevel(ledgerSpread); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     }); 
															 | 
															
															 | 
															
																     }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    treeOperationObj.refreshOperationValid(ledgerSpread.getActiveSheet(), ledgerSpread.getActiveSheet().getSelections()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																     // 右键菜单 
															 | 
															
															 | 
															
																     // 右键菜单 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     $.contextMenu({ 
															 | 
															
															 | 
															
																     $.contextMenu({ 
															 |