@@ -244,7 +244,7 @@ window.ComponentDot = class {
244
244
menu_select . insertAdjacentHTML ( 'afterbegin' , `<div class="dlp dlp-text">${ this . menu_placeholder } </div><div>▼</div>` ) ;
245
245
246
246
let menu_list = document . createElement ( 'div' ) ;
247
- menu_list . className = 'dlp-input menu-list' ;
247
+ menu_list . className = 'menu-list' ;
248
248
let search_box = document . createElement ( 'div' ) ;
249
249
search_box . className = 'search-box' ;
250
250
let input = document . createElement ( 'input' ) ;
@@ -840,7 +840,7 @@ window.ComponentLine = class {
840
840
insert : true
841
841
} , options ) ;
842
842
/*head foot*/
843
- let foot = this . makeHead ( ) ;
843
+ let foot = this . makeHeadFoot ( ) ;
844
844
/*hidden data container*/
845
845
this . DATA_INPUT = document . createElement ( 'input' ) ;
846
846
this . DATA_INPUT . setAttribute ( 'name' , name ) ;
@@ -857,7 +857,7 @@ window.ComponentLine = class {
857
857
if ( this . OPTIONS . sortable ) this . sortable ( ) ;
858
858
}
859
859
860
- makeHead ( ) {
860
+ makeHeadFoot ( ) {
861
861
let head = '<tr class="dlp-tr">' ;
862
862
let foot = '<tr class="dlp-tr">' ;
863
863
let columns = this . COLUMNS ;
@@ -1053,6 +1053,9 @@ window.ComponentLine = class {
1053
1053
} , false ) ;
1054
1054
td . appendChild ( input ) ;
1055
1055
break ;
1056
+ case 'select' :
1057
+ td . append ( this . menuMake ( [ ] , settings . options , settings . options_limit , settings . name ) ) ;
1058
+ break ;
1056
1059
default :
1057
1060
td . insertAdjacentHTML ( 'afterbegin' , `<p style="display: block;" class="dlp text-white dlp-text" title="${ value } ">${ value } </p>` ) ;
1058
1061
break ;
@@ -1097,6 +1100,61 @@ window.ComponentLine = class {
1097
1100
td . className = 'operate-column' ;
1098
1101
}
1099
1102
1103
+ menuMake ( selected , select , limit , placeholder ) {
1104
+ let menu = document . createElement ( 'div' ) ;
1105
+ menu . className = 'dlp-dot-menu' ;
1106
+
1107
+ let menu_select = document . createElement ( 'div' ) ;
1108
+ menu_select . className = 'dlp-input dlp-dot-menu-select' ;
1109
+ menu_select . insertAdjacentHTML ( 'afterbegin' , `<div class="dlp dlp-text">${ placeholder } </div><div>▼</div>` ) ;
1110
+
1111
+ let menu_list = document . createElement ( 'div' ) ;
1112
+ menu_list . className = 'menu-list' ;
1113
+ let search_box = document . createElement ( 'div' ) ;
1114
+ search_box . className = 'search-box' ;
1115
+ let input = document . createElement ( 'input' ) ;
1116
+ input . className = 'dlp dlp-input dot-search' ;
1117
+ input . setAttribute ( 'placeholder' , '搜索' ) ;
1118
+
1119
+ let list = document . createElement ( 'div' ) ;
1120
+ list . className = 'list dlp-scroll' ;
1121
+
1122
+ let check = _component . check ;
1123
+ check = check . replace ( `width="16" height="16"` , `width="12" height="12"` ) ;
1124
+ this . id_line_hash = [ ] ;
1125
+ let line = 0 ;
1126
+ for ( let id in select ) {
1127
+ if ( ! select . hasOwnProperty ( id ) ) continue ;
1128
+ this . id_line_hash [ id ] = line ;
1129
+ line ++ ;
1130
+ let option = document . createElement ( 'div' ) ;
1131
+ option . className = 'option' ;
1132
+ option . setAttribute ( 'data-id' , id ) ;
1133
+ option . insertAdjacentHTML ( 'afterbegin' , `<div class="dlp dlp-text" data-v="${ id } ">${ select [ id ] } </div><div></div>` ) ;
1134
+ option . addEventListener ( 'click' , ( ) => {
1135
+ id = parseInt ( id ) ;
1136
+
1137
+ } , false ) ;
1138
+ list . append ( option ) ;
1139
+ }
1140
+
1141
+ menu . append ( menu_select ) ;
1142
+ search_box . append ( input ) ;
1143
+ menu_list . append ( search_box ) ;
1144
+ menu_list . append ( list ) ;
1145
+ menu . append ( menu_list ) ;
1146
+ menu . addEventListener ( 'click' , ( ) => {
1147
+ menu_list . style . display = 'flex' ;
1148
+ } ) ;
1149
+ menu . addEventListener ( 'mouseleave' , ( ) => {
1150
+ menu_list . style . display = 'none' ;
1151
+ let search = this . DOM . querySelector ( `.dot-search` ) ;
1152
+ search . value = '' ;
1153
+ } ) ;
1154
+
1155
+ return menu ;
1156
+ }
1157
+
1100
1158
sortable ( ) {
1101
1159
let object = this ;
1102
1160
new ComponentSortable ( this . TBODY_DOM , function ( sort ) {
0 commit comments