|
3 | 3 | author:q6q64399([email protected]) |
4 | 4 | */ |
5 | 5 | "use strict"; |
6 | | -function LabelCore(element, labelList, data, saveCB, confirmCB, addCB, deleteCB) { |
| 6 | +function LabelCore(element, labelList, multi, data, saveCB, confirmCB, addCB, deleteCB) { |
7 | 7 | const threshold = 5; |
8 | 8 | const strokeWidth = 3; |
9 | 9 |
|
@@ -32,6 +32,8 @@ function LabelCore(element, labelList, data, saveCB, confirmCB, addCB, deleteCB) |
32 | 32 | save: element.querySelector(".label-save-label"), |
33 | 33 | delete: element.querySelector(".label-delete-label"), |
34 | 34 | label: element.querySelector(".label-label"), |
| 35 | + // label: document.getElementById("test"), |
| 36 | + // label_multi: element.querySelectorAll(".label_label-multi"), |
35 | 37 | crowd: element.querySelector(".label-crowd"), |
36 | 38 | desc: element.querySelector(".label-desc") |
37 | 39 | }; |
@@ -175,7 +177,18 @@ function LabelCore(element, labelList, data, saveCB, confirmCB, addCB, deleteCB) |
175 | 177 | e.querySelector("li").classList.add("active"); |
176 | 178 | }, |
177 | 179 | savelabel: function() { |
178 | | - method.createArea(panel.label.value, panel.desc.value, labelList[panel.label.value].color, panel.crowd.checked); |
| 180 | + // method.createArea(panel.label.value, panel.desc.value, labelList[panel.label.value].color, panel.crowd.checked); |
| 181 | + |
| 182 | + const selected = panel.label.querySelectorAll("option:checked"); |
| 183 | + const values = Array.from(selected).map(el => el.value); |
| 184 | + method.createArea( |
| 185 | + values, |
| 186 | + panel.desc.value, |
| 187 | + labelList[panel.label.value].color, |
| 188 | + panel.crowd.checked |
| 189 | + ); |
| 190 | + |
| 191 | + |
179 | 192 | popup.style.display = "none"; |
180 | 193 | lock = false; |
181 | 194 | mode == 4 && (svgLock = false); |
@@ -367,15 +380,27 @@ function LabelCore(element, labelList, data, saveCB, confirmCB, addCB, deleteCB) |
367 | 380 | for (const item of pointList) { |
368 | 381 | item[2] == 0 && tempList.push(item); |
369 | 382 | } |
370 | | - areaList.push({ |
371 | | - id: labelList[index].id, |
372 | | - index: index, |
373 | | - desc: desc, |
374 | | - color: color, |
375 | | - type: mode == 2 || (mode == 4 && nowDrawType == 0) ? 0 : 1, |
376 | | - points: tempList, |
377 | | - iscrowd: crowd ? 1 : 0 |
378 | | - }); |
| 383 | + // areaList.push({ |
| 384 | + // id: labelList[index].id, |
| 385 | + // index: index, |
| 386 | + // desc: desc, |
| 387 | + // color: color, |
| 388 | + // type: mode == 2 || (mode == 4 && nowDrawType == 0) ? 0 : 1, |
| 389 | + // points: tempList, |
| 390 | + // iscrowd: crowd ? 1 : 0 |
| 391 | + // }); |
| 392 | + !Array.isArray(index) && (index = [index]); |
| 393 | + for (const key of index) { |
| 394 | + areaList.push({ |
| 395 | + id: labelList[key].id, |
| 396 | + index: index, |
| 397 | + desc: desc, |
| 398 | + color: labelList[key].color, |
| 399 | + type: mode == 2 || (mode == 4 && nowDrawType == 0) ? 0 : 1, |
| 400 | + points: tempList, |
| 401 | + iscrowd: crowd ? 1 : 0 |
| 402 | + }); |
| 403 | + } |
379 | 404 | let pathStr = ""; |
380 | 405 | for (let point of tempList) { |
381 | 406 | pathStr += `${point[0]},${point[1]} `; |
@@ -498,7 +523,9 @@ function LabelCore(element, labelList, data, saveCB, confirmCB, addCB, deleteCB) |
498 | 523 | e.value = key; |
499 | 524 | e.innerHTML = item.label; |
500 | 525 | e.style.color = item.color; |
| 526 | + console.log("i:",i,"label",panel.label) |
501 | 527 | panel.label.appendChild(e); |
| 528 | + // panel.label_multi.appendChild(e); |
502 | 529 |
|
503 | 530 | if (tempSelectId != -1 && item.id == tempSelectId) { |
504 | 531 | p = i; |
|
0 commit comments