|
@@ -77,61 +77,60 @@ const { addTimeout } = useTimers();
|
|
let sliceImagesWithTrackList: SliceImage[] = reactive([]);
|
|
let sliceImagesWithTrackList: SliceImage[] = reactive([]);
|
|
let maxImageWidth = 0;
|
|
let maxImageWidth = 0;
|
|
|
|
|
|
-function addTrackColorAttr(tList: Track[]): Track[] {
|
|
|
|
- let markerIds: (number | undefined)[] = tList
|
|
|
|
- .map((v) => v.markerId)
|
|
|
|
- .filter((x) => !!x);
|
|
|
|
- markerIds = Array.from(new Set(markerIds));
|
|
|
|
- // markerIds.sort();
|
|
|
|
|
|
+function buildColorMap(colorMap: ColorMap, markerId) {
|
|
|
|
+ if (!colorMap[markerId + ""]) {
|
|
|
|
+ let keyLength = Object.keys(colorMap);
|
|
|
|
+ colorMap[markerId + ""] =
|
|
|
|
+ keyLength == 0
|
|
|
|
+ ? "#F53F3F"
|
|
|
|
+ : keyLength == 1
|
|
|
|
+ ? "#165DFF"
|
|
|
|
+ : keyLength == 2
|
|
|
|
+ ? "#FAAD14"
|
|
|
|
+ : "gray";
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function addColorAttr(
|
|
|
|
+ trackList: Track[] = [],
|
|
|
|
+ tagList: SpecialTag[] = [],
|
|
|
|
+ groupNumber: number
|
|
|
|
+): { trackList: Track[]; tagList: SpecialTag[] } {
|
|
let colorMap: ColorMap = {};
|
|
let colorMap: ColorMap = {};
|
|
- for (let i = 0; i < markerIds.length; i++) {
|
|
|
|
- const mId: any = markerIds[i];
|
|
|
|
- if (i == 0) {
|
|
|
|
- colorMap[mId + ""] = "#F53F3F";
|
|
|
|
- } else if (i == 1) {
|
|
|
|
- colorMap[mId + ""] = "#165DFF";
|
|
|
|
- } else if (i == 2) {
|
|
|
|
- colorMap[mId + ""] = "#FAAD14";
|
|
|
|
- } else if (i > 2) {
|
|
|
|
- colorMap[mId + ""] = "gray";
|
|
|
|
|
|
+ for (let i = 0; i < trackList.length; i++) {
|
|
|
|
+ const track = trackList[i];
|
|
|
|
+ if (track?.markerId) {
|
|
|
|
+ buildColorMap(colorMap, track.markerId);
|
|
|
|
+ track.color = colorMap[track.markerId + ""];
|
|
|
|
+ } else if (track?.markerId == 0) {
|
|
|
|
+ track.color = "#F53F3F";
|
|
|
|
+ } else {
|
|
|
|
+ track.color = "gray";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Object.keys(colorMap).length > 1) {
|
|
if (Object.keys(colorMap).length > 1) {
|
|
emit("getIsMultComments", true);
|
|
emit("getIsMultComments", true);
|
|
|
|
+ for (let i = 0; i < trackList.length; i++) {
|
|
|
|
+ trackList[i].isByMultMark = true;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- tList = tList.map((item: Track) => {
|
|
|
|
- item.color = colorMap[item.markerId + ""] || "gray";
|
|
|
|
- item.isByMultMark = markerIds.length > 1;
|
|
|
|
- return item;
|
|
|
|
- });
|
|
|
|
- return tList;
|
|
|
|
-}
|
|
|
|
|
|
|
|
-function addTagColorAttr(tList: SpecialTag[]): SpecialTag[] {
|
|
|
|
- let markerIds: (number | undefined)[] = tList
|
|
|
|
- .map((v) => v.markerId)
|
|
|
|
- .filter((x) => !!x);
|
|
|
|
- markerIds = Array.from(new Set(markerIds));
|
|
|
|
- // markerIds.sort();
|
|
|
|
- let colorMap: ColorMap = {};
|
|
|
|
- for (let i = 0; i < markerIds.length; i++) {
|
|
|
|
- const mId: any = markerIds[i];
|
|
|
|
- if (i == 0) {
|
|
|
|
- colorMap[mId + ""] = "#F53F3F";
|
|
|
|
- } else if (i == 1) {
|
|
|
|
- colorMap[mId + ""] = "#165DFF";
|
|
|
|
- } else if (i == 2) {
|
|
|
|
- colorMap[mId + ""] = "#FAAD14";
|
|
|
|
- } else if (i > 2) {
|
|
|
|
- colorMap[mId + ""] = "gray";
|
|
|
|
|
|
+ for (let j = 0; j < tagList.length; j++) {
|
|
|
|
+ const tag: SpecialTag = tagList[j];
|
|
|
|
+ if (tag.groupNumber == groupNumber) {
|
|
|
|
+ if (tag.markerId) {
|
|
|
|
+ buildColorMap(colorMap, tag.markerId);
|
|
|
|
+ tag.color = colorMap[tag.markerId + ""];
|
|
|
|
+ } else if (tag?.markerId == 0) {
|
|
|
|
+ tag.color = "#F53F3F";
|
|
|
|
+ } else {
|
|
|
|
+ tag.color = "gray";
|
|
|
|
+ }
|
|
|
|
+ tag.isByMultMark = Object.keys(colorMap).length > 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- tList = tList.map((item: SpecialTag) => {
|
|
|
|
- item.color = colorMap[item.markerId + ""] || "gray";
|
|
|
|
- item.isByMultMark = markerIds.length > 1;
|
|
|
|
- return item;
|
|
|
|
- });
|
|
|
|
- return tList;
|
|
|
|
|
|
+
|
|
|
|
+ return { trackList, tagList };
|
|
}
|
|
}
|
|
|
|
|
|
async function processImage() {
|
|
async function processImage() {
|
|
@@ -157,7 +156,8 @@ async function processImage() {
|
|
|
|
|
|
return q.headerTrack?.length
|
|
return q.headerTrack?.length
|
|
? addHeaderTrackColorAttr(q.headerTrack)
|
|
? addHeaderTrackColorAttr(q.headerTrack)
|
|
- : addTrackColorAttr(tList);
|
|
|
|
|
|
+ : addColorAttr(tList, store.currentTask.specialTagList || [])
|
|
|
|
+ .trackList;
|
|
})
|
|
})
|
|
.flat();
|
|
.flat();
|
|
const thisImageTrackList = trackLists.filter(
|
|
const thisImageTrackList = trackLists.filter(
|
|
@@ -170,12 +170,9 @@ async function processImage() {
|
|
(t) => t.offsetIndex === indexInSliceUrls
|
|
(t) => t.offsetIndex === indexInSliceUrls
|
|
)
|
|
)
|
|
)
|
|
)
|
|
- : addTagColorAttr(
|
|
|
|
- (store.currentTask.specialTagList || []).filter(
|
|
|
|
- (t) => t.offsetIndex === indexInSliceUrls
|
|
|
|
- )
|
|
|
|
|
|
+ : (store.currentTask.specialTagList || []).filter(
|
|
|
|
+ (t) => t.offsetIndex === indexInSliceUrls
|
|
);
|
|
);
|
|
-
|
|
|
|
// const thisImageTagList = addTagColorAttr(
|
|
// const thisImageTagList = addTagColorAttr(
|
|
// (store.currentTask.specialTagList || []).filter(
|
|
// (store.currentTask.specialTagList || []).filter(
|
|
// (t) => t.offsetIndex === indexInSliceUrls
|
|
// (t) => t.offsetIndex === indexInSliceUrls
|