Skip to content

Commit 62e5f0a

Browse files
author
hikki
committed
v3.6
1 parent 5c9e5d7 commit 62e5f0a

File tree

3 files changed

+69
-10
lines changed

3 files changed

+69
-10
lines changed

resources/assets/component.css

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,10 @@
158158
flex-wrap: wrap;
159159
padding: 0;
160160
border-radius: 3px;
161+
background: #ededed;
161162
}
162163
.dlp-dot-menu>.menu-list .dot-search{height: 24px}
163-
.dlp-dot-menu>.menu-list>.list{width:100%;max-height: 150px;overflow-y: auto;}
164+
.dlp-dot-menu>.menu-list>.list{width:100%;max-height: 150px;overflow-y: auto;padding: 0 0 2px 0;}
164165
.dlp-dot-menu>.menu-list .option{
165166
display: flex;
166167
margin: 0 2px 0 2px;
@@ -309,7 +310,7 @@
309310
.dlp-table .dlp-input{height: 24px!important;}
310311
.dlp-table .dlp-tbody{display:block;height:100%;overflow-y:scroll!important;background: rgb(50 50 50 / 80%);}
311312
.dlp-table .dlp-tr{display:table;width:100%;table-layout:fixed;position: relative;}
312-
.dlp-tr>th,.dlp-tr>td{overflow: hidden;padding: 7px 3px 7px 3px;text-align: left}
313+
.dlp-tr>th,.dlp-tr>td{padding: 7px 3px 7px 3px;text-align: left}
313314
.dlp-table .dlp-thead>.dlp-tr{height: 45px;border-bottom: 1px solid #060606;}
314315
.dlp-table .dlp-tbody>.dlp-tr{background:#1e1e1e}
315316
.dlp-table .dlp-tbody>.dlp-tr:nth-child(even){background:#2a2a2a}

resources/assets/component.js

Lines changed: 61 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ window.ComponentDot = class {
244244
menu_select.insertAdjacentHTML('afterbegin',`<div class="dlp dlp-text">${this.menu_placeholder}</div><div>▼</div>`);
245245

246246
let menu_list = document.createElement('div');
247-
menu_list.className = 'dlp-input menu-list';
247+
menu_list.className = 'menu-list';
248248
let search_box = document.createElement('div');
249249
search_box.className = 'search-box';
250250
let input = document.createElement('input');
@@ -840,7 +840,7 @@ window.ComponentLine = class {
840840
insert: true
841841
}, options);
842842
/*head foot*/
843-
let foot = this.makeHead();
843+
let foot = this.makeHeadFoot();
844844
/*hidden data container*/
845845
this.DATA_INPUT = document.createElement('input');
846846
this.DATA_INPUT.setAttribute('name', name);
@@ -857,7 +857,7 @@ window.ComponentLine = class {
857857
if (this.OPTIONS.sortable) this.sortable();
858858
}
859859

860-
makeHead() {
860+
makeHeadFoot() {
861861
let head = '<tr class="dlp-tr">';
862862
let foot = '<tr class="dlp-tr">';
863863
let columns = this.COLUMNS;
@@ -1053,6 +1053,9 @@ window.ComponentLine = class {
10531053
}, false);
10541054
td.appendChild(input);
10551055
break;
1056+
case 'select':
1057+
td.append(this.menuMake([],settings.options,settings.options_limit,settings.name));
1058+
break;
10561059
default:
10571060
td.insertAdjacentHTML('afterbegin', `<p style="display: block;" class="dlp text-white dlp-text" title="${value}">${value}</p>`);
10581061
break;
@@ -1097,6 +1100,61 @@ window.ComponentLine = class {
10971100
td.className = 'operate-column';
10981101
}
10991102

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+
11001158
sortable() {
11011159
let object = this;
11021160
new ComponentSortable(this.TBODY_DOM, function (sort) {

test/index.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@
185185
</div>
186186
</body>
187187
<script>
188-
new ComponentDot('test', [2, 5, 10], {
188+
new ComponentDot('test', {
189189
"2": "西宮このみ",
190190
"5": "瀨名光莉",
191191
"7": "日菜々はのん",
@@ -342,9 +342,9 @@
342342
"298": "椎葉みくる",
343343
"299": "佐伯奈々",
344344
"300": "小谷みのり"
345-
});
345+
}, [2, 5, 10]);
346346

347-
new ComponentDot('test7', [], {
347+
new ComponentDot('test7', {
348348
"2": "西宮このみ",
349349
"5": "瀨名光莉",
350350
"7": "日菜々はのん",
@@ -359,7 +359,7 @@
359359
"31": "AIKA -",
360360
"33": "永井みひな",
361361
"36": "河北彩花"
362-
},30,true,'请选择');
362+
},[],1,true,'请选择');
363363

364364
new ComponentLine("test2", {
365365
"name": {"name": "名称", "type": "input"},
@@ -844,7 +844,7 @@
844844
];
845845
let cascadeData2 = JSON.parse(JSON.stringify(cascadeData));
846846

847-
new ComponentCascadeDot('test4', [1102, 542], cascadeData);
847+
new ComponentCascadeDot('test4', cascadeData, [1102, 542]);
848848

849849
new ComponentCascadeLine('test5', cascadeData2,'http://url...');
850850
</script>

0 commit comments

Comments
 (0)