Skip to content

Commit ef054b4

Browse files
author
hikki
committed
v3.8 优化
1 parent 651ede6 commit ef054b4

File tree

2 files changed

+12
-31
lines changed

2 files changed

+12
-31
lines changed

resources/assets/component.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,8 @@
260260
transition: .2s ease-in-out;
261261
}
262262
.dlp-label>i{
263-
width: 16px!important;
264-
height: 16px!important;
263+
width: 18px!important;
264+
height: 18px!important;
265265
}
266266
.dot-cascade-panel{
267267
position: absolute;

resources/assets/component.js

Lines changed: 10 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -499,19 +499,18 @@ window.ComponentCascadeDot = class {
499499
data.forEach((v, k) => {
500500
if (Array.isArray(v.nodes) && v.nodes.length !== 0) {
501501
v.nodes = v.nodes.map((N) => N.key);
502-
v.expand = false;
503502
} else {
504503
v.nodes = null;
505504
v.checked = false;
506505
}
507506
let div = document.createElement('div');
508507
div.className = 'dlp dlp-text dlp-label';
509-
div.insertAdjacentHTML('afterbegin', `<span>${v.val}</span>`);
508+
div.insertAdjacentHTML('afterbegin', `<i class="left"></i><span>${v.val}</span><i class="right"></i>`);
510509
div.setAttribute('data-id', v.key);
511510
div.setAttribute('data-k', k);
512511
div.addEventListener('click', this.select.bind(this, div, stack));
513512
if (v.nodes !== null) {
514-
div.insertAdjacentHTML('afterbegin', `<i class="left">${_component.caret_right}</i>`);
513+
div.querySelector('i.left').insertAdjacentHTML('afterbegin', `${_component.caret_right}`);
515514
div.addEventListener("contextmenu", (e) => {
516515
if (e.target instanceof HTMLElement) e.target.click();
517516
e.preventDefault();
@@ -563,7 +562,7 @@ window.ComponentCascadeDot = class {
563562
if (data.checked === true) {
564563
data.checked = false;
565564
this.tagCal(id, this.MODE.delete);
566-
element.querySelector('i.right') !== null && element.removeChild(element.querySelector('i.right'));
565+
if(data.nodes === null) element.querySelector('i.right').innerHTML = '';
567566
for (let D of this.SELECTED_DOM.childNodes) {
568567
if (parseInt(D.getAttribute('data-id')) === id) {
569568
D.remove();
@@ -577,7 +576,6 @@ window.ComponentCascadeDot = class {
577576
} else {
578577
currentStackDocuments[index].classList.add('dlp-label-silence');
579578
}
580-
this.expand(data, currentStackDocuments[index], false);
581579
});
582580
if (data.checked === false) {
583581
if (this.limit > 0 && this.select_data.length >= this.limit && (this.SELECTED_DOM.firstChild instanceof HTMLElement)) {
@@ -586,13 +584,12 @@ window.ComponentCascadeDot = class {
586584
data.checked = true;
587585
this.tagCal(id, this.MODE.insert);
588586
element.classList.remove('dlp-label-silence');
589-
if (element.querySelector('i.right') === null) element.insertAdjacentHTML('beforeend', `<i class="right">${_component.check}</i>`);
587+
element.querySelector('i.right').insertAdjacentHTML('afterbegin',_component.check);
590588
this.selectToChildren(stack + 1, data.nodes);
591589
this.selectToSelected(element, stack);
592590
this.SELECTED_DOM.scrollTop = this.SELECTED_DOM.scrollHeight;
593591
} else {
594592
element.classList.remove('dlp-label-silence');
595-
this.expand(data, element, true);
596593
this.selectToChildren(stack + 1, data.nodes);
597594
}
598595
}
@@ -626,23 +623,19 @@ window.ComponentCascadeDot = class {
626623
if (checked === true || checked === undefined) {
627624
if (parents.length > 0 && (parents[stack - 1] !== parentNode)) {
628625
D.classList.add('dlp-label-silence');
629-
this.expand(data, D, false);
630626
} else if (parents.length === 0 && parseInt(D.getAttribute('data-id')) !== node) {
631627
D.classList.add('dlp-label-silence');
632-
this.expand(data, D, false);
633628
} else {
634629
D.classList.remove('dlp-label-silence');
635630
if (parseInt(D.getAttribute('data-id')) === node) {
636631
if (to_first_index === null) to_first_index = index;
637-
this.expand(data, D, true);
638632
} else {
639-
this.expand(data, D, false);
640633
}
641634
}
642635
}
643636
if (checked === true && node === data.key && data.mark !== true) {
644637
data.mark = true;
645-
D.insertAdjacentHTML('beforeend', `<i class="right">${_component.check_circle}</i>`);
638+
D.querySelector('.right').insertAdjacentHTML('afterbegin',_component.check_circle);
646639
}
647640
if (checked === false && node === data.key) {
648641
let nodes = this.dimensional_data[stack][index].nodes;
@@ -653,9 +646,9 @@ window.ComponentCascadeDot = class {
653646
break;
654647
}
655648
}
656-
if (cancel && (D.querySelector('i.right') instanceof HTMLElement)) {
649+
if (cancel) {
657650
data.mark = false;
658-
D.querySelector('i.right').remove();
651+
D.querySelector('i.right').innerHTML = '';
659652
}
660653
}
661654
});
@@ -685,28 +678,14 @@ window.ComponentCascadeDot = class {
685678
});
686679
}
687680
if (to_first_index === null) to_first_index = index;
688-
this.expand(data, D, true);
689681
} else {
690682
D.classList.add('dlp-label-silence');
691-
this.expand(data, D, false);
692683
}
693684
});
694685
if (to_first_index !== null) this.STACKS[stack].scrollTo(0, to_first_index * 27);
695686
this.selectToChildren(stack + 1, children);
696687
}
697688

698-
expand(data, dom, open = true) {
699-
if (data.expand === open) return;
700-
data.expand = open;
701-
let left_mark = dom.querySelector('i.left');
702-
if (!(left_mark instanceof HTMLElement)) return;
703-
if (open) {
704-
left_mark.innerHTML = _component.caret_right_circle;
705-
return;
706-
}
707-
left_mark.innerHTML = _component.caret_right;
708-
}
709-
710689
tagCal(id, operate) {
711690
if (operate === this.MODE.insert) {
712691
if (this.select_data.indexOf(id) === -1) {
@@ -786,8 +765,10 @@ window.ComponentCascadeDot = class {
786765
if (Array.isArray(this.COVER_STACK_HASH_DOM[stack]) && this.COVER_STACK_HASH_DOM[stack].indexOf(d.key) !== -1) return;
787766
let div = document.createElement('div');
788767
div.className = 'dlp dlp-text dlp-label';
768+
div.insertAdjacentHTML('afterbegin','<i class="left"></i>');
789769
div.textContent = d.val;
790-
if (d.nodes !== null) div.insertAdjacentHTML('afterbegin', `<i class="left">${_component.caret_right}</i>`);
770+
div.insertAdjacentHTML('beforeend','<i class="right"></i>');
771+
if (d.nodes !== null) div.querySelector('i.left').insertAdjacentHTML('afterbegin', _component.caret_right);
791772
div.addEventListener('click', () => this.searchCoverClick(stack, d, this.STACKS[stack].childNodes[k]));
792773
this.SELECT_COVER_DOM.childNodes[stack].prepend(div);
793774
if (!Array.isArray(this.COVER_STACK_HASH_DOM[stack])) {

0 commit comments

Comments
 (0)