|
@@ -131,7 +131,7 @@ SpreadJsExtendCellType = {
|
|
|
const node = options.row < tree.nodes.length ? tree.nodes[options.row] : null;
|
|
|
if (node) {
|
|
|
const showTreeLine = true;
|
|
|
- const centerX = Math.floor(x) + (node.level - 1) * indent + (node.level - 1) * levelIndent + indent / 2;
|
|
|
+ const centerX = Math.floor(x) + (node.level) * indent + (node.level) * levelIndent + indent / 2;
|
|
|
const centerY = Math.floor((y + (y + h)) / 2);
|
|
|
// Draw Sibling Line
|
|
|
if (showTreeLine) {
|
|
@@ -170,7 +170,7 @@ SpreadJsExtendCellType = {
|
|
|
}
|
|
|
};
|
|
|
// 重定位x
|
|
|
- x = x + (node.level) * indent + (node.level - 1) * levelIndent;
|
|
|
+ x = x + (node.level + 1) * indent + (node.level) * levelIndent;
|
|
|
}
|
|
|
}
|
|
|
// Drawing Text
|
|
@@ -210,21 +210,20 @@ SpreadJsExtendCellType = {
|
|
|
const node = tree.nodes[hitinfo.row];
|
|
|
if (!node) { return; }
|
|
|
|
|
|
- let centerX = hitinfo.cellRect.x + offset + (node.level - 1) * indent + (node.level - 1) * levelIndent + indent / 2;
|
|
|
+ let centerX = hitinfo.cellRect.x + offset + (node.level) * indent + (node.level) * levelIndent + indent / 2;
|
|
|
let centerY = (hitinfo.cellRect.y + offset + (hitinfo.cellRect.y + offset + hitinfo.cellRect.height)) / 2;
|
|
|
|
|
|
// 点击展开节点时,如果已加载子项,则展开,反之这加载子项,展开
|
|
|
if (Math.abs(hitinfo.x - centerX) < halfBoxLength && Math.abs(hitinfo.y - centerY) < halfBoxLength) {
|
|
|
- if (!node.expanded && !node.isleaf) {
|
|
|
+ if (!node.expanded && !node.isleaf && tree.getChildren(node).length === 0) {
|
|
|
tree.loadChildren(node, function () {
|
|
|
node.expanded = true;
|
|
|
const children = tree.getChildren(node);
|
|
|
hitinfo.sheet.addRows(hitinfo.row + 1, children.length);
|
|
|
SpreadJsObj.reLoadRowData(hitinfo.sheet, hitinfo.row + 1, children.length);
|
|
|
- //hitinfo.sheet.repaint();
|
|
|
});
|
|
|
} else {
|
|
|
- node.expanded = !node.expanded;
|
|
|
+ tree.setExpanded(node, !node.expanded);
|
|
|
SpreadJsObj.massOperationSheet(hitinfo.sheet, function () {
|
|
|
const posterity = tree.getPosterity(node);
|
|
|
for (const child of posterity) {
|