Browse Source

树结构绘制,父项连接每层缩进统一减少3,且当前绘制保持20。

MaiXinRong 7 years ago
parent
commit
5abcaec953
1 changed files with 5 additions and 4 deletions
  1. 5 4
      public/web/tree_sheet/tree_sheet_helper.js

+ 5 - 4
public/web/tree_sheet/tree_sheet_helper.js

@@ -161,6 +161,7 @@ var TREE_SHEET_HELPER = {
     },
     showTreeData: function (setting, sheet, tree) {
         let indent = 20;
+        let levelIndent = -3;
         let halfBoxLength = 5;
         let halfExpandLength = 3;
 
@@ -229,7 +230,7 @@ var TREE_SHEET_HELPER = {
             let showTreeLine = true;
             if (!node) { return; }
 
-            let centerX = Math.floor(x) + node.depth() * indent + indent / 2;
+            let centerX = Math.floor(x) + node.depth() * indent + node.depth() * levelIndent + indent / 2;
             let x1 = centerX + indent / 2;
             let centerY = Math.floor((y + (y + h)) / 2);
             let y1;
@@ -255,7 +256,7 @@ var TREE_SHEET_HELPER = {
             }
             // Draw Parent Line
             if (showTreeLine) {
-                var parent = node.parent, parentCenterX = centerX - indent;
+                var parent = node.parent, parentCenterX = centerX - indent - levelIndent;
                 while (parent) {
                     if (!parent.isLast()) {
                         if (parentCenterX < x + w) {
@@ -263,7 +264,7 @@ var TREE_SHEET_HELPER = {
                         }
                     }
                     parent = parent.parent;
-                    parentCenterX -= indent;
+                    parentCenterX -= (indent + levelIndent);
                 }
             };
             // Draw Text
@@ -286,7 +287,7 @@ var TREE_SHEET_HELPER = {
             let node = tree.items[hitinfo.row];
             tree.selected = node;
             if (!node || node.children.length === 0) { return; }
-            let centerX = hitinfo.cellRect.x + offset + node.depth() * indent + indent / 2;
+            let centerX = hitinfo.cellRect.x + offset + node.depth() * indent + node.depth() * levelIndent + indent / 2;
             let centerY = (hitinfo.cellRect.y + offset + (hitinfo.cellRect.y + offset + hitinfo.cellRect.height)) / 2;
 
             if (hitinfo.x > centerX - halfBoxLength && hitinfo.x < centerX + halfBoxLength && hitinfo.y > centerY - halfBoxLength && hitinfo.y < centerY + halfBoxLength) {