cosey 0.11.4 → 0.11.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -173,6 +173,15 @@ var stdin_default = defineComponent({
173
173
  function renderMayCustomNode(node) {
174
174
  return props.renderNode ? props.renderNode(node, () => renderNode(node)) : renderNode(node);
175
175
  }
176
+ function getMergedLeafNodes(node) {
177
+ const nodes = [];
178
+ let current = node;
179
+ while (current && current.reverseLevel === 1) {
180
+ nodes.push(current);
181
+ current = current.nextSibling;
182
+ }
183
+ return nodes;
184
+ }
176
185
  return () => {
177
186
  let _slot2;
178
187
  return createVNode("div", {
@@ -200,7 +209,7 @@ var stdin_default = defineComponent({
200
209
  "key": j,
201
210
  "colspan": node.reverseLevel === 1 ? maxLevel.value - node.level + 1 : 1,
202
211
  "rowspan": node.leafCount
203
- }, [node.reverseLevel !== 1 || !props.mergeLast ? renderMayCustomNode(node) : createVNode("div", null, [node.parent.children?.map(renderMayCustomNode)])]);
212
+ }, [node.reverseLevel !== 1 || !props.mergeLast ? renderMayCustomNode(node) : createVNode("div", null, [getMergedLeafNodes(node).map(renderMayCustomNode)])]);
204
213
  })]);
205
214
  })])])]);
206
215
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cosey",
3
- "version": "0.11.4",
3
+ "version": "0.11.6",
4
4
  "description": "基于 Vue3 + vite 的后台管理系统框架",
5
5
  "type": "module",
6
6
  "main": "index.js",
package/utils/tree.js CHANGED
@@ -96,7 +96,7 @@ function mapTreeExtra(tree, callback, options, _internalLevel = 1) {
96
96
  rNode.lastChild = mappedChildren[mappedChildren.length - 1];
97
97
  rNode.reverseLevel = Math.max(...mappedChildren.map((item) => item.reverseLevel)) + 1;
98
98
  } else {
99
- if (mergeLast && index > 0) {
99
+ if (mergeLast && prevNode?.reverseLevel === 1) {
100
100
  rNode.leafCount = 0;
101
101
  }
102
102
  }
@@ -109,8 +109,12 @@ function mapTreeExtra(tree, callback, options, _internalLevel = 1) {
109
109
  }
110
110
  function getNextSibling(node, mergeLast) {
111
111
  if (node) {
112
- if (node.nextSibling && (!mergeLast || node.nextSibling.reverseLevel > 1)) {
113
- return node.nextSibling;
112
+ let nextSibling = node.nextSibling;
113
+ while (mergeLast && nextSibling && nextSibling.reverseLevel === 1 && nextSibling.prevSibling?.reverseLevel === 1) {
114
+ nextSibling = nextSibling.nextSibling;
115
+ }
116
+ if (nextSibling) {
117
+ return nextSibling;
114
118
  } else {
115
119
  return getNextSibling(node.parent, mergeLast);
116
120
  }