evui 3.4.23 → 3.4.24
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.
- package/dist/evui.common.js +46 -23
- package/dist/evui.common.js.map +1 -1
- package/dist/evui.umd.js +46 -23
- package/dist/evui.umd.js.map +1 -1
- package/dist/evui.umd.min.js +1 -1
- package/dist/evui.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/components/tree/Tree.vue +32 -13
package/package.json
CHANGED
|
@@ -59,6 +59,10 @@ export default {
|
|
|
59
59
|
type: String,
|
|
60
60
|
default: '',
|
|
61
61
|
},
|
|
62
|
+
searchIncludeChildren: {
|
|
63
|
+
type: Boolean,
|
|
64
|
+
default: false,
|
|
65
|
+
},
|
|
62
66
|
},
|
|
63
67
|
emits: {
|
|
64
68
|
'click-node': null,
|
|
@@ -146,7 +150,9 @@ export default {
|
|
|
146
150
|
}
|
|
147
151
|
}
|
|
148
152
|
|
|
149
|
-
|
|
153
|
+
if (treeNodeData.length) {
|
|
154
|
+
flattenChildren(treeNodeData[0]);
|
|
155
|
+
}
|
|
150
156
|
return flatTree;
|
|
151
157
|
}
|
|
152
158
|
|
|
@@ -179,11 +185,7 @@ export default {
|
|
|
179
185
|
node.indeterminate = false;
|
|
180
186
|
updateTreeUp(nodeKey); // propagate up
|
|
181
187
|
updateTreeDown(node, { checked: isChecked, indeterminate: false }); // reset `indeterminate`
|
|
182
|
-
const checkedNodes = allNodeInfo.filter(obj => obj.node.checked)
|
|
183
|
-
.map(obj => ({
|
|
184
|
-
title: obj.node.title,
|
|
185
|
-
value: obj.node.value,
|
|
186
|
-
}));
|
|
188
|
+
const checkedNodes = allNodeInfo.filter(obj => obj.node.checked).map(obj => obj.node);
|
|
187
189
|
emit('check', checkedNodes);
|
|
188
190
|
rebuildTree();
|
|
189
191
|
}
|
|
@@ -216,6 +218,21 @@ export default {
|
|
|
216
218
|
showContextMenu(e);
|
|
217
219
|
};
|
|
218
220
|
|
|
221
|
+
const isIncluded = (value, searchWord) => value.toLowerCase()
|
|
222
|
+
.includes(searchWord.toLowerCase());
|
|
223
|
+
|
|
224
|
+
const makeChildrenVisible = (node) => {
|
|
225
|
+
if (node.children) {
|
|
226
|
+
const isSearchedChildren = !!(node.children
|
|
227
|
+
.filter(child => isIncluded(child.title, props.searchWord))?.length);
|
|
228
|
+
node.children.forEach((child) => {
|
|
229
|
+
makeChildrenVisible(child);
|
|
230
|
+
child.visible = (isSearchedChildren && isIncluded(child.title, props.searchWord))
|
|
231
|
+
|| !isSearchedChildren;
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
|
|
219
236
|
function makeChildrenInvisible(node) {
|
|
220
237
|
if (node.children) {
|
|
221
238
|
node.children.forEach((child) => {
|
|
@@ -243,13 +260,18 @@ export default {
|
|
|
243
260
|
node.visible = false;
|
|
244
261
|
});
|
|
245
262
|
|
|
246
|
-
const filteredNodes = allNodeInfo
|
|
263
|
+
const filteredNodes = allNodeInfo
|
|
264
|
+
.filter(nodeObj => isIncluded(nodeObj.node.title, value));
|
|
247
265
|
|
|
248
266
|
filteredNodes.forEach((nodeObj) => {
|
|
249
267
|
const node = nodeObj.node;
|
|
250
268
|
node.visible = true;
|
|
251
|
-
|
|
252
|
-
|
|
269
|
+
if (props.searchIncludeChildren) {
|
|
270
|
+
makeChildrenVisible(node);
|
|
271
|
+
} else {
|
|
272
|
+
// make children invisible, traverse down
|
|
273
|
+
makeChildrenInvisible(node);
|
|
274
|
+
}
|
|
253
275
|
// make parent visible, traverse up
|
|
254
276
|
const parentKey = allNodeInfo[node.nodeKey].parent;
|
|
255
277
|
makeParentVisible(parentKey);
|
|
@@ -283,10 +305,7 @@ export default {
|
|
|
283
305
|
rebuildTree();
|
|
284
306
|
const checkedNodes = getCheckedNodes();
|
|
285
307
|
if (checkedNodes.length) {
|
|
286
|
-
emit('check', checkedNodes
|
|
287
|
-
title: node.title,
|
|
288
|
-
value: node.value,
|
|
289
|
-
})));
|
|
308
|
+
emit('check', checkedNodes);
|
|
290
309
|
}
|
|
291
310
|
});
|
|
292
311
|
onBeforeUnmount(() => {
|