Skip to content

Commit b89ccb7

Browse files
author
hikki
committed
选择标识
1 parent 7c2e35c commit b89ccb7

File tree

1 file changed

+34
-40
lines changed

1 file changed

+34
-40
lines changed

resources/assets/component.js

Lines changed: 34 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,7 @@ class ComponentCascadeDot {
337337
data.forEach((v, k) => {
338338
if (Array.isArray(v.nodes) && v.nodes.length !== 0) {
339339
v.nodes = v.nodes.map((N) => N.key);
340+
v.expand = false;
340341
} else {
341342
v.nodes = null;
342343
v.checked = false;
@@ -418,8 +419,7 @@ class ComponentCascadeDot {
418419
} else {
419420
currentStackDocuments[index].classList.add('dlp-label-silence');
420421
}
421-
data.expand = false;
422-
this.expand(currentStackDocuments[index], data.expand);
422+
this.expand(data,currentStackDocuments[index], false);
423423
});
424424
if (data.checked === false) {
425425
data.checked = true;
@@ -431,8 +431,7 @@ class ComponentCascadeDot {
431431
this.SELECTED_DOM.scrollTop = this.SELECTED_DOM.scrollHeight;
432432
} else {
433433
element.classList.remove('dlp-label-silence');
434-
data.expand = true;
435-
this.expand(element, data.expand);
434+
this.expand(data,element, true);
436435
this.selectToChildren(stack + 1, data.nodes);
437436
}
438437
}
@@ -467,21 +466,17 @@ class ComponentCascadeDot {
467466
if (checked === true || checked === undefined) {
468467
if (parents.length > 0 && (parents[stack - 1] !== parentNode)) {
469468
D.classList.add('dlp-label-silence');
470-
data.expand = false;
471-
this.expand(D, data.expand);
469+
this.expand(data,D, false);
472470
} else if (parents.length === 0 && parseInt(D.getAttribute('data-id')) !== node) {
473471
D.classList.add('dlp-label-silence');
474-
data.expand = false;
475-
this.expand(D, data.expand);
472+
this.expand(data,D, false);
476473
} else {
477474
D.classList.remove('dlp-label-silence');
478475
if (parseInt(D.getAttribute('data-id')) === node) {
479476
if (to_first_index === null) to_first_index = index;
480-
data.expand = true;
481-
this.expand(D, data.expand);
482-
} else if (data.expand === true) {
483-
data.expand = false;
484-
this.expand(D, data.expand);
477+
this.expand(data,D, true);
478+
} else {
479+
this.expand(data,D, false);
485480
}
486481
}
487482
}
@@ -530,23 +525,19 @@ class ComponentCascadeDot {
530525
});
531526
}
532527
if (to_first_index === null) to_first_index = index;
533-
if (data.expand !== true) {
534-
data.expand = true;
535-
this.expand(D, data.expand);
536-
}
528+
this.expand(data,D, true);
537529
} else {
538530
D.classList.add('dlp-label-silence');
539-
if (data.expand === true) {
540-
data.expand = false;
541-
this.expand(D, data.expand);
542-
}
531+
this.expand(data,D, false);
543532
}
544533
});
545534
if (to_first_index !== null) this.STACKS[stack].scrollTop = to_first_index * 27;
546535
this.selectToChildren(stack + 1, children);
547536
}
548537

549-
expand(dom, open = true) {
538+
expand(data,dom, open = true) {
539+
if(data.expand === open) return;
540+
data.expand = open;
550541
if (open) {
551542
let left_mark = dom.querySelector('i.left');
552543
if (left_mark) left_mark.innerHTML = _component.caret_right_circle;
@@ -1146,6 +1137,7 @@ class ComponentCascadeLine {
11461137
data.forEach((v, k) => {
11471138
if (Array.isArray(v.nodes) && v.nodes.length !== 0) {
11481139
v.nodes = v.nodes.map((N) => N.key);
1140+
v.expand = false;
11491141
} else {
11501142
v.nodes = null;
11511143
}
@@ -1176,7 +1168,6 @@ class ComponentCascadeLine {
11761168
}
11771169

11781170
select(element, stack) {
1179-
let id = parseInt(element.getAttribute('data-id'));
11801171
let k = parseInt(element.getAttribute('data-k'));
11811172
let data = this.dimensional_data[stack][k];
11821173
let currentStackDocuments = this.STACKS[stack].childNodes;
@@ -1189,22 +1180,18 @@ class ComponentCascadeLine {
11891180
} else {
11901181
D.classList.add('dlp-label-silence');
11911182
}
1183+
this.expand(data,currentStackDocuments[index], false);
11921184
});
1193-
if (data.checked === false) {
1194-
data.checked = true;
1195-
element.classList.remove('dlp-label-silence');
1196-
this.selectToChildren(stack + 1, data.nodes);
1197-
} else {
1198-
element.classList.remove('dlp-label-silence');
1199-
this.selectToChildren(stack + 1, data.nodes);
1200-
}
1185+
this.expand(data,element, true);
1186+
element.classList.remove('dlp-label-silence');
1187+
this.selectToChildren(stack + 1, data.nodes);
12011188
if (Array.isArray(data.parentNodes) && data.parentNodes.length > 0) {
12021189
let parentNodes = data.parentNodes.slice(0);
1203-
this.selectToParent(parentNodes, data.checked);
1190+
this.selectToParent(parentNodes);
12041191
}
12051192
}
12061193

1207-
selectToParent(nodes, checked) {
1194+
selectToParent(nodes) {
12081195
let stack = nodes.length - 1;
12091196
let node = nodes.pop();
12101197
let parentNode = nodes[stack - 1];
@@ -1215,16 +1202,23 @@ class ComponentCascadeLine {
12151202
let parents = data.parentNodes;
12161203
if (parents.length > 0 && (parents[stack - 1] !== parentNode)) {
12171204
D.classList.add('dlp-label-silence');
1205+
this.expand(data,D, false);
12181206
} else if (parents.length === 0 && parseInt(D.getAttribute('data-id')) !== node) {
12191207
D.classList.add('dlp-label-silence');
1208+
this.expand(data,D, false);
12201209
} else {
12211210
D.classList.remove('dlp-label-silence');
1222-
if (to_first_index === null && parseInt(D.getAttribute('data-id')) === node) to_first_index = index;
1211+
if(parseInt(D.getAttribute('data-id')) === node){
1212+
if (to_first_index === null)to_first_index = index;
1213+
this.expand(data,D, true);
1214+
}else {
1215+
this.expand(data,D, false);
1216+
}
12231217
}
12241218
});
12251219
if (to_first_index !== null) this.STACKS[stack].scrollTop = to_first_index * 27;
12261220
if (nodes.length > 0) {
1227-
this.selectToParent(nodes, checked);
1221+
this.selectToParent(nodes);
12281222
}
12291223
}
12301224

@@ -1248,19 +1242,19 @@ class ComponentCascadeLine {
12481242
});
12491243
}
12501244
if (to_first_index === null) to_first_index = index;
1245+
this.expand(data,D, true);
12511246
} else {
12521247
D.classList.add('dlp-label-silence');
1253-
if (data.expand === true) {
1254-
data.expand = false;
1255-
this.expand(D, data.expand);
1256-
}
1248+
this.expand(data,D, false);
12571249
}
12581250
});
12591251
if (to_first_index !== null) this.STACKS[stack].scrollTop = to_first_index * 27;
12601252
this.selectToChildren(stack + 1, children);
12611253
}
12621254

1263-
expand(dom, open = true) {
1255+
expand(data,dom, open = true) {
1256+
if(data.expand === open) return;
1257+
data.expand = open;
12641258
if (open) {
12651259
let left_mark = dom.querySelector('i.left');
12661260
if (left_mark) left_mark.innerHTML = _component.caret_right_circle;

0 commit comments

Comments
 (0)