1
1
const _component = {
2
- 'trash' : `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-trash" viewBox="0 0 16 16">
2
+ 'trash' : `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
3
3
<path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6z"/>
4
4
<path fill-rule="evenodd" d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1zM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z"/>
5
5
</svg>` ,
6
- 'move' : `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-arrows-move" viewBox="0 0 16 16">
6
+ 'move' : `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
7
7
<path fill-rule="evenodd" d="M7.646.146a.5.5 0 0 1 .708 0l2 2a.5.5 0 0 1-.708.708L8.5 1.707V5.5a.5.5 0 0 1-1 0V1.707L6.354 2.854a.5.5 0 1 1-.708-.708l2-2zM8 10a.5.5 0 0 1 .5.5v3.793l1.146-1.147a.5.5 0 0 1 .708.708l-2 2a.5.5 0 0 1-.708 0l-2-2a.5.5 0 0 1 .708-.708L7.5 14.293V10.5A.5.5 0 0 1 8 10zM.146 8.354a.5.5 0 0 1 0-.708l2-2a.5.5 0 1 1 .708.708L1.707 7.5H5.5a.5.5 0 0 1 0 1H1.707l1.147 1.146a.5.5 0 0 1-.708.708l-2-2zM10 8a.5.5 0 0 1 .5-.5h3.793l-1.147-1.146a.5.5 0 0 1 .708-.708l2 2a.5.5 0 0 1 0 .708l-2 2a.5.5 0 0 1-.708-.708L14.293 8.5H10.5A.5.5 0 0 1 10 8z"/>
8
8
</svg>` ,
9
- 'write' : `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-pencil-square" viewBox="0 0 16 16">
9
+ 'write' : `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
10
10
<path d="M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z"/>
11
11
<path fill-rule="evenodd" d="M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z"/>
12
12
</svg>` ,
13
13
'close' : `<svg style="vertical-align: middle;" width="14" height="14" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="white" stroke-width="2.5" d="M16,16 L4,4"></path><path fill="none" stroke="white" stroke-width="2.5" d="M16,4 L4,16"></path></svg>` ,
14
- 'loading' : `<svg version="1.1" style=' width: 100%;height:100px' xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
14
+ 'loading' : `<svg version="1.1" style=" width: 100%;height:100px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
15
15
width="40px" height="40px" viewBox="0 0 40 40" enable-background="new 0 0 40 40" xml:space="preserve">
16
16
<path opacity="0.2" fill="#000" d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946
17
17
s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634
18
18
c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z"/>
19
19
<path fill="#000" d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0
20
- C22.32,8.481,24.301,9.057,26.013,10.047z"><animateTransform attributeType="xml"attributeName="transform"
21
- type="rotate"from="0 20 20"to="360 20 20"dur="0.5s"repeatCount="indefinite"/></path></svg>` ,
22
- 'check' : `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-check-circle-fill" viewBox="0 0 16 16">
20
+ C22.32,8.481,24.301,9.057,26.013,10.047z"><animateTransform attributeType="xml" attributeName="transform"
21
+ type="rotate" from="0 20 20" to="360 20 20" dur="0.5s" repeatCount="indefinite"/></path></svg>` ,
22
+ 'check' : `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
23
23
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
24
24
</svg>` ,
25
- 'check_circle' : `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-check-circle" viewBox="0 0 16 16">
25
+ 'check_circle' : `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
26
26
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/>
27
27
<path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/>
28
28
</svg>` ,
@@ -145,6 +145,7 @@ class ComponentDot {
145
145
let selected_dom = '' ;
146
146
let select_dom = '' ;
147
147
for ( let i in select ) {
148
+ if ( ! select . hasOwnProperty ( i ) ) continue ;
148
149
if ( selected . indexOf ( parseInt ( i ) ) !== - 1 ) {
149
150
selected_dom += `<div class='dlp dlp-text dlp-label' data-id='${ i } ' title="${ select [ i ] } ">${ select [ i ] } </div>` ;
150
151
continue ;
@@ -177,8 +178,9 @@ class ComponentDot {
177
178
178
179
tagCal ( element , operate ) {
179
180
let id = parseInt ( element . getAttribute ( 'data-id' ) ) ;
181
+ let index = this . select_data . indexOf ( id ) ;
180
182
if ( operate === this . MODE . insert ) {
181
- if ( this . select_data . indexOf ( id ) === - 1 ) {
183
+ if ( index === - 1 ) {
182
184
this . select_data . push ( id ) ;
183
185
this . selectInputDOM . value = JSON . stringify ( this . select_data ) ;
184
186
}
@@ -192,9 +194,7 @@ class ComponentDot {
192
194
this . deleteInputDOM . value = JSON . stringify ( this . delete_data ) ;
193
195
}
194
196
return ;
195
- }
196
- if ( operate === this . MODE . delete ) {
197
- let index = this . select_data . indexOf ( id ) ;
197
+ } else {
198
198
if ( index !== - 1 ) {
199
199
this . select_data . splice ( index , 1 ) ;
200
200
this . selectInputDOM . value = JSON . stringify ( this . select_data ) ;
@@ -297,6 +297,7 @@ class ComponentCascadeDot {
297
297
this . makeDimensional ( select ) ;
298
298
let object = this ;
299
299
for ( let stack in this . dimensional_data ) {
300
+ if ( ! this . dimensional_data . hasOwnProperty ( stack ) ) continue ;
300
301
stack = parseInt ( stack ) ;
301
302
let data = this . dimensional_data [ stack ] ;
302
303
let stackDom = document . createElement ( 'div' ) ;
@@ -360,6 +361,7 @@ class ComponentCascadeDot {
360
361
makeDimensional ( data , dimension = 0 , parentNodes = [ ] ) {
361
362
if ( Array . isArray ( data ) ) {
362
363
for ( let k in data ) {
364
+ if ( ! data . hasOwnProperty ( k ) ) continue ;
363
365
let parents = parentNodes . slice ( 0 ) ;
364
366
parents . push ( data [ k ] . key ) ;
365
367
this . makeDimensional ( data [ k ] , dimension , parents ) ;
@@ -437,7 +439,7 @@ class ComponentCascadeDot {
437
439
div . setAttribute ( 'data-id' , element . getAttribute ( 'data-id' ) ) ;
438
440
div . setAttribute ( 'stack' , stack ) ;
439
441
div . textContent = element . textContent ;
440
- var object = this ;
442
+ let object = this ;
441
443
div . addEventListener ( 'click' , function ( ) {
442
444
object . select ( element , stack ) ;
443
445
} ) ;
@@ -572,47 +574,37 @@ class ComponentCascadeDot {
572
574
this . CONTENT_DOM . parentNode . append ( this . SELECT_COVER_DOM ) ;
573
575
}
574
576
this . dimensional_data . forEach ( ( data , stack ) => {
575
- data . forEach ( ( d , k ) => {
576
- if ( d . val . indexOf ( search . value ) !== - 1 &&
577
- ( ! Array . isArray ( this . COVER_STACK_HASH_DOM [ stack ] ) || this . COVER_STACK_HASH_DOM [ stack ] . indexOf ( d . key ) === - 1 ) ) {
578
- let div = document . createElement ( 'div' ) ;
579
- div . className = 'dlp dlp-text dlp-label' ;
580
- div . textContent = d . val ;
581
- div . addEventListener ( 'click' , ( ) => this . searchCoverClick ( stack , d , this . STACKS [ stack ] . childNodes [ k ] ) ) ;
582
- this . SELECT_COVER_DOM . childNodes [ stack ] . appendChild ( div ) ;
583
- if ( ! Array . isArray ( this . COVER_STACK_HASH_DOM [ stack ] ) ) {
584
- this . COVER_STACK_HASH_DOM [ stack ] = [ d . key ] ;
585
- return ;
586
- }
587
- this . COVER_STACK_HASH_DOM [ stack ] . push ( d . key ) ;
588
- }
589
- } ) ;
577
+ this . searchPushTag ( search , data , stack ) ;
590
578
} ) ;
591
579
}
592
580
593
581
searchCoverClick ( stack , data , dom ) {
594
582
if ( data . nodes !== null ) {
595
583
let nextStack = stack + 1 ;
596
- this . dimensional_data [ nextStack ] . forEach ( ( d , k ) => {
597
- if ( data . nodes . indexOf ( d . key ) !== - 1 &&
598
- ( ! Array . isArray ( this . COVER_STACK_HASH_DOM [ nextStack ] ) || this . COVER_STACK_HASH_DOM [ nextStack ] . indexOf ( d . key ) === - 1 ) ) {
599
- let div = document . createElement ( 'div' ) ;
600
- div . className = 'dlp dlp-text dlp-label' ;
601
- div . textContent = d . val ;
602
- div . addEventListener ( 'click' , ( ) => this . searchCoverClick ( nextStack , d , this . STACKS [ nextStack ] . childNodes [ k ] ) ) ;
603
- this . SELECT_COVER_DOM . childNodes [ nextStack ] . appendChild ( div ) ;
604
- if ( ! Array . isArray ( this . COVER_STACK_HASH_DOM [ nextStack ] ) ) {
605
- this . COVER_STACK_HASH_DOM [ nextStack ] = [ d . key ] ;
606
- return ;
607
- }
608
- this . COVER_STACK_HASH_DOM [ nextStack ] . push ( d . key ) ;
609
- }
610
- } ) ;
584
+ this . searchPushTag ( this . dimensional_data [ nextStack ] , data , nextStack ) ;
611
585
return ;
612
586
}
613
587
( dom instanceof HTMLElement ) && dom . click ( ) ;
614
588
}
615
589
590
+ searchPushTag ( search , data , stack ) {
591
+ data . forEach ( ( d , k ) => {
592
+ if ( d . val . indexOf ( search . value ) !== - 1 &&
593
+ ( ! Array . isArray ( this . COVER_STACK_HASH_DOM [ stack ] ) || this . COVER_STACK_HASH_DOM [ stack ] . indexOf ( d . key ) === - 1 ) ) {
594
+ let div = document . createElement ( 'div' ) ;
595
+ div . className = 'dlp dlp-text dlp-label' ;
596
+ div . textContent = d . val ;
597
+ div . addEventListener ( 'click' , ( ) => this . searchCoverClick ( stack , d , this . STACKS [ stack ] . childNodes [ k ] ) ) ;
598
+ this . SELECT_COVER_DOM . childNodes [ stack ] . appendChild ( div ) ;
599
+ if ( ! Array . isArray ( this . COVER_STACK_HASH_DOM [ stack ] ) ) {
600
+ this . COVER_STACK_HASH_DOM [ stack ] = [ d . key ] ;
601
+ return ;
602
+ }
603
+ this . COVER_STACK_HASH_DOM [ stack ] . push ( d . key ) ;
604
+ }
605
+ } ) ;
606
+ }
607
+
616
608
checkAll ( stack , nodes , check ) {
617
609
if ( stack > ( this . dimensional_data . length - 1 ) ) return ;
618
610
if ( ! Array . isArray ( nodes ) || nodes . length <= 0 ) return ;
@@ -674,16 +666,18 @@ class ComponentLine {
674
666
let foot = head ;
675
667
let columns = this . COLUMNS ;
676
668
for ( let column in columns ) {
677
- if ( columns [ column ] . type === 'hidden' ) {
669
+ if ( ! columns . hasOwnProperty ( column ) ) continue ;
670
+ let val = columns [ column ] ;
671
+ if ( val . type === 'hidden' ) {
678
672
continue ;
679
673
}
680
- if ( columns [ column ] . style ) {
681
- head += `<th style="${ columns [ column ] . style } ">${ columns [ column ] . name } </th>` ;
682
- foot += `<th style="${ columns [ column ] . style } "><input class="dlp-input" data-column="${ column } " placeholder=":${ columns [ column ] . name } "/></th>` ;
674
+ if ( val . style ) {
675
+ head += `<th style="${ val . style } ">${ val . name } </th>` ;
676
+ foot += `<th style="${ val . style } "><input class="dlp-input" data-column="${ column } " placeholder=":${ val . name } "/></th>` ;
683
677
continue ;
684
678
}
685
- head += '<th>' + columns [ column ] . name + '</th>' ;
686
- foot += `<th><input class="dlp-input" data-column="${ column } " placeholder=":${ columns [ column ] . name } "/></th>` ;
679
+ head += '<th>' + val . name + '</th>' ;
680
+ foot += `<th><input class="dlp-input" data-column="${ column } " placeholder=":${ val . name } "/></th>` ;
687
681
}
688
682
head += '<th class="operate-column" style="width: 48px;"></th></tr>' ;
689
683
foot += '<th class="insert_handel operate-column" style="width: 48px;"></th></tr>' ;
@@ -694,16 +688,17 @@ class ComponentLine {
694
688
}
695
689
696
690
makeBody ( ) {
697
- var records = [ ] ;
698
- var tbody = document . createElement ( 'tbody' ) ;
699
- var object = this ;
700
- var columns = this . COLUMNS ;
691
+ let records = [ ] ;
692
+ let tbody = document . createElement ( 'tbody' ) ;
693
+ let object = this ;
694
+ let columns = this . COLUMNS ;
701
695
if ( Array . isArray ( this . DATA ) === false ) return ;
702
696
this . DATA . forEach ( function ( value , key ) {
703
697
let tr = document . createElement ( 'tr' ) ;
704
698
tr . setAttribute ( 'sortable-item' , 'sortable-item' ) ;
705
699
let record = { } ;
706
700
for ( let column in columns ) {
701
+ if ( ! columns . hasOwnProperty ( column ) ) continue ;
707
702
if ( columns [ column ] . type === 'hidden' ) {
708
703
if ( value [ column ] ) {
709
704
record [ column ] = value [ column ] ;
@@ -747,9 +742,9 @@ class ComponentLine {
747
742
tfoot . insertAdjacentHTML ( 'afterbegin' , foot ) ;
748
743
this . TABLE_DOM . appendChild ( tfoot ) ;
749
744
/*insert action*/
750
- var object = this ;
751
- var i = document . createElement ( 'i' ) ;
752
- i . style = 'cursor: pointer' ;
745
+ let object = this ;
746
+ let i = document . createElement ( 'i' ) ;
747
+ i . style . cursor = 'pointer' ;
753
748
i . insertAdjacentHTML ( 'afterbegin' , _component . write ) ;
754
749
i . addEventListener ( 'click' , function ( ) {
755
750
let inputs = object . DOM . getElementsByTagName ( 'tfoot' ) [ 0 ] . getElementsByTagName ( 'input' ) ;
@@ -794,6 +789,7 @@ class ComponentLine {
794
789
input . setAttribute ( 'data-column' , column ) ;
795
790
input . value = value ;
796
791
for ( let attribute in attributes ) {
792
+ if ( ! attributes . hasOwnProperty ( attribute ) ) continue ;
797
793
input . setAttribute ( attribute , attributes [ attribute ] ) ;
798
794
}
799
795
input . addEventListener ( 'input' , function ( ) {
@@ -835,6 +831,7 @@ class ComponentLine {
835
831
tbody . removeChild ( tr ) ;
836
832
object . DATA_INPUT . value = JSON . stringify ( object . DATA ) ;
837
833
for ( let node in tbody . childNodes ) {
834
+ if ( ! tbody . childNodes . hasOwnProperty ( node ) ) continue ;
838
835
if ( tbody . childNodes [ node ] instanceof HTMLElement ) {
839
836
tbody . childNodes [ node ] . setAttribute ( 'data-key' , node ) ;
840
837
}
@@ -846,7 +843,7 @@ class ComponentLine {
846
843
}
847
844
848
845
sortable ( ) {
849
- var object = this ;
846
+ let object = this ;
850
847
new ComponentSortable ( this . TBODY_DOM , function ( sort ) {
851
848
let data = [ ] ;
852
849
sort . forEach ( function ( k ) {
0 commit comments